Q:判断当前提交人和下一级审批人是不是同一个人来的,如果是同一个人则我自动中过下一节点,请问该功能怎么实现呢?
A:您好:如下现在表单对应流程的是:开始---登记---审批---归档---完成 这里的登记、审批、归档是人工节点,如果想实现当审批节点的处理人和归档节点处理人是同一个人时,您可以开启归档节点的审批时限功能,然后采用脚本模式,脚本代码的逻辑为如果是同一个人时返回一个比现在小的日期,如果不是同一个人时返回一个比现在大很多的日期,归档节点审批时限脚本类似如下:
- var value1=getLastApprover();//上一步提交者(审批节点的提交者)
- var value2="2100-01-01 00:00:00";
- var doc = $CURRDOC.getCurrDoc();
- var stateMachineUtil = new Packages.cn.myapps.core.workflow.engine.StateMachineUtil();
- var params = getParamsTable();
- var fd = doc.getState().getFlowVO().toFlowDiagram();
- var node = fd.getElementByID('1382621712804');//传入要获取审批人的节点的id(归档节点的id)
- var domainid=getDomainid();
- var applicationid=getApplication();
- var webUser=getWebUser();
- //获取归档节点审批人的集合
- var users = stateMachineUtil.getPrincipalList(doc,params,node,domainid,applicationid,webUser);//返回的是用户对象的集合
- println(users+" =======users====");
- for(var iter = users.iterator(); iter.hasNext(); ) {
- var uservo = iter.next();
- if(value1.getName().equals(uservo.getName())){ //判断如果上一步提交者也可以审批当前节点,那审批时间就返回一个比当前时间小的日期
- value2="2013-01-01 00:00:00";
- break;
- }
- }
- value2;
复制代码 |