WS-BPEL语言基础(中)

 
16.1.7. getVariableProperty与getVariableData功能
WS-BPEL提供内置函数,允许存储在变量中或者是与变量关联的信息能在业务流程执行期间被处理。

getVariableProperty(variable name, property name)

这个函数允许从变量中接收全局的属性值。它完全接受了作为输入的值和属性名称,并返回所要求的值。

 

getVariableData(variable name, part name, location path)

由于变量通常用于管理状态信息,这个函数要求提供访问数据的其他部分处理逻辑。getVariableData 函数具有一个强制的变量名称参数和两个能够用于指定变量数据的可选变量。

在我们的示例中我们多次使用 getVariableData 函数来从变量中获取消息数据。

示例16.5. 两个 getVariableData 函数被用于接收来自于不同变量的特定数据

getVariableData ('InvoiceHoursResponse',

'ResponseParameter')


getVariableData ('input','payload',

'/tns:TimesheetType/Hours/...')

16.1.8. sequence元素
sequence 结构允许你组织一系列的活动以便它们以预定义的、有顺序的次序执行。WS-BPEL提供了大量能够用于在流程定义中表示工作流逻辑的活动。在本节中剩余的元素描述解释了一组基本的用于我们将要进行案例研究示例的一部分活动。

示例16.6. sequence 结构框架仅包含了WS-BPEL所提供的许多活动元素中的一些

<sequence>

<receive>

...

</receive>

<assign>

...

</assign>

<invoke>

...

</invoke>

<reply>

...

</reply>

</sequence>

注意 sequence 元素可以嵌套,允许你在序列中定义序列。

16.1.9. invoke元素
该元素识别了伙伴服务的操作,这是流程定义计划在其执行过程中要调用的。invoke 元素配备了五个常见属性,进一步详细说明了条文的细节(表16.1)。

表16.1. invoke元素属性

属性
 描述
 
partnerLink
 该元素通过相应的 partnerLink 来命名伙伴服务。
 
portType
 该元素用于识别伙伴服务的 portType 元素。
 
operation
 流程服务需要发送请求到的伙伴服务操作。
 
inputVariable
 输入消息将用于和伙伴服务操作进行通信。注意这里所提及的是作为变量,因为它引用了具有messageType 属性的WS-BPEL变量。
 
outputVariable
 当基于请求-响应的MEP进行通信的时候采用该元素。返回值存储在单独的variable元素中。
 


示例16.7. invoke 元素确定了目标伙伴服务的细节

<invoke name=“ValidateWeeklyHours”

partnerLink=“Employee”

portType=“emp:EmployeeInterface”

operation=“GetWeeklyHoursLimit”

inputVariable=“EmployeeHoursRequest”

outputVariable=“EmployeeHoursResponse”/>

16.1.10. receive元素
receive 元素允许我们建立流程服务期望从外部客户端伙伴服务中接收请求的信息。在这个案例中,流程服务被视作是等待调用的服务提供者。

receive 元素包含一组属性,它们中的每一个都被赋值,涉及到预期进来的通信(表16.2)。

表16.2. receive 元素属性

属性                  描述
 
partnerLink      客户端伙伴服务在相应的partnerLink结构中被识别。
 
portType         流程服务portType 会等待从伙伴服务中接收请求消息。
 
operation        会接收请求的流程服务操作。
 
variable         进来的请求消息将会被存储在流程定义的variable 结构中。
 
createInstance    当这个属性被设置成“yes”的时候,这个特殊请求的可能负责创建新的   进程实例。
 

 

注意这个元素同样能够被用于在异步消息交换的过程中接收回调消息。

示例16.8. 用于工单提交流程定义的receive元素预示着客户端的伙伴服务负责启动工单文挡提交流程

<receive name=“receiveInput”

partnerLink=“client”

portType=“tns:TimesheetSubmissionInterface”

operation=“Submit”

variable=“ClientSubmission”

createInstance=“yes”/>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BPMN、XPDL和BPEL是三种流程建模语言,用于描述业务流程和工作流程。这些语言都有各自的特点和用途。 BPMN(Business Process Model and Notation,业务流程建模和标记)是一个广泛使用的标准,用于描述业务流程的各个方面,包括活动、事件、网关、连线等。它提供了一种直观和易于理解的图标,可以帮助业务分析师和技术人员共同理解和设计业务流程。BPMN具有可扩展性,支持不同层次的详细程度,从高层次的概念模型到详细的流程实现。 XPDL(XML Process Definition Language,XML流程定义语言)是一种基于XML的流程建模语言,用于定义和交换工作流程模型。它提供了一种通用的格式,使不同的流程管理系统能够共享和交换流程定义。XPDL支持多种类型的节点和连接,允许细粒度的流程定义和控制。它还包含了与其他标准的集成,如BPMN和WfMC。 BPEL(Business Process Execution Language,业务流程执行语言)是一种用于描述和执行业务流程的编程语言。它在BPMN和XPDL的基础上更加强调执行层面,提供了一种可编程的方式来定义和组织业务流程的执行。BPEL支持各种类型的活动、事件、条件和异常处理,并提供了与Web服务的集成能力。它可以作为间件或引擎,驱动实际的业务流程执行和协调。 总的来说,BPMN、XPDL和BPEL是为了不同的目的而设计的流程建模语言。BPMN用于描述和设计业务流程的概念模型,XPDL用于定义和交换工作流程模型,而BPEL用于编程和执行业务流程。这些语言在业务流程管理和工作流引擎有着广泛的应用,可以帮助组织更好地理解、设计和执行其业务流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值