Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved


Chapter 4 Working with Orchestration Processes : Transitions and Join Conditions

Transitions and Join Conditions
Transitions in orchestration processes are somewhat similar to transitions in TIBCO ActiveMatrix BusinessWorks process definitions. That is, transitions between activities indicate the order that the activities should be processed. Also, conditions can be placed on the transitions between activities to determine if the transition should evaluate to true or false.
The BPEL specification describes links between activities. Links are synonymous with transitions in this manual. Because this product is an extension of TIBCO ActiveMatrix BusinessWorks, the term transition is used to be more compatible with TIBCO ActiveMatrix BusinessWorks terminology.
Figure 24 illustrates a portion of an orchestration process that uses transitions and conditions to control the sequential processing of events. A new car is received and then three transitions are drawn to the next activities in the sequence. Two activities, ContactDMV and ContactBuyer are executed without condition. A third activity, ContactIRS is executed only if the price of the car is greater than $50,000 because a special tax may need to be reported upon the sale of the vehicle.
Figure 24 Auto sales example
By default, if at least one transition leading to an activity evaluates to true, the activity executes. Also, if all transitions that lead to an activity evaluate to false, the activity does not execute. In the example in Figure 24, the SellCar activity will execute as long as one of the previous three activities executed successfully.
Orchestration processes let you override the default flow of processing. You can define join conditions that evaluate the incoming transitions to any activity. The expression of the join condition can evaluate to true or false. If true, the activity executes, if false, the activity can be skipped or a joinFailure exception can be thrown.
Join condition expressions are specified on the Join Condition tab of the activity. You can use the XPath Formula Builder to drag and drop values and operators to create the expression. Only the state of the incoming transitions to an activity can be used to define a join expression. In the car purchasing example in Figure 24, you may want to specify a join condition on the SellCar activity so that it executes only if both the ContactDMV and ContactBuyer activities execute. Figure 25 illustrates using the XPath Formula Builder to create the join expression.
Figure 25 Using the XPath Formula Builder to create a join condition expression
The default action to perform if the join condition evaluates to false is specified by the current scope. That is, on each group, you can specify an action to perform, or the group inherits the action of its parent scope. The Default Join Action field on the Configuration tab of the Orchestration Process resource specifies the default join action for the top-level scope.
You can override the default action by specifying the action to perform on the Join Condition tab of each activity. The values of the Join Action field on each activity are the following:
Inherit setting — use the default action specified within the current scope. The current scope is either the current group containing the activity or the orchestration process if the activity is not within a group.
Bypass activity if false — if the join expression of the activity evaluates to false, then skip the processing of the activity, set the outgoing transition conditions to false without evaluating them, and resume processing.

Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved