В наших рабочих процессах у нас есть несколько действий вызова с несколькими экземплярами, например следующие:
<callActivity id="loopFoos" calledElement="${workflowResolver.resolveWorkflowName(foo)}">
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${foos}" activiti:elementVariable="foo" />
</callActivity>
Проблема в том, что некоторые из коллекций пусты, что приводит к исключениям, поскольку activiti предполагает, что в коллекции есть хотя бы один элемент. Мы могли бы принимать решения по всем вызовам вспомогательного рабочего процесса, но это загрязнило бы диаграмму рабочего процесса деталями, не имеющими отношения к бизнесу.
Нам понадобится поведение java для каждого типа
for (Foo foo : foos) {
// call workflow
}
где пустые коллекции просто не входят в цикл.
Есть ли способ заставить активити вести себя так? Как бы вы смоделировали рабочий процесс, если его нет?