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

[已解决] 批量提交脚本报错

[复制链接]
成都顶呱呱 发表于 2014-12-30 13:44:42 | 显示全部楼层 |阅读模式
本帖最后由 happy 于 2015-2-12 18:13 编辑
  1. //该代码只能批量处理到某一固定流程节点,因此想实现动态提交的话,需要自行修改其中的逻辑

  2. var flowid="11e4-598b-dbaef5f9-9d1c-f5fea286cd5f";   //流程Id
  3. var comment = "系统自动流转";          //备注
  4. var flowoption = "80";           //流程操作参数   
  5. var user=getWebUser();         //当前用户对象为审批人     
  6. var recordid = splitText(getParameter("_selects"),";");        //得到选中记录组的id
  7. println("选中的文档id--->"+recordid);
  8. var nextnodeid = new Array();      
  9. nextnodeid[0]="1414034823966";         //下一流程节点ID
  10. var process = getDocumentProcess();//申明文档业务处理类

  11. for(var i=0;i<recordid.length;i++)
  12. {
  13. var doc = findDocument(recordid[i]);             //获得选中记录的文档对象
  14. var state = doc.getStateLabel();
  15. if(state != "经理审核" )
  16. {
  17.     //当前记录只有在”经理审批“这个流程节点时才进行自动提交
  18.     break;
  19. }
  20. var params = createParamsTable();                        
  21. params.setParameter("_flowid", flowid);      
  22.          
  23. var st=new Packages.cn.myapps.core.workflow.engine.StateMachine();
  24. //getCurrUserNodeRT的第二个参数必须是第一个参数的审批人
  25. var nodert = st.getCurrUserNodeRT(doc,user);
  26. var currnodeid = nodert.getNodeid();//获取流程当前流程节点ID
  27. println("测试");
  28. process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);        //流程处理  
  29. }
复制代码
 楼主| 成都顶呱呱 发表于 2014-12-30 13:54:14 | 显示全部楼层
JsUtil:选中的文档id--->[Ljava.lang.String;@938e1b
JsUtil:测试
org.mozilla.javascript.WrappedException: Wrapped cn.myapps.base.OBPMValidateException: (11e4-8fd6-4544af85-aa87-0dff743561c5).批量提交.beforeActionScript#30)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(Unknown Source)
at org.mozilla.javascript.NativeJavaMethod.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.callN(Unknown Source)
at org.mozilla.javascript.gen.c5730._c0(FormName:null Activity(11e4-8fd6-4544af85-aa87-0dff743561c5).批量提交.beforeActionScript:30)
at org.mozilla.javascript.gen.c5730.call(FormName:null Activity(11e4-8fd6-4544af85-aa87-0dff743561c5).批量提交.beforeActionScript)
at org.mozilla.javascript.ContextFactory.doTopCall(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.doTopCall(Unknown Source)
at org.mozilla.javascript.gen.c5730.call(FormName:null Activity(11e4-8fd6-4544af85-aa87-0dff743561c5).批量提交.beforeActionScript)
at org.mozilla.javascript.gen.c5730.exec(FormName:null Activity(11e4-8fd6-4544af85-aa87-0dff743561c5).批量提交.beforeActionScript)
at cn.myapps.core.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:135)
at cn.myapps.core.dynaform.activity.ejb.Activity.runBeforeActionScript(Activity.java:1300)
at cn.myapps.core.dynaform.activity.action.ActivityUtil.excuteBeforeActionScription4Ajax(ActivityUtil.java:497)
at cn.myapps.core.dynaform.activity.action.ActivityRunTimeAction.doRunbeforeactionscript(ActivityRunTimeAction.java:338)
at sun.reflect.GeneratedMethodAccessor1280.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
回复

使用道具 举报

happy 发表于 2014-12-30 16:49:17 | 显示全部楼层
稍等,我本地调试
回复

使用道具 举报

shan 发表于 2015-2-2 22:58:52 | 显示全部楼层
回复 1# 成都顶呱呱

楼主可参照此代码检查及实现批量提交功能:
  1. //查询条件增加审批人选择,可指定下一节点的审批人,存入session中
  2. var flowid="11e4-1c77-e0ee7fb9-8b42-35a706362fc8";   //流程Id
  3. var comment = "系统自动流转";          //备注
  4. var flowoption = "80";           //流程操作参数   
  5. var user=getWebUser();         //当前用户对象为审批人     
  6. var recordid = splitText(getParameter("_selects"),";");        //得到选中记录组的id
  7. var nextnodeid = new Array();      
  8. nextnodeid[0]="1407226075789";         //下一流程节点ID
  9. var process = getDocumentProcess();//申明文档业务处理类
  10. var request = $WEB.getParamsTable().getHttpRequest();
  11. var lastProcessId = request.getSession().getAttribute("flowUserId");  ////session 获取指定的下一节点审批人id
  12. if(lastProcessId!=null && lastProcessId.trim().length()>0){
  13.         var params = new Packages.cn.myapps.base.action.ParamsTable();   //参数对象                 
  14.         params.setParameter("_flowid", flowid);        
  15.         var submitTo = "[{"nodeid":'"+nextnodeid[0]+"',"isToPerson":'true',"userids":"['"+lastProcessId+"']"}]";
  16.         params.setParameter("submitTo",submitTo);   
  17.         var st=new Packages.cn.myapps.core.workflow.engine.StateMachine();
  18.         for(var i=0;i<recordid.length;i++){
  19.                 var doc = findDocument(recordid[i]);             //获得选中记录的文档对象
  20.                 var state = doc.getStateLabel();
  21.                 if(state != "科研处审核" ){
  22.                         //当前记录只有在”经理审批“这个流程节点时才进行自动提交
  23.                         break;
  24.                 }
  25.                 var nodert = st.getCurrUserNodeRT(doc,user);
  26.                 var currnodeid = nodert.getNodeid();//获取流程当前流程节点ID
  27.                 process.doFlow(doc,params,currnodeid,nextnodeid,flowoption,comment,user);        //流程处理
  28.         }               
  29. }
复制代码
回复

使用道具 举报

 楼主| 成都顶呱呱 发表于 2015-2-3 11:26:38 | 显示全部楼层
据说你们的新版本已经处理了 这个问题。
回复

使用道具 举报

happy 发表于 2015-2-6 15:07:49 | 显示全部楼层
批量提交按钮不起作用的bug已修正
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-14 06:50

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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