DMN / Camunda Modeller:如何定义并行多实例结果
DMN / Camunda Modeller: how to define a Parallel Multi Instance Result
我想在我的流程中包含一个决定 table。
由于输入是一个元素列表,我想为每个元素并行调用它。
当我查看输出时,它只包含一个条目。因此,似乎每次执行都会覆盖前一次执行。
示例:[{pricePerProcessInstance=150.0, pricePerTask=0.0}]
我怀疑我定义有误。
这是它的定义:
我相信 Execution Listener (1) 应该可以解决您的问题。
您可以如图所示配置结束执行侦听器here
请查看上面侦听器部分中定义的 class 的示例实现。
public class MyService implements JavaDelegate {
@Override
public void execute(DelegateExecution delegateExecution) {
List<String> resultList = (List<String>) delegateExecution.getVariable("resultList");
if (resultList == null) {
resultList = new ArrayList<>();
}
resultList.add((String) delegateExecution.getVariable("processPrices"));
delegateExecution.setVariable("resultList", resultList);
}
}
在每次执行决策 table 时,结果变量 processPrices
将被添加到 ArrayList
resultList
.
(1) https://docs.camunda.org/manual/latest/user-guide/process-engine/delegation-code/#execution-listener
我想在我的流程中包含一个决定 table。
由于输入是一个元素列表,我想为每个元素并行调用它。
当我查看输出时,它只包含一个条目。因此,似乎每次执行都会覆盖前一次执行。
示例:[{pricePerProcessInstance=150.0, pricePerTask=0.0}]
我怀疑我定义有误。
这是它的定义:
我相信 Execution Listener (1) 应该可以解决您的问题。
您可以如图所示配置结束执行侦听器here
请查看上面侦听器部分中定义的 class 的示例实现。
public class MyService implements JavaDelegate {
@Override
public void execute(DelegateExecution delegateExecution) {
List<String> resultList = (List<String>) delegateExecution.getVariable("resultList");
if (resultList == null) {
resultList = new ArrayList<>();
}
resultList.add((String) delegateExecution.getVariable("processPrices"));
delegateExecution.setVariable("resultList", resultList);
}
}
在每次执行决策 table 时,结果变量 processPrices
将被添加到 ArrayList
resultList
.
(1) https://docs.camunda.org/manual/latest/user-guide/process-engine/delegation-code/#execution-listener