0
点赞
收藏
分享

微信扫一扫

Camunda 流程引擎主流程如何嵌套子流程?

在用Camunda流程引擎做业务开发时,遇到一些简单的流程不会有什么问题。但如果遇到一套流程涉及到很多节点的时候,并且在主要的流程中不会太占意一些节点时,这样主会把流程拆分为主流程和子流程。

主流程:主要展示主要的步骤节点

子流程:要完成主流程而发起的其它流程

这样拆分的好处:

一:让流程更加清晰

二:流程图易画,并且也简单易理解、不臃肿

三:便于业务拓展

既然拆分流程能带来便于,那Camunda 流程引擎如何嵌套子流程呢?

在Camunda 流程引擎中嵌套子流程的方式有2种:

一:直接使用嵌套子流程节点

如下为启动单一子流程实例,如果需要启动多实例的子流程可以查看另一篇文章【camunda 流程引擎如何开始并行任务,且有哪些实现方式?icon-default.png?t=M0H8https://mp.csdn.net/mp_blog/creation/editor/122811046

 

<?xml version="1.0" encoding="UTF-8"?>

<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0232ymv" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">

  <bpmn:process id="Process_1218g4f" isExecutable="true">

    <bpmn:startEvent id="StartEvent_1">

      <bpmn:outgoing>Flow_0bbcod5</bpmn:outgoing>

    </bpmn:startEvent>

    <bpmn:userTask id="Activity_1iscowy" name="审核">

      <bpmn:incoming>Flow_0bbcod5</bpmn:incoming>

      <bpmn:outgoing>Flow_0ik5gtc</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:sequenceFlow id="Flow_0bbcod5" sourceRef="StartEvent_1" targetRef="Activity_1iscowy" />

    <bpmn:sequenceFlow id="Flow_0ik5gtc" sourceRef="Activity_1iscowy" targetRef="Activity_1gh9p4v" />

    <bpmn:userTask id="Activity_118v4cd" name="任务">

      <bpmn:incoming>Flow_1oj78hn</bpmn:incoming>

      <bpmn:outgoing>Flow_0w00h6g</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:sequenceFlow id="Flow_1oj78hn" sourceRef="Activity_1gh9p4v" targetRef="Activity_118v4cd" />

    <bpmn:endEvent id="Event_03r6tzn">

      <bpmn:incoming>Flow_0w00h6g</bpmn:incoming>

    </bpmn:endEvent>

    <bpmn:sequenceFlow id="Flow_0w00h6g" sourceRef="Activity_118v4cd" targetRef="Event_03r6tzn" />

    <bpmn:subProcess id="Activity_1gh9p4v" name="子流程">

      <bpmn:incoming>Flow_0ik5gtc</bpmn:incoming>

      <bpmn:outgoing>Flow_1oj78hn</bpmn:outgoing>

      <bpmn:sequenceFlow id="Flow_0pc1wpt" sourceRef="Activity_14u1not" targetRef="Event_0lililc" />

      <bpmn:sequenceFlow id="Flow_086bxmh" sourceRef="Activity_0w6ec1g" targetRef="Activity_14u1not" />

      <bpmn:sequenceFlow id="Flow_18m55sz" sourceRef="Event_0nu73jn" targetRef="Activity_0w6ec1g" />

      <bpmn:endEvent id="Event_0lililc">

        <bpmn:incoming>Flow_0pc1wpt</bpmn:incoming>

      </bpmn:endEvent>

      <bpmn:userTask id="Activity_14u1not" name="任务二">

        <bpmn:incoming>Flow_086bxmh</bpmn:incoming>

        <bpmn:outgoing>Flow_0pc1wpt</bpmn:outgoing>

      </bpmn:userTask>

      <bpmn:userTask id="Activity_0w6ec1g" name="任务一">

        <bpmn:incoming>Flow_18m55sz</bpmn:incoming>

        <bpmn:outgoing>Flow_086bxmh</bpmn:outgoing>

      </bpmn:userTask>

      <bpmn:startEvent id="Event_0nu73jn">

        <bpmn:outgoing>Flow_18m55sz</bpmn:outgoing>

      </bpmn:startEvent>

    </bpmn:subProcess>

  </bpmn:process>

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">

    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1218g4f">

      <bpmndi:BPMNEdge id="Flow_0bbcod5_di" bpmnElement="Flow_0bbcod5">

        <di:waypoint x="215" y="310" />

        <di:waypoint x="320" y="310" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0ik5gtc_di" bpmnElement="Flow_0ik5gtc">

        <di:waypoint x="420" y="310" />

        <di:waypoint x="520" y="310" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_1oj78hn_di" bpmnElement="Flow_1oj78hn">

        <di:waypoint x="660" y="310" />

        <di:waypoint x="770" y="310" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0w00h6g_di" bpmnElement="Flow_0w00h6g">

        <di:waypoint x="870" y="310" />

        <di:waypoint x="992" y="310" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">

        <dc:Bounds x="179" y="292" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_0gxffzb_di" bpmnElement="Activity_1iscowy">

        <dc:Bounds x="320" y="270" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_0wvu2b4_di" bpmnElement="Activity_118v4cd">

        <dc:Bounds x="770" y="270" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_03r6tzn_di" bpmnElement="Event_03r6tzn">

        <dc:Bounds x="992" y="292" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_1gh9p4v_di" bpmnElement="Activity_1gh9p4v" isExpanded="true">

        <dc:Bounds x="520" y="100" width="140" height="430" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNEdge id="Flow_18m55sz_di" bpmnElement="Flow_18m55sz">

        <di:waypoint x="590" y="156" />

        <di:waypoint x="590" y="180" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_086bxmh_di" bpmnElement="Flow_086bxmh">

        <di:waypoint x="590" y="260" />

        <di:waypoint x="590" y="320" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0pc1wpt_di" bpmnElement="Flow_0pc1wpt">

        <di:waypoint x="590" y="400" />

        <di:waypoint x="590" y="462" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNShape id="Event_0nu73jn_di" bpmnElement="Event_0nu73jn">

        <dc:Bounds x="572" y="120" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_0e2falq_di" bpmnElement="Activity_0w6ec1g">

        <dc:Bounds x="540" y="180" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_17f2wn2_di" bpmnElement="Activity_14u1not">

        <dc:Bounds x="540" y="320" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_0lililc_di" bpmnElement="Event_0lililc">

        <dc:Bounds x="572" y="462" width="36" height="36" />

      </bpmndi:BPMNShape>

    </bpmndi:BPMNPlane>

  </bpmndi:BPMNDiagram>

