Putting it all together
Take an example: provide a form where, depending on the age entered into the form, the workflow will choose from a set of streams
This example tasks all of the elements of a workflow and illustrates how they all work together
In summary, the first task is a questionaire asking personal information from an individual. Once this task has been completed, the conditional will look the filled in "age" attribute and based on this value determine a stream that the workflow will follow.
The stream that matches the correct output will set the task associated with the output nodes as "Pending", while the others will be maked as "Not Required"
Workflow Components
Form Node
This is a task node for someone to enter data into a form. This form is created on the actual node
The following is a form that was set up form this node with the "User View":
The above form has been set up so that it stores all of the form results in the "Information" data node. The node has also been configured to store all of the form entries in the "Information" data node.
Data Node
Data nodes are very useful to provide a common location for data to stored and accessed by a group of different nodes working together.
By default a form will store the data on the node serving the form, however, this can be inconvient for other nodes to access the data. If the node name changes or if the form is later broken up in multiple forms on different tasks, it would change the location of the data stored. By agreeing on a common data node and having all the data written to them, the implementaion of the forms can change without changing wher the data is located.
Check age Conditional Node
The conditional will look at "age" attribute on the "Information" data node with some logic added to determine which stream the workflow engine should go.
Note
In this case, the logic will select only a single screen, however, it is entirely permissible for the logic to allow for multiple streams to be taken
Output Streams
There are three output streams from the conditional node. Each output stream is named and is used as an identifier for the conditional node.
Here, the conditional node will choose between 3 output streams. It does not matter what the streams are connected to, only that they are name. The logic in the conditional node determines which stream the workflow engine will take.
Output tasks
Depending on logic processed by the conditional node. Any stream that matches the conditional logic will have a "Pending" message sent to the attached node. This will set the task's status associated with this process node to "Pending". All of the streams that do not match the conditional criterial will have the tasks set to "Not Required".
The output tasks are process nodes that will be handled depending on the output of the conditional node. In this example, the task nodes are created. Each of these tasks nodes could have a different form or they could have some set of other connect processes to handle a specific stream.
Job with Workflow
A job can seen as an container for the execution of a workflow and a store of data and files that result with the execution of the workflow.
When a job is created and this workflow is assigned to this job, TACTIC will automatically create a task schedule based on the nodes in the workflow.
Completing the task
With the form filled out and the age set to, for example 33, as shown above, the task can be set to complete. When this is done, a message will be sent to the workflow engine to propogate the next process node. Base on the age being 33, the "Adult" stream will be followed and the task in the "Process Adult" node will be set to Pending. The other two tasks will be set to "Not Required".
Note
Note that when this is done, the workflow diagram will update the colors of the nodes to reflect the status of the workflow execution.
This example shows how all of the workflow components work together. All of this can be created without writing a single line of code.