2016-06-16 2 views
0

org.activiti.engine.impl.bpmn.listener.ScriptTaskListenerautoStoreVariables 필드를 설정하려고합니다.activiti에서 부울 필드를 설정하는 방법

taskListener을 포함하는 userTask입니다. 다음과 같은 오류를 얻기

<userTask id="WorkJob.task" name="WorkJob.task" activiti:assignee="${assignee}" activiti:dueDate="${dueDate}"> 
    <extensionElements> 
     <activiti:taskListener event="create" class="org.activiti.engine.impl.bpmn.listener.ScriptTaskListener" > 
      <activiti:field name="autoStoreVariables" expression="${true}"/> 
      <activiti:field name="script" stringValue="${out:print('hello world')}"/> 
      <activiti:field name="language" stringValue="juel" /> 
     </activiti:taskListener> 
    </extensionElements> 
</userTask> 

:

<activiti:field name="autoStoreVariables" booleanValue="true"/> 

<activiti:field name="autoStoreVariables" stringValue="true"/> 

<activiti:field name="autoStoreVariables" expression="true"/> 

boolean 필드를 설정하는 올바른 방법은 무엇입니까 :

org.activiti.engine.ActivitiIllegalArgumentException: Incompatible type set on field declaration 'autoStoreVariables' for class org.activiti.engine.impl.bpmn.listener.ScriptTaskListener. Declared value has type org.activiti.engine.impl.el.JuelExpression, while expecting boolean

는 나는 아무 성공 다음을 시도? 직접적 부울 값을 삽입 할 수 없다 Activiti 같이 사용자 가이드에 Accordint

답변

1

Field Injection

It’s possible to inject values into the fields of the delegated classes. The following types of injection are supported:

  • Fixed string values
  • Expressions

보인다. 귀하의 경우 해결책은 ScriptTaskListener을 확장하는 것입니다.

public class CustomScriptTaskListener extends ScriptTaskListener { 

    private Expression autoStoreVariablesExp; 

    public void setAutoStoreVariablesExp(Expression autoStoreVariablesExp) { 
     this.autoStoreVariablesExp = autoStoreVariablesExp; 
    } 

    @Override 
    public void notify(DelegateTask delegateTask) { 
     autoStoreVariables = Boolean.TRUE.equals(autoStoreVariablesExp.getValue(delegateTask)); 

     super.notify(delegateTask); 
    } 
} 

그리고 <activiti:field name="autoStoreVariablesExp" expression="${true}"/>와 가치를 주입.

관련 문제