Итак, более полный ответ на этот вопрос после некоторой справки на форуме Camunda .
Согласно этой документации , все переменные процесса доступны втекущая область видимости доступна для сценария по имени, а также некоторые специальные переменные: execution
, task
и connector
.
Что не ясно в документации, так это то, что сценарии в выходные переменные соединителя работают в дочерней (соединительной) области, поэтому, пока доступен объект connector
, execution
нет.К некоторым функциям экземпляра выполнения можно получить доступ следующим образом:
var execution = connector.getParentVariableScope();
var activityId = execution.getCurrentActivityId();
Однако я вижу, что возвращаемый объект на самом деле является AbstractVariableScope
, поэтому я не уверен, насколько далеко это можно использовать.
Аналогично, внутри скрипта Task Listener доступен экземпляр задачи, соответствующий интерфейсу DelegateTask.Здесь к экземпляру execution
можно получить доступ следующим образом:
task.execution.getCurrentActivityId();
Внутри Listener Execution , экземпляр execution
доступен напрямую.
execution.setVariable("testVar", true);