dodil/erp-method
modules/purchasing/signoff/purchasing/purchasing_request.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_purchasing_v8" name="Purchasing & suppliers processes" targetNamespace="https://git.dodil.io/dodil/erp-platform/processes" exporter="erp-platform erp-compose bpmn" exporterVersion="1">
<bpmn:collaboration id="Collaboration_purchasing_v8">
<bpmn:documentation>Purchasing & suppliers: one pool per entity lifecycle, generated from module.yaml.</bpmn:documentation>
<bpmn:participant id="Participant_purchasing_request" name="Request" processRef="Process_purchasing_request_v8" />
</bpmn:collaboration>
<bpmn:process id="Process_purchasing_request_v8" name="Request" isExecutable="false">
<bpmn:documentation>Lifecycle of the request, generated from module.yaml by erp-compose bpmn; change the workflow there, not this file. States: draft, awaiting_approval, approved, refused, ordered, closed, cancelled. Note: v8: ordered is no longer an end state: a request ordered stays ordered unless its order is cancelled, which cancels the request with it. An ordered request is never cancelled on its own, whether or not the supplier has confirmed the order: the commitment is the order's, and cancel_purchase_order (nothing received, nothing billed) is the one control over it.</bpmn:documentation>
<bpmn:laneSet id="LaneSet_request">
<bpmn:lane id="Lane_request_requester" name="whoever needs something">
<bpmn:flowNodeRef>Start_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_draft_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_submit_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_cancel_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_request_none__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_request_draft__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_request_cancelled</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_request_system" name="The system">
<bpmn:flowNodeRef>Task_intake_request_from_sales_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_intake_request_from_replenishment</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_cancel_request_from_sales_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_cancel_with_order</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_request_spend_approver" name="budget holder">
<bpmn:flowNodeRef>Task_approve_request_level</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_approve_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_refuse_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_approve_request_level__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_approve_request_level__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_request_awaiting_approval__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_request_refused</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_request_buyer" name="whoever places orders">
<bpmn:flowNodeRef>Task_raise_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_close_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_request_approved__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_request_closed</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="Start_request" name="Request needed">
<bpmn:outgoing>Flow_Start_request__Gateway_request_none__if</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Task_draft_request" name="Ask for what you need" dodil:step="draft_request">
<bpmn:documentation>By: whoever needs something. From none to draft. Effect: request_id derived from the requester and the moment they asked.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_none__if__Task_draft_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_draft_request__Gateway_request_draft__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:serviceTask id="Task_intake_request_from_sales_order" name="Take a request from a confirmed third-party order line (PUR-65)" dodil:step="intake_request_from_sales_order" implementation="##unspecified">
<bpmn:documentation>By: The system. From none to awaiting_approval. When: request_ref so:{sales_order_id}:{line_no}@r{revision} unique (a repeat answers the same); the product can be bought. Effect: a request carrying the ship-to party and address and the sales order line; the order raised from it is a drop-ship order.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_none__if__Task_intake_request_from_sales_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_intake_request_from_sales_order__Gateway_approve_request_level__if</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="Task_intake_request_from_replenishment" name="Take a request from inventory's replenishment (PUR-65)" dodil:step="intake_request_from_replenishment" implementation="##unspecified">
<bpmn:documentation>By: The system. From none to awaiting_approval. When: request_ref inv:repl:{warehouse_id}:{product_id}:{business_date} unique (a repeat answers the same); the product can be bought. Effect: a request for the warehouse's goods-in location, needed by the date inventory named.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_none__if__Task_intake_request_from_replenishment</bpmn:incoming>
<bpmn:outgoing>Flow_Task_intake_request_from_replenishment__Gateway_approve_request_level__if</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:userTask id="Task_submit_request" name="Submit the request" dodil:step="submit_request">
<bpmn:documentation>By: whoever needs something. From draft to awaiting_approval. When: a line, an amount, a cost centre and a reason. Effect: routed to the approvers whose limit in force today covers it.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_draft__if__Task_submit_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_submit_request__Gateway_approve_request_level__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_approve_request_level" name="Approve one release level" dodil:step="approve_request_level" dodil:approval="true">
<bpmn:documentation>By: budget holder. From awaiting_approval to awaiting_approval. When: the release strategy in force on the submit date needs more levels than are approved; the approver's limit meets this level; the approver is not the requester and approved no earlier level (email AND sub). Effect: a release row (request, level, who, email and sub, when) (v4, PUR-38). An approval.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_approve_request_level__if__Task_approve_request_level</bpmn:incoming>
<bpmn:outgoing>Flow_Task_approve_request_level__Gateway_approve_request_level__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_approve_request" name="Approve the spend" dodil:step="approve_request" dodil:approval="true">
<bpmn:documentation>By: budget holder. From awaiting_approval to approved. When: the final level: the amount is within this approver's limit in force today; the approver is not the requester nor any earlier level's approver (email AND sub). Effect: who, when (today in the business time zone) and any note recorded. An approval.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_awaiting_approval__if__Task_approve_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_approve_request__Gateway_request_approved__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_refuse_request" name="Refuse with a reason" dodil:step="refuse_request">
<bpmn:documentation>By: budget holder. From awaiting_approval to refused. Requires: reason.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_awaiting_approval__if__Task_refuse_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_refuse_request__End_request_refused</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_raise_order" name="Raise the order" dodil:step="raise_order">
<bpmn:documentation>By: whoever places orders. From approved to ordered. When: a supplier is chosen. Effect: an order exists, keyed req:<request_id>; the approval travels with it.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_approved__if__Task_raise_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_raise_order__Task_cancel_with_order</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_close_request" name="Close without ordering" dodil:step="close_request">
<bpmn:documentation>By: whoever places orders. From approved to closed. Requires: reason.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_approved__if__Task_close_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_close_request__End_request_closed</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_cancel_request" name="Cancel the request (v8; PUR-67)" dodil:step="cancel_request">
<bpmn:documentation>By: whoever needs something or whoever places orders. From draft / awaiting_approval / approved to cancelled. When: not ordered; a requester cancels only their own request (purchasing:request:write), a buyer any request (purchasing:order:write). Requires: reason. Effect: who (email and sub), when and why recorded; the request leaves the approval queue and inventory's expected stock.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_draft__if__Task_cancel_request</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_request_awaiting_approval__if__Task_cancel_request</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_request_approved__if__Task_cancel_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_cancel_request__End_request_cancelled</bpmn:outgoing>
</bpmn:userTask>
<bpmn:serviceTask id="Task_cancel_request_from_sales_order" name="Cancel a request sales-order raised (v8; PUR-67)" dodil:step="cancel_request_from_sales_order" implementation="##unspecified">
<bpmn:documentation>By: The system. From awaiting_approval / approved to cancelled. When: request_ref so:... raised by the caller; not ordered (an ordered request answers not_cancellable naming its order and supplier). Requires: reason. Effect: as cancel_request; a repeat answers the same.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_request_awaiting_approval__if__Task_cancel_request_from_sales_order</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_request_approved__if__Task_cancel_request_from_sales_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_cancel_request_from_sales_order__End_request_cancelled</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="Task_cancel_with_order" name="Cancel the request with its order (v8; PUR-67)" dodil:step="cancel_with_order" implementation="##unspecified">
<bpmn:documentation>By: The system. From ordered to cancelled. When: the purchase order raised from it (req:<request_id>) is cancelled. Effect: the request ends with the order; the order's reason copied.</bpmn:documentation>
<bpmn:incoming>Flow_Task_raise_order__Task_cancel_with_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_cancel_with_order__End_request_cancelled</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="Gateway_request_none__if" name="New request?">
<bpmn:incoming>Flow_Start_request__Gateway_request_none__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_request_none__if__Task_draft_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_none__if__Task_intake_request_from_sales_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_none__if__Task_intake_request_from_replenishment</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_request_draft__if" name="Request draft: what next?">
<bpmn:incoming>Flow_Task_draft_request__Gateway_request_draft__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_request_draft__if__Task_submit_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_draft__if__Task_cancel_request</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_approve_request_level__if" name="the release strategy in force on the submit date needs more levels than are approved; the approver's limit meets this level; the approver is not the requester and approved no earlier level (email AND sub)?">
<bpmn:incoming>Flow_Task_intake_request_from_sales_order__Gateway_approve_request_level__if</bpmn:incoming>
<bpmn:incoming>Flow_Task_intake_request_from_replenishment__Gateway_approve_request_level__if</bpmn:incoming>
<bpmn:incoming>Flow_Task_submit_request__Gateway_approve_request_level__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_approve_request_level__if__Task_approve_request_level</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_approve_request_level__if__Gateway_approve_request_level__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_approve_request_level__if_end">
<bpmn:incoming>Flow_Gateway_approve_request_level__if__Gateway_approve_request_level__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_approve_request_level__Gateway_approve_request_level__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_approve_request_level__if_end__Gateway_request_awaiting_approval__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_request_awaiting_approval__if" name="Request awaiting approval: what next?">
<bpmn:incoming>Flow_Gateway_approve_request_level__if_end__Gateway_request_awaiting_approval__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_request_awaiting_approval__if__Task_approve_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_awaiting_approval__if__Task_refuse_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_awaiting_approval__if__Task_cancel_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_awaiting_approval__if__Task_cancel_request_from_sales_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_request_approved__if" name="Request approved: what next?">
<bpmn:incoming>Flow_Task_approve_request__Gateway_request_approved__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_request_approved__if__Task_raise_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_approved__if__Task_close_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_approved__if__Task_cancel_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_request_approved__if__Task_cancel_request_from_sales_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:endEvent id="End_request_refused" name="Request refused">
<bpmn:incoming>Flow_Task_refuse_request__End_request_refused</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="End_request_closed" name="Request closed">
<bpmn:incoming>Flow_Task_close_request__End_request_closed</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="End_request_cancelled" name="Request cancelled">
<bpmn:incoming>Flow_Task_cancel_request__End_request_cancelled</bpmn:incoming>
<bpmn:incoming>Flow_Task_cancel_request_from_sales_order__End_request_cancelled</bpmn:incoming>
<bpmn:incoming>Flow_Task_cancel_with_order__End_request_cancelled</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_Gateway_request_none__if__Task_draft_request" sourceRef="Gateway_request_none__if" targetRef="Task_draft_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_none__if__Task_intake_request_from_sales_order" sourceRef="Gateway_request_none__if" targetRef="Task_intake_request_from_sales_order" />
<bpmn:sequenceFlow id="Flow_Gateway_request_none__if__Task_intake_request_from_replenishment" sourceRef="Gateway_request_none__if" targetRef="Task_intake_request_from_replenishment" />
<bpmn:sequenceFlow id="Flow_Start_request__Gateway_request_none__if" sourceRef="Start_request" targetRef="Gateway_request_none__if" />
<bpmn:sequenceFlow id="Flow_Gateway_request_draft__if__Task_submit_request" sourceRef="Gateway_request_draft__if" targetRef="Task_submit_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_draft__if__Task_cancel_request" sourceRef="Gateway_request_draft__if" targetRef="Task_cancel_request" />
<bpmn:sequenceFlow id="Flow_Task_draft_request__Gateway_request_draft__if" sourceRef="Task_draft_request" targetRef="Gateway_request_draft__if" />
<bpmn:sequenceFlow id="Flow_Gateway_approve_request_level__if__Task_approve_request_level" name="the release strategy in force on the submit date needs more levels than are approved; the approver's limit meets this level; the approver is not the requester and approved no earlier level (email AND sub)" sourceRef="Gateway_approve_request_level__if" targetRef="Task_approve_request_level" />
<bpmn:sequenceFlow id="Flow_Gateway_approve_request_level__if__Gateway_approve_request_level__if_end" name="otherwise" sourceRef="Gateway_approve_request_level__if" targetRef="Gateway_approve_request_level__if_end" />
<bpmn:sequenceFlow id="Flow_Task_approve_request_level__Gateway_approve_request_level__if_end" sourceRef="Task_approve_request_level" targetRef="Gateway_approve_request_level__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_request_awaiting_approval__if__Task_approve_request" sourceRef="Gateway_request_awaiting_approval__if" targetRef="Task_approve_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_awaiting_approval__if__Task_refuse_request" sourceRef="Gateway_request_awaiting_approval__if" targetRef="Task_refuse_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_awaiting_approval__if__Task_cancel_request" sourceRef="Gateway_request_awaiting_approval__if" targetRef="Task_cancel_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_awaiting_approval__if__Task_cancel_request_from_sales_order" sourceRef="Gateway_request_awaiting_approval__if" targetRef="Task_cancel_request_from_sales_order" />
<bpmn:sequenceFlow id="Flow_Gateway_approve_request_level__if_end__Gateway_request_awaiting_approval__if" sourceRef="Gateway_approve_request_level__if_end" targetRef="Gateway_request_awaiting_approval__if" />
<bpmn:sequenceFlow id="Flow_Task_intake_request_from_sales_order__Gateway_approve_request_level__if" sourceRef="Task_intake_request_from_sales_order" targetRef="Gateway_approve_request_level__if" />
<bpmn:sequenceFlow id="Flow_Task_intake_request_from_replenishment__Gateway_approve_request_level__if" sourceRef="Task_intake_request_from_replenishment" targetRef="Gateway_approve_request_level__if" />
<bpmn:sequenceFlow id="Flow_Task_submit_request__Gateway_approve_request_level__if" sourceRef="Task_submit_request" targetRef="Gateway_approve_request_level__if" />
<bpmn:sequenceFlow id="Flow_Gateway_request_approved__if__Task_raise_order" sourceRef="Gateway_request_approved__if" targetRef="Task_raise_order" />
<bpmn:sequenceFlow id="Flow_Gateway_request_approved__if__Task_close_request" sourceRef="Gateway_request_approved__if" targetRef="Task_close_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_approved__if__Task_cancel_request" sourceRef="Gateway_request_approved__if" targetRef="Task_cancel_request" />
<bpmn:sequenceFlow id="Flow_Gateway_request_approved__if__Task_cancel_request_from_sales_order" sourceRef="Gateway_request_approved__if" targetRef="Task_cancel_request_from_sales_order" />
<bpmn:sequenceFlow id="Flow_Task_approve_request__Gateway_request_approved__if" sourceRef="Task_approve_request" targetRef="Gateway_request_approved__if" />
<bpmn:sequenceFlow id="Flow_Task_refuse_request__End_request_refused" sourceRef="Task_refuse_request" targetRef="End_request_refused" />
<bpmn:sequenceFlow id="Flow_Task_raise_order__Task_cancel_with_order" sourceRef="Task_raise_order" targetRef="Task_cancel_with_order" />
<bpmn:sequenceFlow id="Flow_Task_close_request__End_request_closed" sourceRef="Task_close_request" targetRef="End_request_closed" />
<bpmn:sequenceFlow id="Flow_Task_cancel_request__End_request_cancelled" sourceRef="Task_cancel_request" targetRef="End_request_cancelled" />
<bpmn:sequenceFlow id="Flow_Task_cancel_request_from_sales_order__End_request_cancelled" sourceRef="Task_cancel_request_from_sales_order" targetRef="End_request_cancelled" />
<bpmn:sequenceFlow id="Flow_Task_cancel_with_order__End_request_cancelled" sourceRef="Task_cancel_with_order" targetRef="End_request_cancelled" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_purchasing_v8">
<bpmndi:BPMNPlane id="BPMNPlane_purchasing_v8" bpmnElement="Collaboration_purchasing_v8">
<bpmndi:BPMNShape id="Participant_purchasing_request_di" bpmnElement="Participant_purchasing_request" isHorizontal="true">
<dc:Bounds x="0" y="0" width="1810" height="1040" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_request_requester_di" bpmnElement="Lane_request_requester" isHorizontal="true">
<dc:Bounds x="30" y="0" width="1780" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_request_system_di" bpmnElement="Lane_request_system" isHorizontal="true">
<dc:Bounds x="30" y="260" width="1780" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_request_spend_approver_di" bpmnElement="Lane_request_spend_approver" isHorizontal="true">
<dc:Bounds x="30" y="520" width="1780" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_request_buyer_di" bpmnElement="Lane_request_buyer" isHorizontal="true">
<dc:Bounds x="30" y="780" width="1780" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Start_request_di" bpmnElement="Start_request">
<dc:Bounds x="157" y="42" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_draft_request_di" bpmnElement="Task_draft_request">
<dc:Bounds x="465" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_intake_request_from_sales_order_di" bpmnElement="Task_intake_request_from_sales_order">
<dc:Bounds x="465" y="280" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_intake_request_from_replenishment_di" bpmnElement="Task_intake_request_from_replenishment">
<dc:Bounds x="465" y="400" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_submit_request_di" bpmnElement="Task_submit_request">
<dc:Bounds x="805" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_approve_request_level_di" bpmnElement="Task_approve_request_level">
<dc:Bounds x="805" y="540" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_approve_request_di" bpmnElement="Task_approve_request">
<dc:Bounds x="1145" y="540" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_refuse_request_di" bpmnElement="Task_refuse_request">
<dc:Bounds x="1145" y="660" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_raise_order_di" bpmnElement="Task_raise_order">
<dc:Bounds x="1485" y="800" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_close_request_di" bpmnElement="Task_close_request">
<dc:Bounds x="1485" y="920" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_cancel_request_di" bpmnElement="Task_cancel_request">
<dc:Bounds x="805" y="140" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_cancel_request_from_sales_order_di" bpmnElement="Task_cancel_request_from_sales_order">
<dc:Bounds x="1145" y="280" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_cancel_with_order_di" bpmnElement="Task_cancel_with_order">
<dc:Bounds x="1655" y="280" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_request_none__if_di" bpmnElement="Gateway_request_none__if">
<dc:Bounds x="320" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_request_draft__if_di" bpmnElement="Gateway_request_draft__if">
<dc:Bounds x="660" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_approve_request_level__if_di" bpmnElement="Gateway_approve_request_level__if">
<dc:Bounds x="660" y="555" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_approve_request_level__if_end_di" bpmnElement="Gateway_approve_request_level__if_end">
<dc:Bounds x="830" y="675" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_request_awaiting_approval__if_di" bpmnElement="Gateway_request_awaiting_approval__if">
<dc:Bounds x="1000" y="555" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_request_approved__if_di" bpmnElement="Gateway_request_approved__if">
<dc:Bounds x="1340" y="815" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_request_refused_di" bpmnElement="End_request_refused">
<dc:Bounds x="1347" y="562" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_request_closed_di" bpmnElement="End_request_closed">
<dc:Bounds x="1687" y="822" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_request_cancelled_di" bpmnElement="End_request_cancelled">
<dc:Bounds x="1007" y="42" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_Gateway_request_none__if__Task_draft_request_di" bpmnElement="Flow_Gateway_request_none__if__Task_draft_request">
<di:waypoint x="370" y="60" />
<di:waypoint x="465" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_none__if__Task_intake_request_from_sales_order_di" bpmnElement="Flow_Gateway_request_none__if__Task_intake_request_from_sales_order">
<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_request_none__if__Task_intake_request_from_replenishment_di" bpmnElement="Flow_Gateway_request_none__if__Task_intake_request_from_replenishment">
<di:waypoint x="370" y="60" />
<di:waypoint x="440" y="60" />
<di:waypoint x="440" y="440" />
<di:waypoint x="465" y="440" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Start_request__Gateway_request_none__if_di" bpmnElement="Flow_Start_request__Gateway_request_none__if">
<di:waypoint x="193" y="60" />
<di:waypoint x="320" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_draft__if__Task_submit_request_di" bpmnElement="Flow_Gateway_request_draft__if__Task_submit_request">
<di:waypoint x="710" y="60" />
<di:waypoint x="805" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_draft__if__Task_cancel_request_di" bpmnElement="Flow_Gateway_request_draft__if__Task_cancel_request">
<di:waypoint x="710" y="60" />
<di:waypoint x="780" y="60" />
<di:waypoint x="780" y="180" />
<di:waypoint x="805" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_draft_request__Gateway_request_draft__if_di" bpmnElement="Flow_Task_draft_request__Gateway_request_draft__if">
<di:waypoint x="565" y="60" />
<di:waypoint x="660" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_approve_request_level__if__Task_approve_request_level_di" bpmnElement="Flow_Gateway_approve_request_level__if__Task_approve_request_level">
<di:waypoint x="710" y="580" />
<di:waypoint x="805" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_approve_request_level__if__Gateway_approve_request_level__if_end_di" bpmnElement="Flow_Gateway_approve_request_level__if__Gateway_approve_request_level__if_end">
<di:waypoint x="710" y="580" />
<di:waypoint x="805" y="580" />
<di:waypoint x="805" y="700" />
<di:waypoint x="830" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_approve_request_level__Gateway_approve_request_level__if_end_di" bpmnElement="Flow_Task_approve_request_level__Gateway_approve_request_level__if_end">
<di:waypoint x="855" y="620" />
<di:waypoint x="855" y="740" />
<di:waypoint x="855" y="740" />
<di:waypoint x="855" y="725" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_awaiting_approval__if__Task_approve_request_di" bpmnElement="Flow_Gateway_request_awaiting_approval__if__Task_approve_request">
<di:waypoint x="1050" y="580" />
<di:waypoint x="1145" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_awaiting_approval__if__Task_refuse_request_di" bpmnElement="Flow_Gateway_request_awaiting_approval__if__Task_refuse_request">
<di:waypoint x="1050" y="580" />
<di:waypoint x="1120" y="580" />
<di:waypoint x="1120" y="700" />
<di:waypoint x="1145" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_awaiting_approval__if__Task_cancel_request_di" bpmnElement="Flow_Gateway_request_awaiting_approval__if__Task_cancel_request">
<di:waypoint x="1025" y="605" />
<di:waypoint x="1025" y="626" />
<di:waypoint x="855" y="626" />
<di:waypoint x="855" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_awaiting_approval__if__Task_cancel_request_from_sales_order_di" bpmnElement="Flow_Gateway_request_awaiting_approval__if__Task_cancel_request_from_sales_order">
<di:waypoint x="1050" y="580" />
<di:waypoint x="1120" y="580" />
<di:waypoint x="1120" y="320" />
<di:waypoint x="1145" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_approve_request_level__if_end__Gateway_request_awaiting_approval__if_di" bpmnElement="Flow_Gateway_approve_request_level__if_end__Gateway_request_awaiting_approval__if">
<di:waypoint x="880" y="700" />
<di:waypoint x="975" y="700" />
<di:waypoint x="975" y="580" />
<di:waypoint x="1000" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_intake_request_from_sales_order__Gateway_approve_request_level__if_di" bpmnElement="Flow_Task_intake_request_from_sales_order__Gateway_approve_request_level__if">
<di:waypoint x="565" y="320" />
<di:waypoint x="635" y="320" />
<di:waypoint x="635" y="580" />
<di:waypoint x="660" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_intake_request_from_replenishment__Gateway_approve_request_level__if_di" bpmnElement="Flow_Task_intake_request_from_replenishment__Gateway_approve_request_level__if">
<di:waypoint x="565" y="440" />
<di:waypoint x="635" y="440" />
<di:waypoint x="635" y="580" />
<di:waypoint x="660" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_submit_request__Gateway_approve_request_level__if_di" bpmnElement="Flow_Task_submit_request__Gateway_approve_request_level__if">
<di:waypoint x="855" y="100" />
<di:waypoint x="855" y="632" />
<di:waypoint x="685" y="632" />
<di:waypoint x="685" y="605" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_approved__if__Task_raise_order_di" bpmnElement="Flow_Gateway_request_approved__if__Task_raise_order">
<di:waypoint x="1390" y="840" />
<di:waypoint x="1485" y="840" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_approved__if__Task_close_request_di" bpmnElement="Flow_Gateway_request_approved__if__Task_close_request">
<di:waypoint x="1390" y="840" />
<di:waypoint x="1460" y="840" />
<di:waypoint x="1460" y="960" />
<di:waypoint x="1485" y="960" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_approved__if__Task_cancel_request_di" bpmnElement="Flow_Gateway_request_approved__if__Task_cancel_request">
<di:waypoint x="1365" y="865" />
<di:waypoint x="1365" y="898" />
<di:waypoint x="855" y="898" />
<di:waypoint x="855" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_request_approved__if__Task_cancel_request_from_sales_order_di" bpmnElement="Flow_Gateway_request_approved__if__Task_cancel_request_from_sales_order">
<di:waypoint x="1365" y="865" />
<di:waypoint x="1365" y="880" />
<di:waypoint x="1195" y="880" />
<di:waypoint x="1195" y="360" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_approve_request__Gateway_request_approved__if_di" bpmnElement="Flow_Task_approve_request__Gateway_request_approved__if">
<di:waypoint x="1245" y="580" />
<di:waypoint x="1315" y="580" />
<di:waypoint x="1315" y="840" />
<di:waypoint x="1340" y="840" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_refuse_request__End_request_refused_di" bpmnElement="Flow_Task_refuse_request__End_request_refused">
<di:waypoint x="1245" y="700" />
<di:waypoint x="1322" y="700" />
<di:waypoint x="1322" y="580" />
<di:waypoint x="1347" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_raise_order__Task_cancel_with_order_di" bpmnElement="Flow_Task_raise_order__Task_cancel_with_order">
<di:waypoint x="1585" y="840" />
<di:waypoint x="1630" y="840" />
<di:waypoint x="1630" y="320" />
<di:waypoint x="1655" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_close_request__End_request_closed_di" bpmnElement="Flow_Task_close_request__End_request_closed">
<di:waypoint x="1585" y="960" />
<di:waypoint x="1662" y="960" />
<di:waypoint x="1662" y="840" />
<di:waypoint x="1687" y="840" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_cancel_request__End_request_cancelled_di" bpmnElement="Flow_Task_cancel_request__End_request_cancelled">
<di:waypoint x="905" y="180" />
<di:waypoint x="982" y="180" />
<di:waypoint x="982" y="60" />
<di:waypoint x="1007" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_cancel_request_from_sales_order__End_request_cancelled_di" bpmnElement="Flow_Task_cancel_request_from_sales_order__End_request_cancelled">
<di:waypoint x="1195" y="360" />
<di:waypoint x="1195" y="381" />
<di:waypoint x="1025" y="381" />
<di:waypoint x="1025" y="78" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_cancel_with_order__End_request_cancelled_di" bpmnElement="Flow_Task_cancel_with_order__End_request_cancelled">
<di:waypoint x="1705" y="360" />
<di:waypoint x="1705" y="387" />
<di:waypoint x="1025" y="387" />
<di:waypoint x="1025" y="78" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>