Chapter 17 Working with WS-BPEL 2.0
Iteration activities are another type of loop activitiy.
The repeatUntil activity is used to define that the child activity is to be repeated until the specified <condition> becomes true. The <condition> is tested after the child activity completes. The repeatUntil activity is used to execute the child activity at least once.
<repeatUntil standard-attributes> standard-elements activity <condition expressionLanguage="anyURI"?>bool-expr>/condition> </repeatUntil>
The forEach activity iterates its child scope activity exactly N+1 times where N equals the <finalCounterValue> minus the <startCounterValue>. If parallel="yes" then this is a parallel <forEach> where the N+1 instances of the enclosed <scope> activity should occur in parallel. An implicit flow is dynamically created with N+1 copies of the <forEach>'s <scope> activity as children. A <completionCondition> may be used within the <forEach> to allow the <forEach> activity to complete without executing or finishing all the branches specified.
<forEach counterName="BPELVariableName" parallel="yes|no" standard-attributes> standard-elements <startCounterValue expressionLanguage="anyURI"?> unsigned-integer-expression </startCounterValue <finalCounterValue expressionLanguage="anyURI"?> unsigned-integer-expression </finalCounterValue> <completionCondition>? <branches expressionLanguage="anyURI"? successfulBranchesOnly="yes|no"?> unsigned-integer-expression </branches> </completionCondition> <scope > </scope> </forEach>
You design a repeatUntil activity and a forEach activity using a process with a "Loop" implementation type and respectively a "RepeatUntill" or "Foreach" loop type.
The following specific WS-BPEL 2.0 extended attribute is available from the property sheet of the process object with a "Loop" implementation type and a "While", "Untill" or "Foreach" loop type. The other attributes in that tab are the same as the ones for BPEL4WS 1.1:
Name | Internal code | Description |
---|---|---|
Expression language | expressionLanguage | Specifies the expression language used in the condition. When this attribute is not specified for one of the iteration elements, the attribute inherits its value from the <process> element. The default value for this attribute is: "urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0", which represents the usage of [XPath 1.0] within WS-BPEL 2.0. |
In addition, the following extended attributes are available from the property sheet of the process object with a "Loop" implementation type and a "Foreach" loop type:
Name | Internal code | Description |
---|---|---|
Counter name | counterName | Defines the variable used by the <forEach> activity to store the counter of the loop. During each repetition, a variable of the xsd:unsignedInt attribute is implicitly declared in the <forEach> activity's child <scope>. The name of the implicit variable is specified in the CounterName attribute |
Start counter value | startCounterValue | Allows you to compute the initial value of the counter variable used by the <forEach> activity. It is evaluated when the <forEach> activity starts |
Final counter value | finalCounterValue | Allows you to compute the final value of the counter variable used by the <forEach> activity. It is evaluated when the forEach activity starts. |
Parallel | parallel | If the value of the parallel attribute is no then the activity is a serial <forEach>. If the value of the parallel attribute is yes then the activity is a parallel <forEach>. |
Successful branches only | SuccessfulBranchesOnly | The <branches> element of the <forEach> activity represents an unsigned-integer expression used to define a completion condition. If the value of the successfulBranchesOnly attribute is no, all the <scope>'s which have completed (successfully or unsuccessfully) must be counted. If the successfulBranchesOnly attribute is yes, only <scope>'s which have completed successfully must be counted |
Copyright (C) 2007. Sybase Inc. All rights reserved. |
![]() |