Hi team , i am facing some problem in signal logic . i have tried below steps . but signal not working .
Kindly guide me what i have done in wrong in this bpmn file
- create the subprocess and call service task
- The service has send signal using method " runtimeService.signalEventReceived(signal.getEventKey(), variables);"
- The same signal catch the next level using delegateExpression . but that one not working
BPMN File :
<?xml version="1.0" encoding="UTF-8"?><signal id="signalCreditCheck" name="TASK_DONE(CREDIT_CHECK)" />
<process id="OrderServiceProcess" name="The Order Task Service Process">
<startEvent id="theStart"/>
<sequenceFlow id="flow0" sourceRef="theStart" targetRef="subProcess"/>
<subProcess id="subProcess">
<startEvent id="theStartSubProcess" >
</startEvent>
<sequenceFlow id="sequence_fork_flow" sourceRef="theStartSubProcess" targetRef="service_fork"/>
<parallelGateway id="service_fork" />
<sequenceFlow id="sequence_all_task_flow" sourceRef="service_fork" targetRef="allTasks"/>
<serviceTask id="allTasks"
name="Evaluate Required Tasks ( ALL )"
flowable:delegateExpression="${requiredTaskAll}"/>
<sequenceFlow id="sequence_all_document_flow" sourceRef="allTasks" targetRef="allDocuments"/>
<serviceTask id="allDocuments"
name="Evaluate Required Documents ( ALL )"
flowable:delegateExpression="${requiredDocumentAll}"
/>
<!-- TASK_APPLICABLE(CREDIT_CHECK) -->
<intermediateCatchEvent id="catchSignalCreditCheck" name="TASK_DONE(CREDIT_CHECK)">
<!-- signal event definition -->
<signalEventDefinition signalRef="signalCreditCheck"
flowable:delegateExpression="${startSignal}"/>
</intermediateCatchEvent>
<sequenceFlow id="sequence_credit_check_excluse_flow" sourceRef="catchSignalCreditCheck" targetRef="credit_check_yes_or_no_exclusive"/>
<!-- <sequenceFlow id="sequence_credit_check_excluse_flow" sourceRef="allDocuments" targetRef="credit_check_yes_or_no_exclusive"/> -->
<exclusiveGateway id="credit_check_yes_or_no_exclusive"></exclusiveGateway>
<sequenceFlow id="sequence_credit_check_no_flow" sourceRef="credit_check_yes_or_no_exclusive" targetRef="theEndCreditCheckNo">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${isCreditCheck == 'N'}]]></conditionExpression>
</sequenceFlow>
<endEvent id="theEndCreditCheckNo"/>
</subProcess>
</process>