Branching versus splitting

The two basic methods for workflow routing are branches and splits.

When you use branching to route workflows, the entire batch is sent from the main job to a child job. When the child job completes, the batch returns to the main job.

When you use splitting to route workflows, documents in the batch are split off from the parent batch and placed into one or more child batches. The child batches are sent to a child job for processing and do not return to the main job. 

Diagram of three tasks and related child tasks that are started when a branch condition or a split condition is raised.

In this diagram, Task 1 in the main job raises a branch condition and sends the entire batch to Task A in the child job. Task A then returns the batch to Task 2 in the main job. Task 2 in the main job raises a split condition and creates two child batches, which are sent to Task B in the child job. The parent batch continues to Task 3 in the main job.

A batch going through a workflow is tracked by one or more "queue" records, or rows in the Job Monitor. The batch passes sequentially through the tasks in a workflow with a single queue record until a condition is raised. For example, in the TravelDocs application, the Profiler task raises a Document Integrity condition if the sequence of pages and documents does not meet the application requirements. When a task completes successfully after raising a condition, the Datacap Server acts on the condition. The effect of a condition is configured in the workflow as one of the following ("spawn type"):
  • Branch

    When a task finishes with a Branch condition raised, the Datacap Server creates a new queue record, and routes the batch to the child job (Fixup). The original parent queue record gets the status as Waiting. The Waiting status means that the processing is suspended on that workflow until the branch workflow finishes successfully. In the TravelDocs Fixup example, after an operator reorganizes or rescans the documents and pages into an acceptable sequence, the Fixup queue status becomes Job Done, and the Main Job picks up processing of the batch where it left off.

  • Jump

    When a task finishes with a Jump condition, the Datacap Server moves the batch forward or backwards in the existing job workflow by one or more steps, possibly skipping or re-doing some tasks.

  • Split

    When a task finishes with the Split condition, the Datacap Server creates new child batches, as many as the application specifies, each with its own BatchID, batch record, and queue record. The original parent batch might continue to the next task in the workflow if any documents remain. The SplitBatch action encapsulates the functionality that is needed to prepare each child batch.

  • Stop (or not set)

    When a task finishes with the Stop condition, the Datacap Server sets the queue status to Stopped, and no further action is taken.