BPEL
设计器开发人员指南
由
维护
最后更新:2008 年 4 月
本文适用于 NetBeans
IDE 6.1 发行版
目录
使用处理程序
我们将按照以下安排依次介绍这些内容:
使用特定处理程序时的环境。
在 BPEL
设计器环境中使用这些元素。
在本 BPEL
设计器发行版本中,您可以将错误处理程序和事件处理程序添加到
BPEL
流程中。但是不支持补偿和终止处理程序。有关所支持的 BPEL
2.0 语言结构和相关限制的详细信息,请参阅 BPEL
服务引擎用户指南。
使用错误处理程序
何时使用
BPEL
语言提供了使用错误处理程序来捕获和管理异常的功能。例如,当
Web
服务返回的数据与所需的数据不同时,将会发生异常。如果错误得不到处理,则整个
BPEL
流程都会变为错误状态。因此,为防止整个流程出错,可以在特定的
Scope
内添加错误处理程序来捕获和管理异常。
每个错误处理程序都包含一个在出现错误时运行的活动。例如,如果出现错误,则合作伙伴服务会接到通知。错误处理程序将会添加到整个
Process 或单个
Scope 元素中。
您可以将一个错误处理程序容器附加到 Process
或 Scope
元素上。在误处理程序容器内,可以创建几个配置为捕获特定类型错误的捕获活动,或者创建一个全部捕获处理程序元素以捕获特定处理程序没有捕获到的所有异常。
用法
右键单击 Process
或 Scope
元素,然后选择“添加”>“变量”。
使用空元素
右键单击 "Event
Handlers" 容器,然后选择“添加”>“活动事件”。
您可以在错误处理程序组中添加任意数量的特定捕获元素。在每个错误处理程序容器中,只能添加一个全部捕获元素。
添加一个活动元素到将在错误时执行的 Catch
或 Catch
All 元素中。
捕获元素
可以使用此元素来截取并处理特定类型的错误。
此元素在相应的错误处理程序容器元素中使用。
捕获元素属性
捕获元素的属性是在属性窗口中定义的。也可以在图中右键单击该元素,然后选择“属性”。可用的属性包括:
全部捕获元素
可以使用全部捕获元素来截取并处理关联的捕获元素没有捕获到的所有错误。
全部捕获元素在错误处理程序窗口中与一个或多个捕获元素一起使用。它随同一个或多个捕获元素一起定义在错误处理程序容器元素中。
全部捕获元素没有任何属性。其行为是预定义的,因此不需要属性配置。
使用事件处理程序
何时使用
可以将整个 BPEL
Process 以及每个单独的 Scope
与发生相应事件时并发调用的一组事件处理程序相关联。在事件处理程序中执行的操作可以是任何类型的活动,如
Sequence 或
Flow。事件处理程序的唯一直接子元素是
Scope,因此,在您将元素从组件面板拖到事件处理程序时,会自动将其包含在
Scope 中。
共有两个存储类型:
用法
右键单击 Process
元素或任何 Scope
元素,然后调用添加事件处理程序操作。此操作不会添加任何特定的事件处理程序,它只会添加一个容器元素,您可以随后在其中添加特定的事件处理程序。
右键单击 Process
元素或任何 Scope
元素,然后调用添加事件处理程序操作。此操作不会添加任何特定的事件处理程序,它只会添加一个容器元素,您可以随后在其中添加特定的事件处理程序。
活动事件元素
活动事件元素表示指定的事件在等待消息的到达。对此标记及其属性的解释与接收活动非常类似。
用法
右键单击 "Event
Handlers" 容器,然后选择“添加”>“活动事件”。
双击活动事件元素可打开一个属性编辑器,您可以在其中指定/更改以下内容:
右键单击活动事件元素并选择“属性”可打开一个属性窗口,您可以在其中查看并修改元素的属性。除了属性编辑器中的属性外,属性窗口还包含端口类型字段,该字段是在您指定了合作伙伴链接和操作时填充的。
可以使用活动事件元素属性编辑器上的“关联”选项卡来检查或指定关联集。
该选项卡将显示:
您可以通过单击“添加”按钮来添加关联集。有关更多信息,请参阅
定义关联集并将其添加到元素中。
活动警报元素
活动警报元素指定了嵌套的 Scope
的截止期限或持续时间。
活动警报元素属性
活动警报元素的属性是在属性窗口中定义的;要调用此窗口,请右键单击该元素,然后选择“属性”。可用的属性包括:
使用补偿处理程序
何时使用
业务流程经常包含一些内嵌事务。处理完许多附带事务之后,总体业务事务有时会失败或中止。然后,我们需要反转流程执行过程中实现的效果。举例来说,旅行计划流程可以包含一些内嵌事务来订票、预订酒店或汽车。如果旅行被取消,则预订事务必须被取消事务补充。在这种情况下,WS-BPEL
支持您定义补偿操作。补偿处理程序是一个用于执行补偿操作的容器。您可以添加一个补偿处理程序到
Scope 或
Invoke
元素中。补偿处理程序可以被
Compensate
Scope 或 Compensate
活动调用。
用法
将补偿处理程序添加到 Scope
或 Invoke
元素中:
右键单击
Scope 或
Invoke
元素,选择“添加”>“补偿处理程序”。
使用空元素
从组件面板中,拖出一个或多个要执行的活动,并将它们放置在终端处理程序容器的内容。配置各活动的属性。
您不需要为补偿处理程序配置任何属性。
使用终端处理程序
何时使用
终端处理程序用于控制运行中的域的终止。如果包含在其中的域或流程出现故障,则运行中的域会终止。
当故障在域或流程中被抛出时,与域或流程相关的故障处理程序会运行,但在此之前,故障域或流程中的运行的所有活动将终止。如果故障域或流程中的域仍然在运行,则应该终止它们。终止域意味着终止其中的活动并执行与域相关的终止处理程序。
注意,只当域正常运行或正在运行其补偿处理程序或终止处理程序时,才可以终止域。完成的域、故障域或正在运行故障处理程序的域不能被终止。
终止处理程序是一个活动容器,它将在域终止时执行。您可以为域添加一个终止处理程序。
如果域的终止处理程序中出现故障,则该故障不会传递给包含在其中的域。
用法
将终端处理程序添加到 Scope
或
Process 元素中:
在“设计”视图中,单击
Scope
元素并选择“添加”>“终端处理程序”。
使用空元素
从组件面板中,拖出一个或多个要执行的活动,并将它们放置在终端处理程序容器的内容。配置各活动的属性。
您不需要为终端处理程序配置任何属性。
返回顶部
将反馈发送给我们