dodil/erp-method

modules/hr/signoff/hr/hr_step.bpmn

<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dodil="https://git.dodil.io/dodil/erp-platform/bpmn/1" id="Definitions_hr_v4" name="People, starters &amp; leavers processes" targetNamespace="https://git.dodil.io/dodil/erp-platform/processes" exporter="erp-platform erp-compose bpmn" exporterVersion="1">
 <bpmn:collaboration id="Collaboration_hr_v4">
  <bpmn:documentation>People, starters &amp; leavers: one pool per entity lifecycle, generated from module.yaml.</bpmn:documentation>
  <bpmn:participant id="Participant_hr_step" name="Step" processRef="Process_hr_step_v4" />
 </bpmn:collaboration>
 <bpmn:process id="Process_hr_step_v4" name="Step" isExecutable="false">
  <bpmn:documentation>Lifecycle of the step, generated from module.yaml by erp-compose bpmn; change the workflow there, not this file. States: pending, waiting, done, skipped, cancelled. Note: overdue = due_at &lt; now and not done, derived; a done step is never re-timed and never acts again. An action with no provider is a manual task from expansion, with the same kind and the same input. v2: a step with outcomes (the outplacement offer: accepted / declined) reaches done only WITH one of them, kept on the step</bpmn:documentation>
  <bpmn:laneSet id="LaneSet_step">
   <bpmn:lane id="Lane_step_system" name="The system">
    <bpmn:flowNodeRef>Start_step</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_step_pending_to_waiting</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_step_pending_or_waiting_to_skipped</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Gateway_step_pending__if</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>End_step_skipped</bpmn:flowNodeRef>
   </bpmn:lane>
   <bpmn:lane id="Lane_step_assignee" name="Anyone a step is assigned to (a buddy, a takeover, a director)">
    <bpmn:flowNodeRef>Task_step_pending_or_waiting_to_done</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Gateway_step_waiting__if</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>End_step_done</bpmn:flowNodeRef>
   </bpmn:lane>
   <bpmn:lane id="Lane_step_hr_admin" name="Operations / HR">
    <bpmn:flowNodeRef>Task_step_pending_or_waiting_to_cancelled</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>End_step_cancelled</bpmn:flowNodeRef>
   </bpmn:lane>
  </bpmn:laneSet>
  <bpmn:startEvent id="Start_step" name="Step pending">
   <bpmn:outgoing>Flow_Start_step__Gateway_step_pending__if</bpmn:outgoing>
  </bpmn:startEvent>
  <bpmn:serviceTask id="Task_step_pending_to_waiting" name="Put the step on wait" dodil:step="step_pending_to_waiting" implementation="##unspecified">
   <bpmn:documentation>By: The system. From pending to waiting. When: due and its dependencies done; for an approval, draft, document or in_progress action, waiting on someone or something. Effect: shown on My tasks for its group.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_step_pending__if__Task_step_pending_to_waiting</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_step_pending_to_waiting__Gateway_step_waiting__if</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:task id="Task_step_pending_or_waiting_to_done" name="Complete the step" dodil:step="step_pending_or_waiting_to_done">
   <bpmn:documentation>By: Anyone a step is assigned to (a buddy, a takeover, a director) or The system. From pending / waiting to done. When: task completed / capability done / approval granted / contract signed / draft approved. Effect: result and provider_ref stored; dependants become due.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_done</bpmn:incoming>
   <bpmn:incoming>Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_done</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_step_pending_or_waiting_to_done__End_step_done</bpmn:outgoing>
  </bpmn:task>
  <bpmn:serviceTask id="Task_step_pending_or_waiting_to_skipped" name="Skip the step" dodil:step="step_pending_or_waiting_to_skipped" implementation="##unspecified">
   <bpmn:documentation>By: The system. From pending / waiting to skipped. When: its condition is false for this person. Effect: recorded with the condition.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_skipped</bpmn:incoming>
   <bpmn:incoming>Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_skipped</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_step_pending_or_waiting_to_skipped__End_step_skipped</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:userTask id="Task_step_pending_or_waiting_to_cancelled" name="Cancel the step" dodil:step="step_pending_or_waiting_to_cancelled">
   <bpmn:documentation>By: Operations / HR or IT / ops. From pending / waiting to cancelled. When: run cancelled, or an approval refused.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_cancelled</bpmn:incoming>
   <bpmn:incoming>Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_cancelled</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_step_pending_or_waiting_to_cancelled__End_step_cancelled</bpmn:outgoing>
  </bpmn:userTask>
  <bpmn:exclusiveGateway id="Gateway_step_pending__if" name="Step pending: what next?">
   <bpmn:incoming>Flow_Start_step__Gateway_step_pending__if</bpmn:incoming>
   <bpmn:outgoing>Flow_Gateway_step_pending__if__Task_step_pending_to_waiting</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_done</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_skipped</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_cancelled</bpmn:outgoing>
  </bpmn:exclusiveGateway>
  <bpmn:exclusiveGateway id="Gateway_step_waiting__if" name="Step waiting: what next?">
   <bpmn:incoming>Flow_Task_step_pending_to_waiting__Gateway_step_waiting__if</bpmn:incoming>
   <bpmn:outgoing>Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_done</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_skipped</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_cancelled</bpmn:outgoing>
  </bpmn:exclusiveGateway>
  <bpmn:endEvent id="End_step_done" name="Step done">
   <bpmn:incoming>Flow_Task_step_pending_or_waiting_to_done__End_step_done</bpmn:incoming>
  </bpmn:endEvent>
  <bpmn:endEvent id="End_step_skipped" name="Step skipped">
   <bpmn:incoming>Flow_Task_step_pending_or_waiting_to_skipped__End_step_skipped</bpmn:incoming>
  </bpmn:endEvent>
  <bpmn:endEvent id="End_step_cancelled" name="Step cancelled">
   <bpmn:incoming>Flow_Task_step_pending_or_waiting_to_cancelled__End_step_cancelled</bpmn:incoming>
  </bpmn:endEvent>
  <bpmn:sequenceFlow id="Flow_Gateway_step_pending__if__Task_step_pending_to_waiting" sourceRef="Gateway_step_pending__if" targetRef="Task_step_pending_to_waiting" />
  <bpmn:sequenceFlow id="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_done" sourceRef="Gateway_step_pending__if" targetRef="Task_step_pending_or_waiting_to_done" />
  <bpmn:sequenceFlow id="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_skipped" sourceRef="Gateway_step_pending__if" targetRef="Task_step_pending_or_waiting_to_skipped" />
  <bpmn:sequenceFlow id="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_cancelled" sourceRef="Gateway_step_pending__if" targetRef="Task_step_pending_or_waiting_to_cancelled" />
  <bpmn:sequenceFlow id="Flow_Start_step__Gateway_step_pending__if" sourceRef="Start_step" targetRef="Gateway_step_pending__if" />
  <bpmn:sequenceFlow id="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_done" sourceRef="Gateway_step_waiting__if" targetRef="Task_step_pending_or_waiting_to_done" />
  <bpmn:sequenceFlow id="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_skipped" sourceRef="Gateway_step_waiting__if" targetRef="Task_step_pending_or_waiting_to_skipped" />
  <bpmn:sequenceFlow id="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_cancelled" sourceRef="Gateway_step_waiting__if" targetRef="Task_step_pending_or_waiting_to_cancelled" />
  <bpmn:sequenceFlow id="Flow_Task_step_pending_to_waiting__Gateway_step_waiting__if" sourceRef="Task_step_pending_to_waiting" targetRef="Gateway_step_waiting__if" />
  <bpmn:sequenceFlow id="Flow_Task_step_pending_or_waiting_to_done__End_step_done" sourceRef="Task_step_pending_or_waiting_to_done" targetRef="End_step_done" />
  <bpmn:sequenceFlow id="Flow_Task_step_pending_or_waiting_to_skipped__End_step_skipped" sourceRef="Task_step_pending_or_waiting_to_skipped" targetRef="End_step_skipped" />
  <bpmn:sequenceFlow id="Flow_Task_step_pending_or_waiting_to_cancelled__End_step_cancelled" sourceRef="Task_step_pending_or_waiting_to_cancelled" targetRef="End_step_cancelled" />
 </bpmn:process>
 <bpmndi:BPMNDiagram id="BPMNDiagram_hr_v4">
  <bpmndi:BPMNPlane id="BPMNPlane_hr_v4" bpmnElement="Collaboration_hr_v4">
   <bpmndi:BPMNShape id="Participant_hr_step_di" bpmnElement="Participant_hr_step" isHorizontal="true">
    <dc:Bounds x="0" y="0" width="790" height="660" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_step_system_di" bpmnElement="Lane_step_system" isHorizontal="true">
    <dc:Bounds x="30" y="0" width="760" height="260" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_step_assignee_di" bpmnElement="Lane_step_assignee" isHorizontal="true">
    <dc:Bounds x="30" y="260" width="760" height="260" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_step_hr_admin_di" bpmnElement="Lane_step_hr_admin" isHorizontal="true">
    <dc:Bounds x="30" y="520" width="760" height="140" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Start_step_di" bpmnElement="Start_step">
    <dc:Bounds x="157" y="42" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_step_pending_to_waiting_di" bpmnElement="Task_step_pending_to_waiting">
    <dc:Bounds x="465" y="20" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_step_pending_or_waiting_to_done_di" bpmnElement="Task_step_pending_or_waiting_to_done">
    <dc:Bounds x="465" y="280" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_step_pending_or_waiting_to_skipped_di" bpmnElement="Task_step_pending_or_waiting_to_skipped">
    <dc:Bounds x="465" y="140" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_step_pending_or_waiting_to_cancelled_di" bpmnElement="Task_step_pending_or_waiting_to_cancelled">
    <dc:Bounds x="465" y="540" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Gateway_step_pending__if_di" bpmnElement="Gateway_step_pending__if">
    <dc:Bounds x="320" y="35" width="50" height="50" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Gateway_step_waiting__if_di" bpmnElement="Gateway_step_waiting__if">
    <dc:Bounds x="660" y="295" width="50" height="50" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="End_step_done_di" bpmnElement="End_step_done">
    <dc:Bounds x="667" y="422" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="End_step_skipped_di" bpmnElement="End_step_skipped">
    <dc:Bounds x="667" y="42" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="End_step_cancelled_di" bpmnElement="End_step_cancelled">
    <dc:Bounds x="667" y="562" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_pending__if__Task_step_pending_to_waiting_di" bpmnElement="Flow_Gateway_step_pending__if__Task_step_pending_to_waiting">
    <di:waypoint x="370" y="60" />
    <di:waypoint x="465" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_done_di" bpmnElement="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_done">
    <di:waypoint x="370" y="60" />
    <di:waypoint x="440" y="60" />
    <di:waypoint x="440" y="320" />
    <di:waypoint x="465" y="320" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_skipped_di" bpmnElement="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_skipped">
    <di:waypoint x="370" y="60" />
    <di:waypoint x="440" y="60" />
    <di:waypoint x="440" y="180" />
    <di:waypoint x="465" y="180" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_cancelled_di" bpmnElement="Flow_Gateway_step_pending__if__Task_step_pending_or_waiting_to_cancelled">
    <di:waypoint x="370" y="60" />
    <di:waypoint x="440" y="60" />
    <di:waypoint x="440" y="580" />
    <di:waypoint x="465" y="580" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Start_step__Gateway_step_pending__if_di" bpmnElement="Flow_Start_step__Gateway_step_pending__if">
    <di:waypoint x="193" y="60" />
    <di:waypoint x="320" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_done_di" bpmnElement="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_done">
    <di:waypoint x="685" y="345" />
    <di:waypoint x="685" y="375" />
    <di:waypoint x="515" y="375" />
    <di:waypoint x="515" y="360" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_skipped_di" bpmnElement="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_skipped">
    <di:waypoint x="685" y="345" />
    <di:waypoint x="685" y="366" />
    <di:waypoint x="515" y="366" />
    <di:waypoint x="515" y="220" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_cancelled_di" bpmnElement="Flow_Gateway_step_waiting__if__Task_step_pending_or_waiting_to_cancelled">
    <di:waypoint x="685" y="345" />
    <di:waypoint x="685" y="647" />
    <di:waypoint x="515" y="647" />
    <di:waypoint x="515" y="620" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_step_pending_to_waiting__Gateway_step_waiting__if_di" bpmnElement="Flow_Task_step_pending_to_waiting__Gateway_step_waiting__if">
    <di:waypoint x="565" y="60" />
    <di:waypoint x="635" y="60" />
    <di:waypoint x="635" y="320" />
    <di:waypoint x="660" y="320" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_step_pending_or_waiting_to_done__End_step_done_di" bpmnElement="Flow_Task_step_pending_or_waiting_to_done__End_step_done">
    <di:waypoint x="565" y="320" />
    <di:waypoint x="642" y="320" />
    <di:waypoint x="642" y="440" />
    <di:waypoint x="667" y="440" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_step_pending_or_waiting_to_skipped__End_step_skipped_di" bpmnElement="Flow_Task_step_pending_or_waiting_to_skipped__End_step_skipped">
    <di:waypoint x="565" y="180" />
    <di:waypoint x="642" y="180" />
    <di:waypoint x="642" y="60" />
    <di:waypoint x="667" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_step_pending_or_waiting_to_cancelled__End_step_cancelled_di" bpmnElement="Flow_Task_step_pending_or_waiting_to_cancelled__End_step_cancelled">
    <di:waypoint x="565" y="580" />
    <di:waypoint x="667" y="580" />
   </bpmndi:BPMNEdge>
  </bpmndi:BPMNPlane>
 </bpmndi:BPMNDiagram>
</bpmn:definitions>