SpringBoot整合Activiti7——信号事件(十二)


信号事件

信号事件是全局的,一处发信号,所有信号的事件都能接收并将被唤醒并继续执行。

信号范围属性scope:可以设置为Global或processInstance

  • scope:全局的,当一个信号事件被触发时,所有流程实例可以捕获该信号的节点都会被唤醒。
  • processInstance:当一个信号事件被触发时,当前流程实例中捕获该信号的节点会被唤醒。
<!-- 定义信号 版本不同会爆红 -->
<signal id="signal1" name="signalName1" activiti:scope="global"/>
<signal id="signal2" name="signalName2" activiti:scope="global"/>
<signal id="signal3" name="signalName3" activiti:scope="processInstance"/>
<signal id="signal4" name="signalName4" activiti:scope="global"/>

开始事件

如果存在一个启动事件,并且该事件匹配到了被触发的信号,流程将会被启动。

开始事件只能是全局的。所有订阅了该信号的信号开始事件所在的流程定义都会被启动;

<!-- 信号开始事件 -->
<startEvent id="sid-c1b0d0c1-a3a3-404d-b735-a58817b2e884" name="信号开始事件">
  <!-- 引用信号 -->
  <signalEventDefinition signalRef="signal1"/>
</startEvent>

中间事件

中间事件分为,抛出与捕获

抛出:当流程到达该事件时,会直接抛出信号,其他引用了相同信号的信号Catching事件会被触发

捕获:收到信号则会执行

<!-- 信号中进事件-抛出 -->
<intermediateThrowEvent id="sid-ff4ad37c-b760-4968-ae5c-8344479b78e2" name="信号抛出">
  <!-- 引用信号 -->
  <signalEventDefinition signalRef="signal2"/>
</intermediateThrowEvent>
<!-- 信号中进事件-捕获 -->
<intermediateCatchEvent id="sid-938ddb66-79cf-4273-b274-55a95098ceec" name="信号捕获">
  <!-- 引用信号 -->
  <signalEventDefinition signalRef="signal2"/>
</intermediateCatchEvent>

边界事件

会捕获与其信号事件定义引用的信号具有相同信号名称的信号。可以设置中断或非中断。

<!-- 信号边界事件-非中断 -->
<boundaryEvent id="sid-188a2ae4-8d25-42b4-8d48-d1cc75fd5488" attachedToRef="sid-814d7d1c-e7dc-4930-a3f3-9fba01b845b9" cancelActivity="false" name="信号边界事件1">
  <signalEventDefinition signalRef="signal2"/>
</boundaryEvent>

代码实现

信号开始事件 - 用户任务(信号边界事件非中断)- 并行网关 - 支付任务 - 信号中间事件(抛出)- 信号中间事件(捕获) - 并行网关 - 发货任务(信号边界事件中断) - 结束流程
在这里插入图片描述

