What Happens When You Create a repeatUntil Activity

Using Conditional Branching in a BPEL Process 10-13 Example 10–8 Built-in and Custom XPath Functions and variable References assign bpelx:skipCondition=bpws:getVariableData crOutput, payload, tns:rating 0 assign bpelx:skipCondition=custom:validateRating ... assign xmlns:fn=http:www.w3.org2005xpath-functions bpelx:skipCondition=fn:false ... If an error is thrown by the XPath expression evaluation, the error is wrapped with a BPEL fault and thrown from the activity. An event is added to the BPEL instance audit trail for activities that are bypassed due to the skip condition expression evaluating to true. Even if the skip condition evaluates to false meaning the activity is performed, the fact that a skip condition expression was evaluated is still logged to the audit trail for debugging purposes. If the XPath engine fails to evaluate the boolean value, bpws:subLanguageFault is thrown. This is the same fault thrown when a switchcase condition does not evaluate to a boolean value. This is also logged to the audit trail for debugging purposes.

10.5.1 How to Specify XPath Expressions to Bypass Activity Execution

To specify XPath expressions to bypass activity execution: 1. In the Component Palette, expand BPEL Constructs. 2. Drag the activity into the designer in which to create the skip condition.

3. Click the Skip Condition tab.

4. Specify an XPath expression that, when evaluated to true, causes an activity to be skipped. Figure 10–13 provides details. Figure 10–13 Skip Condition XPath Expression 10-14 Oracle Fusion Middleware Developers Guide for Oracle SOA Suite

5. Click Apply, then OK.

10.5.2 What Happens When You Specify XPath Expressions to Bypass Activity Execution

The code segment in the .bpel file defines the specific operation after design completion. For example, the XPath expression shown in Example 10–9 , when evaluated to true for example, input is 20, causes the assign activity to be skipped. Example 10–9 skipCondition Attribute For Bypassing Activity Execution sequence name=main . . . . . . assign name=Assign_1 bpelx:skipCondition=numberbpws:getVariableDatainputVariable,payload,clien t: processclient:input 10 copy from expression=Assign Block is not Skipped to variable=inputVariable part=payload query=client:processclient:input copy assign . . . . . . sequence