Spe*_*ise 6 alfresco bpmn activiti
目前我有一个使用 fork/join 机制来创建并行流的子流程。以免假设有两个流:A, B。每个流都将复杂对象CONTEXT作为输入变量。此外,每个流程都会进行一些计算并更新内部的CONTEXT。作为输出,每个流都返回更新的CONTEXT。这里的问题是在加入点,CONTEXT 的最后一个结果覆盖了前一个。让我们假设流程A填充首先以结果CONTEXT_1完成,流程B将返回CONTEXT_2。所以最终结果将是CONTEXT_2并且流A 的所有更改都将丢失。
更新: 根据我的观察,从 SuperProcess 到 SubProcess 的传递变量 (CONTEXT) 被复制 (CONTEXT'),并且在 subProcess 完成后,传递变量 (CONTEXT') 的新值将取代原始 (CONTEXT)。
在下面的示例中,我的意思是所有传递的变量都具有相同的名称。
例子:
SubProcess P2 (Variable: CONTEXT' ) 创建两个并行流(Tasks)A , B(变量通过副本传递);
一个任务(变量:CONTEXT_1)更新变量的值,完成执行并返回变量;
3.1. CONTEXT_1代替了变量CONTEXT',因此P2只能看到这个新值,因为该变量的名称相同;
同时B任务(变量:CONTEXT_2)仍在工作,一段时间后更新变量,完成执行并返回变量;
4.1. CONTEXT_2代替了变量CONTEXT_1,因此P2只能看到这个新值,因为该变量的名称相同;
我的目标场景:
SubProcess P2 (Variable: CONTEXT' ) 创建两个并行流(Tasks)A , B(变量通过副本传递);
一个任务(变量:CONTEXT_1)更新变量的值,完成执行并返回变量;
3.1. CONTEXT_1和CONTEXT合并到CONTEXT_M1 中,换句话说,只有CONTEXT_1 的新更改才会应用于CONTEXT。
同时B任务(变量:CONTEXT_2)仍在工作,一段时间后更新变量,完成执行并返回变量;
4.1. CONTEXT_2和CONTEXT_M1合并到CONTEXT_M2 中,也就是说,只有CONTEXT_2 的新变化才会应用到CONTEXT_M1 上,所以之前的更新不会丢失;
| 归档时间: |
|
| 查看次数: |
906 次 |
| 最近记录: |