Идентифицировать дочернее выполнение в Camunda

#java #activiti #bpmn #camunda #camunda-modeler

#java #activiti #bpmn #camunda #camunda-modeler

Вопрос:

Взгляните на этот процесс —

введите описание изображения здесь

Когда выполнение поступает на шлюз, который находится там сразу после общего процесса, как я могу определить, выполняется ли выполнение для A или B ?

Изначально оба A и B запускаются параллельно и после завершения будут следовать общему процессу. Могут ли эти два параллельных выполнения иметь разный набор переменных (как внутри, так и вне общего процесса)?

Ответ №1:

Область видимости переменных объясняется в документации здесь:https://docs.camunda.org/manual/latest/user-guide/process-engine/variables /

Вы можете установить переменные в определенную область, например, в отображении данных out или в прослушивателе выполнения, используя сценарий, подобный: execution.setVariable("aVariable", "aValue","aSubProcess");

A и B имеют свою собственную область задач и могут обращаться к области процесса (по умолчанию). У вас может быть разный набор переменных (только) в разных областях. Те, которые вы могли бы создать с помощью подпроцесса или в структуре данных, которую вы переносите в родительскую область (отличающуюся ключом).

Тот факт, что вы не синхронизируете две ветви позже, снова указывает на то, что они могут находиться только в одном определении процесса из-за общего встроенного подпроцесса. Если вы намерены повторно использовать, но с разными областями данных, тогда я бы вместо этого работал с действиями вызова. Они предлагают глобально повторно используемые подпроцессы и имеют свою собственную область данных. Затем вы могли бы также разделить эти параллельные альтернативы на два независимых определения, которые используют только одно и то же действие вызова.

Временные переменные — это вариант, если вы хотите, чтобы данные не были постоянными и действовали только на время выполнения (Camunda).

Пример кажется немного искусственным. Предложения по наилучшему подходу обычно проще при обсуждении конкретных бизнес-процессов.