====== Order Fulfillment & Stock Maintenance Processes ====== Example from [[http://www.omg.org/spec/BPMN/20100601/10-06-02.pdf|BPMN 2.0 by Example]], page 5. {{indexmenu>:bpwiki:process_order_fulfillment#1|js#simplebpmn navbar notoc}} ++++ Order Fulfillment Process code | { events: { start: { se_orderRec: { name: "Order received", type: message } }, end: { ee_paymentRec: "Payment received", ee_customerInf: "Customer informed", ee_articleRem: "Article removed" }, intermediate: { ie_undeliverable: { name: "undeliverable", type: error }, ie_lateDelivery: { name: "late Delivery", type: escalation, nonInterrupting: true } } }, activities: { at_checkAva: "Check availability", at_shipArticle: "Ship article", task_infCustomer: "Inform customer", task_infCustomer2: "Inform customer", at_remArticle: "Remove article from calatogue", [[bpmn>bpwiki:process_order_fulfillment:process_finSettlement]], [[bpmn>bpwiki:process_order_fulfillment:process_procurement]] }, gateways: { g_articleAvail: "Article available" }, flow: { f1: [ se_orderRec, at_checkAva ], f2: [ at_checkAva, g_articleAvail ], f3: [ g_articleAvail, at_shipArticle, "yes" ], f4: [ at_shipArticle, process_finSettlement ], f5: [ process_finSettlement, ee_paymentRec ], //branch at g_articleAvail f6: [ g_articleAvail, process_procurement, "no" ], f7: [ process_procurement, at_shipArticle ], //end /* boundary events handling - ie_lateDelivery */ f8: [ ie_lateDelivery, task_infCustomer ], f9: [ task_infCustomer, ee_customerInf ], //end /* boundary events handling - ie_undeliverable */ f10: [ ie_undeliverable, task_infCustomer2 ], f11: [ task_infCustomer2, at_remArticle ], f12: [ at_remArticle, ee_articleRem ] //end } } ++++ ++++ Stock Maintenance Process code | { events: { start: { se_stockLevel: { type: conditional, name: "Stock level below minimum" } }, intermediate: { ie_undeliverable: { type: error, name: "undeliverable" } }, end: { ee_articleProcured: "Article procured", ee_articleRemoved: "Article removed" } }, activities: { [[bpmn>bpwiki:process_order_fulfillment:process_procurement]], task_removeArticle: "Remove article from catalogue" }, flow: { f1: [ se_stockLevel, process_procurement ], f2: [ process_procurement, ee_articleProcured ], f3: [ ie_undeliverable, task_removeArticle ], f4: [ task_removeArticle, ee_articleRemoved ] } } ++++