learning_record_doc/工作流/camunda/BPMN-demo.md
2024-03-24 23:02:57 +08:00

8.8 KiB

1.任务BPMN.xml示例

1.1.用户任务

1.1.1 基础示例 v7.17

image-20240111222326661

<?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: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_0sa42zq" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.19.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
  <bpmn:process id="Process_1a7jmao" name="员工请假" isExecutable="true" camunda:historyTimeToLive="180">
    <bpmn:startEvent id="StartEvent_1" name="开始" camunda:initiator="starter">
      <bpmn:outgoing>Flow_1r002sr</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_1r002sr" sourceRef="StartEvent_1" targetRef="Activity_0u3op74" />
    <bpmn:userTask id="Activity_10scc5t" name="HR审批" camunda:assignee="liwei">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="comment" label="评论" type="string" defaultValue="同意" />
        </camunda:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0elpzm6</bpmn:incoming>
      <bpmn:outgoing>Flow_0r73nc4</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:sequenceFlow id="Flow_0elpzm6" sourceRef="Activity_0u3op74" targetRef="Activity_10scc5t" />
    <bpmn:userTask id="Activity_0u3op74" name="员工请假" camunda:assignee="${starter}">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="name" label="姓名" type="string" defaultValue="${starter}" />
          <camunda:formField id="reason" label="原因" type="string" />
          <camunda:formField id="leaveday" label="请假天数" type="long" />
        </camunda:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_1r002sr</bpmn:incoming>
      <bpmn:outgoing>Flow_0elpzm6</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:endEvent id="Event_1ns9u1d" name="结束">
      <bpmn:incoming>Flow_0r73nc4</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_0r73nc4" sourceRef="Activity_10scc5t" targetRef="Event_1ns9u1d" />
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1a7jmao">
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
        <dc:Bounds x="179" y="89" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="186" y="132" width="22" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_10scc5t_di" bpmnElement="Activity_10scc5t">
        <dc:Bounds x="430" y="67" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1534l1c_di" bpmnElement="Activity_0u3op74">
        <dc:Bounds x="270" y="67" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1ns9u1d_di" bpmnElement="Event_1ns9u1d">
        <dc:Bounds x="592" y="89" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="599" y="132" width="22" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="Flow_1r002sr_di" bpmnElement="Flow_1r002sr">
        <di:waypoint x="215" y="107" />
        <di:waypoint x="270" y="107" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0elpzm6_di" bpmnElement="Flow_0elpzm6">
        <di:waypoint x="370" y="107" />
        <di:waypoint x="430" y="107" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0r73nc4_di" bpmnElement="Flow_0r73nc4">
        <di:waypoint x="530" y="107" />
        <di:waypoint x="592" y="107" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

1.2.服务任务

1.2.1基础示例v7.17

image-20240111222451312

<?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: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_1iph4mz" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.19.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
  <bpmn:process id="Process_0wfnslr" name="业务任务示例" isExecutable="true" camunda:versionTag="2.0">
    <bpmn:startEvent id="StartEvent_1">
      <bpmn:outgoing>Flow_1v28prw</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_1v28prw" sourceRef="StartEvent_1" targetRef="Activity_1ktdg88" />
    <bpmn:serviceTask id="Activity_1ktdg88" name="预约修理家电" camunda:class="com.ds.camunda.serviceTask.ReserveRepair">
      <bpmn:extensionElements />
      <bpmn:incoming>Flow_1v28prw</bpmn:incoming>
      <bpmn:outgoing>Flow_1cnmfsg</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:sequenceFlow id="Flow_1cnmfsg" sourceRef="Activity_1ktdg88" targetRef="Activity_18rd76k" />
    <bpmn:serviceTask id="Activity_18rd76k" name="师傅上门修理" camunda:delegateExpression="${doingRepair}">
      <bpmn:incoming>Flow_1cnmfsg</bpmn:incoming>
      <bpmn:outgoing>Flow_0x7fg4i</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:sequenceFlow id="Flow_0x7fg4i" sourceRef="Activity_18rd76k" targetRef="Activity_0524lzv" />
    <bpmn:serviceTask id="Activity_0524lzv" name="公司电话回访" camunda:expression="${telCall.doCall(execution)}" camunda:resultVariable="score">
      <bpmn:incoming>Flow_0x7fg4i</bpmn:incoming>
      <bpmn:outgoing>Flow_01d0tm9</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:sequenceFlow id="Flow_01d0tm9" sourceRef="Activity_0524lzv" targetRef="Activity_09ko96y" />
    <bpmn:serviceTask id="Activity_09ko96y" name="查看评分" camunda:expression="#{telCall.getScore(execution)}">
      <bpmn:incoming>Flow_01d0tm9</bpmn:incoming>
      <bpmn:outgoing>Flow_0ygzqio</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:endEvent id="Event_1b1ys82">
      <bpmn:incoming>Flow_0ygzqio</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_0ygzqio" sourceRef="Activity_09ko96y" targetRef="Event_1b1ys82" />
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_0wfnslr">
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
        <dc:Bounds x="179" y="99" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0ph1kj9_di" bpmnElement="Activity_1ktdg88">
        <dc:Bounds x="260" y="77" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1q8lzpd_di" bpmnElement="Activity_18rd76k">
        <dc:Bounds x="430" y="77" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0ymccd1_di" bpmnElement="Activity_0524lzv">
        <dc:Bounds x="590" y="77" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_038c0up_di" bpmnElement="Activity_09ko96y">
        <dc:Bounds x="750" y="77" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1b1ys82_di" bpmnElement="Event_1b1ys82">
        <dc:Bounds x="912" y="99" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="Flow_1v28prw_di" bpmnElement="Flow_1v28prw">
        <di:waypoint x="215" y="117" />
        <di:waypoint x="260" y="117" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1cnmfsg_di" bpmnElement="Flow_1cnmfsg">
        <di:waypoint x="360" y="117" />
        <di:waypoint x="430" y="117" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0x7fg4i_di" bpmnElement="Flow_0x7fg4i">
        <di:waypoint x="530" y="117" />
        <di:waypoint x="590" y="117" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_01d0tm9_di" bpmnElement="Flow_01d0tm9">
        <di:waypoint x="690" y="117" />
        <di:waypoint x="750" y="117" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0ygzqio_di" bpmnElement="Flow_0ygzqio">
        <di:waypoint x="850" y="117" />
        <di:waypoint x="912" y="117" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

1.3.多实例任务

1.4.脚本任务

1.5.发送任务&接收任务