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.
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.
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: