ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 了解 WebSphere Business Modeler 与 FileNet 集成

了解 WebSphere Business Modeler 与 FileNet 集成

原创 Linux操作系统 作者:ArtCode 时间:2009-04-27 15:51:35 0 删除 编辑

引言

IBM WebSphere Business Modeler 是用于创建业务流程模型的强大工具。为业务流程建模出于不同的原因:

  • 用于文档说明目的:可以使用强大的模拟引擎来评估流程模型,以帮助发现要改进的区域,并启用“原有”(As-Is) 和“将来”(To-Be) 建模。您可以为静态和动态流程分析生成报告(包括流程比较报告),并且可以使用流程模拟尝试“假设”(what if) 场景来测试可能的流程改进。

  • 用于执行:流程模型是技术开发人员的有用资产,因为模型像一个如何构建内容的计划,它有助于减少复杂性,并缩短开发周期。从这方面说,WebSphere Business Modeler 相当于非技术业务分析人员和技术开发人员之间的纽带。

IBM FileNet Business Process Manager 是 IBM FileNet P8 系列产品的组成部分,管理以文档为中心的和以人为中心的业务流程的工作流。工作流流程自动化有许多优点,其中包括最大限度提高流程效率、确保流程一致地运行、提高质量、同时缩短周期和降低成本。IBM FileNet Business Process Manager 是 FileNet P8 的组成部分,已集成到 IBM Enterprise Content Management。工作流流程基于 XML Process Definition Language (XPDL) 标准。

以前版本的 WebSphere Business Modeler(以下称为 Modeler)包括用于目标运行时的建模模式(如 IBM WebSphere MQ Workflow 和 IBM WebSphere Process Server)。这些建模模式公开仅应用于目标平台的技术详细信息,并提供额外级别的错误检查,以确保导出的模型适用于目标运行时。

Support Pac BA77“IBM WebSphere Business Modeler FileNet Integration”是为 Modeler Version 6.0.2 发布的,并允许 FileNet P8 Business Process Manager(以下称为 FileNet)成为 Modeler 的其他导出目标。对于 Modeler Version 6.1 发行版,此功能现在包括在基础产品中。这意味着您可以利用强大的 Modeler 功能(如模拟和分析),然后将流程导出到 XPDL,以便在 FileNet 环境中进一步优化。

FileNet Business Process Manager 模式

要将模型导出到 FileNet,您必须首先将 Modeler 设置为 FileNet Business Process Manager 模式。要执行此操作,请从 Modeler 菜单栏中选择 Modeling => Mode => FileNet Business Process Manager(图 1)。(此外,还可以键入 Alt+Ctrl+F。)


图 1. FileNet Business Process Manager 模式
图 1. FileNet Business Process Manager 模式

对于其他导出目标,在 FileNet 中并不支持 Modeler 中的每个构造。在进入 FileNet Business Process Manager 模式时,托盘中不支持的构造将变灰,因此您无法将其添加到您的流程中。不支持的元素是:

  • 观察器
  • 计时器
  • 通知广播器和接收器
  • 全局任务、全局服务和全局存储库
  • 业务规则任务
  • 业务服务和业务服务对象。

如果您尝试导出的模型包含这里所列的任何不支持的元素,则这些元素将标记为错误,并且必须在导出之前纠正。

模型转换

正如您预期的那样,FileNet 和 Modeler 不能处理所有相同的元素。因此,需要将流程模型中的元素转换为 FileNet 中最匹配的元素。当您构建要导出的模型时,了解这些转换非常重要。

数据流

与 WS-BPEL 非常相似,XPDL 流程中的流仅用于控制;流程元素之间不传输数据。数据存储在各种活动可以访问的名为数据字段的全局变量中。因此,导出到 FileNet 的流程不能在任务之间的连接器上使用业务项。相反,您可以使用本地存储库来存储第一个任务的输出,然后从该存储库传输到第二个任务,如图 2 所示。在 FileNet 中,任务之间的连接映射到路由。


图 2. 数据流模式
图 2. 数据流模式

如果要传输多个数据片段,则每个数据片段需要一个存储库。在 FileNet 中,您创建的每个存储库都与一个数据字段对应。在 FileNet Business Process Manager 模式中添加存储库时,缺省容量设置为 1。在其他模式下,缺省容量没有限制。在 FileNet Business Process Manager 模式中不支持全局存储库;您必须始终使用本地存储库。

如果您的流程包含大量的变量,则指向存储库的所有连接会使流程图显得非常复杂。您可能需要考虑在任务和存储库之间不显示链接,这样可以使图表的整个外观更整洁。要隐藏连接器,请执行以下操作:

  1. 右键单击流程背景的空白处。
  2. 选择 Repository Connections,以取消选中该选项(图 3)。流程图现在将显示存储库,但将隐藏它们的连接。


