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 & 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 & 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 < 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>