Skip to content

Thoughts on business process based modeling

inspiran edited this page Jan 10, 2011 · 2 revisions

Abstract

E-commerce development is typically modeled around common concepts such as a sales order, ordered items, vendor back orders, invoices and so on to fulfill a customer order. These entities are used together to fulfill a typical Order to cash. Many deviations do exist but typically:

  • the customer registers
  • the order is placed
  • the order is full filled
  • Distribution / shipment occurs
  • Invoice is sent
  • Customer payments/collection
  • Cash Application
  • Receipt

Information about a particular order to cash process is typically scattered around several entities. Suppose that the product ordered is not available and needs to be put in back order, maintaining the relationship between the back order - and the reason why it was back ordered - becomes less clear to understand and even harder model as you'll just add zillions of columns to each entity to support a particular process. Imagine customer specific requirements and you'll quickly deviate from the standard process.

A different approach

What if we would describe the process itself using a business process model notation such as BPMN and have it converted to runtime (generated?) classes to support the order process? Out of the box some basic processes could be provided (order to cash, download to cash). If the requirements are complex, the model could be adapted using modeling tools such as BizAgi by developers.

Let's again consider the main order to cash flow modeled using BizAgi:

Sub flows

If you would consider the order to cash flow earlier, one will quickly realize that differences can be noticed between a download to order process where the shipment is as simple as mailing a download link whereas the processing of the shipment of a good using services such as FedEx are typically more complicated (request FedEx to come, assure that an employee labels the package correctly for FedEx, update the sales order that the goods were shipped, ...).

Therefor it would be handy to have the concept of sub flows which can model the shipment part of the main order to cash process.

Todo: add some BizAgi models and examples of generated BPMN code.