xml文件
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef">
  <!-- 定义信号 版本不同会爆红 -->
  <signal id="signal1" name="signalName1" activiti:scope="global"/>
  <signal id="signal2" name="signalName2" activiti:scope="global"/>
  <signal id="signal3" name="signalName3" activiti:scope="processInstance"/>
  <signal id="signal4" name="signalName4" activiti:scope="global"/>
  <process id="signal" name="信号事件" isExecutable="true">
    <documentation>信号事件流程</documentation>
    <!-- 信号开始事件 -->
    <startEvent id="sid-c1b0d0c1-a3a3-404d-b735-a58817b2e884" name="信号开始事件">
      <!-- 引用信号 -->
      <signalEventDefinition signalRef="signal1"/>
    </startEvent>
    <!-- 创建订单 -->
    <userTask id="sid-814d7d1c-e7dc-4930-a3f3-9fba01b845b9" name="创建订单">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${myUserTaskListener}"/>
      </extensionElements>
    </userTask>
    <sequenceFlow id="sid-9ca95b2b-3919-47b5-95cf-ef55667636d2" sourceRef="sid-c1b0d0c1-a3a3-404d-b735-a58817b2e884" targetRef="sid-814d7d1c-e7dc-4930-a3f3-9fba01b845b9"/>
    <!-- 通知服务1 -->
    <serviceTask id="sid-5ab638ba-8f72-4572-8a43-d48311270a71" activiti:exclusive="true" name="通知服务1" activiti:delegateExpression="${myServiceTaskListener}"/>
    <sequenceFlow id="sid-2ab16f1e-438c-4bbb-b6d2-20d1caf8a83c" sourceRef="sid-188a2ae4-8d25-42b4-8d48-d1cc75fd5488" targetRef="sid-5ab638ba-8f72-4572-8a43-d48311270a71"/>
    <!-- 结束事件1 -->
    <endEvent id="sid-92028b5f-f8fa-4a70-a3d8-d9d88e801309" name="结束事件1"/>
    <sequenceFlow id="sid-d365bd9a-a525-4638-9e3e-1ff62746dcb6" sourceRef="sid-5ab638ba-8f72-4572-8a43-d48311270a71" targetRef="sid-92028b5f-f8fa-4a70-a3d8-d9d88e801309"/>
    <!-- 信号边界事件-非中断 -->
    <boundaryEvent id="sid-188a2ae4-8d25-42b4-8d48-d1cc75fd5488" attachedToRef="sid-814d7d1c-e7dc-4930-a3f3-9fba01b845b9" cancelActivity="false" name="信号边界事件1">
      <signalEventDefinition signalRef="signal2"/>
    </boundaryEvent>
    <sequenceFlow id="sid-aa25cffa-29b4-4a60-b63f-daa5a0d8e88e" sourceRef="sid-814d7d1c-e7dc-4930-a3f3-9fba01b845b9" targetRef="sid-4e53ea2e-87d1-4a98-8a55-5769b5034d23"/>
    <!-- 并行网关1 -->
    <parallelGateway id="sid-4e53ea2e-87d1-4a98-8a55-5769b5034d23" name="并行网关1"/>
    <!-- 支付任务 -->
    <userTask id="sid-ab5c9bd7-9b59-4c87-a0a2-3fad9bac769a" name="支付任务">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${myUserTaskListener}"/>
      </extensionElements>
    </userTask>
    <sequenceFlow id="sid-638a09be-7689-4131-897c-256bb04ea1d9" sourceRef="sid-4e53ea2e-87d1-4a98-8a55-5769b5034d23" targetRef="sid-ab5c9bd7-9b59-4c87-a0a2-3fad9bac769a">
      <conditionExpression xsi:type="tFormalExpression"/>
    </sequenceFlow>
    <!-- 并行网关1 -->
    <parallelGateway id="sid-f3676003-12b3-411d-8a59-7a893f7b0dc2" name="并行网关2"/>
    <sequenceFlow id="sid-b3ac8e8c-3a86-4541-9bd4-3c2ea5d71051" sourceRef="sid-f3676003-12b3-411d-8a59-7a893f7b0dc2" targetRef="sid-238ab16d-8c6e-48d0-809d-2d0c007a90a7">
      <conditionExpression xsi:type="tFormalExpression"/>
    </sequenceFlow>
    <sequenceFlow id="sid-372d851f-0549-4fc8-afa9-d065e7e11ba9" sourceRef="sid-d2f6d8be-4263-4222-8668-950247519d47" targetRef="sid-f3676003-12b3-411d-8a59-7a893f7b0dc2"/>
    <!-- 通知服务2 -->
    <serviceTask id="sid-cc336889-394c-4506-ab23-35131dce111e" activiti:exclusive="true" name="通知服务2" activiti:delegateExpression="${myServiceTaskListener}"/>
    <sequenceFlow id="sid-e500e417-b8a5-4aa5-9a68-32977276851f" sourceRef="sid-4e53ea2e-87d1-4a98-8a55-5769b5034d23" targetRef="sid-938ddb66-79cf-4273-b274-55a95098ceec">
      <conditionExpression xsi:type="tFormalExpression"/>
    </sequenceFlow>
    <!-- 信号中间事件-抛出 -->
    <intermediateThrowEvent id="sid-ff4ad37c-b760-4968-ae5c-8344479b78e2" name="信号抛出">
      <!-- 引用信号 -->
      <signalEventDefinition signalRef="signal3"/>
    </intermediateThrowEvent>
    <sequenceFlow id="sid-c9e47911-023e-4919-9536-8294c82d9245" sourceRef="sid-ab5c9bd7-9b59-4c87-a0a2-3fad9bac769a" targetRef="sid-ff4ad37c-b760-4968-ae5c-8344479b78e2"/>
    <!-- 保存消费记录服务任务 -->
    <serviceTask id="sid-d2f6d8be-4263-4222-8668-950247519d47" activiti:exclusive="true" name="保存消费记录服务任务" activiti:delegateExpression="${myServiceTaskListener}"/>
    <sequenceFlow id="sid-72dcab11-7a04-4013-8ffe-a3c0696bfc9a" sourceRef="sid-ff4ad37c-b760-4968-ae5c-8344479b78e2" targetRef="sid-d2f6d8be-4263-4222-8668-950247519d47"/>
    <!-- 信号中间事件-捕获 -->
    <intermediateCatchEvent id="sid-938ddb66-79cf-4273-b274-55a95098ceec" name="信号捕获">
      <!-- 引用信号 -->
      <signalEventDefinition signalRef="signal3"/>
    </intermediateCatchEvent>
    <sequenceFlow id="sid-406261fc-e1de-4c4d-9fa1-9a96db11ebe9" sourceRef="sid-938ddb66-79cf-4273-b274-55a95098ceec" targetRef="sid-cc336889-394c-4506-ab23-35131dce111e"/>
    <sequenceFlow id="sid-354e2dd8-14a9-41a0-abcc-b1f9a284d7a9" sourceRef="sid-cc336889-394c-4506-ab23-35131dce111e" targetRef="sid-f3676003-12b3-411d-8a59-7a893f7b0dc2"/>
    <!-- 结束事件2 -->
    <endEvent id="sid-f1550957-47ab-4807-a4cb-291a0381a0e1" name="结束事件2"/>
    <!-- 发货任务 -->
    <userTask id="sid-238ab16d-8c6e-48d0-809d-2d0c007a90a7" name="发货任务">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${myUserTaskListener}"/>
      </extensionElements>
    </userTask>
    <sequenceFlow id="sid-21df1155-e09f-4823-8f4d-0881522d6260" sourceRef="sid-238ab16d-8c6e-48d0-809d-2d0c007a90a7" targetRef="sid-99d7981d-d7f5-460f-a478-34fc72035fa8"/>
    <!-- 信号边界事件-中断 -->
    <boundaryEvent id="sid-c02500f5-3e5e-4c30-8d5e-c231730d8394" attachedToRef="sid-238ab16d-8c6e-48d0-809d-2d0c007a90a7" name="信号边界事件2">
      <signalEventDefinition signalRef="signal4"/>
    </boundaryEvent>
    <!-- 通知服务3 -->
    <serviceTask id="sid-13a4cca2-bc14-445b-bfe8-544108ef6eb0" activiti:exclusive="true" name="通知服务3" activiti:delegateExpression="${myServiceTaskListener}"/>
    <sequenceFlow id="sid-806b5438-c644-4683-a1b1-cfad7a66d625" sourceRef="sid-c02500f5-3e5e-4c30-8d5e-c231730d8394" targetRef="sid-13a4cca2-bc14-445b-bfe8-544108ef6eb0"/>
    <sequenceFlow id="sid-37ff4d73-662a-4473-851e-839b156527a7" sourceRef="sid-13a4cca2-bc14-445b-bfe8-544108ef6eb0" targetRef="sid-3a1763f9-0124-477f-8e70-08c9ab6540cb"/>
    <!-- 结束事件3 -->
    <endEvent id="sid-3a1763f9-0124-477f-8e70-08c9ab6540cb" name="结束事件3"/>
    <!-- 保存发货记录服务任务 -->
    <serviceTask id="sid-99d7981d-d7f5-460f-a478-34fc72035fa8" activiti:exclusive="true" name="保存发货记录服务任务" activiti:delegateExpression="${myServiceTaskListener}"/>
    <sequenceFlow id="sid-61d7081c-c02e-45c5-9a78-6a2f4c978c48" sourceRef="sid-99d7981d-d7f5-460f-a478-34fc72035fa8" targetRef="sid-f1550957-47ab-4807-a4cb-291a0381a0e1"/>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_signal">
    <bpmndi:BPMNPlane bpmnElement="signal" id="BPMNPlane_signal">
      <bpmndi:BPMNShape id="shape-3be2a4ac-eb93-4510-b80f-e814d2edad6b" bpmnElement="sid-c1b0d0c1-a3a3-404d-b735-a58817b2e884">
        <omgdc:Bounds x="-233.76001" y="-28.0" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-cf53df31-c629-4d17-8791-e7e12c40270f" bpmnElement="sid-814d7d1c-e7dc-4930-a3f3-9fba01b845b9">
        <omgdc:Bounds x="-170.41852" y="-53.0" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-d996e239-17dc-4e63-8cce-b3918a537bac" bpmnElement="sid-9ca95b2b-3919-47b5-95cf-ef55667636d2">
        <omgdi:waypoint x="-203.76001" y="-13.0"/>
        <omgdi:waypoint x="-170.41852" y="-13.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-c3bfc511-820c-490b-a9b0-587785ab6c26" bpmnElement="sid-f1550957-47ab-4807-a4cb-291a0381a0e1">
        <omgdc:Bounds x="905.90643" y="-28.0" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-9dbea2f5-37fc-4e1a-a80d-330ef41e5100" bpmnElement="sid-aa25cffa-29b4-4a60-b63f-daa5a0d8e88e">
        <omgdi:waypoint x="-70.41852" y="-13.0"/>
        <omgdi:waypoint x="-37.89" y="-13.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-94621798-efaf-45f8-a754-7bc93d112bcc" bpmnElement="sid-4e53ea2e-87d1-4a98-8a55-5769b5034d23">
        <omgdc:Bounds x="-37.89" y="-33.0" width="40.0" height="40.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-317704ba-a150-4933-9b56-567b3fdacef1" bpmnElement="sid-ab5c9bd7-9b59-4c87-a0a2-3fad9bac769a">
        <omgdc:Bounds x="59.310005" y="-117.630005" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-0bfb322d-02b3-4bf2-8325-f522a9805cad" bpmnElement="sid-638a09be-7689-4131-897c-256bb04ea1d9">
        <omgdi:waypoint x="-17.89" y="-33.000004"/>
        <omgdi:waypoint x="-17.890001" y="-77.630005"/>
        <omgdi:waypoint x="59.31" y="-77.63"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-9d223435-7506-4803-99b7-412ce75f03bd" bpmnElement="sid-f3676003-12b3-411d-8a59-7a893f7b0dc2">
        <omgdc:Bounds x="459.63" y="-33.0" width="40.0" height="40.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-7f2c4ac2-d575-4d37-b9f3-6be5e8851b35" bpmnElement="sid-b3ac8e8c-3a86-4541-9bd4-3c2ea5d71051">
        <omgdi:waypoint x="499.63" y="-13.0"/>
        <omgdi:waypoint x="588.9076" y="-13.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-fceb04bd-ed84-4291-ab65-ccef251262a3" bpmnElement="sid-372d851f-0549-4fc8-afa9-d065e7e11ba9">
        <omgdi:waypoint x="374.59003" y="-77.630005"/>
        <omgdi:waypoint x="479.63004" y="-77.630005"/>
        <omgdi:waypoint x="479.63" y="-33.000004"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-69a2f97c-cd3f-424f-a130-a215ebbb5881" bpmnElement="sid-cc336889-394c-4506-ab23-35131dce111e">
        <omgdc:Bounds x="235.71" y="19.369999" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-c8d6bebf-a91b-46cc-a70a-8a6a494a7bb4" bpmnElement="sid-e500e417-b8a5-4aa5-9a68-32977276851f">
        <omgdi:waypoint x="-17.889997" y="7.0"/>
        <omgdi:waypoint x="-17.89" y="58.770004"/>
        <omgdi:waypoint x="94.31" y="59.36999"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-6a3a840b-74a8-41e4-9fe1-b43b33e4474c" bpmnElement="sid-ff4ad37c-b760-4968-ae5c-8344479b78e2">
        <omgdc:Bounds x="201.87003" y="-92.630005" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-850ba91e-79cd-4279-9259-455f007bf5c2" bpmnElement="sid-c9e47911-023e-4919-9536-8294c82d9245">
        <omgdi:waypoint x="159.31" y="-77.630005"/>
        <omgdi:waypoint x="201.87003" y="-77.630005"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-ca2976cc-29fc-4ea1-9fdb-2dc6dc8c73b7" bpmnElement="sid-d2f6d8be-4263-4222-8668-950247519d47">
        <omgdc:Bounds x="274.59003" y="-117.630005" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-66ded442-c100-4dca-a364-40044b0b0296" bpmnElement="sid-72dcab11-7a04-4013-8ffe-a3c0696bfc9a">
        <omgdi:waypoint x="231.87003" y="-77.630005"/>
        <omgdi:waypoint x="274.59003" y="-77.630005"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-e7f6e011-ff48-49c3-bb99-15ab0073f963" bpmnElement="sid-938ddb66-79cf-4273-b274-55a95098ceec">
        <omgdc:Bounds x="94.310005" y="44.37" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-544789bc-628b-4a6b-9f4a-14d39067f83f" bpmnElement="sid-406261fc-e1de-4c4d-9fa1-9a96db11ebe9">
        <omgdi:waypoint x="124.31" y="59.37"/>
        <omgdi:waypoint x="235.71" y="59.37"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-c9f6b402-954c-4878-a768-5bdc86c93d09" bpmnElement="sid-354e2dd8-14a9-41a0-abcc-b1f9a284d7a9">
        <omgdi:waypoint x="335.71" y="59.37"/>
        <omgdi:waypoint x="479.63" y="59.369995"/>
        <omgdi:waypoint x="479.63" y="7.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-988ab1d0-f7d3-45ca-b143-194a0d37f1b7" bpmnElement="sid-5ab638ba-8f72-4572-8a43-d48311270a71">
        <omgdc:Bounds x="-47.546078" y="93.28029" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-1dde4a09-8eab-42dd-ad85-e6c80ef351ba" bpmnElement="sid-2ab16f1e-438c-4bbb-b6d2-20d1caf8a83c">
        <omgdi:waypoint x="-104.47385" y="39.59543"/>
        <omgdi:waypoint x="-104.47385" y="133.2803"/>
        <omgdi:waypoint x="-47.546074" y="133.2803"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-d79c5b0a-a25d-49cc-af13-1972876e68b5" bpmnElement="sid-92028b5f-f8fa-4a70-a3d8-d9d88e801309">
        <omgdc:Bounds x="103.95884" y="118.28029" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-6d48d9e8-42cc-4992-9aca-f9a7097611e6" bpmnElement="sid-d365bd9a-a525-4638-9e3e-1ff62746dcb6">
        <omgdi:waypoint x="52.453922" y="133.28029"/>
        <omgdi:waypoint x="103.95884" y="133.28029"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-e919253d-6a96-4519-8dce-d2116d524095" bpmnElement="sid-188a2ae4-8d25-42b4-8d48-d1cc75fd5488">
        <omgdc:Bounds x="-119.47385" y="9.595427" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-d276f17f-2716-450b-852c-75b34293d6c3" bpmnElement="sid-238ab16d-8c6e-48d0-809d-2d0c007a90a7">
        <omgdc:Bounds x="588.9076" y="-53.0" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-df5d4ee7-08d5-4026-9182-1ba49de41c23" bpmnElement="sid-21df1155-e09f-4823-8f4d-0881522d6260">
        <omgdi:waypoint x="688.9076" y="-13.0"/>
        <omgdi:waypoint x="748.2095" y="-13.000001"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-7bf9a315-31dc-4249-8eba-e9c532601fbc" bpmnElement="sid-c02500f5-3e5e-4c30-8d5e-c231730d8394">
        <omgdc:Bounds x="609.6282" y="5.556328" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-49a20fb3-d7c9-495f-b823-9acafe376ff6" bpmnElement="sid-13a4cca2-bc14-445b-bfe8-544108ef6eb0">
        <omgdc:Bounds x="676.49945" y="93.28029" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-21a55115-3878-423d-8f53-05dcb79cbf6d" bpmnElement="sid-806b5438-c644-4683-a1b1-cfad7a66d625">
        <omgdi:waypoint x="624.6282" y="35.556328"/>
        <omgdi:waypoint x="624.62823" y="133.28027"/>
        <omgdi:waypoint x="676.49945" y="133.2803"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-f6c92600-6394-414f-8952-53192e35dc62" bpmnElement="sid-37ff4d73-662a-4473-851e-839b156527a7">
        <omgdi:waypoint x="776.4994" y="133.28027"/>
        <omgdi:waypoint x="808.70184" y="133.28029"/>
        <omgdi:waypoint x="837.97314" y="133.28027"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-f96030ba-ff62-4cb7-9155-28cecfd0b926" bpmnElement="sid-3a1763f9-0124-477f-8e70-08c9ab6540cb">
        <omgdc:Bounds x="837.97314" y="118.28028" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-a3327ae4-03aa-46a0-8bfb-d142d0eedd3c" bpmnElement="sid-99d7981d-d7f5-460f-a478-34fc72035fa8">
        <omgdc:Bounds x="748.2094" y="-53.0" width="100.0" height="80.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-fb20b429-13ea-4a01-aee7-0be75eea514e" bpmnElement="sid-61d7081c-c02e-45c5-9a78-6a2f4c978c48">
        <omgdi:waypoint x="848.2094" y="-13.0"/>
        <omgdi:waypoint x="905.90643" y="-13.0"/>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>
