Bpel的Active活动解析

 activity标记可以是以下任一个:

 
<receive>
 
<reply>
 
<invoke>
 
<assign>
 
<throw>
 
<terminate>
 
<wait>
 
<empty>
 
<sequence>
 
<switch>
 
<while>
 
<pick>
 
<flow>
 
<scope>
 
 
<compensate>
 
在下面的段落中将介绍以上每个元素的语法。
<receive> 构造允许业务流程阻塞等待匹配消息的到达。
<receive partner="ncname" portType="qname" operation="ncname"
container="ncname" createInstance="yes|no"?
standard-attributes>
standard-elements
<correlations>?
<correlation set="ncname" initiation="yes|no"?>+
</correlations>
</receive>
<reply> 构造允许业务流程发送消息以回复通过 <receive> 接收到的消息。一个 <receive> 和一个 <reply> 组合为流程构成了在 WSDL portType 上的请求-响应操作。
<reply partner="ncname" portType="qname" operation="ncname"
container="ncname" faultName="qname"?
standard-attributes>
standard-elements
<correlations>?
<correlation set="ncname" initiation="yes|no"?>+
</correlations>
</reply>
<invoke> 构造允许业务流程调用由伙伴在 portType 上提供的单向或请求-响应操作。
<invoke partner="ncname" portType="qname" operation="ncname"
inputContainer="ncname" outputContainer="ncname"?
standard-attributes>
standard-elements
<correlations>?
<correlation set="ncname" initiation="yes|no"?
pattern="in|out|out-in"/>+
</correlations>
<catch faultName="qname" faultContainer="ncname"?>*
activity
</catch>
<catchAll>?
activity
</catchAll>
<compensationHandler>?
activity
</compensationHandler>
</invoke>
<assign> 构造的用途是用新的数据来更新容器的值。一个 <assign> 构造可以包括任意数量的基本赋值。赋值活动的语法是:
<assign standard-attributes>
standard-elements
<copy>+
from-spec
to-spec
</copy>
</assign>
其中 from-spec 标记和 to-spec 标记的各种选项是:
<from container="ncname" part="ncname"? query="queryString"?/>
<from partner="ncname" serviceReference="myRole|partnerRole"/>
<from container="ncname" property="qname"/>
<from expression="general-expr"/>
<from> ... literal value ... </from>
<from opaque="yes"/>
<to container="ncname" part="ncname"? query="queryString"?/>
<to partner="ncname"/>
<to container="ncname" property="qname"/>
<throw> 构造从业务流程中生成故障。
<throw faultName="qname" faultContainer="ncname"? standard-attributes>
standard-elements
</throw>
<terminate> 构造使您能够立即终止业务流程。
<terminate standard-attributes>
standard-elements
</terminate>
<wait> 构造允许您等待一段给定的时间或等到某一时刻。您必须指定其中一个到期条件。
<wait (for="duration-expr" | until="deadline-expr") standard-attributes>
standard-elements
</wait>
<empty> 构造允许您在业务流程中插入 no-op 指令。例如,这个构造可被用于并行活动的同步。
<empty standard-attributes>
standard-elements
</empty>
<sequence> 构造允许您定义一组按词法顺序先后被执行的活动。
<sequence standard-attributes>
standard-elements
activity+
</sequence>
<switch> 构造允许您从一组分支中只选择一个执行分支。
<switch standard-attributes>
standard-elements
<case condition="bool-expr">+
activity
</case>
<otherwise>?
activity
</otherwise>
</switch>
<while> 构造允许您指定反复执行一个活动,直到某个成功条件被满足。
<while condition="bool-expr" standard-attributes>
standard-elements
activity
</while>
<pick> 构造允许您阻塞等待某一个合适的消息的到达或超时警报响起。当其中一个触发器触发后,相关的活动被执行,pick 也就完成了。
<pick createInstance="yes|no"? standard-attributes>
standard-elements
<onMessage partner="ncname" portType="qname"
operation="ncname" container="ncname">+
<correlations>?
<correlation set="ncname" initiation="yes|no"?>+
</correlations>
activity
</onMessage>
<onAlarm (for="duration-expr" | until="deadline-expr")>*
activity
</onAlarm>
</pick>
<flow> 构造允许您指定一个或多个被并行地执行的活动。为了定义任意的控制结构,可以在并行的活动中使用链接。
<flow standard-attributes>
standard-elements
<links>?
<link name="ncname">+
</links>
activity+
</flow>
<scope> 构造允许您定义嵌套活动,这个嵌套活动有和自己关联的故障处理程序和补偿处理程序。
<scope containerAccessSerializable="yes|no" standard-attributes>
standard-elements
<faultHandlers>?
... see above under <process> for syntax ...
</faultHandlers>
<compensationHandler>?
... see above under <process> for syntax ...
</compensationHandler>
activity
</scope>
<compensate> 构造被用来在已正常完成执行的内层作用域上调用补偿。您只能从故障处理程序或另一个补偿处理程序中调用这个构造。
<compensate scope="ncname"? standard-attributes>
standard-elements
</compensate>
请注意上面所指的 standard-attributes 是:
name="ncname"?
joinCondition="bool-expr"?
suppressJoinFailure="yes|no"?
它们的缺省值如下:
 
name 没有缺省值(也就是说,未命名)
 
joinCondition 目标为这个活动的所有链接的活跃状态的逻辑或。
 
suppressJoinFailure No
 
上面所指的 standard-elements 是:
<target linkName="ncname"/>*
<source linkName="ncname" transitionCondition="bool-expr"?/>*
其中 “transitionCondition” 属性的缺省值是 “true()” ,这是缺省表达式语言 XPath 1.0 中的真值函数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值