One of the ways in which Compiere is different from other applications is how it implemented and uses workflows. In many applications, any workflow engine is an afterthought. Therefore it can be used mainly for guiding users but not for any control purposes. In Compiere, the workflow engine is an integrated part of the application. This approach makes it relatively easy to create, modify and extend processes to address your specific needs and requirements.
Workflows can include tasks and operations within Compiere and external tasks as well. A Workflow can be used to send emails and notifications to internal and external parties and can be used to generate reports and do report bursting (sending reports to a list of recipients).
There are three types of workflows in Compiere:
- Steps/Guidance Workflows,
- Document Process Workflows and
- Record Value Workflows.
Each serves a different need and each can be easily extended (or you can create your own).
Steps/Guidance Workflows are the most basic and general. They are invoked by the user by selecting one of the Workflows in the Menu. They are indicated in the Menu by the footprints. It allows you to define a list or process of steps that should be completed to accomplish a specific task. In Compiere these Workflows have been defined for Defining a new Language, Setting up a Business Partner, among others. You can easily add any specific steps you require to these existing Workflows, or you can create your own to document your month or year end closing process (for example). These Workflows impose no restrictions or limitations. The user is not forced to complete each step or to complete each step in a particular order. Its purpose is to guide or assist a user in a new or infrequently performed task. These Workflows can also include steps outside of Compiere.
Document Process Workflows are invoked when a user selects the Document Action button (e.g. Complete, Prepare, Close) on any document. There are four standard nodes which should not be edited, but you can introduce additional nodes to alter the processing. The typical example is to add an approval step to the Purchase Order Workflow to require a supervisor approval for Purchase Orders over $500.00. With the Compiere Workflow design, this is done by adding data (no code) and the modifications would be preserved when upgrading to a new release.
Record Value Workflows are invoked when a specific condition is met. This can be for a document or maintenance window. These are entirely user defined. An example of a Record Value Workflow can be found in GardenWorld. The Business Partner Approval Workflow is based on the Business Partner table. It is invoked whenever a new Business Partner is added. The condition is Created Date and UpdatedDate are equal as this condition would only resolve to true when a record is first added. A notice is sent to a supervisor. You could then extend this workflow to include tasks like validate email addresses, perform a credit check, assign a sales representative etc.
These are examples of some Workflows in Compiere. Stay tuned for future postings on how to create and modify Workflows.