Какой базовый класс общего контекста используется делегатами кода Java? - PullRequest
0 голосов
/ 08 января 2019

Каков общий базовый класс, используемый делегатами кода Java, чтобы общий код можно было использовать для получения / установки переменных процесса и т. Д.?

Для задачи-службы класс контекста механизма процесса равен DelegateExecution, и обычно для получения переменной процесса этот контекст, передаваемый в качестве параметра, используется для доступа к переменным процесса.

...
public class CreatePurchaseOrderRequistionDelegate implements JavaDelegate
{
   public void execute( DelegateExecution execution ) throws Exception
   {
      LOGGER.info( getClass().getSimpleName() + ": starting" );

      String purchaseOrderRef = (String) execution.getVariable( "purchaseOrderReference" );
...

Для прослушивателя событий пользовательской задачи контекстный класс равен DelegateTask.

Я хочу использовать тот же код для получения / установки переменных процесса, поэтому мне нужен базовый класс, который имеет доступ к setVariable () и т. Д.

Я посмотрел Руководство по Камунде, Javadocs и т. Д., Но оба класса наследуют от ряда других классов, и трудно отследить дерево наследования.

1 Ответ

0 голосов
/ 08 января 2019

Должно быть: org.camunda.bpm.engine.delegate.VariableScope

Так что-то вроде:

   public static String getVariableS( VariableScope execution, String variableName, String defaultValue ) throws Exception
   {
      Object obj = execution.getVariable( variableName );      
      if( obj == null )
      {
         return defaultValue;
      }
      return (String) obj;
   }

Надеюсь, это поможет!

...