Understanding Join Behavior
You can use join behavior to control the execution of a process at the activity level. Join behavior consists of implementing join conditions and deciding how you want to handle join faults.
To configure join behavior you must be in complex mode:
- From the Window menu, select Preferences, and then BPEL Properties.
- Clear Use Simple Mode and select Join Behavior.
- Click OK. The change takes effect the next time you update the Properties view.
- Join condition
When one or more links are connected to an activity, you can set a join condition to evaluate the success or failure of the incoming links. A join condition is a property of all activity types and allows you to construct complex execution conditions based on link status. See Using Links.
When the join condition evaluates to true, the process continues normally. When a join condition evaluates to false, the process can throw a joinFailure fault.
- Join failure
Join failures occur when the link conditions leading to an activity conflict with the join conditions. The suppressJoinFailure attribute ensures that you can control whether or not a false join condition will throw a join fault. The suppressJoinFailure attribute is optional and can be set on all BPEL activites.
To configure join behavior
The join behavior of an activity's input link is determined by the join condition and join failure settings.
- Select the appropriate activity.
On the Join Behavior page of the Properties view, choose whether you want to suppress a join failure or throw the join fault. If you set the suppressJoinFailure attribute to yes for an activity that has a join condition, it means that a false join condition will not throw a joinFailure fault.
The default behavior is Use Same Value as Parent. When this is selected the attribute has not been set and so whatever value is set in the activity's parent is used. This top-level value is visible in the Source view of the WSDL.
Select Create Condition to write your own join condition expression. The condition evaluates to either true or false and evaluates each incoming link (there can be more than one, and each one must have a value in order to continue), and then decides whether or not the activity will be executed.