找回密码
 注册成为天翎用户
查看: 1773|回复: 5

[其他] 在视图里怎么根据流程节点的不同进行批量提交

[复制链接]
吉林慧瑞 发表于 2014-11-27 12:15:51 | 显示全部楼层 |阅读模式
本帖最后由 karrman 于 2016-2-29 21:37 编辑

这里批量提交按钮要绑定下一步节点,这里是写死了的,怎么才能动态的根据流程状态节点的不同来进行批量提交
我的流程有三级,录入----->街道审核----->区县审核    ,就是想让这个用户在录入节点这一级的时候批量提交到街道审核,在街道审核这一级的时候就批量提交到区县
QQ截图20141127120522.png
lumi 发表于 2014-11-27 13:07:24 | 显示全部楼层
我先验证下,待会回复你
回复

使用道具 举报

lumi 发表于 2014-11-27 16:05:44 | 显示全部楼层
目前可以这么实现就是根据流程状态标签来进行视图的分割!然后创建多个视图!每个视图加入需要的批量提交按钮!
回复

使用道具 举报

lumi 发表于 2014-12-15 17:09:58 | 显示全部楼层
你好,帖子已经回复你,是否解决?
回复

使用道具 举报

lumi 发表于 2015-5-15 10:53:53 | 显示全部楼层
您好,如果要动态的加入,您可以使用脚本来实现, 我们的标签目前只能指定固定的下一个标签.
使用我们的方法(建立角色: 角色a  显示 批量处理a, 角色b,显示批量处理b ....)

脚本例子,您可以参考)
计算脚本前:
(function(){
        var selectId = getParameter("_selects");
        if(selectId!=null){
                var ids=splitString(selectId,";");                       
                var doc = findDocument(ids[0]);
                var statelabel=doc.getStateLabel();
                //println("id值="+ids[0]);
                //println("statelabel!!!!="+statelabel);
                if(statelabel==null||"未提交".equals(statelabel)){
                        return "选项中存在未提交流程,请筛选(流程状态)后,在使用批量提交!"
                }
                var sel=selectId.replace(";","','");
                var sql="select domainid from tlk_表单 where id in('"+sel+"') and statelabel='"+statelabel+"'";
                if(ids.length!=countBySQL(sql)){
                        return "选项中记录流程状态不在同一个位置,请筛选(流程状态)后,在使用批量提交!";
                }
                var users=doc.getAuditorNames();
                var user=getWebUser().getName();
                if(users.indexOf(user)<0){
                        return "选项中的记录没有您审批的记录,请重新过滤!";
                }
                var str="当前流程处在("+statelabel+"),确定批量提交?";
                return createConfirm(str);
        }
})();
计算脚本后:
(function(){
        var selectId = getParameter("_selects");
        if(selectId!=null){
                var ids=splitString(selectId,";");       
                var comment = "系统自动流转";          //备注
                var flowoption = "80";
                var user = getWebUser();         //当前用户对象为审批人
                var process = getDocumentProcess();//获取当前申明文档业务处理类
                var flowid = "自己的流程id";  //流程id
                var params =new Packages.cn.myapps.base.action.ParamsTable();
                for(var i=0;i<ids.length;i++){
                        var doc = findDocument(ids[i]);
                        params.setParameter("_flowid", flowid);
                        if(doc!=null){
                                var currnodeid=new Packages.cn.myapps.core.workflow.engine.StateMachine().getCurrUserNodeRT(doc,user).getNodeid();//获取流程当前流程节点ID
                                //println("currnodeid="+currnodeid);
                                var nextnodeid = new Array();      
                                nextnodeid[0]=doc.getState(currnodeid).getFlowVO().getNextNodeList(currnodeid).iterator().next().id;//下一流程节点ID
                                //println("nextnodeid="+nextnodeid[0]);
                                process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);
                        }
                }
        }
})();


请及时回复下最新状况.
回复

使用道具 举报

karrman 发表于 2015-6-5 13:46:05 | 显示全部楼层
批量提交整理的审批状态,其实不是指定某个节点,如果你审批中、审批完成,会根据你当前的节点情况,如果下个节点是审批完成,则提交到完成,如果是部门主管,则提交到部门主管;
意思是会根据你当前节点的状态,顺利提交到下个节点,无论你下个节点是不是叫审批中
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 02:22

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表