Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The schema for workflows is greatly affected by whether your workflows have branching or not. If all of your workflows are linear with no branching, the problem is much simpler, because the definition of a workflow configuration need only list the steps in the workflow, and a document workflow instance only needs to record the current step. If conditional branching or parallel steps are involved, you need to use some sort of hierarchical model for the steps (eg each workflow configuration step could have a pointer to parents and pointer to children). These are often stored in XML.</p> <p>The simple case with no branching can look like this:</p> <p>table: workflow_config (one row per workflow)</p> <ul> <li>workflow_config_id </li> <li>name</li> <li>description</li> </ul> <p>table: workflow_config_step (one row for each workflow step)</p> <ul> <li>workflow_config_id</li> <li>step_id</li> <li>name</li> <li>description</li> <li>action_id</li> <li>parameters (or context, or whatever information needs to be passed to the action launcher)</li> </ul> <p>table: document_workflow (one row for each document)</p> <ul> <li>document_id</li> <li>workflow_id</li> <li>current_step_id</li> <li>parameters (or context, or whatever information needs to be passed from one step to the next)</li> </ul> <p>table: document_workflow_step (one row for each action taken on the document)</p> <ul> <li>document_id</li> <li>step_id</li> <li>status</li> <li>timestamp</li> </ul> <p>Note that branching workflows need to carry much more information from stage to stage. In fact the "parameters" attribute may need to be in a separate crosslinked table. I'm only calling it a field here because you may use delimited or XML representation if very little data is needed.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload