Workflow as data-transition driven, scriptable state machines
First Claim
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 Assignments
0 Petitions
Accused Products
Abstract
A computing workflow system has a workflow process definition contained in a workflow table as script functions. The workflow table is part of an extended database schema operating with an extended store, a workflow engine and a script engine. The novel workflow system includes a server database having a data table and an associated workflow table. A workflow extended store is communicatively coupled to the server database. A workflow engine is also communicatively coupled to the server database and to the workflow extended store. Further, a script engine is communicatively coupled to the workflow engine. The workflow table includes workflow rules and associated code to be executed by the workflow engine. Each row of the workflow table represents a workflow step. Script functions are defined in the workflow table to evaluate the condition and execute the action of each workflow step. The rules and associated code in the workflow table is both declarative and procedural. The workflow engine compares the data change information from the extended store procedure with the workflow definition in the workflow table and determines the appropriate step that needs to be executed. Then it checks execution permissions on that step. If execute permission is granted, the workflow engine evaluates the workflow step condition against the workflow table and, if true, it executes the step action. Upon completing the step action, the workflow engine commits all the changes made to the current item or to other items in the database.
89 Citations
31 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. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
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. - View Dependent Claims (3)
-
-
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. - View Dependent Claims (5, 6, 7, 8, 9, 10)
-
-
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.
-
-
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. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
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. - View Dependent Claims (24, 25, 26, 27, 28)
-
-
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.
- a first data field containing a unique identifier for a given workflow action in a workflow process;
-
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.
-
Specification