Siebel Business Process Framework: Workflow Guide > About Workflow Process Steps and Connectors > About Conditional Logic on a Branch Connector >

Defining a Branch Connector


Conditional logic is defined on connectors emanating out of a workflow process step, not on the step itself. Therefore, to establish conditional logic in a workflow process, you define a branch connector, which includes adding a connector to the workflow process then defining conditional logic on that connector. Typically, a branch connector is a connector that emanates from a Start step, decision point, Wait step, or User Interact step.

To add a branch Connector

  1. Drag then drop a connector from the palette to the canvas, connecting the Decision Point with the new next step.
  2. Click the connector to access the connector's properties in the Properties window.
  3. Enter or modify the connector name.

    The connector name must be unique to the workflow process. If it is not unique, you cannot commit the record.

  4. Choose a connector Type.

    In most cases, this is Condition or Default. Choose Condition if you define conditional logic on the connector. Choose Default if the connector is being used as an exit route. Other values can also be set. For more information, see Table 113.

    If you are defining multiple branches on this step, for caution information see Defining Multiple Branches on a Single Step.

  5. Enter comments.
  6. Make sure in the Process Designer that the connector is correctly attached to the next step in the workflow process.

    The handles on both ends of the connector are red if they are correctly attached to adjacent steps.

  7. Define the conditional logic, if necessary.

    Use the Compose Condition Criteria dialog box if the connector is used to implement conditional logic. For more information, see Defining Conditional Logic on a Branch Connector.

Defining Multiple Branches on a Single Step

A Start step, Decision Point, Wait step or User Interact step can each have multiple branch connectors.

To define multiple branches on a single workflow step, perform the procedure described in Defining a Branch Connector for each branch you must define for the step. Note that each branch can have its own conditional logic.

CAUTION:  When defining multiple branch connectors, always define at least one connector with the Type property set to Default. This provides an exit route in case a work item does not meet the conditions defined.

Comparing Branching Declaratively to Programming With Script

You can implement branching declaratively, as in multiple branches emanating from a single step in a workflow process. In some cases, you can achieve the same result through script, as in scripting on a business service.

For example, assume you have a STATUS field that references a List of Values (LOV) and this LOV itself has 120 values. When the user updates the STATUS field, a workflow process performs 100 different updates in three related business components. This workflow contains a Start step that checks for 120 conditions then uses 100 different branches that, in turn, updates the relevant business component.

As an alternative, you can configure a workflow process that contains a scripted business service. In this workflow, the STATUS is sent to the business service. The business service computes then propagates the outcome to the business components either through the same business service or through a separate Siebel operation step in the workflow process.

Conclusions that can be drawn from this example include:

  • Effectively, there are no limitations on the number of outgoing branches on a start step or a decision step.
  • 120 steps with 120 branches in a workflow process should provide the same performance as implementing the same logic through eScript on a business service.
  • For this kind of programmatically intense operation, eScript is probably a better choice. A workflow process with 120 branches is cluttered, while the implementation would be cleaner and easier to maintain in eScript. Conversely, it is recommended to use a declarative technique to address more common requirements.

Branching and Parallel Processing

In this release, a workflow process does not support parallel processing. Make sure you define conditions so the workflow can only proceed along one connector. If conditions are defined in such a way that flow can proceed along multiple connectors, the exact run-time behavior of the Workflow engine cannot be accurately predicted.

Siebel Business Process Framework: Workflow Guide Copyright © 2008, Oracle. All rights reserved.