Processing subtasks: what is different from single tasks

The main differences between processing single tasks and a workflow compound of parent task and subtasks are the following:

      Actions on subtasks are only possible when the parent task is ‘running’, i.e. has neither status initial nor a final status (accepted or cancelled).

      Data field sharing between parent task and subtask or between peer subtasks may in­hibit requesting or finishing tasks: a subtask may only be requested when all its input data fields that are shared with other tasks have valid values; a parent task may only be finished when all output data fields that are shared with output data fields of subtasks have valid values.

      Actions on the parent task or its subtasks in a workflow compound may also trigger ac­tions on other tasks in the compound. The flow of work within a network of a parent task and its subtasks is supported

by propagating values of shared data fields, whenever they are declared valid, and auto­matically advancing the workflow, e.g. by requesting subtasks whose input was made available,

by withdrawing values of shared data fields, whenever they are declared in­va­lid, and automatically rolling back the workflow, e.g. by requesting the cor­rec­tion of a sub­task whose output was objected to in a peer task.

      The expected duration of a network of subtasks overwrites the parent task duration when it is longer.

When a workflow network of parent task and subtasks is copied, all tasks are treated as with copying single tasks (requestors and eventual data field values and task notes are removed, status is set to initial); since data fields are copied, the connection between the tasks of the workflow via shared data fields stays intact.