图 3. 隐藏存储库连接
图 3. 隐藏存储库连接

对于数据本身,并不是 Modeler 中的每个数据类型在 FileNet 中都有等效项。数据类型将以尽可能接近的方式映射,但是 FileNet 中有一些数据类型在 Modeler 中不受支持,如表 1 所示。


表 1. 数据类型映射

Modeler 数据类型 FileNet 数据字段
Boolean Boolean
Date DateTime
DateTime DateTime
Decimal(双精度) 不支持
Decimal(单精度) Float
Duration 不支持
Integer Integer
Integer(字节) 不支持
Integer(长型) 不支持
Integer(短型) 不支持
Text String
Time String

如果使用一个不支持的数据类型创建存储库或业务项,则错误将显示在错误视图中。在导出之前,您必须更新模型才能使用支持的数据类型。

业务项

FileNet Business Process Manager Service Pack 2 已添加了新功能,可以支持称为 XML 类型的数据字段 的复杂数据类型。在此服务包之前,仅支持简单的数据类型。如果您作为存储库的数据类型使用业务项,则可以将其映射到 XML 类型的数据字段,即使该业务项仅有一个属性也是如此。使用业务项不会导致任何错误或警告,但是您应知道,如果使用的是 Service Pack 2 或更高版本,则仅在 FileNet 中支持业务项。

流程

将 Modeler 中的顶级流程转换为 FileNet 中的工作流流程。不过,当使用子流程或重用全局流程时,将使用不同的映射。

您不能期望导出的流程可以在 FileNet 中运行。在运行导出流程之前,需要进一步优化导出流程的结果。

本地流程

在为 FileNet 创建的工作流流程中将本地流程转换为子映射。在 XPDL 级别,子映射称为 BlockActivity。在 Modeler 中,数据不传输到本地流程。而是使用存储库将该数据存储在顶级流程中。本地流程中的步骤然后可以访问存储库中的数据。例如,您可能需要将本地流程中的某个步骤输出映射到顶级流程中的存储库。要完成此任务,请执行以下步骤:

  1. 单击本地流程中的任务,将其选中。
  2. 单击 Attributes 查看该任务的属性。
  3. 单击 Output 选项卡。
  4. 单击 Add 按钮添加新的输出。
  5. 单击 Associate data 字段,然后单击显示的省略号按钮。(您也可以向下滚动并单击 Browse 按钮找到 Associate data 字段。)
  6. 单击 Basic type 的下拉菜单,并选择您的数据类型(如图 4 中的 Boolean)。然后单击 OK

    图 4. 选择数据类型
    图 4. 选择数据类型

  7. 单击 Output target 字段并选择 Repository,然后单击 Enter。面板然后将更新。
  8. 向下滚动,或扩大属性区域,并单击 Repository valueBrowse 按钮。
  9. 从下拉菜单选择要使用的本地存储库,并单击 OK。您现在已将任务的输出映射到高级流程中的本地存储库(图 5)。

    图 5. 将任务输出映射到存储库
    图 5. 将任务输出映射到存储库

映射

如果一个任务的输出与流中的下一个任务相比具有不同的数据类型或业务项,将使用 Modeler 中的映射。由于 FileNet Business Process Manager 模式中不支持数据流,因此不需要映射,而且在流程流中不支持数据流——但一个例外是:开始位置。

在流的开始处,可能存在传入的数据流。在流程的每个开始处,可以使用映射将传入的数据流映射到一个或多个存储库来保存数据,以便流程中的其他步骤可以访问这些数据。不过,在 FileNet 中查看工作流流程时,映射将不显示为流中的元素:而只是将其转换为从传入数据到数据字段的映射。

需要将传输到流程的数据定义为一系列简单的数据类型(图 6)。如果业务项传输到流程,则映射会标记一个错误。


图 6. 映射为流的第一个元素
图 6. 映射为流的第一个元素

全局流程

在 Modeler 中的顶级流程中重用的全局流程转换为 FileNet 中的系统步骤。如果同步调用全局流程,则顶级流程在系统步骤完成之前不会恢复。在生成的 XPDL 中,全局流程将成为在同一级别定义为主要流程的工作流流程(图 7)。


图 7. 将全局流程从 Modeler 转换到 FileNet
图 7. 将全局流程从 Modeler 转换到 FileNet

任务

在 Modeler 中定义的流程中的本地任务和本地人工任务被转换为 FileNet 流程中的常规步骤。任务的输入和输出映射到参数。如果使用本地人工任务,则该任务的主要所有者会映射到该步骤的 FileNet 参与者。不支持全局任务和全局人工任务。

