通达OA2015-工作流前端触发器的使用
2015-10-22 17:21
225 查看
通达OA2015版支持多种前端触发器的使用,之前的版本只支持后端处理,即通过转交动作将表单中的数据POST到触发器的php文件中,2015也保留了这种方法,但这种方法当检查数据合法性时,显示不够灵活,通常的做法是,触发器分析$_POST数组中的数据,若不合要求,则通过echo 返回按钮,重新将整个表单打开一次;当用户比较多,这种方式会对web服务器会造成较大影响;
因此,对于复杂的数据合法性检查,能用前端的尽量用前端实现,下面的操作步骤以母件工作流转交某个步骤时,要检查其子件工作流是否结束做为应用场景,当有未结束的子件工作流时,母件工作流不允许转交下一步,具体操作及代码如下:
第一步:创建触发器目录
打开X:\MYOA\webroot\general\workflow\plugin\turn,创建新目录chkSubIsOver
第二步:创建触发器配置文件
打开X:\MYOA\webroot\general\workflow\plugin\turn\chkSubIsOver,创建chkSubIsOver.ini,内容如下:
第三步:创建触发器文件
创建 E:\MYOA\webroot\general\workflow\plugin\turn\chkSubIsOver\BEFORE_FRONTEND.php文件,文件内容:
<script>
jQuery.ajaxSetup({
type:"POST",
dataType:"json",
async:false,
cache:false
});
function chkSubIsOver_before_callBack_<?php echo $PRCS_KEY_ID;?>(){
var run_id=jQuery("input[name='run_id']:eq(0)").val(); //获取流水号
var flow_id=jQuery("input[name='flow_id']:eq(0)").val(); //获取流程ID号
//获取表单内控件值 如果需要对表单某个数据做较验,可以使用以下部份
//var myform=jQuery(window.frames["work_form_data"].document).find("form[name='form1'");
//var val=myform.find(":input[name='DATA_2']").val();
//检查子件是否结束
var chckflag=true;
jQuery.ajax({
url:"/userext/index.php?c=workflow&m=chkSubisOver",
data:{flow_id:flow_id,run_id:run_id},
success:function(res){
if (!res){
alert("获取子件数据失败");
chckflag=false;
}
if (!res.rescode){
alert("该母件的子件还未结束\r子件流水号:\r"+res.resmsg);
chckflag=false;
}
}
});
if (!chckflag){
return false;
}
}
</script>
第四步:设置需要触发器的步骤
确定后保存
第五步:验证效果
因此,对于复杂的数据合法性检查,能用前端的尽量用前端实现,下面的操作步骤以母件工作流转交某个步骤时,要检查其子件工作流是否结束做为应用场景,当有未结束的子件工作流时,母件工作流不允许转交下一步,具体操作及代码如下:
第一步:创建触发器目录
打开X:\MYOA\webroot\general\workflow\plugin\turn,创建新目录chkSubIsOver
第二步:创建触发器配置文件
打开X:\MYOA\webroot\general\workflow\plugin\turn\chkSubIsOver,创建chkSubIsOver.ini,内容如下:
NAME = 子流程是否全部完成 DESC = 母件转最后下一步时,检查子件是否已全部完成 BEFORE_FRONTEND =BEFORE_FRONTEND.php
第三步:创建触发器文件
创建 E:\MYOA\webroot\general\workflow\plugin\turn\chkSubIsOver\BEFORE_FRONTEND.php文件,文件内容:
<script>
jQuery.ajaxSetup({
type:"POST",
dataType:"json",
async:false,
cache:false
});
function chkSubIsOver_before_callBack_<?php echo $PRCS_KEY_ID;?>(){
var run_id=jQuery("input[name='run_id']:eq(0)").val(); //获取流水号
var flow_id=jQuery("input[name='flow_id']:eq(0)").val(); //获取流程ID号
//获取表单内控件值 如果需要对表单某个数据做较验,可以使用以下部份
//var myform=jQuery(window.frames["work_form_data"].document).find("form[name='form1'");
//var val=myform.find(":input[name='DATA_2']").val();
//检查子件是否结束
var chckflag=true;
jQuery.ajax({
url:"/userext/index.php?c=workflow&m=chkSubisOver",
data:{flow_id:flow_id,run_id:run_id},
success:function(res){
if (!res){
alert("获取子件数据失败");
chckflag=false;
}
if (!res.rescode){
alert("该母件的子件还未结束\r子件流水号:\r"+res.resmsg);
chckflag=false;
}
}
});
if (!chckflag){
return false;
}
}
</script>
第四步:设置需要触发器的步骤
确定后保存
第五步:验证效果
相关文章推荐
- js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度
- (一)页面中引入seajs以及模块的加载和启动
- 学习笔记 一步步了解webpack
- ReactJs 使用心得
- html标签的嵌套规则
- input简单操作
- js显示当前日期时间和星期几
- jquery ajax
- (失败作)用NodeJS调用打印机 - 型号:Gprinter佳博 GP-L80250I
- html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
- <<JavaScript编程全解>>阅读笔记之javascript基础
- html标签属性
- css购物车样式
- 自定义button样式,圆角按钮
- 使用jQuery解析JSON数据
- Jsp页面生成随机验证码图片
- Ghost - 基于 Node.js 构建的开源博客平台
- Reactor和Proactor应用代码编写对比
- javascript日期格式化方法汇总
- js检测用户输入密码强度