BPEL过程组件

http://tech.ddvip.com   2008年01月05日    社区交流

内容摘要:BPEL流程的本质就是通过BPEL的活动(Activity)将BPEL的过程组件“串起来”。所谓“串起来”就是通过BPEL的活动让BPEL的过程组件产生一种动态的交互。比如说将一个变量赋值给另外一个变量,就是一种变量之间的动态的交互。

  接下来在BPEL中定义相关集:

<correlationSets xmlns:cor="http://example.com/houseloanCorrelation.wsdl">
<correlationSet name="HouseLoanCor" properties="cor:name "/>
</correlationSets>

  进而在BPEL的< receive>活动中调用相关集:

<bpel:receive name="request" partnerLink="HouseLoanBroker"
portType="tns:HouseLoanBroker" operation="getLoanQuote" variable="request">
<correlations>
<correlation set=" HouseLoanCor " initiate="yes">
</correlations>
</bpel:receive>

  这样就将房屋贷款的流程实例和相关集关联起来了。

  错误处理(Fault Handlers)

  BPEL程序在调用合作伙伴的过程中,或者合作伙伴的服务有可能会抛出异常,或者在BPEL流程内部调用中也会抛出异常(如将字符串String类型的变量赋值给整数类型int的变量)。BPEL流程有一套机制可以捕获异常,并可以定义捕获异常后的下一步行动。如本例中定义了一个“unknownNAME”(系统中无此顾客姓名的异常),BPEL流程在捕获此异常后,通过<reply>返回给服务请求者。

  需要说明的是,这个“unknownNAME”必须事先在BPEL的接口WSDL中定义,本例中的定义如下:

<xsd:complexType name="unknownNAMEFault">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>

责编:豆豆技术应用

正在加载评论...