</bpmn:definitions>

二:用’占位符’代替子流程

 

 

<?xml version="1.0" encoding="UTF-8"?>

<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0232ymv" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">

  <bpmn:process id="Process_1218g4f" isExecutable="true">

    <bpmn:startEvent id="StartEvent_1">

      <bpmn:outgoing>Flow_0bbcod5</bpmn:outgoing>

    </bpmn:startEvent>

    <bpmn:userTask id="Activity_1iscowy" name="审核">

      <bpmn:incoming>Flow_0bbcod5</bpmn:incoming>

      <bpmn:outgoing>Flow_0ik5gtc</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:sequenceFlow id="Flow_0bbcod5" sourceRef="StartEvent_1" targetRef="Activity_1iscowy" />

    <bpmn:sequenceFlow id="Flow_0ik5gtc" sourceRef="Activity_1iscowy" targetRef="Activity_0ay8prn" />

    <bpmn:userTask id="Activity_118v4cd" name="任务">

      <bpmn:incoming>Flow_1mkp82y</bpmn:incoming>

      <bpmn:outgoing>Flow_0w00h6g</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:endEvent id="Event_03r6tzn">

      <bpmn:incoming>Flow_0w00h6g</bpmn:incoming>

    </bpmn:endEvent>

    <bpmn:sequenceFlow id="Flow_0w00h6g" sourceRef="Activity_118v4cd" targetRef="Event_03r6tzn" />

    <bpmn:sequenceFlow id="Flow_1mkp82y" sourceRef="Activity_0ay8prn" targetRef="Activity_118v4cd" />

    <bpmn:serviceTask id="Activity_0ay8prn" name="启动子流程">

      <bpmn:incoming>Flow_0ik5gtc</bpmn:incoming>

      <bpmn:outgoing>Flow_1mkp82y</bpmn:outgoing>

    </bpmn:serviceTask>

  </bpmn:process>

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">

    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1218g4f">

      <bpmndi:BPMNEdge id="Flow_0bbcod5_di" bpmnElement="Flow_0bbcod5">

        <di:waypoint x="215" y="120" />

        <di:waypoint x="320" y="120" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0ik5gtc_di" bpmnElement="Flow_0ik5gtc">

        <di:waypoint x="420" y="120" />

        <di:waypoint x="560" y="120" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0w00h6g_di" bpmnElement="Flow_0w00h6g">

        <di:waypoint x="870" y="120" />

        <di:waypoint x="992" y="120" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_1mkp82y_di" bpmnElement="Flow_1mkp82y">

        <di:waypoint x="660" y="120" />

        <di:waypoint x="770" y="120" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">

        <dc:Bounds x="179" y="102" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_0gxffzb_di" bpmnElement="Activity_1iscowy">

        <dc:Bounds x="320" y="80" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_0wvu2b4_di" bpmnElement="Activity_118v4cd">

        <dc:Bounds x="770" y="80" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_03r6tzn_di" bpmnElement="Event_03r6tzn">

        <dc:Bounds x="992" y="102" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_1ct9tu3_di" bpmnElement="Activity_0ay8prn">

        <dc:Bounds x="560" y="80" width="100" height="80" />

      </bpmndi:BPMNShape>

    </bpmndi:BPMNPlane>

  </bpmndi:BPMNDiagram>

