dodil/erp-method
modules/purchasing/signoff/purchasing/history/purchasing_order.v1.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_v4" 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_v4">
<bpmn:documentation>Purchasing & suppliers: one pool per entity lifecycle, generated from module.yaml.</bpmn:documentation>
<bpmn:participant id="Participant_purchasing_order" name="Order" processRef="Process_purchasing_order_v4" />
<bpmn:participant id="Participant_supplier" name="The supplier (external)">
<bpmn:documentation>Outside the system: the steps it sends are what the process waits on.</bpmn:documentation>
</bpmn:participant>
<bpmn:messageFlow id="Flow_Participant_supplier__Task_receive_order" sourceRef="Participant_supplier" targetRef="Task_receive_order" />
</bpmn:collaboration>
<bpmn:process id="Process_purchasing_order_v4" name="Order" isExecutable="false">
<bpmn:documentation>Lifecycle of the order, generated from module.yaml by erp-compose bpmn; change the workflow there, not this file. States: draft, to_approve, approved, confirmed, closed, cancelled. Note: received, billed and outstanding are DERIVED from receipt and bill rows; part_received is not a state. A stored status and a receipt table disagree the first time someone returns goods.</bpmn:documentation>
<bpmn:laneSet id="LaneSet_order">
<bpmn:lane id="Lane_order_buyer" name="whoever places orders">
<bpmn:flowNodeRef>Start_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_raise_from_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_draft_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_raise_from_quote</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_raise_release_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_price_lines</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_submit_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_confirm_purchase_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_send_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_amend_purchase_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_amend_beyond_approval</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_close_short</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_cancel_purchase_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_order_none__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_order_draft__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_amend_purchase_order__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_amend_purchase_order__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_order_confirmed__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_order_approved__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_order_closed</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_order_cancelled</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_order_system" name="The system">
<bpmn:flowNodeRef>Task_open_call_off</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_finish_purchase_order</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_order_spend_approver" name="budget holder">
<bpmn:flowNodeRef>Task_accept_rounding</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_approve_order_level</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_approve_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_reject_order</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_accept_rounding__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_accept_rounding__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_approve_order_level__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_approve_order_level__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_order_to_approve__if</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_order_receiver" name="whoever takes delivery (stores, site, reception)">
<bpmn:flowNodeRef>Task_provide_components</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_provide_components__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_provide_components__if_end</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_order_supplier" name="The supplier (external)">
<bpmn:flowNodeRef>Task_receive_order</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="Start_order" name="Order needed">
<bpmn:outgoing>Flow_Start_order__Gateway_order_none__if</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Task_raise_from_request" name="Draft the order from the request" dodil:step="raise_from_request">
<bpmn:documentation>By: whoever places orders. From none to draft. When: an approved request. Effect: keyed req:<request_id>; a second raise returns the same order.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_none__if__Task_raise_from_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_raise_from_request__Task_price_lines</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_draft_order" name="Draft an order directly" dodil:step="draft_order">
<bpmn:documentation>By: whoever places orders. From none to draft. Effect: keyed po:<buyer>:<moment>.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_none__if__Task_draft_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_draft_order__Task_price_lines</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_raise_from_quote" name="Draft the order from the awarded quote" dodil:step="raise_from_quote">
<bpmn:documentation>By: whoever places orders. From none to draft. When: an awarded quote (PUR-40). Effect: keyed rfq:<rfq_id>:<bp_id>; the quoted prices fixed on the lines; the request's approval carried (v4).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_none__if__Task_raise_from_quote</bpmn:incoming>
<bpmn:outgoing>Flow_Task_raise_from_quote__Task_price_lines</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_raise_release_order" name="Draft a release order against a contract" dodil:step="raise_release_order">
<bpmn:documentation>By: whoever places orders. From none to draft. When: an active quantity or value contract in its validity. Effect: keyed po:<buyer>:<moment> with agreement_id; prices from the agreement line; the agreement's approval is the spend approval within its target (v4, PUR-42).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_none__if__Task_raise_release_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_raise_release_order__Task_price_lines</bpmn:outgoing>
</bpmn:userTask>
<bpmn:serviceTask id="Task_open_call_off" name="Open a call-off from a JIT release" dodil:step="open_call_off" implementation="##unspecified">
<bpmn:documentation>By: The system. From none to confirmed. When: a JIT release of an active scheduling agreement. Effect: keyed sa:<agreement_id>:<release_no>, confirmed at once with order_no from the series; the agreement claims written (v4, PUR-43).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_none__if__Task_open_call_off</bpmn:incoming>
<bpmn:outgoing>Flow_Task_open_call_off__Task_send_order</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:userTask id="Task_price_lines" name="Price the lines in the supplier's unit" dodil:step="price_lines">
<bpmn:documentation>By: whoever places orders. From draft to draft. Effect: unit_code and its exact conversion copied from the product; the order price unit, its conversion (the supplier price row's own, else the product's), pricing_quantity and unit_price from the supplier price in force today, fixed on the line; net = quantity_priced x unit_price / pricing_quantity, rounded once; the purchase rounding gate shown (v3); the source list checked, the quota's proposal shown, the account assignment (stock | cost_centre | asset | project), item category (standard | consignment | subcontract), subcontract components and planned delivery costs set (v4).</bpmn:documentation>
<bpmn:incoming>Flow_Task_raise_from_request__Task_price_lines</bpmn:incoming>
<bpmn:incoming>Flow_Task_draft_order__Task_price_lines</bpmn:incoming>
<bpmn:incoming>Flow_Task_raise_from_quote__Task_price_lines</bpmn:incoming>
<bpmn:incoming>Flow_Task_raise_release_order__Task_price_lines</bpmn:incoming>
<bpmn:incoming>Flow_Task_reject_order__Task_price_lines</bpmn:incoming>
<bpmn:outgoing>Flow_Task_price_lines__Gateway_accept_rounding__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_accept_rounding" name="Accept an order off the pack rule" dodil:step="accept_rounding" dodil:approval="true">
<bpmn:documentation>By: budget holder. From draft to draft. When: a line fails purchase_rounding; the acceptor is not the buyer (email AND sub). Requires: reason. Effect: an override row (order, revision, line, gate purchase_rounding, who, why), before the order is sent for approval or confirmed; the buyer confirms (v3). An approval.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_accept_rounding__if__Task_accept_rounding</bpmn:incoming>
<bpmn:outgoing>Flow_Task_accept_rounding__Gateway_accept_rounding__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_approve_order_level" name="Approve one release level" dodil:step="approve_order_level" dodil:approval="true">
<bpmn:documentation>By: budget holder. From to_approve to to_approve. When: the release strategy in force on the submit date needs more levels than are approved; the approver's limit meets this level; not the buyer nor an earlier level's approver (email AND sub). Effect: a release row (order, revision, level, who) (v4, PUR-38). An approval.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_approve_order_level__if__Task_approve_order_level</bpmn:incoming>
<bpmn:outgoing>Flow_Task_approve_order_level__Gateway_approve_order_level__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_submit_order" name="Send for approval" dodil:step="submit_order">
<bpmn:documentation>By: whoever places orders. From draft to to_approve. When: no approved request covers the total, and the total is above the owner's order threshold.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_draft__if__Task_submit_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_submit_order__Gateway_approve_order_level__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_approve_order" name="Approve the order" dodil:step="approve_order" dodil:approval="true">
<bpmn:documentation>By: budget holder. From to_approve to approved. When: the final level: the total is within the approver's limit in force today; the approver is not the buyer nor an earlier level's approver (email AND sub). An approval.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_to_approve__if__Task_approve_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_approve_order__Gateway_order_approved__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_reject_order" name="Send back with a reason" dodil:step="reject_order">
<bpmn:documentation>By: budget holder. From to_approve to draft. Requires: reason.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_to_approve__if__Task_reject_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_reject_order__Task_price_lines</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_confirm_purchase_order" name="Confirm the order" dodil:step="confirm_purchase_order">
<bpmn:documentation>By: whoever places orders. From draft / approved to confirmed. When: within authority (an approved request or approval covers the total, or below the threshold); every line has a unit and a pricing unit that convert; every line meets its purchase rounding or carries an override for this revision (v3); every line's supplier is allowed by the source list; a release order fits what is left on its agreement; an asset-assigned line is assignable; a subcontract line has its components (v4). Effect: order_no claimed from the series; contents, each line's pricing conversion and account assignment frozen; product told each unit and pricing unit was used; agreement claims written (v4).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_draft__if__Task_confirm_purchase_order</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_order_approved__if__Task_confirm_purchase_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_confirm_purchase_order__Task_send_order</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_send_order" name="Send it to the supplier" dodil:step="send_order">
<bpmn:documentation>By: whoever places orders. From confirmed to confirmed. Effect: each send recorded with when and to whom.</bpmn:documentation>
<bpmn:incoming>Flow_Task_open_call_off__Task_send_order</bpmn:incoming>
<bpmn:incoming>Flow_Task_confirm_purchase_order__Task_send_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_send_order__Gateway_provide_components__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_provide_components" name="Send the subcontractor our components" dodil:step="provide_components">
<bpmn:documentation>By: whoever takes delivery (stores, site, reception). From confirmed to confirmed. When: a subcontract line; not more than the line needs, unless a reason is given. Effect: inventory's POST /subcontract-provisions per component, keyed pur:<purchase_order_id>:<line_no>:prov:<seq>: the components move to stock held at the supplier, still ours (v4, PUR-57).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_provide_components__if__Task_provide_components</bpmn:incoming>
<bpmn:outgoing>Flow_Task_provide_components__Gateway_provide_components__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:receiveTask id="Task_receive_order" name="The supplier delivers" dodil:step="receive_order" dodil:external="true">
<bpmn:documentation>By: The supplier. From confirmed to confirmed. Done outside the system: the process waits for it.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_provide_components__if_end__Task_receive_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_receive_order__Gateway_amend_purchase_order__if</bpmn:outgoing>
</bpmn:receiveTask>
<bpmn:userTask id="Task_amend_purchase_order" name="Amend the confirmed order" dodil:step="amend_purchase_order">
<bpmn:documentation>By: whoever places orders. From confirmed to confirmed. When: the new total is still within what was approved; a line is never reduced below what was received or billed. Effect: a new revision row; the previous revision kept.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_amend_purchase_order__if__Task_amend_purchase_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_amend_purchase_order__Gateway_amend_purchase_order__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_amend_beyond_approval" name="Amend beyond what was approved" dodil:step="amend_beyond_approval">
<bpmn:documentation>By: whoever places orders. From confirmed to to_approve. When: the new total exceeds what was approved.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_confirmed__if__Task_amend_beyond_approval</bpmn:incoming>
<bpmn:outgoing>Flow_Task_amend_beyond_approval__Gateway_approve_order_level__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_close_short" name="Close short with a reason" dodil:step="close_short">
<bpmn:documentation>By: whoever places orders. From confirmed to closed. Requires: reason. Effect: what was not received stops being outstanding and committed.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_confirmed__if__Task_close_short</bpmn:incoming>
<bpmn:outgoing>Flow_Task_close_short__End_order_closed</bpmn:outgoing>
</bpmn:userTask>
<bpmn:serviceTask id="Task_finish_purchase_order" name="Finish the order" dodil:step="finish_purchase_order" implementation="##unspecified">
<bpmn:documentation>By: The system. From confirmed to closed. When: every line received and billed in full (or two-way: billed).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_confirmed__if__Task_finish_purchase_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_finish_purchase_order__End_order_closed</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:userTask id="Task_cancel_purchase_order" name="Cancel the order" dodil:step="cancel_purchase_order">
<bpmn:documentation>By: whoever places orders. From draft / to_approve / approved / confirmed to cancelled. When: nothing received and nothing billed. Requires: reason. Effect: a confirmed order keeps its number.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_order_draft__if__Task_cancel_purchase_order</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_order_confirmed__if__Task_cancel_purchase_order</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_order_to_approve__if__Task_cancel_purchase_order</bpmn:incoming>
<bpmn:incoming>Flow_Gateway_order_approved__if__Task_cancel_purchase_order</bpmn:incoming>
<bpmn:outgoing>Flow_Task_cancel_purchase_order__End_order_cancelled</bpmn:outgoing>
</bpmn:userTask>
<bpmn:exclusiveGateway id="Gateway_order_none__if" name="New order?">
<bpmn:incoming>Flow_Start_order__Gateway_order_none__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_order_none__if__Task_raise_from_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_none__if__Task_draft_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_none__if__Task_raise_from_quote</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_none__if__Task_raise_release_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_none__if__Task_open_call_off</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_accept_rounding__if" name="a line fails purchase_rounding; the acceptor is not the buyer (email AND sub)?">
<bpmn:incoming>Flow_Task_price_lines__Gateway_accept_rounding__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_accept_rounding__if__Task_accept_rounding</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_accept_rounding__if__Gateway_accept_rounding__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_accept_rounding__if_end">
<bpmn:incoming>Flow_Gateway_accept_rounding__if__Gateway_accept_rounding__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_accept_rounding__Gateway_accept_rounding__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_accept_rounding__if_end__Gateway_order_draft__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_order_draft__if" name="Order draft: what next?">
<bpmn:incoming>Flow_Gateway_accept_rounding__if_end__Gateway_order_draft__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_order_draft__if__Task_submit_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_draft__if__Task_confirm_purchase_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_draft__if__Task_cancel_purchase_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_provide_components__if" name="a subcontract line; not more than the line needs, unless a reason is given?">
<bpmn:incoming>Flow_Task_send_order__Gateway_provide_components__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_provide_components__if__Task_provide_components</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_provide_components__if__Gateway_provide_components__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_provide_components__if_end">
<bpmn:incoming>Flow_Gateway_provide_components__if__Gateway_provide_components__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_provide_components__Gateway_provide_components__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_provide_components__if_end__Task_receive_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_amend_purchase_order__if" name="the new total is still within what was approved; a line is never reduced below what was received or billed?">
<bpmn:incoming>Flow_Task_receive_order__Gateway_amend_purchase_order__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_amend_purchase_order__if__Task_amend_purchase_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_amend_purchase_order__if__Gateway_amend_purchase_order__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_amend_purchase_order__if_end">
<bpmn:incoming>Flow_Gateway_amend_purchase_order__if__Gateway_amend_purchase_order__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_amend_purchase_order__Gateway_amend_purchase_order__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_amend_purchase_order__if_end__Gateway_order_confirmed__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_order_confirmed__if" name="Order confirmed: what next?">
<bpmn:incoming>Flow_Gateway_amend_purchase_order__if_end__Gateway_order_confirmed__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_order_confirmed__if__Task_amend_beyond_approval</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_confirmed__if__Task_close_short</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_confirmed__if__Task_finish_purchase_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_confirmed__if__Task_cancel_purchase_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_approve_order_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; not the buyer nor an earlier level's approver (email AND sub)?">
<bpmn:incoming>Flow_Task_submit_order__Gateway_approve_order_level__if</bpmn:incoming>
<bpmn:incoming>Flow_Task_amend_beyond_approval__Gateway_approve_order_level__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_approve_order_level__if__Task_approve_order_level</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_approve_order_level__if__Gateway_approve_order_level__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_approve_order_level__if_end">
<bpmn:incoming>Flow_Gateway_approve_order_level__if__Gateway_approve_order_level__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_approve_order_level__Gateway_approve_order_level__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_approve_order_level__if_end__Gateway_order_to_approve__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_order_to_approve__if" name="Order to approve: what next?">
<bpmn:incoming>Flow_Gateway_approve_order_level__if_end__Gateway_order_to_approve__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_order_to_approve__if__Task_approve_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_to_approve__if__Task_reject_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_to_approve__if__Task_cancel_purchase_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_order_approved__if" name="Order approved: what next?">
<bpmn:incoming>Flow_Task_approve_order__Gateway_order_approved__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_order_approved__if__Task_confirm_purchase_order</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_order_approved__if__Task_cancel_purchase_order</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:endEvent id="End_order_closed" name="Order closed">
<bpmn:incoming>Flow_Task_close_short__End_order_closed</bpmn:incoming>
<bpmn:incoming>Flow_Task_finish_purchase_order__End_order_closed</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="End_order_cancelled" name="Order cancelled">
<bpmn:incoming>Flow_Task_cancel_purchase_order__End_order_cancelled</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_Gateway_order_none__if__Task_raise_from_request" sourceRef="Gateway_order_none__if" targetRef="Task_raise_from_request" />
<bpmn:sequenceFlow id="Flow_Gateway_order_none__if__Task_draft_order" sourceRef="Gateway_order_none__if" targetRef="Task_draft_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_none__if__Task_raise_from_quote" sourceRef="Gateway_order_none__if" targetRef="Task_raise_from_quote" />
<bpmn:sequenceFlow id="Flow_Gateway_order_none__if__Task_raise_release_order" sourceRef="Gateway_order_none__if" targetRef="Task_raise_release_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_none__if__Task_open_call_off" sourceRef="Gateway_order_none__if" targetRef="Task_open_call_off" />
<bpmn:sequenceFlow id="Flow_Start_order__Gateway_order_none__if" sourceRef="Start_order" targetRef="Gateway_order_none__if" />
<bpmn:sequenceFlow id="Flow_Gateway_accept_rounding__if__Task_accept_rounding" name="a line fails purchase_rounding; the acceptor is not the buyer (email AND sub)" sourceRef="Gateway_accept_rounding__if" targetRef="Task_accept_rounding" />
<bpmn:sequenceFlow id="Flow_Gateway_accept_rounding__if__Gateway_accept_rounding__if_end" name="otherwise" sourceRef="Gateway_accept_rounding__if" targetRef="Gateway_accept_rounding__if_end" />
<bpmn:sequenceFlow id="Flow_Task_accept_rounding__Gateway_accept_rounding__if_end" sourceRef="Task_accept_rounding" targetRef="Gateway_accept_rounding__if_end" />
<bpmn:sequenceFlow id="Flow_Task_price_lines__Gateway_accept_rounding__if" sourceRef="Task_price_lines" targetRef="Gateway_accept_rounding__if" />
<bpmn:sequenceFlow id="Flow_Gateway_order_draft__if__Task_submit_order" sourceRef="Gateway_order_draft__if" targetRef="Task_submit_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_draft__if__Task_confirm_purchase_order" sourceRef="Gateway_order_draft__if" targetRef="Task_confirm_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_draft__if__Task_cancel_purchase_order" sourceRef="Gateway_order_draft__if" targetRef="Task_cancel_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_accept_rounding__if_end__Gateway_order_draft__if" sourceRef="Gateway_accept_rounding__if_end" targetRef="Gateway_order_draft__if" />
<bpmn:sequenceFlow id="Flow_Task_raise_from_request__Task_price_lines" sourceRef="Task_raise_from_request" targetRef="Task_price_lines" />
<bpmn:sequenceFlow id="Flow_Task_draft_order__Task_price_lines" sourceRef="Task_draft_order" targetRef="Task_price_lines" />
<bpmn:sequenceFlow id="Flow_Task_raise_from_quote__Task_price_lines" sourceRef="Task_raise_from_quote" targetRef="Task_price_lines" />
<bpmn:sequenceFlow id="Flow_Task_raise_release_order__Task_price_lines" sourceRef="Task_raise_release_order" targetRef="Task_price_lines" />
<bpmn:sequenceFlow id="Flow_Gateway_provide_components__if__Task_provide_components" name="a subcontract line; not more than the line needs, unless a reason is given" sourceRef="Gateway_provide_components__if" targetRef="Task_provide_components" />
<bpmn:sequenceFlow id="Flow_Gateway_provide_components__if__Gateway_provide_components__if_end" name="otherwise" sourceRef="Gateway_provide_components__if" targetRef="Gateway_provide_components__if_end" />
<bpmn:sequenceFlow id="Flow_Task_provide_components__Gateway_provide_components__if_end" sourceRef="Task_provide_components" targetRef="Gateway_provide_components__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_amend_purchase_order__if__Task_amend_purchase_order" name="the new total is still within what was approved; a line is never reduced below what was received or billed" sourceRef="Gateway_amend_purchase_order__if" targetRef="Task_amend_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_amend_purchase_order__if__Gateway_amend_purchase_order__if_end" name="otherwise" sourceRef="Gateway_amend_purchase_order__if" targetRef="Gateway_amend_purchase_order__if_end" />
<bpmn:sequenceFlow id="Flow_Task_amend_purchase_order__Gateway_amend_purchase_order__if_end" sourceRef="Task_amend_purchase_order" targetRef="Gateway_amend_purchase_order__if_end" />
<bpmn:sequenceFlow id="Flow_Task_send_order__Gateway_provide_components__if" sourceRef="Task_send_order" targetRef="Gateway_provide_components__if" />
<bpmn:sequenceFlow id="Flow_Gateway_provide_components__if_end__Task_receive_order" sourceRef="Gateway_provide_components__if_end" targetRef="Task_receive_order" />
<bpmn:sequenceFlow id="Flow_Task_receive_order__Gateway_amend_purchase_order__if" sourceRef="Task_receive_order" targetRef="Gateway_amend_purchase_order__if" />
<bpmn:sequenceFlow id="Flow_Gateway_order_confirmed__if__Task_amend_beyond_approval" sourceRef="Gateway_order_confirmed__if" targetRef="Task_amend_beyond_approval" />
<bpmn:sequenceFlow id="Flow_Gateway_order_confirmed__if__Task_close_short" sourceRef="Gateway_order_confirmed__if" targetRef="Task_close_short" />
<bpmn:sequenceFlow id="Flow_Gateway_order_confirmed__if__Task_finish_purchase_order" sourceRef="Gateway_order_confirmed__if" targetRef="Task_finish_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_confirmed__if__Task_cancel_purchase_order" sourceRef="Gateway_order_confirmed__if" targetRef="Task_cancel_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_amend_purchase_order__if_end__Gateway_order_confirmed__if" sourceRef="Gateway_amend_purchase_order__if_end" targetRef="Gateway_order_confirmed__if" />
<bpmn:sequenceFlow id="Flow_Task_open_call_off__Task_send_order" sourceRef="Task_open_call_off" targetRef="Task_send_order" />
<bpmn:sequenceFlow id="Flow_Gateway_approve_order_level__if__Task_approve_order_level" name="the release strategy in force on the submit date needs more levels than are approved; the approver's limit meets this level; not the buyer nor an earlier level's approver (email AND sub)" sourceRef="Gateway_approve_order_level__if" targetRef="Task_approve_order_level" />
<bpmn:sequenceFlow id="Flow_Gateway_approve_order_level__if__Gateway_approve_order_level__if_end" name="otherwise" sourceRef="Gateway_approve_order_level__if" targetRef="Gateway_approve_order_level__if_end" />
<bpmn:sequenceFlow id="Flow_Task_approve_order_level__Gateway_approve_order_level__if_end" sourceRef="Task_approve_order_level" targetRef="Gateway_approve_order_level__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_order_to_approve__if__Task_approve_order" sourceRef="Gateway_order_to_approve__if" targetRef="Task_approve_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_to_approve__if__Task_reject_order" sourceRef="Gateway_order_to_approve__if" targetRef="Task_reject_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_to_approve__if__Task_cancel_purchase_order" sourceRef="Gateway_order_to_approve__if" targetRef="Task_cancel_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_approve_order_level__if_end__Gateway_order_to_approve__if" sourceRef="Gateway_approve_order_level__if_end" targetRef="Gateway_order_to_approve__if" />
<bpmn:sequenceFlow id="Flow_Task_submit_order__Gateway_approve_order_level__if" sourceRef="Task_submit_order" targetRef="Gateway_approve_order_level__if" />
<bpmn:sequenceFlow id="Flow_Gateway_order_approved__if__Task_confirm_purchase_order" sourceRef="Gateway_order_approved__if" targetRef="Task_confirm_purchase_order" />
<bpmn:sequenceFlow id="Flow_Gateway_order_approved__if__Task_cancel_purchase_order" sourceRef="Gateway_order_approved__if" targetRef="Task_cancel_purchase_order" />
<bpmn:sequenceFlow id="Flow_Task_approve_order__Gateway_order_approved__if" sourceRef="Task_approve_order" targetRef="Gateway_order_approved__if" />
<bpmn:sequenceFlow id="Flow_Task_reject_order__Task_price_lines" sourceRef="Task_reject_order" targetRef="Task_price_lines" />
<bpmn:sequenceFlow id="Flow_Task_confirm_purchase_order__Task_send_order" sourceRef="Task_confirm_purchase_order" targetRef="Task_send_order" />
<bpmn:sequenceFlow id="Flow_Task_amend_beyond_approval__Gateway_approve_order_level__if" sourceRef="Task_amend_beyond_approval" targetRef="Gateway_approve_order_level__if" />
<bpmn:sequenceFlow id="Flow_Task_close_short__End_order_closed" sourceRef="Task_close_short" targetRef="End_order_closed" />
<bpmn:sequenceFlow id="Flow_Task_finish_purchase_order__End_order_closed" sourceRef="Task_finish_purchase_order" targetRef="End_order_closed" />
<bpmn:sequenceFlow id="Flow_Task_cancel_purchase_order__End_order_cancelled" sourceRef="Task_cancel_purchase_order" targetRef="End_order_cancelled" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_purchasing_v4">
<bpmndi:BPMNPlane id="BPMNPlane_purchasing_v4" bpmnElement="Collaboration_purchasing_v4">
<bpmndi:BPMNShape id="Participant_purchasing_order_di" bpmnElement="Participant_purchasing_order" isHorizontal="true">
<dc:Bounds x="0" y="0" width="2320" height="1300" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_order_buyer_di" bpmnElement="Lane_order_buyer" isHorizontal="true">
<dc:Bounds x="30" y="0" width="2290" height="500" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_order_system_di" bpmnElement="Lane_order_system" isHorizontal="true">
<dc:Bounds x="30" y="500" width="2290" height="140" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_order_spend_approver_di" bpmnElement="Lane_order_spend_approver" isHorizontal="true">
<dc:Bounds x="30" y="640" width="2290" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_order_receiver_di" bpmnElement="Lane_order_receiver" isHorizontal="true">
<dc:Bounds x="30" y="900" width="2290" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_order_supplier_di" bpmnElement="Lane_order_supplier" isHorizontal="true">
<dc:Bounds x="30" y="1160" width="2290" height="140" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Start_order_di" bpmnElement="Start_order">
<dc:Bounds x="157" y="42" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_raise_from_request_di" bpmnElement="Task_raise_from_request">
<dc:Bounds x="465" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_draft_order_di" bpmnElement="Task_draft_order">
<dc:Bounds x="465" y="140" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_raise_from_quote_di" bpmnElement="Task_raise_from_quote">
<dc:Bounds x="465" y="260" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_raise_release_order_di" bpmnElement="Task_raise_release_order">
<dc:Bounds x="465" y="380" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_open_call_off_di" bpmnElement="Task_open_call_off">
<dc:Bounds x="465" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_price_lines_di" bpmnElement="Task_price_lines">
<dc:Bounds x="635" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_accept_rounding_di" bpmnElement="Task_accept_rounding">
<dc:Bounds x="975" y="660" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_approve_order_level_di" bpmnElement="Task_approve_order_level">
<dc:Bounds x="1655" y="660" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_submit_order_di" bpmnElement="Task_submit_order">
<dc:Bounds x="1315" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_approve_order_di" bpmnElement="Task_approve_order">
<dc:Bounds x="1995" y="660" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_reject_order_di" bpmnElement="Task_reject_order">
<dc:Bounds x="1995" y="780" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_confirm_purchase_order_di" bpmnElement="Task_confirm_purchase_order">
<dc:Bounds x="1315" y="140" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_send_order_di" bpmnElement="Task_send_order">
<dc:Bounds x="635" y="140" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_provide_components_di" bpmnElement="Task_provide_components">
<dc:Bounds x="975" y="920" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_receive_order_di" bpmnElement="Task_receive_order">
<dc:Bounds x="1145" y="1180" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_amend_purchase_order_di" bpmnElement="Task_amend_purchase_order">
<dc:Bounds x="1485" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_amend_beyond_approval_di" bpmnElement="Task_amend_beyond_approval">
<dc:Bounds x="1825" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_close_short_di" bpmnElement="Task_close_short">
<dc:Bounds x="1825" y="140" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_finish_purchase_order_di" bpmnElement="Task_finish_purchase_order">
<dc:Bounds x="1825" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_cancel_purchase_order_di" bpmnElement="Task_cancel_purchase_order">
<dc:Bounds x="1315" y="260" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_order_none__if_di" bpmnElement="Gateway_order_none__if">
<dc:Bounds x="320" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_accept_rounding__if_di" bpmnElement="Gateway_accept_rounding__if">
<dc:Bounds x="830" y="675" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_accept_rounding__if_end_di" bpmnElement="Gateway_accept_rounding__if_end">
<dc:Bounds x="1000" y="795" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_order_draft__if_di" bpmnElement="Gateway_order_draft__if">
<dc:Bounds x="1170" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_provide_components__if_di" bpmnElement="Gateway_provide_components__if">
<dc:Bounds x="830" y="935" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_provide_components__if_end_di" bpmnElement="Gateway_provide_components__if_end">
<dc:Bounds x="1000" y="1055" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_amend_purchase_order__if_di" bpmnElement="Gateway_amend_purchase_order__if">
<dc:Bounds x="1340" y="395" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_amend_purchase_order__if_end_di" bpmnElement="Gateway_amend_purchase_order__if_end">
<dc:Bounds x="1510" y="155" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_order_confirmed__if_di" bpmnElement="Gateway_order_confirmed__if">
<dc:Bounds x="1680" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_approve_order_level__if_di" bpmnElement="Gateway_approve_order_level__if">
<dc:Bounds x="1510" y="675" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_approve_order_level__if_end_di" bpmnElement="Gateway_approve_order_level__if_end">
<dc:Bounds x="1680" y="795" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_order_to_approve__if_di" bpmnElement="Gateway_order_to_approve__if">
<dc:Bounds x="1850" y="675" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_order_approved__if_di" bpmnElement="Gateway_order_approved__if">
<dc:Bounds x="2190" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_order_closed_di" bpmnElement="End_order_closed">
<dc:Bounds x="2027" y="42" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_order_cancelled_di" bpmnElement="End_order_cancelled">
<dc:Bounds x="1517" y="282" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_Gateway_order_none__if__Task_raise_from_request_di" bpmnElement="Flow_Gateway_order_none__if__Task_raise_from_request">
<di:waypoint x="370" y="60" />
<di:waypoint x="465" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_none__if__Task_draft_order_di" bpmnElement="Flow_Gateway_order_none__if__Task_draft_order">
<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_order_none__if__Task_raise_from_quote_di" bpmnElement="Flow_Gateway_order_none__if__Task_raise_from_quote">
<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_Gateway_order_none__if__Task_raise_release_order_di" bpmnElement="Flow_Gateway_order_none__if__Task_raise_release_order">
<di:waypoint x="370" y="60" />
<di:waypoint x="440" y="60" />
<di:waypoint x="440" y="420" />
<di:waypoint x="465" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_none__if__Task_open_call_off_di" bpmnElement="Flow_Gateway_order_none__if__Task_open_call_off">
<di:waypoint x="370" y="60" />
<di:waypoint x="440" y="60" />
<di:waypoint x="440" y="560" />
<di:waypoint x="465" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Start_order__Gateway_order_none__if_di" bpmnElement="Flow_Start_order__Gateway_order_none__if">
<di:waypoint x="193" y="60" />
<di:waypoint x="320" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_accept_rounding__if__Task_accept_rounding_di" bpmnElement="Flow_Gateway_accept_rounding__if__Task_accept_rounding">
<di:waypoint x="880" y="700" />
<di:waypoint x="975" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_accept_rounding__if__Gateway_accept_rounding__if_end_di" bpmnElement="Flow_Gateway_accept_rounding__if__Gateway_accept_rounding__if_end">
<di:waypoint x="880" y="700" />
<di:waypoint x="975" y="700" />
<di:waypoint x="975" y="820" />
<di:waypoint x="1000" y="820" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_accept_rounding__Gateway_accept_rounding__if_end_di" bpmnElement="Flow_Task_accept_rounding__Gateway_accept_rounding__if_end">
<di:waypoint x="1025" y="740" />
<di:waypoint x="1025" y="860" />
<di:waypoint x="1025" y="860" />
<di:waypoint x="1025" y="845" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_price_lines__Gateway_accept_rounding__if_di" bpmnElement="Flow_Task_price_lines__Gateway_accept_rounding__if">
<di:waypoint x="735" y="60" />
<di:waypoint x="805" y="60" />
<di:waypoint x="805" y="700" />
<di:waypoint x="830" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_draft__if__Task_submit_order_di" bpmnElement="Flow_Gateway_order_draft__if__Task_submit_order">
<di:waypoint x="1220" y="60" />
<di:waypoint x="1315" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_draft__if__Task_confirm_purchase_order_di" bpmnElement="Flow_Gateway_order_draft__if__Task_confirm_purchase_order">
<di:waypoint x="1220" y="60" />
<di:waypoint x="1290" y="60" />
<di:waypoint x="1290" y="180" />
<di:waypoint x="1315" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_draft__if__Task_cancel_purchase_order_di" bpmnElement="Flow_Gateway_order_draft__if__Task_cancel_purchase_order">
<di:waypoint x="1220" y="60" />
<di:waypoint x="1290" y="60" />
<di:waypoint x="1290" y="300" />
<di:waypoint x="1315" y="300" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_accept_rounding__if_end__Gateway_order_draft__if_di" bpmnElement="Flow_Gateway_accept_rounding__if_end__Gateway_order_draft__if">
<di:waypoint x="1050" y="820" />
<di:waypoint x="1145" y="820" />
<di:waypoint x="1145" y="60" />
<di:waypoint x="1170" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_raise_from_request__Task_price_lines_di" bpmnElement="Flow_Task_raise_from_request__Task_price_lines">
<di:waypoint x="565" y="60" />
<di:waypoint x="635" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_draft_order__Task_price_lines_di" bpmnElement="Flow_Task_draft_order__Task_price_lines">
<di:waypoint x="565" y="180" />
<di:waypoint x="610" y="180" />
<di:waypoint x="610" y="60" />
<di:waypoint x="635" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_raise_from_quote__Task_price_lines_di" bpmnElement="Flow_Task_raise_from_quote__Task_price_lines">
<di:waypoint x="565" y="300" />
<di:waypoint x="610" y="300" />
<di:waypoint x="610" y="60" />
<di:waypoint x="635" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_raise_release_order__Task_price_lines_di" bpmnElement="Flow_Task_raise_release_order__Task_price_lines">
<di:waypoint x="565" y="420" />
<di:waypoint x="610" y="420" />
<di:waypoint x="610" y="60" />
<di:waypoint x="635" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_provide_components__if__Task_provide_components_di" bpmnElement="Flow_Gateway_provide_components__if__Task_provide_components">
<di:waypoint x="880" y="960" />
<di:waypoint x="975" y="960" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_provide_components__if__Gateway_provide_components__if_end_di" bpmnElement="Flow_Gateway_provide_components__if__Gateway_provide_components__if_end">
<di:waypoint x="880" y="960" />
<di:waypoint x="975" y="960" />
<di:waypoint x="975" y="1080" />
<di:waypoint x="1000" y="1080" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_provide_components__Gateway_provide_components__if_end_di" bpmnElement="Flow_Task_provide_components__Gateway_provide_components__if_end">
<di:waypoint x="1025" y="1000" />
<di:waypoint x="1025" y="1126" />
<di:waypoint x="1025" y="1126" />
<di:waypoint x="1025" y="1105" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_amend_purchase_order__if__Task_amend_purchase_order_di" bpmnElement="Flow_Gateway_amend_purchase_order__if__Task_amend_purchase_order">
<di:waypoint x="1390" y="420" />
<di:waypoint x="1460" y="420" />
<di:waypoint x="1460" y="60" />
<di:waypoint x="1485" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_amend_purchase_order__if__Gateway_amend_purchase_order__if_end_di" bpmnElement="Flow_Gateway_amend_purchase_order__if__Gateway_amend_purchase_order__if_end">
<di:waypoint x="1390" y="420" />
<di:waypoint x="1485" y="420" />
<di:waypoint x="1485" y="180" />
<di:waypoint x="1510" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_amend_purchase_order__Gateway_amend_purchase_order__if_end_di" bpmnElement="Flow_Task_amend_purchase_order__Gateway_amend_purchase_order__if_end">
<di:waypoint x="1535" y="100" />
<di:waypoint x="1535" y="232" />
<di:waypoint x="1535" y="232" />
<di:waypoint x="1535" y="205" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_send_order__Gateway_provide_components__if_di" bpmnElement="Flow_Task_send_order__Gateway_provide_components__if">
<di:waypoint x="735" y="180" />
<di:waypoint x="805" y="180" />
<di:waypoint x="805" y="960" />
<di:waypoint x="830" y="960" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_provide_components__if_end__Task_receive_order_di" bpmnElement="Flow_Gateway_provide_components__if_end__Task_receive_order">
<di:waypoint x="1050" y="1080" />
<di:waypoint x="1120" y="1080" />
<di:waypoint x="1120" y="1220" />
<di:waypoint x="1145" y="1220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_receive_order__Gateway_amend_purchase_order__if_di" bpmnElement="Flow_Task_receive_order__Gateway_amend_purchase_order__if">
<di:waypoint x="1245" y="1220" />
<di:waypoint x="1315" y="1220" />
<di:waypoint x="1315" y="420" />
<di:waypoint x="1340" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_confirmed__if__Task_amend_beyond_approval_di" bpmnElement="Flow_Gateway_order_confirmed__if__Task_amend_beyond_approval">
<di:waypoint x="1730" y="60" />
<di:waypoint x="1825" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_confirmed__if__Task_close_short_di" bpmnElement="Flow_Gateway_order_confirmed__if__Task_close_short">
<di:waypoint x="1730" y="60" />
<di:waypoint x="1800" y="60" />
<di:waypoint x="1800" y="180" />
<di:waypoint x="1825" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_confirmed__if__Task_finish_purchase_order_di" bpmnElement="Flow_Gateway_order_confirmed__if__Task_finish_purchase_order">
<di:waypoint x="1730" y="60" />
<di:waypoint x="1800" y="60" />
<di:waypoint x="1800" y="560" />
<di:waypoint x="1825" y="560" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_confirmed__if__Task_cancel_purchase_order_di" bpmnElement="Flow_Gateway_order_confirmed__if__Task_cancel_purchase_order">
<di:waypoint x="1705" y="85" />
<di:waypoint x="1705" y="373" />
<di:waypoint x="1365" y="373" />
<di:waypoint x="1365" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_amend_purchase_order__if_end__Gateway_order_confirmed__if_di" bpmnElement="Flow_Gateway_amend_purchase_order__if_end__Gateway_order_confirmed__if">
<di:waypoint x="1560" y="180" />
<di:waypoint x="1655" y="180" />
<di:waypoint x="1655" y="60" />
<di:waypoint x="1680" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_open_call_off__Task_send_order_di" bpmnElement="Flow_Task_open_call_off__Task_send_order">
<di:waypoint x="565" y="560" />
<di:waypoint x="610" y="560" />
<di:waypoint x="610" y="180" />
<di:waypoint x="635" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_approve_order_level__if__Task_approve_order_level_di" bpmnElement="Flow_Gateway_approve_order_level__if__Task_approve_order_level">
<di:waypoint x="1560" y="700" />
<di:waypoint x="1655" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_approve_order_level__if__Gateway_approve_order_level__if_end_di" bpmnElement="Flow_Gateway_approve_order_level__if__Gateway_approve_order_level__if_end">
<di:waypoint x="1560" y="700" />
<di:waypoint x="1655" y="700" />
<di:waypoint x="1655" y="820" />
<di:waypoint x="1680" y="820" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_approve_order_level__Gateway_approve_order_level__if_end_di" bpmnElement="Flow_Task_approve_order_level__Gateway_approve_order_level__if_end">
<di:waypoint x="1705" y="740" />
<di:waypoint x="1705" y="860" />
<di:waypoint x="1705" y="860" />
<di:waypoint x="1705" y="845" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_to_approve__if__Task_approve_order_di" bpmnElement="Flow_Gateway_order_to_approve__if__Task_approve_order">
<di:waypoint x="1900" y="700" />
<di:waypoint x="1995" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_to_approve__if__Task_reject_order_di" bpmnElement="Flow_Gateway_order_to_approve__if__Task_reject_order">
<di:waypoint x="1900" y="700" />
<di:waypoint x="1970" y="700" />
<di:waypoint x="1970" y="820" />
<di:waypoint x="1995" y="820" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_to_approve__if__Task_cancel_purchase_order_di" bpmnElement="Flow_Gateway_order_to_approve__if__Task_cancel_purchase_order">
<di:waypoint x="1875" y="725" />
<di:waypoint x="1875" y="746" />
<di:waypoint x="1365" y="746" />
<di:waypoint x="1365" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_approve_order_level__if_end__Gateway_order_to_approve__if_di" bpmnElement="Flow_Gateway_approve_order_level__if_end__Gateway_order_to_approve__if">
<di:waypoint x="1730" y="820" />
<di:waypoint x="1825" y="820" />
<di:waypoint x="1825" y="700" />
<di:waypoint x="1850" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_submit_order__Gateway_approve_order_level__if_di" bpmnElement="Flow_Task_submit_order__Gateway_approve_order_level__if">
<di:waypoint x="1415" y="60" />
<di:waypoint x="1485" y="60" />
<di:waypoint x="1485" y="700" />
<di:waypoint x="1510" y="700" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_approved__if__Task_confirm_purchase_order_di" bpmnElement="Flow_Gateway_order_approved__if__Task_confirm_purchase_order">
<di:waypoint x="2215" y="85" />
<di:waypoint x="2215" y="247" />
<di:waypoint x="1365" y="247" />
<di:waypoint x="1365" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_order_approved__if__Task_cancel_purchase_order_di" bpmnElement="Flow_Gateway_order_approved__if__Task_cancel_purchase_order">
<di:waypoint x="2215" y="85" />
<di:waypoint x="2215" y="373" />
<di:waypoint x="1365" y="373" />
<di:waypoint x="1365" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_approve_order__Gateway_order_approved__if_di" bpmnElement="Flow_Task_approve_order__Gateway_order_approved__if">
<di:waypoint x="2095" y="700" />
<di:waypoint x="2165" y="700" />
<di:waypoint x="2165" y="60" />
<di:waypoint x="2190" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_reject_order__Task_price_lines_di" bpmnElement="Flow_Task_reject_order__Task_price_lines">
<di:waypoint x="2045" y="860" />
<di:waypoint x="2045" y="875" />
<di:waypoint x="685" y="875" />
<di:waypoint x="685" y="100" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_confirm_purchase_order__Task_send_order_di" bpmnElement="Flow_Task_confirm_purchase_order__Task_send_order">
<di:waypoint x="1365" y="220" />
<di:waypoint x="1365" y="241" />
<di:waypoint x="685" y="241" />
<di:waypoint x="685" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_amend_beyond_approval__Gateway_approve_order_level__if_di" bpmnElement="Flow_Task_amend_beyond_approval__Gateway_approve_order_level__if">
<di:waypoint x="1875" y="100" />
<di:waypoint x="1875" y="752" />
<di:waypoint x="1535" y="752" />
<di:waypoint x="1535" y="725" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_close_short__End_order_closed_di" bpmnElement="Flow_Task_close_short__End_order_closed">
<di:waypoint x="1925" y="180" />
<di:waypoint x="2002" y="180" />
<di:waypoint x="2002" y="60" />
<di:waypoint x="2027" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_finish_purchase_order__End_order_closed_di" bpmnElement="Flow_Task_finish_purchase_order__End_order_closed">
<di:waypoint x="1925" y="560" />
<di:waypoint x="2002" y="560" />
<di:waypoint x="2002" y="60" />
<di:waypoint x="2027" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_cancel_purchase_order__End_order_cancelled_di" bpmnElement="Flow_Task_cancel_purchase_order__End_order_cancelled">
<di:waypoint x="1415" y="300" />
<di:waypoint x="1517" y="300" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Participant_supplier_di" bpmnElement="Participant_supplier" isHorizontal="true">
<dc:Bounds x="0" y="1340" width="2320" height="60" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_Participant_supplier__Task_receive_order_di" bpmnElement="Flow_Participant_supplier__Task_receive_order">
<di:waypoint x="1195" y="1340" />
<di:waypoint x="1195" y="1260" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>