尽管两种类型的任务都映射到 FileNet,但是存在某些限制。仅支持一个输入标准和一个输出标准。例如,假设 Task1 和 Task2 都需要传输到另一个称为 InputTask 的任务。要么 Task1 可以运行,要么 Task2 可以运行,但二者不能同时运行。InputTask 将需要两种输入标准,这样它才能够启动(每个标准对应于一个传入任务,执行时使用逻辑 OR)。此模式不受支持;必须改为使用合并元素,如图 8 所示。


图 8. 使用合并
图 8. 使用合并

类似地,在该任务决定采用流中的哪一个路径后,您可以使用一个决策,而不使用两个输出标准。

角色和资源

对于人工任务,在 Modeler 中定义的角色和资源被映射到 FileNet 中的等效构造。对于其他映射,由于两种环境的不同而存在一些限制。

  • Modeler 中的个别资源需求可映射到 FileNet 的参与者。不过,指定的个别资源必须基于预定义的人员或人力资源定义。换句话说,如果个别资源需求用于非人员或人力资源,则不将其导出。

  • Modeler 中的角色映射到 FileNet 中的工作流组,而角色需求映射到参与者。不存在对资源定义、资源定义模板和个别资源的映射。

流控制

用来控制流程流的 Modeler 元素可映射到 FileNet 中最接近的等效项。

决策

在 Modeler 中,决策可以是包含性或独占性的。最常见的模式是缺省的使用独占性决策,其中只能有一个可能的路径是正确的。简单的决策总是独占性的。在 FileNet 中,路由信息是某个步骤的组成部分。如果 Task1 后跟一个决策,则该决策的逻辑将映射到 Task1 的路由信息。在逻辑无法直接映射到任务的情况下,将为该流程创建新的常规步骤,其中包括路由信息。无论哪种情况,业务流程的逻辑都保存在生成的 XPDL 中。在路由信息中,决策成为一个逻辑 OR 分支。

Modeler 中的包含性决策可以使多个分支评估为 true。只有复杂的决策可以是包含性的。通过单击复杂决策的 General 选项卡上的复选框可以将其标记为包含性决策。包含性决策的图形更改如图 9 所示。因为对于包含性决策,可以将多个分支评估为 true,所以输出的百分比总数将大于 100%。也可以使用路由信息中的逻辑 AND 分支,将包含性决策映射到决策前的任务的路由信息。


图 9. 包含性和独占性决策
图 9. 包含性和独占性决策

Modeler 中的表达式编辑器用于定义决策逻辑。在 FileNet Business Process Manager 模式中,每个输出都需要表达式。如果您不定义表达式,则它将标记为错误。在 FileNet 中,表达式映射为路由条件。

Merge 和 join

使用 Modeler 中的 merge 可以将多个路径连接为单个路径。到 merge 的输入中只需要有一个为 true。从这方面说,merge 就像用于流程逻辑的逻辑 OR。

不过,FileNet 没有类似的构造。为此,在 Modeler 中使用 merge 时,在合并之后的步骤中将其映射为路由信息。例如,如果三个步骤传输到 merge,然后将输出连接到名为 Task2 的任务,则导出的流程会包括 XPDL 中为 Task2 生成的路由信息。如果该情况不发生,则生成新的常规步骤,其中包括路由信息。

join 可以与派生结合使用。派生可分出两个或多个并行路径。在继续之前,join 将等待所有的并行路径完成。从这方面说,join 就像用于流程逻辑的逻辑 AND。

FileNet 没有类似的构造,因此类似于 merge,将 join 映射为连接其输出的任务的路由信息。如果该情况不发生,则生成具有路由信息的新常规步骤。

FileNet 需要对称的流程流。当使用并行路径时,每个路径必须合并或结束。对于并行路径还存在另外一个注意事项,因为每个路径上的任务可同时执行;您需要考虑如何处理数据。如果两个并行路径尝试同时访问同一数据,则您会遇到一致性问题。为此,如果在并行路径中使用同一存储库,则导出中的每个路径将具有自己的数据副本。您可以自己考虑使用不同的存储库,这样可以对生成的数据字段进行更好的控制。

循环

许多表示法和运行时不允许向后传输连接。因此,可能需要重复的一组步骤被放在循环中。Modeler 有三种类型的循环可以在流程流中使用:

  • While 循环具有在每次迭代之前评估的循环条件。当条件为 true 时,将执行循环中的步骤。由于在每次迭代之前检查循环条件,因此,如果条件最初为 false,则循环中的步骤不运行。这是 WS-BPEL 中支持的唯一循环类型。
  • For 循环是针对一组迭代运行的。对于每个迭代,将运行循环中的所有步骤。
  • Do-while 循环类似于 while 循环,不过在每次迭代之后检查条件。这意味着循环中的步骤将至少执行一次。