测试流程
@Test
public void deployAndStartProcess() {
    // 部署流程
    Deployment deploy = repositoryService.createDeployment()
            .addClasspathResource("processes/signal.bpmn20.xml")
            .deploy();
    System.out.println("deploy = " + deploy);

    // 启动流程:1.可以发送信号触发,2:当做普通流程启动
    // 根据信号名称触发启动流程 act_ru_event_subscr 表记录了信号事件,global不会清掉
    runtimeService.signalEventReceived("signalName1");

    String signalName = "signalName2";
    List<Execution> executionList = runtimeService.createExecutionQuery().signalEventSubscriptionName(signalName).onlyChildExecutions().list();
    System.out.println("executionList = " + executionList);
    // 触发边界事件
    executionList.forEach(k -> runtimeService.signalEventReceived(signalName, k.getId()));
}

@Test
public void completeTask() {
    // 查询任务
    Task task = taskService.createTaskQuery().processInstanceId("080452d5-4001-11ee-9f31-18c04dcd4aee").singleResult();
    System.out.println("task = " + task);
    // 完成任务
    taskService.complete(task.getId());
}

@Test
public void sendSignal() {
    String signalName = "signalName4";
    List<Execution> executionList = runtimeService.createExecutionQuery().signalEventSubscriptionName(signalName).onlyChildExecutions().list();
    System.out.println("executionList = " + executionList);
    // 触发边界事件
    executionList.forEach(k -> runtimeService.signalEventReceived(signalName, k.getId()));
}
流程执行步骤
// 1.发送信号signalName1启动流程(global// 2.当前任务为创建订单
// 3.并发送信号signalName2触发信号边界事件1(非中断)
// 4.触发通知服务1
// 5.完成创建订单任务,当前任务变更为支付任务
// 6.完成支付任务,触发信号抛出事件,并触发保存消费记录服务任务
// 7.触发信号捕获事件,并触发通知服务2
// 8.当前任务变更为发货任务
// 9.发送信号signalName4,触发信号边界事件2(中断),并触发通知服务3
// 10.结束流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值