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

QQ登录

只需一步,快速开始

查看: 3125|回复: 9

[处理中3] 如何根据执行者确定下一环节

[复制链接]

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
发表于 2019-8-23 15:23:14 | 显示全部楼层 |阅读模式
流程是这样:提交--经理审批--总经理批准--结束
用户提交时,选择下一环节的执行者,当其选择的执行者为总经理时,流程跳过经理审批,直接到总经理审批
现在都是在用户点击提交时,就会调用conditionBranch做判断,此时用户还没有选择执行者,所以没法判断
怎么做到在用户在选择完毕下级执行者之后,在去调用conditionBranch判断?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-8-23 16:41:42 | 显示全部楼层
自己的代码控制流转到指定环节
http://docs.wex5.com/bex5-process-question-list-10048/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2019-8-23 17:21:20 | 显示全部楼层
ProcessControl control = (ProcessControl) ContextHelper.getActionContext().getActionResult();
这个代码报错怎么解决:java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.system.action.Engine.invokeAction(Native Method)
        at com.justep.system.action.Engine.invokeAction(Unknown Source)
        at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
        at com.justep.model.impl.UtilImplementInstance.invokeAction(Unknown Source)
        at com.justep.system.action.ActionUtils.invokeAction(Unknown Source)
        at com.justep.system.process.ProcessUtils.advanceProcess(Unknown Source)
        at ExternalProcessProcedure.advanceProcess(ExternalProcessProcedure.java:30)
        ... 27 more
Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.justep.system.process.ProcessControl
        at service.MaterielProcessService.businessActivity1AfterAdvanceService(MaterielProcessService.java:41)
        at MaterielProcess.businessActivity1AfterAdvance(MaterielProcess.java:7)
        ... 38 more
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-8-23 17:36:00 | 显示全部楼层
java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.justep.system.process.ProcessControl
        at service.MaterielProcessService.businessActivity1AfterAdvanceService(MaterielProcessService.java:41)
        at MaterielProcess.businessActivity1AfterAdvance(MaterielProcess.java:7)

类型转换不正确

确认是在onAfterAdvanceQuery事件中操作的吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2019-8-23 17:43:43 | 显示全部楼层
BEX5版本是V3.6,调用该方法报错,应该怎么解决?
回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2019-8-23 18:05:23 | 显示全部楼层

在主页面上点击流转按钮,就会调用onAfterAdvanceQuery事件
然后选择下级审批人,我是要在选择完毕下级审批人后才能确定是否可以跳过下级
onAfterAdvanceQuery事件,在选择下级审批人之前就调用了,不能满足要求

回复 支持 反对

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2019-8-26 08:41:04 | 显示全部楼层
onAfterAdvanceQuery是流转查询后就是在弹出流转对话框把相关的人员环节等都列出来后执行的
   在这里调用流程自动流转一次不符合要求,因为人员还没确定,我是要根据选择的人员来确定是否自动流转
onAfterAdvance是流转后是点了流转对话框的确定按钮流转后执行的
   在这里已经确定人员了,又不能调用那个方法,
怎么解决?
   
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-8-26 10:55:15 | 显示全部楼层
那就在页面上让用户先选择要流转的人去实现,流转对话框中选择然后已经晚了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

263

主题

733

帖子

1978

积分

金牌会员

Rank: 6Rank: 6

积分
1978
QQ
 楼主| 发表于 2019-8-26 15:46:19 | 显示全部楼层
一开始打算这样去做,不过是觉得要在页面上去搞定怎么获取指定角色下人员比较麻烦,所以考虑下怎么通过流程去做。
再说页面上直接获取角色下人员,担心遇到角色编码变化、人员变化,这些情况的话,会不够动态,所以想着流程去获取应该搞得定的
结果这么麻烦,搞了几天都没得结果。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2019-8-26 16:41:02 | 显示全部楼层
你可以用平台默认的取执行者的函数去获取数据啊,
角色编码变化、人员变化这些你是用平台默认的取执行者的函数去获取数据没问题,自己调用同样不会有问题
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 17:31 , Processed in 0.055460 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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