FileNet 没有循环概念。不过,XPDL 不限制流拥有指向前一活动的链接。此条件最适合于文档中心流,而“面向程序员”的语言(如需要循环的 WS-BPEL)可更好地支持集成中心流程。IBM WebSphere Process Server V6.1 中的循环流活动将此类型的功能引入 WS-BPEL。

Modeler 循环映射到每个循环的 FileNet 构造,方法是使一个步骤表示循环中的条件检查,使另一个步骤表示循环的内容。对于 for 循环情况,会生成三个附加数据字段。这些字段将跟踪已在循环中执行的迭代数,并检查该条件以确定何时结束。


图 10. 带有 while 循环的 Modeler 流程
图 10. 带有 while 循环的 Modeler 流程

将带有 while 循环的流程导出到 XPDL 后,可以在 FileNet Process Designer 中打开该流程(图 11)。


图 11. 导出到 FileNet 的 While 循环流程
图 11. 导出到 FileNet 的 While 循环流程

名称为 While 循环的系统任务指向一个活动集,该活动集包含与 while 循环中的任务对应的任务(图 12)。通用步骤(没有任何名称)和 While 循环之间的路由包含与循环条件对应的逻辑。到流程任务的路由包含相反的逻辑,因此当循环条件为 false 时,将改为采用此路由。从这方面说,FileNet 流程尽管不支持循环,但其操作方式与 while 循环相同。


图 12. While 循环活动集
图 12. While 循环活动集

其他元素

Modeler 中的流程通常从一个或多个开始节点开始。 FileNet 流程从单个启动步骤活动开始。启动步骤是自动创建的,无论是否使用开始节点。

使用 terminateProcess 功能将顶级流程中的停止节点映射到系统步骤。在本地流程或循环中,当导出到 FileNet 时忽略停止节点。

没有对结束节点的映射;在导出时将忽略它们。

在 FileNet 中将批注映射到文本批注,如图 11 所示。

全局元素和服务

Modeler 包含可用的全局元素的概念,可以促进重用和具有可重用库的支持环境(如 WebSphere Process Server)。不需要从全局元素映射到 FileNet 中的构造。只能使用全局流程。

Modeler 还包含全局和业务服务的概念。不需要将这些元素从 Modeler 映射到 FileNet。

示例流程

下面介绍了一个示例流程,演示 Modeler 的一些其他导出特性和功能(图 13)。


图 13. 示例流程
图 13. 示例流程

前面已经提到,您可以隐藏从任务到存储库的连接,使流程看起来更清晰(图 14)。当流程复杂性增加时,此技巧可能比较可取。


图 14. 隐藏了存储库连接的流程
图 14. 隐藏了存储库连接的流程

该流程包含多个元素。

  • Review Request:人工任务,分配了 Reviewer 角色。
  • Approved?:一个简单的决策,基于 Approval Status boolean 变量。表达式是使用表达式编辑器创建的(图 15)。数据没有传输到决策,因此您必须单击 Add 按钮,才能创建表达式。
  • Process Approval:具有角色需求 Reviewer 和资源类型 Staff 的任务。
  • Process Rejection:具有角色需求 Reviewer 的任务,但是不指定任何资源类型。
  • Merge:将两个路径合并成一个路径。
  • Stop:流程的结束。


图 15. 表达式编辑器
图 15. 表达式编辑器

将流程导出为 FileNet,并在 FileNet Process Designer 中打开它(图 16)。


图 16. FileNet Process Designer 中的示例流程
图 16. FileNet Process Designer 中的示例流程

在 FileNet 流程中:

  • LaunchStep:FileNet 流程从启动步骤开始。LaunchStep 中的参数与 Modeler 流程中的传入数据对应。
  • Review Request:向角色 Reviewer 分配工作的任务。
  • Process Approval:向角色 Reviewer 分配工作的任务。
  • Process Rejection:向角色 Reviewer 分配工作的任务。
  • Stop Node:选择了函数 terminateProcess 的系统步骤。
  • Routings:Review Request 和后续步骤之间的路由包括路由使用的逻辑。

Modeler 的任务 Process Approval 和 Process Rejection 都使用了角色需求。与单个资源需求不同,不论是否将资源类型设置为 Staff,两个任务都映射到工作分配设置为 Reviewer 的任务。

保留了流程的业务意图,将 Modeler 的构造映射到了 FileNetk 中的对等项。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-591948/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    555581