This invention relates to use of “workflow engine” computer software programs in modeling production or service work processes.
“Workflow engine” computer software programs are gaining popularity as organizations become interested in predefining (or “modeling”) manufacturing or other production or service work processes to make them repeatable and monitorable for quality control purposes. Workflow engines apply the model definition of a process to manually lead a user (and/or drive an automated system) through the various steps or tasks required to complete the process. As one task is completed, the workflow engine examines (or “reads”) the process model definition to obtain and dispatch the next predefined task for either manual or automated completion.
The problem addressed by this invention is that process models do not always allow for dynamic (i.e., “as needed”) changes in the predefined task flows to occur as a process is executed. To further complicate the problem, it is often desired to allow adjustments to the task flow to dynamically occur in “real time” after completion of any one or more steps in the process. Typical solutions to this problem involve building extremely complex BPEL (Business Process Execution Language) models where the multitude of possible paths of process execution (i.e., “task flows” or “branches”) are all predefined, ultimately resulting in a process model that isn't usable or maintainable. Another solution to this problem is to manually (or programmatically) designate certain tasks to be skipped as “complete” before allowing the workflow engine to progress to the next desired task, which wastes processing time and potentially lengthens the time that a user must await identification of the next task to be performed.
The invention solves this problem by providing the ability to redefine and/or circumvent the usual execution sequence of steps or tasks in a process in allowing the predefined task flow to be dynamically changed while the process is being performed. Providing this capability simplifies process model creation and maintenance and permits performance of a BPEL process to assume greater flexibility by allowing each individual execution of the process to potentially take a different sequence path through the process.
An invention is provided for dynamically changing the predefined execution sequence of steps or tasks in a computerized process (while it is being performed) by permitting one or more selected task(s) to be performed as necessary when other task(s) have been completed. Specifically, a product, method and system is provided for using a “workflow engine” software program acting in combination with a “decision-making layer” program interface between the workflow engine and the process model to determine the normal or (“default”) next step in the process and all other possible valid process steps that can be completed after execution of the current step or task instead of (or in addition to) the predefined next step in the process model. This “decision-making point” can occur at any or all steps in the process and is dependent upon information acquired during “real-time” performance of one or more process tasks; and the specification of process task(s) to be performed can be determined by the workflow engine program without user intervention or via a user interface presenting a selection of possible valid (i.e., permissible) subsequent tasks based upon information gathered during performance of current and/or previous task(s).
In operation, the invention changes the flow of “workflow engine” control between executed process steps or tasks based upon information first obtained in performing a given task that makes it necessary to decide whether to (a) repeat one or more previously completed step(s) or task(s) in the process; and/or to (b) skip one or more subsequent process step(s) or task(s) (without performing the skipped step(s) or task(s)); and/or to (c) complete the process by skipping all remaining steps and tasks.
It is therefore an object of the present invention to provide the ability to change the predefined execution sequence of steps or tasks in a computerized process by permitting selected task(s) to be performed when other task(s) have been completed.
It is another object of the present invention to provide a product, method and system for using a “workflow engine” software program acting in combination with a “decision-making layer” program interface to determine the normal or (“default”) next step in a process and any other process steps that can be permissibly completed after execution of the current step or task instead of or in addition to the next step.
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, together with further objects and advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings.
As illustrated in
As illustrated in the example of
As illustrated in
While certain preferred features of the invention have been shown by way of illustration, many modifications and changes can be made that fall within the true spirit of the invention as embodied in the following claims, which are to be interpreted as broadly as the law permits to cover the full scope of the invention, including all equivalents thereto.