对于一个我开始质疑甚至可能的过程,我看起来似乎是一个相当简单的要求。
下图显示了我当前的流程。我想要实现两件事:
答案 0 :(得分:1)
事实证明,此问题的解决方案需要使用insert1/2/3
进行一些脚本编写。
下面是更新的流程模型图,其中我使用脚本任务启动groovy
进程的新实例然后如果用户希望添加更多任务,则独占网关可以将用户返回到Create任务(用户任务) OR 完成该过程。
在将范围传回用户任务之前,我清除脚本任务中用户任务中保留的字段中的任何值。
下图显示了我的完成任务进程,主进程使用脚本调用该进程
这里我避免使用Complete Task
而不是创建创建任务(用户任务)的新实例以及完成任务进程的新实例(不是子流程)通过脚本的方式。
要启动Complete Task流程的新实例,我们必须使用parallel gateways
实例下的函数startProcessInstanceByKeyAndTenantId()
启动流程,尽管我也可以使用runtimeService
:
startProcessInstanceByIdAndTenantId()
使用这种方法,我避免从父进程创建多个子进程,而是创建多个与父进程分开运行的进程。这对我有益,好像父进程完成其他进程继续运行。
答案 1 :(得分:0)
似乎您只更新了每个任务的一个变量(或一组变量)。这将覆盖以前的值。使用不同的变量,或在每个变量之前附加一些内容,以标记它对于已完成的任务/子流程是唯一的。见collapsed sub-process
是的,每个子流程都有自己唯一的执行ID,但主执行ID或流程实例ID保持不变