xpdl关于join和split的定义的翻译。(转)

来源:互联网 发布:一台电脑开两家淘宝店 编辑:程序博客网 时间:2024/06/05 19:51

xpdl关于join和split的定义的翻译。

7.6.9.1. Join

一个结合描述这样的语义:一个带有多个来源过渡的行为。<xsd:element name="Join">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##other" processContents="lax"

minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Type">

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="AND"/>

<xsd:enumeration value="XOR"/>

<xsd:enumeration value="XOREVENT"/>

<xsd:enumeration value="OR"/>

<xsd:enumeration value="COMPLEX"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="IncomingCondtion" type="xsd:string"/>

<xsd:anyAttribute namespace="##other" processContents="lax"/>

</xsd:complexType>

</xsd:element>

 

描述

Type

AND – 将在流程实例中所有的同步线程与到这行为的所有来源过渡结合在一起:同步是需要的。被同步的线程数量取决于前一个AND分离的条件的结果。等同于BPMNOR’门出现逻辑。BPMN AND’门出现逻辑需要所有的来源过渡线程被同步,除开前一个分离。

OR 看以上。

XOR 结合可选择的线程:不需要同步。

XOREVENT 等同于XOR

COMPLEX 这使用IncomingCondition属性。它决定哪一个来源过渡/序列流来继续过程。表达式可以引用关于来源序列流的过程数据和状态数据。例如,一个表达式可以指定假如出现5个来源标记中的3个则继续流程。另一个例子可以是一个表达式指定一个标记从序列流A中而另一个序列流从BC中获得则被接受。虽然如此,表达式应被设计为流程不会在此位置被拖延。

7.6.9.2. Split

一个split描述这样的语义,含有多个离开过渡的行为存在。

<xsd:element name="Split">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="xpdl:TransitionRefs" minOccurs="0"/>

<xsd:any namespace="##other" processContents="lax"

minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Type">

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value="AND"/>

<xsd:enumeration value="XOR"/>

<xsd:enumeration value="XOREVENT"/>

<xsd:enumeration value="OR"/>

<xsd:enumeration value="COMPLEX"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

<xsd:attribute name="OutgoingCondition" type="xsd:string"/>

<xsd:anyAttribute namespace="##other" processContents="lax"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="TransitionRef">

<xsd:complexType>

<xsd:sequence>

<xsd:any namespace="##other" processContents="lax"

minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>

<xsd:attribute name="Name" type="xsd:string" use="optional"/>

<xsd:anyAttribute namespace="##other" processContents="lax"/>

</xsd:complexType>

</xsd:element>

<xsd:element name="TransitionRefs">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="xpdl:TransitionRef"

minOccurs="0" maxOccurs="unbounded"/>

<xsd:any namespace="##other" processContents="lax"

minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:anyAttribute namespace="##other" processContents="lax"/>

</xsd:complexType>

</xsd:element>

 

描述

Transition Refs

此行为的离开过渡列表,每一个过渡都通过它的编号被区分。

Type

AND – 定义许多可能的同步线程,它们被这个行为的离开过渡表示。如果这些过渡拥有条件被执行的平行线程的实际数量是根据每一个过渡相关的条件,过渡是被同步地执行。注意BPMN’AND’门是特殊的情况,在它上面没有一个过渡(序列流门)拥有条件。

OR – 另一个BPMN的关于AND的变化。这里过渡可以拥有条件并且多个离开路径可以被选择。不同的是,一个默认的路径可以被同时指定,以使当没有一个路径被选择时,默认的路径会被选择。

XOR – 一个列表存放这个行为的离开过渡的标识符,表示选择性地执行过渡。决定进行哪一个独立的过渡是根据每一个独立的过渡的条件,条件是根据过渡在列表中被指定的顺序来执行。如果存在一个TRUE的条件,或者不存在任何的条件,列表执行会被结束。OTHERWISE过渡会在没有优这渡被选择时被选择。等同于BPMN XOR数据基础门。

XOREVENT – XOR相似,除了没有任何一过渡有条件,并且不能有OTHERWISE过渡。目标行为必须是有TaskType属性的Tasks,属性值设置为Receive或者InterMediate EventTrigger属性设置为MessageTimeRole或者Link。如果一个过渡/门目标是一个Task,然后一个Intermediate Event带有Trigger Meessage不能被用来作为另一个过渡/门的目标。那就是,信息必须只被Tasks或者Message Event获取,但不是它们对于一个门的组合。

COMPLEX – 这使用OutgoingCondition属性,它决定那一个离开的过渡/序列流会在后续过程中被选择。表达式可以引用过程数据和来源序列流的状态数据。例如,一个表达式评估过程数据然后选择不同的离开序列流集合,这些操作是基于评估的结果的。虽然如此,表达式应被设置为使至少一个离开序列流被执行。

 

一个AND split和拥有条件的过渡一起可以被称作条件AND,多选择OR或者非唯一OR。实际同步线程的数量是在执行时当评估条件的时候被决定的。跟着这个AND split,过程实例(或者过程实例的线程)被分成许多分离执行的线程,它们由过渡条件的评估产生。(注意在所有从这个行为出发的离开过渡被评估前,不需要标识符列表,序列也是不必要的。)

如果在AND_SPLIT或者XOR_SPLIT中有一个过渡有OTHERWISE条件,然后一个两部份组成的评估将被执行。在第一步的评估中,除了带有OTHERWISE条件过渡外所有过渡会被评估。如果它们之间没有一个为TRUE,然后第二步,OTHERWISE过渡会被评估(只有一带有OTHERWISE语句的过渡被允许在行为的离开过渡中)。一个OTHERWISE选择可以被用来保证在过程执行中没有异常的状态(例如:在行为的最后一个离开过渡通常会被执行)。

原创粉丝点击