问题:
当并行网关中的节点处理了一部分数据后,直接进行节点跳转,再次回到并行网关中时,会生成下一节点数据和当前节点数据
查找原因:
并行网关处理类:ParallelGatewayActivityBehavior
处理大概流程:
1、生成并行节点时会在ACT_RU_EXECUTION表中生成对应的记录,并且**IS_ACTIVE_**字段为1(1表示可见,0表示不可见即已处理)
2、当任务处理后,会将该字段的值改为0,但是不删除
3、ParallelGatewayActivityBehavior中会查询IS_ACTIVE_为0的字段数量,并且查询 Join Gateway 的IncomingFlows数量,并做比较,如果数量相同,则删除相关数据,跳转至下一节点,
如果数量不同则结束当前处理,并保留表中数据。
解决方案,当从并行网关中的节点直接跳转走时,删除ACT_RU_EXECUTION表中当前流程实例IS_ACTIVE_字段值为0的数据即可