</bpmn:definitions>

如果用占位符(Service Task)的方式去启动子流程,在设置事件启动点的时候,又有2种方式:

1、空白事件启动方式

2、选择消息、定时器、信息、条件启动事件方式(下面实例为信号和消息事件方式启动子流程)

 信号事件类型启动子流程

<?xml version="1.0" encoding="UTF-8"?>

<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0js57kf" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">

  <bpmn:process id="Process_0qplt59" isExecutable="true">

    <bpmn:userTask id="Activity_1jhxkz3" name="任务一">

      <bpmn:incoming>Flow_0ays4bz</bpmn:incoming>

      <bpmn:outgoing>Flow_0vld40o</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:userTask id="Activity_1d0nrlf" name="任务二">

      <bpmn:incoming>Flow_0vld40o</bpmn:incoming>

      <bpmn:outgoing>Flow_0z13zvf</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:endEvent id="Event_1kb0wd1">

      <bpmn:incoming>Flow_0z13zvf</bpmn:incoming>

    </bpmn:endEvent>

    <bpmn:sequenceFlow id="Flow_0vld40o" sourceRef="Activity_1jhxkz3" targetRef="Activity_1d0nrlf" />

    <bpmn:sequenceFlow id="Flow_0z13zvf" sourceRef="Activity_1d0nrlf" targetRef="Event_1kb0wd1" />

    <bpmn:sequenceFlow id="Flow_0ays4bz" sourceRef="Event_0fltzrj" targetRef="Activity_1jhxkz3" />

    <bpmn:startEvent id="Event_0fltzrj" name="信号子流程">

      <bpmn:outgoing>Flow_0ays4bz</bpmn:outgoing>

      <bpmn:signalEventDefinition id="SignalEventDefinition_000pg4x" signalRef="Signal_1i2qeo0" />

    </bpmn:startEvent>

  </bpmn:process>

  <bpmn:signal id="Signal_1i2qeo0" name="signal" />

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">

    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0qplt59">

      <bpmndi:BPMNEdge id="Flow_0ays4bz_di" bpmnElement="Flow_0ays4bz">

        <di:waypoint x="210" y="148" />

        <di:waypoint x="210" y="192" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0vld40o_di" bpmnElement="Flow_0vld40o">

        <di:waypoint x="210" y="272" />

        <di:waypoint x="210" y="332" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_0z13zvf_di" bpmnElement="Flow_0z13zvf">

        <di:waypoint x="210" y="412" />

        <di:waypoint x="210" y="474" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNShape id="Activity_1jhxkz3_di" bpmnElement="Activity_1jhxkz3">

        <dc:Bounds x="160" y="192" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_1d0nrlf_di" bpmnElement="Activity_1d0nrlf">

        <dc:Bounds x="160" y="332" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_1kb0wd1_di" bpmnElement="Event_1kb0wd1">

        <dc:Bounds x="192" y="474" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_13zdp51_di" bpmnElement="Event_0fltzrj">

        <dc:Bounds x="192" y="112" width="36" height="36" />

        <bpmndi:BPMNLabel>

          <dc:Bounds x="186" y="82" width="55" height="14" />

        </bpmndi:BPMNLabel>

      </bpmndi:BPMNShape>

    </bpmndi:BPMNPlane>

  </bpmndi:BPMNDiagram>

</bpmn:definitions>

 消息事件类型启动子流程

<?xml version="1.0" encoding="UTF-8"?>

