Workflow is a series of activities that form a real world process and defines the order in which these activities are processed and their dependencies. In a software sense, ' work flow' refers to the triggering of events and the processing of corresponding actions. This process turns a software application from being simply a data entry and retrieval system into a business application that reflects business processes, thus increasing both quality and productivity and reducing costs.
Within the workflow, each activity is processed as a result of a corresponding event. There are number of ways in which an Event can be triggered:
This is the most common form of event notification where the Event is triggered as a result of modifications to the data. This can occur as a result of an Insert, Delete or Modify operation.
When there are Events that rely on information external to system, a Periodic Event notification is required. The most common form of this are Events that are based on Time where the event could be either a particular time period that has expired or a particular instance of time that has arrived. An example of this is for scheduled tasks which require the assigned user to be notified that the task is about to begin.
This occurs when an Event is explicitly raised through a user action such as clicking on a button on the screen or through external processes.
Events are defined by the creation of Event objects which are made up of several components:
The system analyses the event conditions to identify if the Event should be raised. This can be based on modifications to data or external information.
When Events are raised as a result of modifications to data, validation rules can be applied to ensure that only valid information is made persistent.
If all validations for the Event have passed, then the associated actions can be performed. These can be in the form of notifications, further data updates and calls to Web Services.
Validations can be added to the workflow process to ensure data integrity, permissions and to warn users about possible mistakes.
The validations on an event could be any of the following ones:
Checks that the user is entitled to make the change. The user must be associated with the entitlement before the change can be made.
Checks that the data matches a certain criteria.
For more complex validations, custom Java code can be run.
For each event, there is typically a corresponding action which could in turn trigger new events. Actions can be one of the following:
Informs users that an event has taken place. This can be done through a screen alert, an email or an SMS message.
Updates other data in the system as a result of the event being raised.
ISQL commands can be called to process Insert, Update or Delete, or to handle more complex processes.
Custom Java code allows specific processing which is not available through the other action methods.