您好,如果要动态的加入,您可以使用脚本来实现, 我们的标签目前只能指定固定的下一个标签.
使用我们的方法(建立角色: 角色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);
}
}
}
})();
请及时回复下最新状况. |