Claims
- 1. A computer implemented method of performing a process, the method comprising:
receiving a modification to data associated with the process; identifying workflow steps from a table of workflow steps based on the modification; and invoking a workflow engine to enforce state transitions in the process based on the table of workflow steps.
- 2. A computer-readable medium having computer-executable instructions to a cause a computing system to perform a method comprising:
creating a data table in a server database; creating a workflow table in the server database, wherein the workflow table is associated with the data table, wherein each row in the workflow table represents a workflow step containing workflow rules and associated code defined by script functions; receiving a data modification request in the server database; invoking a workflow engine using server database triggers; and evaluating a condition and executing an action for at least one workflow step.
- 3. The method of claim 2, wherein evaluating a condition and executing an action for at least one workflow step includes using a script engine which is invoked by the workflow engine.
- 4. A workflow system comprising:
a server database including a data table and an associated workflow table; a workflow extended store communicatively coupled to the server database; a workflow engine communicatively coupled to the server database and to the workflow extended store; and a script engine communicatively coupled to the workflow engine.
- 5. The workflow system of claim 4 wherein the workflow table is communicatively coupled to the workflow engine.
- 6. The workflow system of claim 4 wherein each column in the data table comprises a workflow state.
- 7. The workflow system of claim 4 wherein each row in the workflow table comprises a workflow step.
- 8. The workflow system of claim 4 wherein the workflow table comprises a set of workflow rules and associated code to be executed by the workflow engine, wherein a workflow table is defined for each data table that needs to enforce integrity of data changes.
- 9. The workflow system of claim 4 wherein the extended store comprises a data set having the necessary information to enforce a workflow step.
- 10. The workflow system of claim 4 wherein the workflow engine is implemented as a COM component and can run both in-process and out-of-process, wherein the workflow engine receives information on a workflow event from the extended store and maps the information against a cached copy of the workflow table and executes an appropriate workflow step.
- 11. A workflow system comprising:
a server database including a data table and an associated workflow table, wherein each row in the workflow table comprises a workflow step; a workflow extended store communicatively coupled to the server database; a workflow engine communicatively coupled to the server database, to the workflow extended store, and to the workflow table; and a script engine communicatively coupled to the workflow engine.
- 12. The workflow system of claim 11, wherein each workflow step is triggered by a workflow event selected from the group comprising state events, transition events, and timeout events.
- 13. The workflow system of claim 12, wherein a state event is associated with a single workflow state and is executed every time the event associated with the workflow state is triggered.
- 14. The workflow system of claim 13, wherein the execution of a state event depends on how a workflow state is entered or exited.
- 15. The workflow system of claim 12, wherein a transition event is associated with a change from a current workflow state to a new workflow state, wherein the current and the new workflow states are defined by a transition workflow step, and wherein the transition event is executed upon a requested state transition where the current and the new workflow state match the transition workflow step.
- 16. The workflow system of claim 12, wherein a timeout event is associated with a timeout job, wherein the timeout event can be either a state event or a transition event, and wherein the timeout event is triggered by the timeout job.
- 17. A workflow system comprising:
a server database including a data table and an associated workflow table, wherein each row in the workflow table comprises a workflow step, and wherein the system further includes workflow triggers defined on the data table; a workflow extended store communicatively coupled to the server database, wherein the workflow triggers analyze a data modification request submitted to the data table and invoke the extended store; a workflow engine communicatively coupled to the server database, to the workflow extended store, and to the workflow table; and a script engine communicatively coupled to the workflow engine.
- 18. The workflow system of claim 17, wherein the workflow engine is tier-agnostic.
- 19. The workflow system of claim 17, wherein the system further includes a session object communicatively coupled to the server database, wherein the session object comprises a set of properties for a workflow event, a set of data on the current user, a database user list, and a data set of user permission.
- 20. The workflow system of claim 19, wherein the system further includes a number of workflow support functions which operate in conjunction with the session object and implement a number of workflow tasks including sending email and finding a user's manager.
- 21. The workflow system of claim 17, wherein the system further includes a timeout agent implemented as a server job, wherein the timeout agent is scheduled to run with a definable frequency, and wherein the timeout agent scans the server database and executes an timeout workflow event when the database indicates such an ontimeout workflow event is due.
- 22. The workflow system of claim 21, wherein the timeout agent performs an update in the data table and triggers an association workflow action upon timeout workflow events which define a state transition.
- 23. A computing method comprising:
creating a data table in a server database; creating a workflow table in the server database, wherein the workflow table is associated with the data table, wherein each row in the workflow table represents a workflow step; receiving a data modification request in the server database; invoking a workflow engine using server database triggers; and evaluating a condition and executing an action for each workflow step using a script engine which is invoked by the workflow engine.
- 24. The method of claim 23, wherein invoking the workflow engine includes comparing the data modification request with a workflow definition in the workflow table and determining the appropriate workflow step to be executed.
- 25. The method of claim 23, wherein evaluating a condition and executing an action for each workflow step includes checking execution permissions on each workflow step.
- 26. The method of claim 23, wherein creating a workflow table with each row in the workflow table representing a workflow step includes defining a condition and an action for each workflow step using script functions.
- 27. The method of claim 25, wherein the script functions are both declarative and procedural in form.
- 28. The method of claim 23, wherein evaluating a condition and executing an action for each workflow step includes committing the data modification request to the data table in the server database.
- 29. A computer comprising:
a processor; a computer-readable medium; a server database having a data table and an associated workflow table; a workflow extended store communicatively coupled to the server database; a workflow engine communicatively coupled to the server database and to the workflow extended store; and a script engine communicatively coupled to the workflow engine.
- 30. A computer-readable medium having stored thereon a data structure comprising: a first data field containing a unique identifier for a given workflow action in a workflow process;
a second data field containing a name for the workflow action; a third data field containing a state name; a fourth data field containing a state event name or NULL for a state-bound workflow steps or a final state name for a transition bound workflow step a fifth data field containing a name of workflow events; a sixth data field a script expression or function that evaluates a workflow step condition to either True or False; and a seventh data field containing a function which implements the actions that should take place during a current workflow step.
- 31. A computer readable medium having a workflow table stored thereon, each row of the workflow table corresponding to a workflow step having interrelated fields comprising:
a unique identifier for an action to be taken in a workflow process step; a state representing a status of the workflow process; a nextstate representing a next state of the workflow process as a result of the action; a condition identifying a condition which must be satisfied; and an action identifying a function which is executed on satisfaction of the condition to complete the step.
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. Ser. No. 09/346,194, filed on Jul. 1, 1999, entitled “Workflow As Data-Transition Driven, Scriptable State Machines”. The entirety of which is incorporated herein by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09346194 |
Jul 1999 |
US |
Child |
10795591 |
Mar 2004 |
US |