0

在我的 BPMN 模型(Flowable Engine)中有以下定义:

<callActivity id="111-example-111" name="CALLING_SUBPROCESS_MULTIINSTANCE" calledElement="SOME_SUBPROCESS" flowable:calledElementType="key" flowable:fallbackToDefaultTenant="false">
<extensionElement>
    <flowable:in source="INPUT_VAR" target="SUB_INPUT_VAR"></flowable:in>
    <flowable:out source="SUB_OUTPUT_VAR" target="OUTPUT_VAR"></flowable:out>
</extensionElement>
<multiInstanceLoopCharacteristics isSequential="true" flowable:collection="SOME_COLLECTION" flowable:elementVariable="SOME_ELEMENT"></multiInstanceLoopCharacteristics>

调用活动已正确处理,但我无法将输出变量传递SUB_OUTPUT_VAR给父进程。我尝试了其他一些语法,例如:

<flowable:out source="SUB_OUTPUT_VAR" target="OUTPUT_VAR_${loopCounter}"></flowable:out>

因为每个循环都可以产生SUB_OUTPUT_VAR,我想将它们全部传递给父进程。但这没有帮助。

有没有办法使用 Flowable BPMN Engine 来做到这一点?

4

1 回答 1

2

从多实例收集变量是 Flowable(和其他类似引擎有一段时间了)中的一个问题。

您提出的解决方案

<flowable:out source="SUB_OUTPUT_VAR" target="OUTPUT_VAR_${loopCounter}"></flowable:out>

但是,在即将发布的 6.7.0 版本中。对此会有更好的解决方案。您将能够使用变量聚合。

例如

您可以将输出定义为

<flowable:out source="SUB_OUTPUT_VAR" target="OUTPUT_VAR"></flowable:out>

然后在multiInstanceLoopCharacteristics你可以定义类似的东西:

<multiInstanceLoopCharacteristics isSequential="false" flowable:collection="SOME_COLLECTION" flowable:elementVariable="SOME_ELEMENT>
    <extensionElements>
        <flowable:variableAggregation target="outputResult">
            <variable source="OUTPUT_VAR" target="OUTPUT_VAR"></variable>
        </flowable:variableAggregation>
    </extensionElements>
</multiInstanceLoopCharacteristics>

这样做会创建一个具有以下结构的 JSON 数组结果:

{
    "OUTPUT_VAR": "result"
}
于 2021-08-22T08:46:22.623 回答