The Patch Set 3 for SOA Suite 11g R1 that was released last weekend brings bug fixes, stabilization, further integration between components and a bunch of new features. Most of them not spectacular, but quite useful all the same. More to please users of the product than perhaps potential buyers…
A few of these new features for the BPEL component are highlighted in this article – and are the first small deviations from the screenshots and the detailed guidelines that I have written in the SOA Suite 11g Handbook.
For BPEL the key new features are: BPEL 2.0 support (design time, as run time support apparently was available for a bit longer), variable initialization (as part of that BPEL 2.0 support)and a way (way, way) better Assign dialog! (read on, that is a must see).
When you create a new BPEL component, the creation wizard has a new option: you have to choose between BPEL 1.1 and BPEL 2.0.
BPEL 2.0 has a number of differently named activities, is easier to use in a number of areas (for example to extract the values from variables, the getVariableData function no longer needs to be used, a simple XPath expression suffices – also see: http://bpel.xml.org/soa-world-close-look-bpel-2-0).
The BPEL activities palette looks different when you pick BPEL 2.0:
Some BPEL 2.0 activities are largely just rebranded BPEL 1.1 activities, such as Exit (Terminate), Switch and For Each (FlowN – which as an Oracle extension to BPEL 1.1) or relabeled features such as onEvent instead of onMessage for asynchronous handlers on Scopes . Some are distinctly new, such as Repeat Until and Validate (which already existed as an Oracle extension).
Note: choosing BPEL 2.0 for a BPEL component in SOA Suite 11gR1 PS3 has a drawback, unfortunately. Not all Oracle extensions to BPEL are available at this point in the 2.0 implementation. For example the SDO Entity related activities are not currently supported.
The (vastly) improved Assign dialog
Anyone who has done BPEL development must have come to a point where he or she got frustrated with defining copy and append operations in the Assign dialog. All this clicking and expanding of trees for such simple operations. When an Assign involved five values or more, it became interesting to create an XSLT and use transformation as a way to speed things up. Or one resorted to the source editor to copy and paste and edit the bare XML.
Now, fortunately and for both BPEL 1.1 and 2.0 – as it is just a design time editor, nothing to do with run time definitions – a new Assign editor has been introduced in the BPEL editor. It allows us to create multiple copy, append and other assign rules in a single go, even using drag (source) and drop (on target) very much like the XSLT mapping editor:
Creating the Assign activity for a complex variable will be speeded up by … a lot!
Rules can be created of various types, they can be edited, repositioned and otherwise modified. Here is the BPEL 2.0 dialog:
This wizard looks a little bit differently for 1.1.
Those options previously easily overlooked are now more visible, such as ignoreMissingFromData – when toggled on, this suppresses any bpel:selectionFailure standard faults when the source element does not actually exist or contain data – and insertMissingToData. Change Rule Type and keepSrcElementName are BPEL 2.0 only (see: http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10224/bp_manipdoc.htm#BABHJJFA).
Also see http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10224/bp_appx_ref.htm#CIAEAEEB for more details on the Assign editor.