Proposal related to ordering of finalize activities

Section 2.5.7 Finalizing a choreography

Change syntax from:

<finalize  name="ncname"? >
    <finalizerReference
            choreographyName="ncname"
            choreographyInstanceId="XPath-expression"?
            finalizerName="ncname"? />
    </finalizerReference>+
</finalize>

to:

<finalize  name="ncname"? choreographyName="ncname"
            choreographyInstanceId="XPath-expression"?
            finalizerName="ncname"? />


--------------------------------------------

Change: 
Each finalizerReference element enables a Finalizer Block in a performed instance of an immediately enclosed Choreography. Within a finalize element, each finalizerReference MUST refer to a different performed Choreography instance.

to:

The finalize activity enables a Finalizer Block in a performed instance of an immediately enclosed Choreography.

---------------------------------------------

Change:

Within the finalizerReference element, the choreographyName attribute identifies the Choreography referenced by the choreographyName attribute of the perform construct.

to:

The choreographyName attribute identifies the Choreography referenced by the choreographyName attribute of the perform construct.

----------------------------------------------

Change:

Within the finalizerReference element, the OPTIONAL choreographyInstanceId attribute identifies the performed Choreography instance to be finalized, using the value defined by the choreographyInstanceId attribute of the perform construct. The choreographyInstanceId attribute MAY be omitted if the contract logic of the performing Choreography is such that only one instance of the Choreography identified by the choreographyName attribute could have been performed when the finalize activity is enabled. If more than one instance of the Choreography identified by the choregraphyName attribute could have been performed, the choreographyInstanceId attribute MUST be present.

to:

The OPTIONAL choreographyInstanceId attribute identifies the performed Choreography instance to be finalized, using the value defined by the choreographyInstanceId attribute of the perform construct. The choreographyInstanceId attribute MAY be omitted if the contract logic of the performing Choreography is such that only one instance of the Choreography identified by the choreographyName attribute could have been performed when the finalize activity is enabled. If more than one instance of the Choreography identified by the choregraphyName attribute could have been performed, the choreographyInstanceId attribute MUST be present.

----------------------------------------

Change:

Within the finalizerReference element, the attribute finalizerName indicates which Finalizer Block is to be enabled in the performed instance. If the targeted, immediately enclosed, Choreography has only one defined Finalizer Block, then the finalizerName attribute is OPTIONAL.

to:

The attribute finalizerName indicates which Finalizer Block is to be enabled in the performed instance. If the targeted, immediately enclosed, Choreography has only one defined Finalizer Block, then the finalizerName attribute is OPTIONAL.

---------------------------------------------------------

Update the example:

 

<workunit name="chooseA"
        guard="cdl:getVariable('Chosen','','','Broker')='A'" >
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForA'"
                finalizerName="drawDown"/>
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForB'"
                finalizerName="replenish"/>
    </workunit>            

    <workunit name="chooseB"
        guard="cdl:getVariable('Chosen','','','Broker')='B'" >
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForB'"
                finalizerName="drawDown"/>
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForA'"
                finalizerName="replenish"/>
    </workunit>            

    <workunit name="chooseNeither"
        guard="cdl:getVariable('Chosen','','','Broker')='0'" >
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForA'"
                finalizerName="replenish"/>
        <finalize choreographyName="CoordinatedCreditAuthorization"
                choreographyInstanceId="'creditForB'"
                finalizerName="replenish"/>
     </workunit> 
The schema will also need to be updated.

Received on Tuesday, 7 June 2005 20:55:58 UTC