demo-process-models/webinar/1-approval-process-two-eyes/1-approval-twoeyes(1).bpmn

192 lines
10 KiB
XML

<?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:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0262drj" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.15.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.19.0">
<bpmn:collaboration id="Collaboration_1xp4lif">
<bpmn:participant id="Participant_0eysqe6" processRef="Process_1w9vqce" />
</bpmn:collaboration>
<bpmn:process id="Process_1w9vqce">
<bpmn:laneSet id="LaneSet_0iixm3c">
<bpmn:lane id="Lane_12bfbfq">
<bpmn:flowNodeRef>Event_1j46dtl</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1b6yy5f</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_0eyho2y" name="Manager">
<bpmn:flowNodeRef>Activity_1hm0gvh</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_1uqog42</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1bommi3</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_08z1s0c</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0ycn1jy</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_09826yr</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:sequenceFlow id="Flow_0kj9uoo" sourceRef="Event_1j46dtl" targetRef="Activity_1b6yy5f" />
<bpmn:startEvent id="Event_1j46dtl">
<bpmn:outgoing>Flow_0kj9uoo</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Activity_1b6yy5f" name="Enter Vacation Details">
<bpmn:extensionElements>
<spiffworkflow:properties>
<spiffworkflow:property name="formJsonSchemaFilename" value="vacation-request-schema.json" />
<spiffworkflow:property name="formUiSchemaFilename" value="vacation-request-uischema.json" />
</spiffworkflow:properties>
<spiffworkflow:preScript>requestor = get_current_user()</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0kj9uoo</bpmn:incoming>
<bpmn:outgoing>Flow_1r664rf</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1r664rf" sourceRef="Activity_1b6yy5f" targetRef="Activity_1hm0gvh" />
<bpmn:userTask id="Activity_1hm0gvh" name="Check Vacation Request">
<bpmn:extensionElements>
<spiffworkflow:postScript>approver = get_current_user()</spiffworkflow:postScript>
<spiffworkflow:instructionsForEndUser>
# Vacation Approval
**{{requestor.display_name}}** is requesting to take off between **{{start_date}}** and **{{end_date}}**.
The Requester provided the following additional information:
&gt; {{ details }}
Please use the form below to approve or deny the request.</spiffworkflow:instructionsForEndUser>
<spiffworkflow:properties>
<spiffworkflow:property name="formJsonSchemaFilename" value="approval-schema.json" />
<spiffworkflow:property name="formUiSchemaFilename" value="approval-uischema.json" />
</spiffworkflow:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1r664rf</bpmn:incoming>
<bpmn:outgoing>Flow_14r1wq7</bpmn:outgoing>
</bpmn:userTask>
<bpmn:exclusiveGateway id="Gateway_1uqog42" name="Vacation Approved?">
<bpmn:incoming>Flow_14r1wq7</bpmn:incoming>
<bpmn:outgoing>Flow_0v0x9fl</bpmn:outgoing>
<bpmn:outgoing>Flow_1jtfo65</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_14r1wq7" sourceRef="Activity_1hm0gvh" targetRef="Gateway_1uqog42" />
<bpmn:sequenceFlow id="Flow_0v0x9fl" name="Yes" sourceRef="Gateway_1uqog42" targetRef="Activity_1bommi3">
<bpmn:conditionExpression>approved</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_1jtfo65" name="No" sourceRef="Gateway_1uqog42" targetRef="Activity_09826yr">
<bpmn:conditionExpression>!approved</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:serviceTask id="Activity_1bommi3" name="Notify Vacation Approved via Slack">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="slack/PostMessage">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="token" type="str" value="&#34;secret:slack_token&#34;" />
<spiffworkflow:parameter id="channel" type="str" value="&#34;slack-connector-testing&#34;" />
<spiffworkflow:parameter id="message" type="str" value="requestor[&#39;display_name&#39;] + &#34;, Your vacation request was approved!&#34;" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0v0x9fl</bpmn:incoming>
<bpmn:outgoing>Flow_1l39le4</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:endEvent id="Event_08z1s0c" name="Vacation Approved">
<bpmn:incoming>Flow_1l39le4</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1l39le4" sourceRef="Activity_1bommi3" targetRef="Event_08z1s0c" />
<bpmn:endEvent id="Event_0ycn1jy" name="Vacation Denied">
<bpmn:incoming>Flow_0piwcat</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0piwcat" sourceRef="Activity_09826yr" targetRef="Event_0ycn1jy" />
<bpmn:serviceTask id="Activity_09826yr" name="Notify Vacation Rejected via Slack">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="slack/PostMessage">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="token" type="str" value="&#34;secret:slack_token&#34;" />
<spiffworkflow:parameter id="channel" type="str" value="&#39;slack-connector-testing&#39;" />
<spiffworkflow:parameter id="message" type="str" value="requestor[&#39;display_name&#39;] + &#34;, Your vacation request was Denied!&#34;" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1jtfo65</bpmn:incoming>
<bpmn:outgoing>Flow_0piwcat</bpmn:outgoing>
</bpmn:serviceTask>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1xp4lif">
<bpmndi:BPMNShape id="Participant_0eysqe6_di" bpmnElement="Participant_0eysqe6" isHorizontal="true">
<dc:Bounds x="100" y="-170" width="878" height="490" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_12bfbfq_di" bpmnElement="Lane_12bfbfq" isHorizontal="true">
<dc:Bounds x="130" y="-170" width="848" height="200" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_0eyho2y_di" bpmnElement="Lane_0eyho2y" isHorizontal="true">
<dc:Bounds x="130" y="30" width="848" height="290" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1j46dtl_di" bpmnElement="Event_1j46dtl">
<dc:Bounds x="162" y="-98" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0tvsrej_di" bpmnElement="Activity_1b6yy5f">
<dc:Bounds x="280" y="-120" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0aleotn_di" bpmnElement="Activity_1hm0gvh">
<dc:Bounds x="423" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1uqog42_di" bpmnElement="Gateway_1uqog42" isMarkerVisible="true">
<dc:Bounds x="575" y="95" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="573" y="65" width="54" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1r4ky3g_di" bpmnElement="Activity_1bommi3">
<dc:Bounds x="680" y="80" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_08z1s0c_di" bpmnElement="Event_08z1s0c">
<dc:Bounds x="842" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="836" y="145" width="48" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0ycn1jy_di" bpmnElement="Event_0ycn1jy">
<dc:Bounds x="842" y="212" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="820" y="255" width="80" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1rwrw48_di" bpmnElement="Activity_09826yr">
<dc:Bounds x="680" y="190" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0kj9uoo_di" bpmnElement="Flow_0kj9uoo">
<di:waypoint x="198" y="-80" />
<di:waypoint x="280" y="-80" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1r664rf_di" bpmnElement="Flow_1r664rf">
<di:waypoint x="380" y="-80" />
<di:waypoint x="400" y="-80" />
<di:waypoint x="400" y="120" />
<di:waypoint x="423" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14r1wq7_di" bpmnElement="Flow_14r1wq7">
<di:waypoint x="523" y="120" />
<di:waypoint x="575" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0v0x9fl_di" bpmnElement="Flow_0v0x9fl">
<di:waypoint x="625" y="120" />
<di:waypoint x="680" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="643" y="102" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1jtfo65_di" bpmnElement="Flow_1jtfo65">
<di:waypoint x="600" y="145" />
<di:waypoint x="600" y="230" />
<di:waypoint x="680" y="230" />
<bpmndi:BPMNLabel>
<dc:Bounds x="608" y="185" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1l39le4_di" bpmnElement="Flow_1l39le4">
<di:waypoint x="780" y="120" />
<di:waypoint x="842" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0piwcat_di" bpmnElement="Flow_0piwcat">
<di:waypoint x="780" y="230" />
<di:waypoint x="842" y="230" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>