dodil/erp-method

modules/gl/signoff/gl/history/gl_close_run.v2.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_gl_v4" name="Accounting processes" targetNamespace="https://git.dodil.io/dodil/erp-platform/processes" exporter="erp-platform erp-compose bpmn" exporterVersion="1">
 <bpmn:collaboration id="Collaboration_gl_v4">
  <bpmn:documentation>Accounting: one pool per entity lifecycle, generated from module.yaml.</bpmn:documentation>
  <bpmn:participant id="Participant_gl_close_run" name="Close run" processRef="Process_gl_close_run_v4" />
 </bpmn:collaboration>
 <bpmn:process id="Process_gl_close_run_v4" name="Close run" isExecutable="false">
  <bpmn:documentation>Lifecycle of the close run, generated from module.yaml by erp-compose bpmn; change the workflow there, not this file. States: in_progress, ready, signed.</bpmn:documentation>
  <bpmn:laneSet id="LaneSet_close_run">
   <bpmn:lane id="Lane_close_run_accountant" name="Accountant / finance manager">
    <bpmn:flowNodeRef>Start_close_run</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_start_close_run</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_skip_close_task</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_sign_off_close</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Gateway_close_run_ready__if</bpmn:flowNodeRef>
   </bpmn:lane>
   <bpmn:lane id="Lane_close_run_bookkeeper" name="Bookkeeper">
    <bpmn:flowNodeRef>Task_complete_close_task</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Gateway_complete_close_task__if</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Gateway_complete_close_task__if_end</bpmn:flowNodeRef>
   </bpmn:lane>
   <bpmn:lane id="Lane_close_run_system" name="The system">
    <bpmn:flowNodeRef>Task_mark_close_ready</bpmn:flowNodeRef>
    <bpmn:flowNodeRef>Task_invalidate_close_signoff</bpmn:flowNodeRef>
   </bpmn:lane>
  </bpmn:laneSet>
  <bpmn:startEvent id="Start_close_run" name="Close run needed">
   <bpmn:outgoing>Flow_Start_close_run__Task_start_close_run</bpmn:outgoing>
  </bpmn:startEvent>
  <bpmn:userTask id="Task_start_close_run" name="Start the close run" dodil:step="start_close_run">
   <bpmn:documentation>By: Accountant / finance manager. From none to in_progress. When: a task list exists for the company and the kind (month or year end). Effect: tasks instantiated with owner, due business day and dependencies.</bpmn:documentation>
   <bpmn:incoming>Flow_Start_close_run__Task_start_close_run</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_start_close_run__Gateway_complete_close_task__if</bpmn:outgoing>
  </bpmn:userTask>
  <bpmn:userTask id="Task_complete_close_task" name="Complete a manual task" dodil:step="complete_close_task">
   <bpmn:documentation>By: Bookkeeper or Controller (management accountant) or Accountant / finance manager. From in_progress to in_progress. When: the tasks it depends on are done. Effect: who, when and the note or evidence key recorded.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_complete_close_task__if__Task_complete_close_task</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_complete_close_task__Gateway_complete_close_task__if_end</bpmn:outgoing>
  </bpmn:userTask>
  <bpmn:userTask id="Task_skip_close_task" name="Mark a task not applicable" dodil:step="skip_close_task">
   <bpmn:documentation>By: Accountant / finance manager. From in_progress to in_progress. Requires: reason.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_complete_close_task__if_end__Task_skip_close_task</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_skip_close_task__Task_mark_close_ready</bpmn:outgoing>
  </bpmn:userTask>
  <bpmn:serviceTask id="Task_mark_close_ready" name="All tasks done" dodil:step="mark_close_ready" implementation="##unspecified">
   <bpmn:documentation>By: The system. From in_progress to ready. When: every task done or not applicable; every system task's gate met on read. Effect: the trial balance digest taken.</bpmn:documentation>
   <bpmn:incoming>Flow_Task_skip_close_task__Task_mark_close_ready</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_mark_close_ready__Gateway_close_run_ready__if</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:userTask id="Task_sign_off_close" name="Sign off the close" dodil:step="sign_off_close" dodil:approval="true">
   <bpmn:documentation>By: Accountant / finance manager. From ready to signed. When: the signer is not the run's starter nor a task's completer (email AND sub); the digest unchanged. Effect: who, when and the digest recorded; close_period may proceed. An approval.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_close_run_ready__if__Task_sign_off_close</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_sign_off_close__Task_invalidate_close_signoff</bpmn:outgoing>
  </bpmn:userTask>
  <bpmn:serviceTask id="Task_invalidate_close_signoff" name="The sign-off goes stale" dodil:step="invalidate_close_signoff" implementation="##unspecified">
   <bpmn:documentation>By: The system. From ready / signed to in_progress. When: a posting landed in the period after the digest. Effect: the run shows what changed and asks for a new sign-off.</bpmn:documentation>
   <bpmn:incoming>Flow_Gateway_close_run_ready__if__Task_invalidate_close_signoff</bpmn:incoming>
   <bpmn:incoming>Flow_Task_sign_off_close__Task_invalidate_close_signoff</bpmn:incoming>
   <bpmn:outgoing>Flow_Task_invalidate_close_signoff__Gateway_complete_close_task__if</bpmn:outgoing>
  </bpmn:serviceTask>
  <bpmn:exclusiveGateway id="Gateway_complete_close_task__if" name="the tasks it depends on are done?">
   <bpmn:incoming>Flow_Task_start_close_run__Gateway_complete_close_task__if</bpmn:incoming>
   <bpmn:incoming>Flow_Task_invalidate_close_signoff__Gateway_complete_close_task__if</bpmn:incoming>
   <bpmn:outgoing>Flow_Gateway_complete_close_task__if__Task_complete_close_task</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_complete_close_task__if__Gateway_complete_close_task__if_end</bpmn:outgoing>
  </bpmn:exclusiveGateway>
  <bpmn:exclusiveGateway id="Gateway_complete_close_task__if_end">
   <bpmn:incoming>Flow_Gateway_complete_close_task__if__Gateway_complete_close_task__if_end</bpmn:incoming>
   <bpmn:incoming>Flow_Task_complete_close_task__Gateway_complete_close_task__if_end</bpmn:incoming>
   <bpmn:outgoing>Flow_Gateway_complete_close_task__if_end__Task_skip_close_task</bpmn:outgoing>
  </bpmn:exclusiveGateway>
  <bpmn:exclusiveGateway id="Gateway_close_run_ready__if" name="Close run ready: what next?">
   <bpmn:incoming>Flow_Task_mark_close_ready__Gateway_close_run_ready__if</bpmn:incoming>
   <bpmn:outgoing>Flow_Gateway_close_run_ready__if__Task_sign_off_close</bpmn:outgoing>
   <bpmn:outgoing>Flow_Gateway_close_run_ready__if__Task_invalidate_close_signoff</bpmn:outgoing>
  </bpmn:exclusiveGateway>
  <bpmn:sequenceFlow id="Flow_Start_close_run__Task_start_close_run" sourceRef="Start_close_run" targetRef="Task_start_close_run" />
  <bpmn:sequenceFlow id="Flow_Gateway_complete_close_task__if__Task_complete_close_task" name="the tasks it depends on are done" sourceRef="Gateway_complete_close_task__if" targetRef="Task_complete_close_task" />
  <bpmn:sequenceFlow id="Flow_Gateway_complete_close_task__if__Gateway_complete_close_task__if_end" name="otherwise" sourceRef="Gateway_complete_close_task__if" targetRef="Gateway_complete_close_task__if_end" />
  <bpmn:sequenceFlow id="Flow_Task_complete_close_task__Gateway_complete_close_task__if_end" sourceRef="Task_complete_close_task" targetRef="Gateway_complete_close_task__if_end" />
  <bpmn:sequenceFlow id="Flow_Gateway_complete_close_task__if_end__Task_skip_close_task" sourceRef="Gateway_complete_close_task__if_end" targetRef="Task_skip_close_task" />
  <bpmn:sequenceFlow id="Flow_Task_skip_close_task__Task_mark_close_ready" sourceRef="Task_skip_close_task" targetRef="Task_mark_close_ready" />
  <bpmn:sequenceFlow id="Flow_Task_start_close_run__Gateway_complete_close_task__if" sourceRef="Task_start_close_run" targetRef="Gateway_complete_close_task__if" />
  <bpmn:sequenceFlow id="Flow_Gateway_close_run_ready__if__Task_sign_off_close" sourceRef="Gateway_close_run_ready__if" targetRef="Task_sign_off_close" />
  <bpmn:sequenceFlow id="Flow_Gateway_close_run_ready__if__Task_invalidate_close_signoff" sourceRef="Gateway_close_run_ready__if" targetRef="Task_invalidate_close_signoff" />
  <bpmn:sequenceFlow id="Flow_Task_mark_close_ready__Gateway_close_run_ready__if" sourceRef="Task_mark_close_ready" targetRef="Gateway_close_run_ready__if" />
  <bpmn:sequenceFlow id="Flow_Task_sign_off_close__Task_invalidate_close_signoff" sourceRef="Task_sign_off_close" targetRef="Task_invalidate_close_signoff" />
  <bpmn:sequenceFlow id="Flow_Task_invalidate_close_signoff__Gateway_complete_close_task__if" sourceRef="Task_invalidate_close_signoff" targetRef="Gateway_complete_close_task__if" />
 </bpmn:process>
 <bpmndi:BPMNDiagram id="BPMNDiagram_gl_v4">
  <bpmndi:BPMNPlane id="BPMNPlane_gl_v4" bpmnElement="Collaboration_gl_v4">
   <bpmndi:BPMNShape id="Participant_gl_close_run_di" bpmnElement="Participant_gl_close_run" isHorizontal="true">
    <dc:Bounds x="0" y="0" width="1470" height="540" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_close_run_accountant_di" bpmnElement="Lane_close_run_accountant" isHorizontal="true">
    <dc:Bounds x="30" y="0" width="1440" height="140" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_close_run_bookkeeper_di" bpmnElement="Lane_close_run_bookkeeper" isHorizontal="true">
    <dc:Bounds x="30" y="140" width="1440" height="260" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Lane_close_run_system_di" bpmnElement="Lane_close_run_system" isHorizontal="true">
    <dc:Bounds x="30" y="400" width="1440" height="140" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Start_close_run_di" bpmnElement="Start_close_run">
    <dc:Bounds x="157" y="42" width="36" height="36" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_start_close_run_di" bpmnElement="Task_start_close_run">
    <dc:Bounds x="295" y="20" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_complete_close_task_di" bpmnElement="Task_complete_close_task">
    <dc:Bounds x="635" y="160" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_skip_close_task_di" bpmnElement="Task_skip_close_task">
    <dc:Bounds x="805" y="20" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_mark_close_ready_di" bpmnElement="Task_mark_close_ready">
    <dc:Bounds x="975" y="420" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_sign_off_close_di" bpmnElement="Task_sign_off_close">
    <dc:Bounds x="1315" y="20" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Task_invalidate_close_signoff_di" bpmnElement="Task_invalidate_close_signoff">
    <dc:Bounds x="1315" y="420" width="100" height="80" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Gateway_complete_close_task__if_di" bpmnElement="Gateway_complete_close_task__if">
    <dc:Bounds x="490" y="175" width="50" height="50" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Gateway_complete_close_task__if_end_di" bpmnElement="Gateway_complete_close_task__if_end">
    <dc:Bounds x="660" y="295" width="50" height="50" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNShape id="Gateway_close_run_ready__if_di" bpmnElement="Gateway_close_run_ready__if">
    <dc:Bounds x="1170" y="35" width="50" height="50" />
   </bpmndi:BPMNShape>
   <bpmndi:BPMNEdge id="Flow_Start_close_run__Task_start_close_run_di" bpmnElement="Flow_Start_close_run__Task_start_close_run">
    <di:waypoint x="193" y="60" />
    <di:waypoint x="295" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_complete_close_task__if__Task_complete_close_task_di" bpmnElement="Flow_Gateway_complete_close_task__if__Task_complete_close_task">
    <di:waypoint x="540" y="200" />
    <di:waypoint x="635" y="200" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_complete_close_task__if__Gateway_complete_close_task__if_end_di" bpmnElement="Flow_Gateway_complete_close_task__if__Gateway_complete_close_task__if_end">
    <di:waypoint x="540" y="200" />
    <di:waypoint x="635" y="200" />
    <di:waypoint x="635" y="320" />
    <di:waypoint x="660" y="320" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_complete_close_task__Gateway_complete_close_task__if_end_di" bpmnElement="Flow_Task_complete_close_task__Gateway_complete_close_task__if_end">
    <di:waypoint x="685" y="240" />
    <di:waypoint x="685" y="360" />
    <di:waypoint x="685" y="360" />
    <di:waypoint x="685" y="345" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_complete_close_task__if_end__Task_skip_close_task_di" bpmnElement="Flow_Gateway_complete_close_task__if_end__Task_skip_close_task">
    <di:waypoint x="710" y="320" />
    <di:waypoint x="780" y="320" />
    <di:waypoint x="780" y="60" />
    <di:waypoint x="805" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_skip_close_task__Task_mark_close_ready_di" bpmnElement="Flow_Task_skip_close_task__Task_mark_close_ready">
    <di:waypoint x="905" y="60" />
    <di:waypoint x="950" y="60" />
    <di:waypoint x="950" y="460" />
    <di:waypoint x="975" y="460" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_start_close_run__Gateway_complete_close_task__if_di" bpmnElement="Flow_Task_start_close_run__Gateway_complete_close_task__if">
    <di:waypoint x="395" y="60" />
    <di:waypoint x="465" y="60" />
    <di:waypoint x="465" y="200" />
    <di:waypoint x="490" y="200" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_close_run_ready__if__Task_sign_off_close_di" bpmnElement="Flow_Gateway_close_run_ready__if__Task_sign_off_close">
    <di:waypoint x="1220" y="60" />
    <di:waypoint x="1315" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Gateway_close_run_ready__if__Task_invalidate_close_signoff_di" bpmnElement="Flow_Gateway_close_run_ready__if__Task_invalidate_close_signoff">
    <di:waypoint x="1220" y="60" />
    <di:waypoint x="1290" y="60" />
    <di:waypoint x="1290" y="460" />
    <di:waypoint x="1315" y="460" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_mark_close_ready__Gateway_close_run_ready__if_di" bpmnElement="Flow_Task_mark_close_ready__Gateway_close_run_ready__if">
    <di:waypoint x="1075" y="460" />
    <di:waypoint x="1145" y="460" />
    <di:waypoint x="1145" y="60" />
    <di:waypoint x="1170" y="60" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_sign_off_close__Task_invalidate_close_signoff_di" bpmnElement="Flow_Task_sign_off_close__Task_invalidate_close_signoff">
    <di:waypoint x="1365" y="100" />
    <di:waypoint x="1365" y="521" />
    <di:waypoint x="1365" y="521" />
    <di:waypoint x="1365" y="500" />
   </bpmndi:BPMNEdge>
   <bpmndi:BPMNEdge id="Flow_Task_invalidate_close_signoff__Gateway_complete_close_task__if_di" bpmnElement="Flow_Task_invalidate_close_signoff__Gateway_complete_close_task__if">
    <di:waypoint x="1365" y="500" />
    <di:waypoint x="1365" y="527" />
    <di:waypoint x="515" y="527" />
    <di:waypoint x="515" y="225" />
   </bpmndi:BPMNEdge>
  </bpmndi:BPMNPlane>
 </bpmndi:BPMNDiagram>
</bpmn:definitions>