天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

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

[流程-操作] 提交到回退前对应的节点

[复制链接]
李国权 发表于 2019-6-20 17:28:55 | 显示全部楼层 |阅读模式
使用场景:流程节点有A—>B—>c—>D—>E,当表单从A流转至B/C/D/E等任意节点,被回退到A节点,此时再次提交不再通过已审批节点,直接提交到执行回退操作节点。
  1. //提交按钮动作执行前
  2. (function(){      
  3.     var remark = "";
  4.     var typr = getParameter("_flowType");        
  5.     var currentId =""   
  6.     var user=getWebUser();   
  7.     var process = getDocumentProcess();      
  8.     var doc=getCurrentDocument();   
  9.     var st=new Packages.cn.myapps.runtime.workflow.engine.StateMachine();
  10.     //var st=new Packages.cn.myapps.core.workflow.engine.StateMachine();//1.6        
  11.     var nodert = st.getCurrUserNodeRT(doc,user);                        
  12.         if("81".equals(typr)){      
  13.             if(nodert != '' && nodert != null){   
  14.                 currentId = nodert.getNodeid();   
  15.                 doc.findItem("回退节点id").setValue(currentId);//把回退节点的id存到表单上   
  16.                 println("回退进来");         
  17.                 println("currentId---------"+currentId);                                          
  18.                 process.doUpdate(doc);   
  19.                         }                                          
  20.         }      
  21. return remark;      
  22. })()


  23. //提交按钮动作执行后
  24. (function(){
  25.     var remark = "";
  26.     var doc=getCurrentDocument();                 
  27.     //FlowStateRT instance 流程实例                  
  28.     var instance=doc.getState();                    
  29.     var currentId="";                  
  30.                 if(instance!=null){                  
  31.                         //节点集合,当前到达的节点                  
  32.             var noderts=instance.getNoderts();                  
  33.            if(noderts!=null){           
  34.                 var iter  =noderts.iterator();           
  35.                     if(iter != null && iter.hasNext()){           
  36.                         var noder = iter.next();              
  37.                         currentId=noder.getNodeid(); //当前节点id            
  38.                     }                             
  39.                 }                                                           
  40.             }           
  41.         println("id---->"+currentId);   
  42.         var typr = getParameter("_flowType");     
  43.                         if("80".equals(typr)){
  44.                 //println("提交进来");            
  45.                 var nextFlowId=doc.getItemValueAsString("回退节点id");         
  46.                                         if(!"".equals(nextFlowId)){         
  47.                                                 //println("回退后第一提交");
  48.                                                 var flowid="";           
  49.                                                 var flowoption = "86";         
  50.                                                 var comment = "回退后系统自动流转";         
  51.                                                 var user=getWebUser();         
  52.                                                 var doc=getCurrentDocument();         
  53.                                                 var nextNodeId = new Array();
  54.                                                 nextNodeId[0] = nextFlowId;
  55.                                                 var process = getDocumentProcess();                  
  56.                                                 var params = createParamsTable();                                 
  57.                                                 params.setParameter("_flowid", flowid);   
  58.                                                         if(currentId!= "" && currentId!= null){         
  59.                                                                 //println("currentId--->23"+currentId);  
  60.                                                                 process.doFlow(doc,params,currentId,nextNodeId,flowoption,comment,user); //流程干预让流程到回退哪里
  61.                                                                 doc.findItem("回退节点id").setValue(""); //清空回退节点id
  62.                                                                 process.doUpdate(doc);                                                                 
  63.                                                         }                     
  64.                                         }                                 
  65.                         }
  66. return remark;      
  67. })();
复制代码

本版积分规则

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

GMT+8, 2026-8-12 10:35

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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