起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4898|回复: 7

[处理中3] 自动发起流程

[复制链接]

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
发表于 2018-10-29 11:49:39 | 显示全部楼层 |阅读模式
我在第一个流程结束之后,根据条件判断自动发起第二个流程,这段代码是第一个流程的最后一个环节的processAfterAdvance事件的java代码。现在的问题是,点提交之后,这个件出现在已完成里面,但是代办里面没有出现新的件,请教一下错误在哪边....
  1. public static String startDKPress(String pressName, String process, String sdata1) {
  2.                 // 开始发起dikuai流程:=================================
  3.                 // String sData1 = ProcessUtils.getProcessData1();
  4.                 // String process1 =
  5.                 // ContextHelper.getActionContext().getProcess().getFullName2();
  6.                 // logger.info(process1);

  7.                 logger.info("开始自動发起地块审核流程:=============asdfasdfsd====================" + pressName);
  8.                 logger.info("开始自動发起地块审核流程:=============asdfasdfsd====================" + sdata1);
  9.                 String scFID = ContextHelper.getPersonMember().getFID(); // 流程发起人
  10.                                                                                                                                         // 为当前测量入库处理人
  11.                 process = "/app/business/ba/dksh/process/qsdlsh/qsdlshProcess";
  12.                 String kSql = "select a.* from  CL_XMQKB a  where a='" + sdata1 + "'";
  13.                 logger.info("------------------------------" + kSql);
  14.                 Table table = KSQL.select(kSql, null, "/app/business/ba/dksh/data", null);
  15.                 Iterator<Row> iter = table.iterator();

  16.                 String SSXZDM = "";
  17.                 String SZXZ = "";
  18.                 String XZQDM = "";
  19.                 String XZQMC = "";
  20.                 String ZDBH = "";
  21.                 String XMMC = "";
  22.                 String TDZL = "";
  23.                 while (iter.hasNext()) {
  24.                         Row row = iter.next();
  25.                         SSXZDM = row.getString("SSXZDM");
  26.                         SZXZ = row.getString("SSXZ");
  27.                         XZQDM = row.getString("XZQDM");
  28.                         XZQMC = row.getString("XZQMC");
  29.                         ZDBH = row.getString("ZDH");
  30.                         XMMC = row.getString("XMMC");
  31.                         TDZL = row.getString("XMSZD");
  32.                         logger.info("存 =SSXZDM=============" + SSXZDM);
  33.                 }

  34.                 // 根据所属乡镇代码,查询该乡镇的经办人的SFID
  35.                 String[] split = SSXZDM.split(",");
  36.                 List<String> sFidList = new ArrayList<String>();
  37.                 if (split.length > 0) {
  38.                         for (int i = 0; i < split.length; i++) {
  39.                                 String sql1 = "select a.SID as SID, a.SFCODE as SFCODE, a.SFID as SFID from SA_OPORG a where a.SNAME like '经办人%' and SORGKINDID = 'pos'  and a.SFCODE like '/320282/" + split[i] + "%'";

  40.                                 Table table1 = SQL.select(sql1, null, "/system/data", null);
  41.                                 String sfid = null;
  42.                                 String sfcode = null;
  43.                                 String sid = null;
  44.                                 if (table1.size() > 0) {
  45.                                         Iterator<Row> iterator = table1.iterator();
  46.                                         Row next = iterator.next();
  47.                                         sid = next.getString("SID");
  48.                                         sfcode = next.getString("SFCODE");
  49.                                         sfid = next.getString("SFID");
  50.                                 }
  51.                                 String sql2 = "select b.SFID as SFID, b.SNAME as SNAME from SA_OPORG b where b.SFID like '" + sfid + "%' and    SORGKINDID = 'psm'   ";
  52.                                 Table table2 = SQL.select(sql2, null, "/system/data", null);
  53.                                 if (table2.size() > 0) {
  54.                                         Iterator<Row> iterator2 = table2.iterator();
  55.                                         while (iterator2.hasNext()) {
  56.                                                 Row next = iterator2.next();
  57.                                                 sFidList.add(next.getString("SFID"));
  58.                                                 logger.info("经办人 ---->>>" + next.getString("SNAME"));

  59.                                         }
  60.                                 }
  61.                         }
  62.                 }

  63.                 if (sFidList.size() <= 0) {
  64.                         // /ORG01.ogn/PSN01@ORG01.psm
  65.                         sFidList.add("/ORG01.ogn/PSN01@ORG01.psm");
  66.                         logger.info("经办人 ---->>>system");
  67.                 }

  68.                 // 创建地块审核流程数据 DK_XMQKB
  69.                 String uuid = UUID.randomUUID().toString().replaceAll("-", "");// 32位地块审核流程的fid
  70.                 String kSq2 = "INSERT INTO DK_XMQKB  a (a,a.SSXZDM,a.SZXZ,a.XZQDM,a.XZQMC,a.ZDBH,a.XMMC,a.TDZL,a.CLXMQKID,a.fSFHF,a.taskState,a.taskStateCode,"
  71.                                 + "a.fCreatorOgnCode,a.fCreatorOgnName,a.fCreatorDeptCode,a.fCreatorDeptID,a.fCreatorDeptName,a.fCreatorPsnCode,a.fCreatorPsnID,a.fCreatorPsnName,a.fCreartPsnFID,a.fCreatTime,a.SJSJ,a.version,a.PZMJ,a.YWH )"
  72.                                 + " VALUES"
  73.                                 + "(:fID,:SSXZDM,:SZXZ,:XZQDM,:XZQMC,:ZDBH,:XMMC,:TDZL,:CLXMQKID,'是','编制中','Editing',:fCreatorOgnCode,:fCreatorOgnName,:fCreatorDeptCode,:fCreatorDeptID,:fCreatorDeptName,:fCreatorPsnCode,:fCreatorPsnID,:fCreatorPsnName,:fCreartPsnFID,  stringToDateTime(:times), stringToDateTime(:times) , 0,0 ,:YWH) ";
  74.                 Map<String, Object> params = new HashMap<String, Object>();
  75.                 params.put("fID", uuid);
  76.                 params.put("SSXZDM", SSXZDM);
  77.                 params.put("SZXZ", SZXZ);
  78.                 params.put("XZQDM", XZQDM);
  79.                 params.put("XZQMC", XZQMC);
  80.                 params.put("ZDBH", ZDBH);
  81.                 params.put("XMMC", XMMC);
  82.                 params.put("TDZL", TDZL);
  83.                 params.put("CLXMQKID", sdata1);
  84.                 String fCreatorOgnCode = "";
  85.                 String fCreatorOgnName = "";
  86.                 String fCreatorDeptCode = "";
  87.                 String fCreatorDeptID = "";
  88.                 String fCreatorDeptName = "";
  89.                 if (ContextHelper.getPersonMember().getDept() != null) {
  90.                         fCreatorDeptCode = ContextHelper.getPersonMember().getDept().getCode();
  91.                         fCreatorDeptID = ContextHelper.getPersonMember().getDept().getID();
  92.                         /*
  93.                          * fCreatorDeptName = ContextHelper.getPersonMember().getDept()
  94.                          * .getName();
  95.                          */
  96.                         fCreatorDeptName = ContextHelper.getPersonMember().getOgn().getName();
  97.                 }
  98.                 if (ContextHelper.getPersonMember().getOgn() != null) {
  99.                         fCreatorOgnCode = ContextHelper.getPersonMember().getOgn().getCode();
  100.                         fCreatorOgnName = ContextHelper.getPersonMember().getOgn().getName();
  101.                 }
  102.                 // fCreatorDeptName
  103.                 params.put("fCreatorOgnCode", fCreatorOgnCode);
  104.                 params.put("fCreatorOgnName", fCreatorOgnName);
  105.                 params.put("fCreatorDeptCode", fCreatorDeptCode);
  106.                 params.put("fCreatorDeptID", fCreatorDeptID);
  107.                 params.put("fCreatorDeptName", fCreatorDeptName);
  108.                 params.put("fCreatorPsnCode", ContextHelper.getPersonMember().getCode());
  109.                 params.put("fCreatorPsnID", ContextHelper.getPersonMember().getID());
  110.                 params.put("fCreatorPsnName", ContextHelper.getPersonMember().getName());
  111.                 params.put("fCreartPsnFID", ContextHelper.getPersonMember().getFID());

  112.                 Date day = new Date();
  113.                 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  114.                 params.put("times", df.format(day));
  115.                
  116.                 String YWH = "";
  117.                 //获取YWH
  118.                 HttpInvoker httpInvoker = new HttpInvoker("utf-8", 3000, true, null, 0, null, null);
  119.                 Map<String, String> param = new HashMap<String, String>();
  120.                 param.put("BHGZMC", "YWH");
  121.                 String id = ContextHelper.getOperator().getID();
  122.                 String name = ContextHelper.getOperator().getName();
  123.                 param.put("CJR", id);
  124.                 param.put("CJRMC", WebUtils.encode(name));
  125.                 String url = UrlConfig.SERVICE_BIZZ + "/xt/getYwh";
  126.                 try {
  127.                         YWH = httpInvoker.invoke(url, param, false);
  128.                 } catch (Exception e) {
  129.                         System.out.println(e.getMessage());
  130.                 }
  131.                 System.out.println("YWH"+YWH);
  132.                 params.put("YWH", YWH);
  133.                
  134.                 KSQL.executeUpdate(kSq2, params, "/app/business/ba/dksh/data", null);
  135.                 logger.info("   发起dik地流程--kSq2功--------------" + kSq2);
  136.                 // 发起供地流程-task
  137.                 List<Map<String, String>> list = ProcessUtils.startProcess(process, pressName, uuid, scFID);
  138.                 logger.info(" 。。。。。。。。。。。" + list.toString());
  139.                 for (Map<String, String> m : list) {
  140.                         String task = m.get("task");
  141.                         logger.info("獲取的。。。。。。000000000000000000000000。。。。。。。。" + task);
  142.                         // for (String sFid : sFidList) {
  143.                         // logger.info("sFid====================" + sFid);
  144.                         ProcessControl cur = ProcessUtils.advanceProcessQuery(task);
  145.                         ProcessControlItem flowTo = (ProcessControlItem) cur.getFlowTos().get(0);

  146.                         // 3、获取环节ID做判断
  147.                         String activity = flowTo.getUnit();
  148.                         // if (activity.equals("djscActivity")) {
  149.                         // 4、留下要流转的环节,并自定义执行者
  150.                         flowTo.clearExecutors();
  151.                         flowTo.addExecutors(OrgUtils.findOrgUnitsByFID(sFidList));
  152.                         // }
  153.                         ProcessUtils.advanceProcess(task, cur);
  154.                         // }
  155.                 }
  156.                 return uuid;
  157.         }
