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.