2016-08-11 22 views
0

私はCamundaに配備されている.warファイルに含まれるBPMNダイアグラムを作成しています。ダイアグラムは正常に表示されていますが、私は最初の2つのユーザータスクを完了できますが、排他的なゲートウェイに着くと、エラーメッセージが表示されます:$ {Approve == 1}で未知のプロパティが使用されました。原因:識別子「承認」を解決できませんCamundaで3出力の排他的なゲートウェイが動作しないBPMNのダイアグラム

私は変数を識別していませんが、どこでこれを行うべきかわかりません。

<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

条件フローを持つ2つのシーケンスフローがあります。変数Approveの式の参照は、それぞれRejectです。これらの変数は、評価する現在のスコープで定義する必要があります。変数を作成するにはさまざまな方法がありますが、後で評価する必要があります。たとえば、ユーザータスクを完了して変数を作成するためのフォームを作成します。

task complete RESTリソースを使用すると、ユーザータスクを完了して変数を作成できます。

はまた、execution listener内のJava APIを使用することが可能である:

public class ExampleExecutionListenerOne implements ExecutionListener { 

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

はそれがお役に立てば幸いです。

関連する問題