|
Page Created :
ODExSITE :
Flexible Assigns
Flexible Assigns has been created by Karthick Sankarachary (Oct 02, 2008). Content:h2 Auto Complete Copy Destination (L-Value) A lot of times, users expect the <copy> operation in a WS-BPEL assign activity to behave such that the path specified by the destination ("to-spec") is automatically created, if it doesn't already exist. By default, if the to-spec used within a <copy> operation does not select exactly one XML information item during execution, then the standard fault bpel:selectionFailure is thrown (as mandated by the spec). To override this default behavior, we introduce a insertMissingToData attribute in the <copy> operation, which if it is set to "yes", will instruct the runtime to complete the (XPath) L-value specified by the to-spec, if no items were selected. For the sake of simplicity, we will complete the to-spec if and only if: Formally, the grammar of the to-spec, for which auto-complete is enabled, may be defined in terms of these productions: The example below illustrates the use of the insertMissingToData attribute. Let's say that the variable "response" is uninitialized. In that case, the first <copy> operation will fail, whereas the second one will succeed. <copy> <copy insertMissingToData="yes"> h2 Add support for the ignoreMissingFromData attribute in <copy> The attached patch adds support for the following attributes in the BPEL assign activity's copy operation: a) The optional @ignoreMissingFromData attribute, which if it has the value of "yes", and the from-spec returns zero XML information items, then no bpel:selectionFailure is thrown, and the to-spec is not evaluated. b) An extension @ignoreUninitializedFromVariable attribute, which if it has the value of "yes", and the from-spec contains an uninitialized variable, then no bpel:uninitializedVariable is thrown, and the to-spec is not evaluated. The informal syntax of the above attributes is shown below: <copy ignoreMissingFromData="yes|no"? ignoreUninitializedFromVariable="yes|no"?> |
Unsubscribe or edit your notifications preferences