<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1uxobnf" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">

  <bpmn:process id="Process_1vseutv" name="消息事件方式发起流程" isExecutable="true">

    <bpmn:userTask id="Activity_0amzx6i" name="经理审批" camunda:assignee="demo">

      <bpmn:incoming>Flow_055trdz</bpmn:incoming>

      <bpmn:incoming>Flow_1ku1i7k</bpmn:incoming>

      <bpmn:outgoing>Flow_16yqwjt</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:sequenceFlow id="Flow_055trdz" sourceRef="StartEvent_1" targetRef="Activity_0amzx6i" />

    <bpmn:userTask id="Activity_0ipk02z" name="财务审批" camunda:assignee="demo">

      <bpmn:incoming>Flow_16yqwjt</bpmn:incoming>

      <bpmn:outgoing>Flow_0lwwz4n</bpmn:outgoing>

    </bpmn:userTask>

    <bpmn:sequenceFlow id="Flow_16yqwjt" sourceRef="Activity_0amzx6i" targetRef="Activity_0ipk02z" />

    <bpmn:sequenceFlow id="Flow_1ku1i7k" sourceRef="Event_1hgjwbp" targetRef="Activity_0amzx6i" />

    <bpmn:boundaryEvent id="Event_1hgjwbp" attachedToRef="Activity_0ipk02z">

      <bpmn:outgoing>Flow_1ku1i7k</bpmn:outgoing>

      <bpmn:conditionalEventDefinition id="ConditionalEventDefinition_04uw4hm">

        <bpmn:condition xsi:type="bpmn:tFormalExpression">${money&gt;10000}</bpmn:condition>

      </bpmn:conditionalEventDefinition>

    </bpmn:boundaryEvent>

    <bpmn:endEvent id="Event_03yf0hk">

      <bpmn:incoming>Flow_0lwwz4n</bpmn:incoming>

    </bpmn:endEvent>

    <bpmn:sequenceFlow id="Flow_0lwwz4n" sourceRef="Activity_0ipk02z" targetRef="Event_03yf0hk" />

    <bpmn:startEvent id="StartEvent_1">

      <bpmn:outgoing>Flow_055trdz</bpmn:outgoing>

      <bpmn:messageEventDefinition id="MessageEventDefinition_0o0ivuo" messageRef="Message_1i854ob" />

    </bpmn:startEvent>

  </bpmn:process>

  <bpmn:message id="Message_1i854ob" name="telMessage" />

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">

    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1vseutv">

      <bpmndi:BPMNEdge id="Flow_0lwwz4n_di" bpmnElement="Flow_0lwwz4n">

        <di:waypoint x="630" y="117" />

        <di:waypoint x="702" y="117" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_1ku1i7k_di" bpmnElement="Flow_1ku1i7k">

        <di:waypoint x="580" y="175" />

        <di:waypoint x="580" y="195" />

        <di:waypoint x="350" y="195" />

        <di:waypoint x="350" y="157" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_16yqwjt_di" bpmnElement="Flow_16yqwjt">

        <di:waypoint x="400" y="117" />

        <di:waypoint x="530" y="117" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNEdge id="Flow_055trdz_di" bpmnElement="Flow_055trdz">

        <di:waypoint x="215" y="117" />

        <di:waypoint x="300" y="117" />

      </bpmndi:BPMNEdge>

      <bpmndi:BPMNShape id="Activity_0amzx6i_di" bpmnElement="Activity_0amzx6i">

        <dc:Bounds x="300" y="77" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Activity_0ipk02z_di" bpmnElement="Activity_0ipk02z">

        <dc:Bounds x="530" y="77" width="100" height="80" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_03yf0hk_di" bpmnElement="Event_03yf0hk">

        <dc:Bounds x="702" y="99" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_0kfrdnl_di" bpmnElement="StartEvent_1">

        <dc:Bounds x="179" y="99" width="36" height="36" />

      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Event_1v2s3sf_di" bpmnElement="Event_1hgjwbp">

        <dc:Bounds x="562" y="139" width="36" height="36" />

      </bpmndi:BPMNShape>

    </bpmndi:BPMNPlane>

  </bpmndi:BPMNDiagram>

</bpmn:definitions>

Service Task 是以实现 JavaDelegate 接口代码:

package com.bpm.config;

import org.camunda.bpm.engine.RuntimeService;

import org.camunda.bpm.engine.delegate.DelegateExecution;

import org.camunda.bpm.engine.delegate.JavaDelegate;

/**

* 消息启动子流程

* 信号启动子流程

*/

public class InstantiateProcessByMessageDelegate implements JavaDelegate {

    @Override

    public void execute(DelegateExecution execution) throws Exception {

        String type = (String)execution.getVariable("type");

        RuntimeService runtimeService = execution.getProcessEngineServices().getRuntimeService();


        switch (type){

            case "tel”:

                // 消息方式启动子流程

                runtimeService.startProcessInstanceByMessage("telMessage");

                break ;

            case "sign":

                // 信号方式启动子流程

                runtimeService.createSignalEvent("signal").send();

                break;

            default:

                // 消息方式启动子流程

                runtimeService.startProcessInstanceByMessage("pcMessage");

        }

    }

}
举报

相关推荐

0 条评论