dodil/erp-method

modules/hr/signoff/hr/hr_offboarding_playbook.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_offboarding_playbook" name="Offboarding playbook" processRef="Process_hr_offboarding_playbook_v4" />
 </bpmn:collaboration>
 <bpmn:process id="Process_hr_offboarding_playbook_v4" name="Offboarding playbook" isExecutable="false">
  <bpmn:documentation>Lifecycle of the offboarding playbook, generated from module.yaml by erp-compose bpmn; change the workflow there, not this file. States: standard, redundancy, retirement. Note: v2 PROCESS CHANGE for sign-off: not a state machine on a row but which checklist a leaver gets. The source is the playbook rows (gb pack); the signed artifacts are signoff/hr/employee-offboarding.bpmn and signoff/hr/employee-retirement.bpmn (show_playbook_bpmn). Signed by seemo 2026-10-25</bpmn:documentation>
  <bpmn:laneSet id="LaneSet_offboarding_playbook">
   <bpmn:lane id="Lane_offboarding_playbook_system" name="The system">
    <bpmn:flowNodeRef>Start_offboarding_playbook</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_offboarding_playbook_none_to_standard</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_offboarding_playbook_none_to_redundancy</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_offboarding_playbook_none_to_retirement</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Gateway_offboarding_playbook_none__if</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>End_offboarding_playbook_standard</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>End_offboarding_playbook_redundancy</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>End_offboarding_playbook_retirement</bpmn:flowNodeRef>
   </bpmn:lane>
  </bpmn:laneSet>
  <bpmn:startEvent id="Start_offboarding_playbook" name="Offboarding playbook needed">
   <bpmn:outgoing>Flow_Start_offboarding_playbook__Gateway_offboarding_playbook_none__if</bpmn:outgoing>
  </bpmn:startEvent>
  <bpmn:serviceTask id="Task_offboarding_playbook_none_to_standard" name="Move the offboarding playbook to standard" dodil:step="offboarding_playbook_none_to_standard" implementation="##unspecified">
   <bpmn:documentation>By: The system. From none to standard. When: a Left event: the employee offboarding playbook. Effect: the gb steps 1–13: handover, approvals, access removal at last day 17:30, the ERP sign-in revoked (HR-54), deletion after approval.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_standard</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_offboarding_playbook_none_to_standard__End_offboarding_playbook_standard</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:serviceTask id="Task_offboarding_playbook_none_to_redundancy" name="Move the offboarding playbook to redundancy" dodil:step="offboarding_playbook_none_to_redundancy" implementation="##unspecified">
   <bpmn:documentation>By: The system. From none to redundancy. When: the reason is redundancy (condition reason_is). Effect: the same run plus offer_outplacement (HR-42, outcome accepted or declined).</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_redundancy</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_offboarding_playbook_none_to_redundancy__End_offboarding_playbook_redundancy</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:serviceTask id="Task_offboarding_playbook_none_to_retirement" name="Move the offboarding playbook to retirement" dodil:step="offboarding_playbook_none_to_retirement" implementation="##unspecified">
   <bpmn:documentation>By: The system. From none to retirement. When: the reason is retirement: the playbook employee-retirement, which names the reason. Effect: the standard steps plus pension_notice, knowledge_handover, long_service_recognition (HR-43).</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_retirement</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_offboarding_playbook_none_to_retirement__End_offboarding_playbook_retirement</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:exclusiveGateway id="Gateway_offboarding_playbook_none__if" name="New offboarding playbook?">
   <bpmn:incoming>Flow_Start_offboarding_playbook__Gateway_offboarding_playbook_none__if</bpmn:incoming>
   <bpmn:outgoing>Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_standard</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_redundancy</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_retirement</bpmn:outgoing>
  </bpmn:exclusiveGateway>
  <bpmn:endEvent id="End_offboarding_playbook_standard" name="Offboarding playbook standard">
   <bpmn:incoming>Flow_Task_offboarding_playbook_none_to_standard__End_offboarding_playbook_standard</bpmn:incoming>
  </bpmn:endEvent>
  <bpmn:endEvent id="End_offboarding_playbook_redundancy" name="Offboarding playbook redundancy">
   <bpmn:incoming>Flow_Task_offboarding_playbook_none_to_redundancy__End_offboarding_playbook_redundancy</bpmn:incoming>
  </bpmn:endEvent>
  <bpmn:endEvent id="End_offboarding_playbook_retirement" name="Offboarding playbook retirement">
   <bpmn:incoming>Flow_Task_offboarding_playbook_none_to_retirement__End_offboarding_playbook_retirement</bpmn:incoming>
  </bpmn:endEvent>
  <bpmn:sequenceFlow id="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_standard" sourceRef="Gateway_offboarding_playbook_none__if" targetRef="Task_offboarding_playbook_none_to_standard" />
  <bpmn:sequenceFlow id="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_redundancy" sourceRef="Gateway_offboarding_playbook_none__if" targetRef="Task_offboarding_playbook_none_to_redundancy" />
  <bpmn:sequenceFlow id="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_retirement" sourceRef="Gateway_offboarding_playbook_none__if" targetRef="Task_offboarding_playbook_none_to_retirement" />
  <bpmn:sequenceFlow id="Flow_Start_offboarding_playbook__Gateway_offboarding_playbook_none__if" sourceRef="Start_offboarding_playbook" targetRef="Gateway_offboarding_playbook_none__if" />
  <bpmn:sequenceFlow id="Flow_Task_offboarding_playbook_none_to_standard__End_offboarding_playbook_standard" sourceRef="Task_offboarding_playbook_none_to_standard" targetRef="End_offboarding_playbook_standard" />
  <bpmn:sequenceFlow id="Flow_Task_offboarding_playbook_none_to_redundancy__End_offboarding_playbook_redundancy" sourceRef="Task_offboarding_playbook_none_to_redundancy" targetRef="End_offboarding_playbook_redundancy" />
  <bpmn:sequenceFlow id="Flow_Task_offboarding_playbook_none_to_retirement__End_offboarding_playbook_retirement" sourceRef="Task_offboarding_playbook_none_to_retirement" targetRef="End_offboarding_playbook_retirement" />
 </bpmn:process>
 <bpmndi:BPMNDiagram id="BPMNDiagram_hr_v4">
  <bpmndi:BPMNPlane id="BPMNPlane_hr_v4" bpmnElement="Collaboration_hr_v4">
   <bpmndi:BPMNShape id="Participant_hr_offboarding_playbook_di" bpmnElement="Participant_hr_offboarding_playbook" isHorizontal="true">
    <dc:Bounds x="0" y="0" width="790" height="380" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_offboarding_playbook_system_di" bpmnElement="Lane_offboarding_playbook_system" isHorizontal="true">
    <dc:Bounds x="30" y="0" width="760" height="380" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Start_offboarding_playbook_di" bpmnElement="Start_offboarding_playbook">
    <dc:Bounds x="157" y="42" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_offboarding_playbook_none_to_standard_di" bpmnElement="Task_offboarding_playbook_none_to_standard">
    <dc:Bounds x="465" y="20" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_offboarding_playbook_none_to_redundancy_di" bpmnElement="Task_offboarding_playbook_none_to_redundancy">
    <dc:Bounds x="465" y="140" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_offboarding_playbook_none_to_retirement_di" bpmnElement="Task_offboarding_playbook_none_to_retirement">
    <dc:Bounds x="465" y="260" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Gateway_offboarding_playbook_none__if_di" bpmnElement="Gateway_offboarding_playbook_none__if">
    <dc:Bounds x="320" y="35" width="50" height="50" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="End_offboarding_playbook_standard_di" bpmnElement="End_offboarding_playbook_standard">
    <dc:Bounds x="667" y="42" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="End_offboarding_playbook_redundancy_di" bpmnElement="End_offboarding_playbook_redundancy">
    <dc:Bounds x="667" y="162" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="End_offboarding_playbook_retirement_di" bpmnElement="End_offboarding_playbook_retirement">
    <dc:Bounds x="667" y="282" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNEdge id="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_standard_di" bpmnElement="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_standard">
    <di:waypoint x="370" y="60" />
    <di:waypoint x="465" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_redundancy_di" bpmnElement="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_redundancy">
    <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_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_retirement_di" bpmnElement="Flow_Gateway_offboarding_playbook_none__if__Task_offboarding_playbook_none_to_retirement">
    <di:waypoint x="370" y="60" />
    <di:waypoint x="440" y="60" />
    <di:waypoint x="440" y="300" />
    <di:waypoint x="465" y="300" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Start_offboarding_playbook__Gateway_offboarding_playbook_none__if_di" bpmnElement="Flow_Start_offboarding_playbook__Gateway_offboarding_playbook_none__if">
    <di:waypoint x="193" y="60" />
    <di:waypoint x="320" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_offboarding_playbook_none_to_standard__End_offboarding_playbook_standard_di" bpmnElement="Flow_Task_offboarding_playbook_none_to_standard__End_offboarding_playbook_standard">
    <di:waypoint x="565" y="60" />
    <di:waypoint x="667" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_offboarding_playbook_none_to_redundancy__End_offboarding_playbook_redundancy_di" bpmnElement="Flow_Task_offboarding_playbook_none_to_redundancy__End_offboarding_playbook_redundancy">
    <di:waypoint x="565" y="180" />
    <di:waypoint x="667" y="180" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_offboarding_playbook_none_to_retirement__End_offboarding_playbook_retirement_di" bpmnElement="Flow_Task_offboarding_playbook_none_to_retirement__End_offboarding_playbook_retirement">
    <di:waypoint x="565" y="300" />
    <di:waypoint x="667" y="300" />
   </bpmndi:BPMNEdge>
  </bpmndi:BPMNPlane>
 </bpmndi:BPMNDiagram>
</bpmn:definitions>