====== 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
]
}
}
++++