本主题仅适用于 IBM Business Automation Workflow Advanced 配置。

BPEL 流程实例的动态修改

Draft comment:
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-01-20 10:38
通常,将按照流程模型中所定义来对 BPEL 流程进行导航。 但是,有时您可能需要在运行时覆盖对流程实例的导航,以便能够修复流程实例,或仅执行适合当前上下文的活动。

您可以通过在流程实例中前后跳转以及跳过流程实例内的活动来动态更改流程导航。 在这些情况下,您可能还需要修改流程变量中包含的流程数据,以便流程实例的导航能够继续。

Business Process Choreographer Explorer 和 Business Process Choreographer API 支持在运行时动态修改流程实例。 此外, Business Space powered by WebSphere® 支持重做部分流程实例和跳过活动。

在流程实例中前后跳转

您可以在流程实例内使用跳转来在运行时动态修改流程实例。 您可以从一个活动(源活动)跳转至另一个活动(目标活动)。 源活动必须是处于以下某个活动状态的基本活动:正在运行、正在等待、就绪、已申领或已停止。 目标活动可以是基本活动或结构化活动。

以下跳转操作可用:
完成并跳转
完成处于“已申领”状态的人员任务活动并跳转至目标活动
强制完成并跳转
强制完成活动并从目标活动继续进行流程导航
跳过并跳转
跳过源活动并在目标活动处继续进行导航
跳转
从源活动跳转至目标活动。

仅限于跳转 API:源活动必须是处于“已跳过”、“已完成”、“已失败”或“已失效”状态的基本活动。 它必须是其所在路径上进行导航的最后一个活动。 关联的流程实例必须处于“已暂挂”状态。 恢复此流程实例时,将在指定的目标活动处继续进行导航。

源活动将作为跳转操作的一部分来完成、强制完成或跳过。 跳转之后,将在目标活动处继续进行流程导航。 您可以在流程中向前跳转,即,目标活动将在流程实例中的后面部分发生。 您还可以往回跳转至流程中的先前活动。

支持在序列活动中的活动之间进行跳转。 还支持在通用化流程活动和并行活动(也称为流程活动)中没有分叉和汇合的路径上进行跳转。 对于所有这些跳转操作,源和目标活动都必须处在父活动内的同一嵌套级别。

跳转操作将忽略针对源活动以及用于进入目标活动的出口条件。

要执行跳转操作,您必须是外层作用域的作用域管理员、流程管理员或系统管理员。

跳过活动

您还可以通过跳过活动来动态修改流程实例。 您可以跳过处于某个活动状态的基本活动或在流程中后面部分可能激活的基本活动。

如果跳过已激活的活动,那么此活动的实施将终止,并且将在此活动后继续进行流程导航。 例如,如果此活动具有外发链接,那么将随着对这些链接的过渡条件的评估来继续进行流程导航。

如果跳过在过程流中后面部分发生的活动,那么该活动将标记为跳过。 当导航到达该活动时,将跳过该活动并在该活动后继续进行导航。 在导航到达该活动之前,您可以取消跳过请求。

要跳过活动,您必须是外层作用域的作用域管理员、流程管理员或系统管理员。 此外,如果您是活动管理员,那么可以跳过当前已激活的活动。

修改变量

当您在运行时更改流程实例的流时,通常还需要更新变量以确保流程在已跳转或跳过的活动之后可以正确流动。 例如,在修复场景中,您可以在跳转操作之前提供有效数据,以便后续活动能够根据该数据成功运行。

支持以下操作:
  • 获取给定活动的所有变量的名称
  • 获取全局或局部变量的实际或初始值
  • 设置全局或局部变量的值

要查看变量的值,您必须至少拥有对流程或外层作用域的阅读者权限。 要更新变量,您必须是作用域管理员、流程管理员或系统管理员。