Scribble.orgCommunity Documentation
If an endpoint project results in activities occuring prior to the first receive, then WS-BPEL deployment errors will occur. Static verification will be performed to detect this situation prior to projection of these endpoints.
In the example CDL that can be run, you will see that the conditions have all been defined as 'globalizedTrigger' functions. This is to make sure that the condition is not projected incorrectly to the LoanApprover? and LoanAssessment? processes. Otherwise this would result in the initial receive activities for those processes being contained within a switch activity.
At the moment, the example projects the behavior for the LoanApprover? service as having a choice between two paths, both triggered by the same 'approve' operation.
This does not result in an error within the ActiveBPEL engine, and so has been left at present. However, verification for this situation will be added, to prevent a projection having a choice with two identical receives, as this results in an ambiguity as to which path should be selected.
To overcome this ambiguity in the supplied example, we have just ensured that both paths have the same behavior.
Use of sub-choreographies is supported. The only area where there is currently no support is where the behavior associated with a particular participant is initiated inside a sub-choreography.
Isolated choreographies and choreography completion conditions are not mapped currently.
In general, only the 'getVariable' and 'globalizedTrigger' CDL functions are currently supported. Use of any other function will result in a WS-BPEL specific validation error being produced.
The only exception is the 'when' CDL activity, which can only be used with the 'hasDeadlinePassed' and 'hasDurationPassed' CDL functions, which is used to wait for the specified deadline or duration (i.e. it maps onto the WS-BPEL wait activity).