Activity流程引擎触发子流程时如何自动传递节点变量?

落阳 2018-01-09 04:42:10
各位activity前辈好,我是activity引擎的新用户。
这些天在做并行子流程的功能(通过call activity来实现),碰到个问题,查阅各种资料但没有找到解决方案,想请前辈们稍微指点一些,非常感谢~

主流程:
开始节点 =》 信号捕获器(等待ready信号) =》 call activity节点(多实例、并行、子流程) =》 完成节点。
截图如下:


在该主流程中,设置了并行方式,集合变量名为 detailMapList,元素变量名为 detailMap

然后子流程比较简单:
开始节点 =》 网关 =》 通过对 detailMap.get("xx") 的value判定来选择走不同的审批节点 直到结束。

子流程网关里使用的判定表达式中涉及的变量 detailMap 和 主流程的元素变量名 detailMap 是一致的。


现在的情况是:
1. 发起主流程,流程变量(map,此时只提供发起人信息)
2. 由于主流程的捕获信号节点,所以发起主流程后会挂在 该信号捕获 节点等待ready信号
3. 更新前面发起的主流程实例信息,主要是更新其流程变量(map,此时会传入 detailMapList 集合),并发出ready信号
4. 问题来了,发出ready信号的操作,我通过调用activity-runtimeService.signalEventReceied方法来触发主流程实例的ready信号。主流程的“信号捕获节点”拿到ready信号后,会立即往下个节点(就是call activity子流程节点)执行,并尝试去创建子流程实例。
但是,子流程中会用到表达式“detailMap.get("xxx")”,主流程中已经存在集合变量detailMapList,如何能从该集合变量中得到每个元素并赋值给detailMap变量然后写入子流程实例中呢?

目前步骤4(发ready信号)后报错信息为: 未知的变量 detailMap

只有这么点分了 囧
问题描述有些长,因为怕描述得不准确给各位带来困扰 ,希望有人可以指点一下,万分感谢
...全文
877 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunk0574 2019-09-19
  • 打赏
  • 举报
回复
解决了吗,我也遇到问题了。就是多实例传参给子流程,子流程接收不到参数

50,503

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