复制代码


91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-10-29 11:55:53 | 显示全部楼层
java调试确认ProcessUtils.startProcess是否执行了,process和activity是否正确,创建者是否正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-10-29 14:08:31 | 显示全部楼层
jishuang 发表于 2018-10-29 11:55
java调试确认ProcessUtils.startProcess是否执行了,process和activity是否正确,创建者是否正确 ...

我在process文件的根节点的onAfterFinish事件中有代码,页面最后一个节点的process组件中onAfterAdvance事件也有代码,上面的代码都是在onAfterAdvance里面,现在只走了onAfterFinish事件,而没有走onAfterAdvance事件。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-10-29 14:24:53 | 显示全部楼层
只要环节做了流转,并且流程成功了就肯定会走onAfterAdvance
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-10-30 09:27:49 | 显示全部楼层
jishuang 发表于 2018-10-29 14:24
只要环节做了流转,并且流程成功了就肯定会走onAfterAdvance

List<Map<String, String>> list = ProcessUtils.startProcess(process, pressName, uuid, scFID);
/app/business/ba/gdys/process/gdys/gdysProcess
供地预审
c526a19ff9fb43f3b66f0bc162e76101
/86J9Iz1nKF7s0LpGcjo.ogn/7jAR0TAAzPncwSqun5Y@86J9Iz1nKF7s0LpGcjo.psm
参数都是有值的,但是启动失败了。
  1. 2018-10-30 09:24:50 excute stream action, params:{"accept":"application/json","action":"startDKPressAction","actionFlag":"__action_0__","activity":"rkActivity","contentType":"json","executeContext":"","executor":"/86J9Iz1nKF7s0LpGcjo.ogn/7jAR0TAAzPncwSqun5Y@86J9Iz1nKF7s0LpGcjo.psm","parameters":{"pressName":"供地预审","process":"","sdata1":"7828DE8833F24E509A0D57281B3D1D6D"},"process":"/app/business/ba/clrk/process/clrk/clrkProcess"}
  2. java.lang.reflect.InvocationTargetException
  3.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  4.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  5.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  6.         at java.lang.reflect.Method.invoke(Method.java:497)
  7.         at com.justep.system.action.Engine.invokeActions(Native Method)
  8.         at com.justep.system.action.Engine.invokeActions(Unknown Source)
  9.         at com.justep.business.server.BusinessServer.doAction(Unknown Source)
  10.         at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
  11.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  12.         at com.justep.business.server.BusinessServer.excute(Unknown Source)
  13.         at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
  14.         at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
  15.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  16.         at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
  17.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  18.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  19.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  20.         at com.justep.micro.service.MicroServiceFilter.doFilter(Unknown Source)
  21.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  22.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  23.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  24.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  25.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  26.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  27.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  28.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  29.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  30.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  31.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  32.         at java.lang.Thread.run(Thread.java:745)
  33. Caused by: java.lang.reflect.InvocationTargetException
  34.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  35.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  36.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  37.         at java.lang.reflect.Method.invoke(Method.java:497)
  38.         at com.justep.system.action.Engine.invokeAction(Native Method)
  39.         at com.justep.system.action.Engine.invokeAction(Unknown Source)
  40.         at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
  41.         at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
  42.         at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
  43.         at com.justep.system.process.ProcessUtils.startProcess(Unknown Source)
  44.         at com.justep.system.process.ProcessUtils.startProcess(Unknown Source)
  45.         at com.justep.system.process.ProcessUtils.startProcess(Unknown Source)
  46.         at StartGDPress.startDKPress(StartGDPress.java:394)
  47.         ... 30 more
  48. Caused by: java.util.NoSuchElementException
  49.         at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:713)
  50.         at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:734)
  51.         at com.justep.system.data.impl.TableImpl$TableIterator.next(Unknown Source)
  52.         at com.justep.system.data.impl.TableImpl$TableIterator.next(Unknown Source)
  53.         at utility.ProcessEvent.processBeforeStart(ProcessEvent.java:21)
  54.         at GdysProcess.gdysProcessBeforeStart(GdysProcess.java:14)
  55.         ... 43 more
复制代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-10-30 09:31:59 | 显示全部楼层
java代码自己调试跟踪一下
java.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

99

主题

329

帖子

568

积分

高级会员

Rank: 4

积分
568
QQ
 楼主| 发表于 2018-10-30 10:13:01 | 显示全部楼层
本帖最后由 zyygod 于 2018-10-30 10:27 编辑
jishuang 发表于 2018-10-30 09:31
java代码自己调试跟踪一下

现在是可以发起流程了,但是现在有两个问题。1、新生成的件和走完的件都在已完成件里面。
2、我第二个流程的第一个节点在启动前和流转后都是有事件的,这些代码在哪写...

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-10-30 10:32:39 | 显示全部楼层
1.默认的启动后肯定是在待办中,看自己调用的正确,是不是自己修改了任务状态
2.启动就在后端process的启动事件中操作,流转的可以自己在process组件或者后端process事件中操作
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-8-28 16:55 , Processed in 0.071242 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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