menu_banner (2K)

Appendix M: Workflow Engine

A computer application contains a number of different 'tasks', 'transactions', 'programs' or 'modules', each of which performs a particular function. Sometimes the processing of one particular task is supposed to be followed by one or more other tasks in order to complete some higher process. For example, the task 'Take Customer Order' may have to be followed by 'Charge Customer', 'Pack Order' and 'Ship Order'. This higher process may have a name such as 'Order Fulfillment', but as you can see it cannot be handled by a single task and has to be broken down into its component parts.

Without a workflow system the processing of the component parts has to be handled manually, which is where mistakes can occur. Forgetting to charge the customer or ship the order is not a good way to run a business.

With a Workflow system it is possible to define 'Order Fulfillment' as a workflow process, with 'Charge Customer', 'Pack Order' and 'Ship Order' as components of that process. When an instance (or 'case') of the workflow process is created the workflow engine will then take responsibility for dealing with each component in turn. These components may be executed automatically, or they may be directed to appear in someone's inbox.

The design of this Workflow Engine is explained in An activity based Workflow Engine for PHP.

These are the maintenance screens for the Workflow Engine which has been built into this infrastructure:

Workflow Processes
List Workflow Process
Add Workflow Process
Delete Workflow Process
Enquire Workflow Process
Search Workflow Process
Update Workflow Process
Validate Workflow Process
Workflow Places
List Workflow Place
Add Workflow Place
Delete Workflow Place
Enquire Workflow Place
Search Workflow Place
Update Workflow Place
Workflow Transitions
List Workflow Transition
Add Workflow Transition
Delete Workflow Transition
Enquire Workflow Transition
Search Workflow Transition
Update Workflow Transition
Workflow Arcs
List Workflow Arc
Add Workflow Arc
Delete Workflow Arc
Enquire Workflow Arc
Search Workflow Arc
Update Workflow Arc
Workflow Cases
List Workflow Case
List Case within Workflow
Enquire Workflow Case
Search Workflow Case
Workflow Tokens
List Workflow Token
List Token within Case
Enquire Workflow Token
Search Workflow Token
Workflow Workitems
List Workflow Workitem
List Workitem within Case
Enquire Workflow Workitem
Search Workflow Workitem
Update Workflow Workitem
List Outstanding Workitems
List Expired Workitems
Trigger Expired Workitem (online)
Trigger Expired Workitems (in the background)

If there are any pending workitems for a user or a role then they will appear on the menu/home page as a series of hyperlinks. If you click on a link you will be taken immediately to that screen to perform the indicated action.