<= bpws:getVariableData('FlightResponseDA', 'confirmationData','/confirmationData/Price')\
在
confirmationData 消息的内部,虽然它是唯一的消息部分,但我们仍必须指定它。我们还必须指定查询表达式以找到价格元素。此处,我们采用简单的 XPath 1.0 表达式。
如果美国航空公司的机票报价低于达美航空公司的机票报价,则将 FlightResponseAA 变量复制到
TravelResponse 变量(我们最终将此变量返回给客户端)。否则,我们将复制 FlightResponseDA 变量。 我们已经到达此 BPEL 业务流程的最后一步 — 使用
...
到此,我们已经完成了我们的第一个 BPEL 业务流程规范。您可以看到,BPEL 并不是很复杂,并允许相对项目名称:
简单和自然的业务流程规范。
通过Oracle提供的bpel实例,相信大家对如何开发bpel流程已有一个比较清楚的概念。在接下来的篇章中,我们打算对bpel的各种元素做一个详细的解释,希望结合上述的例子,使您掌握开发bpel流程的基础知识。 项目名称:
5. 业务流程的结构
这一节里,我们较详细地介绍BPEL4WS的基础知识,以比较详细的方式介绍各个活动(activity)。 我们首先对一些符号进行说明:
“?”:0个或1个; “* ”:0个或多个; “+ ”:1个或多个。
BPEL语言定义流程的基本结构是: Page 18 项目名称:
最高级别的属性如下:
? queryLanguage 这个属性指定了在赋值、属性定义和其它使用中用于选择节点的 XML 查询语言。这个属性
的缺省值是 XPath 1.0,其代表是 XPath 1.0 规范的 URI:http://www.w3.org/TR/1999/REC-xpath-19991116。 ? bleInstanceCompensation 这个属性决定流程实例是否可被作为整体由特定于平台的方式来补偿。这个属
性的缺省值是 \。 ? abstractProcess 这个属性指定所定义的流程是抽象的(还是可执行的)。这个属性的缺省值是 \。
Activity可以是BPEL定义里的任何一个活动,我们接下来主要是对activity进行讨论。 BPEL流程主体,主要就是由这些Activity组织的。
每个活动都有的属性和元素我们称之为标准元属性和标准元素,有如下一些标准属性和标准元属:
A.<标准属性>是每个活动都有的,但是可选的,其标准属性如下:
1. name=\
一个属性名称。
2. joinCondition=\
一个连接条件。属性值是表达式语言中的取值为布尔值的表达式。 3. suppressJoinFailure=\
一个在连结故障发生时指示是否压制它的指示符。缺省值是 no。
B.<标准元属>是每个活动都有的,但是可选的,其标准元素如下:
1. 可以有零个,一个或多个; 通过包括一个或多个 可以有零个,一个或多个; 通过包括一个或多个 Activity分为两个部分,一个是基元活动,另一部分是结构活动,下面分别对两者活动进行详细说明: 项目名称: <基元活动 --- Basic Activity> 基元活动是与外界进行交互最简单的形式。它们是无序的个别步骤,与服务进行交互、操作、传输数据或 者处理异常等。 BPEL4WS的基元活动包括如下: 1. 流程用于和外界进行交互的基元活动:receive、invoke、reply; 2. 流程用于传输数据的基元活动:assign; 3. 流程中其它的基元活动: ??通过throw活动发出故障信号; ??通过terminate活动放弃所有流程实例的执行; ??通过wait活动使流程等待一段时间或到达某个截止期限后再执行; ??通过empty活动不执行任何的动作; ??通过compensate活动做一些补偿动作,通常需要和scope联合使用; 5.1.1 语言结构: invoke:主要用于调用其它的 Web 服务(在 wsdl文件中描述)。 除了活动的标准属性(见5.A)和标准元素(见5.B)之外,invoke活动还包括: 1. 基本属性如下: A. partnerLink=\描述两个web services之间的接口关系 B. portType=\端口类型 C. operation=\调用操作 D. inputvariable=\输入变量 E. outputvariable=\输出变量 2. 相关集 correlation set=\ pattern=\ 相关集属性组:correlation:单个相关集;set=“ncname”:相关集集合名称;initiation:是否实例化该相关集,值为yes时,相关集被实例化,为no时,不实例项目名称: