Java代码委托使用的通用上下文基类是什么?

时间:2019-01-08 09:51:23

标签: camunda

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()等的基类。

我看过《 Camunda手册》,Javadocs等,但是这两个类都是从许多其他类继承的,因此很难跟踪继承树。

1 个答案:

答案 0 :(得分:2)

应为: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;
   }

希望这会有所帮助!