2016-08-11 5 views
0

Camunda에 배포되는 .war 파일 내에 포함 된 BPMN 다이어그램에서 작업하고 있습니다. 다이어그램이 잘 보이고 처음 두 사용자 작업을 완료 할 수 있지만 독점 게이트웨이에 도착하면 오류 메시지가 나타납니다. 알 수없는 속성이 식에 사용되었습니다 : $ {Approve == 1}. 원인 : 식별자 '승인'을 해결할 수 없습니다.3 출력 전용 게이트웨이가있는 BPMN 다이어그램이 Camunda에서 작동하지 않습니다.

변수를 확인하지 못했습니다. 그러나 승인 할 수있는 위치가 확실하지 않습니다.

<bpmn:sequenceFlow id="SequenceFlow_07b7fwg" name="Approve" sourceRef="ExclusiveGateway_0znxqqy" targetRef="ServiceTask_06fn5cm"> 
     <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Approve == 1}</bpmn:conditionExpression> 
    </bpmn:sequenceFlow> 
    <bpmn:sequenceFlow id="SequenceFlow_0qnqvj1" sourceRef="ServiceTask_06fn5cm" targetRef="EndEvent_146k48m" /> 
    <bpmn:endEvent id="EndEvent_0ug591n" name="End"> 
     <bpmn:incoming>SequenceFlow_1y6i7xo</bpmn:incoming> 
    </bpmn:endEvent> 
    <bpmn:sequenceFlow id="SequenceFlow_068nx8b" name="Reject" sourceRef="ExclusiveGateway_0znxqqy" targetRef="ServiceTask_17qnuyi"> 
     <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Reject == 2}</bpmn:conditionExpression> 
    </bpmn:sequenceFlow> 
    <bpmn:sequenceFlow id="SequenceFlow_1irpvhx" sourceRef="ServiceTask_17qnuyi" targetRef="ServiceTask_1jks4hs" /> 
    <bpmn:sequenceFlow id="SequenceFlow_1mjdjw2" sourceRef="ServiceTask_1jks4hs" targetRef="EndEvent_1qmduq" /> 
    <bpmn:endEvent id="EndEvent_1qmduq" name="Hello!" /> 
    <bpmn:sequenceFlow id="SequenceFlow_1deve3u" name="Extra Step" sourceRef="ExclusiveGateway_0znxqqy" targetRef="ServiceTask_09nq79v" /> 
    <bpmn:sequenceFlow id="SequenceFlow_1y6i7xo" sourceRef="ServiceTask_09nq79v" targetRef="EndEvent_0ug591n" /> 

이 여기 Camunda에 의해 제공되는 코드를 기반으로했다 : 나는 다음과 같이있는 전용 게이트웨이에 관한 코드가의 BPMN 다이어그램 .xml 파일로 작업했습니다 https://docs.camunda.org/manual/7.4/reference/bpmn20/gateways/exclusive-gateway/

Eclipse 내에서 생성 된 각 단계에 대한 일부 .java 파일이 있으며 동일한 BPMN 다이어그램을 참조하십시오. 변수를 .xml 파일이나 .java 파일에 정의해야하는지 잘 모르겠습니다. 어떻게해야합니까? 감사.

답변

1

조건부 표현식을 갖는 두 개의 순서 흐름이 있습니다. 변수 Approve에 대한 표현식 참조는 각각 Reject입니다. 이 변수는 평가할 현재 범위에서 정의해야합니다. 변수를 작성하는 방법에는 여러 가지가 있으며 나중에 평가해야합니다. 예를 들어 사용자 작업을 완료하고 변수를 작성하는 양식을 작성하십시오.

task complete REST 리소스를 사용하여 사용자 작업을 완료하고 변수를 만들 수 있습니다.

또한 execution listener 내부의 자바 API를 사용할 수있다 :

public class ExampleExecutionListenerOne implements ExecutionListener { 

    public void notify(DelegateExecution execution) throws Exception { 
    execution.setVariable("Approve", true); 
    } 
} 

는 도움이되기를 바랍니다.