OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Issue 132 - Proposal For Vote

I have included a HTML file with change markings reflecting the changes 
I understood us to agree to at today's F2F.
Title: Issue 132

132 - In-line Variable Initialization


Proposal: Allow in-line variable initialization in BPEL


Rationale: Many languages allow for variables to be initialized when they are declared so as to allow for an explicit relationship between the variable and its initial value. That way no one can accidentally insert code between the variable and its initialization thus causing various unforeseen problems.


Changes Required:


Section 9.2. Variable


Change the variable syntax declaration to:


<variable name="ncname" messageType="qname"?

type=qname? element=qname?>+





Insert the following paragraph after the paragraph that ends " However the children of the document element MUST exclusively consist of the complexType values assigned to the variable.":


A variable can optionally be initialized by using an in-line from-spec. From-spec is defined in section 9.3. Conceptually the in-line variable initializations are modeled as a virtual sequence activity that contains a series of virtual assign activities, one for each variable being initialized. The virtual assigns then each contain a single virtual copy whose from-spec is as given in the variable initialization and the to-spec points to the variable being created. For purposes of determining order of execution the virtual sequence activity can be treated as executing just before the main activity of the scope or process the variables are defined on. This means, for example, that the fault handlers for the scope/process will be initialized before the variables are initialized. The exception to the previous ordering is for a scope or process that contains the initial start activity that started a process instance. In that case the initial start activity will complete execution before variable initialization occurs. But variable initialization will then follow immediate after the initial start activity and before any other activities are executed.



Section 13:


Insert the following text after the sentence "The scope is shared by all the nested activities.":


When a scope is entered the follow items are instantiated in the following order:

1) fault handlers and termination handlers

2) partner links and correlation sets

3) variables, including any variable initializations

4) main activity and event handlers


Items listed together in the same numbered item are created without a predefined order in respect to each other. Each numbered item MUST complete instantiation before continuing on to the next numbered item. Some consequences of the previous ordering include that a variable initialization can refer to partner links or correlation sets defined on the same scope and that if a variable initialization throws a fault the fault handlers on the local scope will receive the fault. Note that in the case of a scope that contains the initial start activity (either directly or as a progeny) the initial start activity MUST complete before the event handlers of that scope are instantiated.


Change Schema for tVariable to:


<complexType name="tVariable">


<extension base="bpws:tExtensibleElements">


<element ref="bpws:from" minOccurs="0"/>


<attribute name="name" type="NCName" use="required"/>

<attribute name="messageType" type="QName" use="optional"/>

<attribute name="type" type="QName" use="optional"/>

<attribute name="element" type="QName" use="optional"/>




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]