DMN / Camunda Modeller: как определить параллельный многоэкземплярный результат

Я хочу включить в свой процесс таблицу решений.

Поскольку входные данные представляют собой список элементов, я хочу вызвать его для каждого элемента параллельно.

Когда я смотрю на вывод, он включает только одну запись. Кажется, что каждое выполнение отменяет предыдущее. Пример: [{pricePerProcessInstance=150.0, pricePerTask=0.0}]

Подозреваю, что что-то не так в определении.

Вот его определение:

определение dmn


person pme    schedule 15.10.2019    source источник


Ответы (1)


Я считаю, что прослушиватель выполнения (1) должен решить вашу проблему.

Вы можете настроить прослушиватель завершения выполнения, как показано здесь

Взгляните на пример реализации класса, определенного в разделе прослушивателя выше.

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);

  }

}

При каждом выполнении таблицы решений результирующая переменная processPrices будет добавляться к ArrayList resultList.

(1) https://docs.camunda.org/manual/latest/user-guide/process-engine/delegation-code/#execution-listener

person michal.dytko    schedule 18.10.2019