集成 BPM 和企业内容管理

使用了文档存储特性的嵌入式企业内容管理

IBM® Business Process Manager V8.5 支持无缝集成企业内容管理 (ECM) 系统,提供了一个遵从嵌入式 CMIS(Content Management Interoperability Services,内容管理互操作性服务)、叫做 BPM 文档存储的内部文档存储,这解决了在业务流程范围中包含相关物理文档的管理的业务需求。在本文中,您将了解如何使用新的文档存储功能实现内容驱动的集成场景。 本文来自于 IBM Business Process Management Journal 中文版

Fintan McElroy, 高级常务 BPM 顾问, IBM

Fintan McElroy 是一名 IBM Software Services for WebSphere (ISSW) 高级顾问,他的职责是帮助 IBM 的客户采用 WebSphere 产品。Fintan 拥有 18 年的 IT 从业经验,担任过各种职位,包括基础架构构造和设计、应用程序构造、业务分析和应用程序开发。自 BPM with SOA 诞生以来,在它尚未用于面向对象的架构和设计方法中时就是它的积极拥护者。Fintan 目前为 IBM 的客户提供咨询,帮助他们通过采用 IBM Business Process Manager 和相关产品在其企业中实现敏捷性。



2014 年 1 月 20 日

入门

备注:本文不是对集成 IBM BPM 与 ECM 系统的一般介绍。有关该主题的一般介绍,请参阅 BPM Journal 文章 集成 IBM Business Process Manager V8 与企业内容管理系统

本文包含可供 下载 的样例代码。如果您希望理解本文并自行执行该场景,则应该安装 IBM BPM V8.5 或更高版本。将提供的 zip 文件解压到 C:\ 驱动器,然后将 C:\BPM85DocumentStore\twx 文件夹中的 TWX 文件 BPM_Document_Store_Sample - 1.0.twx 导入您的 Process Center 中。


简介

ECM 系统管理不同类型的文档的整个生命周期,这些文档包括记录、图像和网页。您可以从 IBM BPM 内的一个业务流程,使用集成服务或人工服务等服务中的特殊 ECM 操作来访问和更新这些文档。

从 8.0 版的 IBM BPM 开始,与 ECM 系统的集成将基于内容管理互操作性服务 (CMIS)。CMIS (图 1) 是 Advancement of Structured Information Standards (OASIS) 管理的一个开放标准,该标准定义了一个使用 Web 协议控制不同文档管理系统和存储库的抽象层。

图 1. CMIS 标准
CMIS 标准

IBM BPM V8.5 中添加的一个新特性是一个内部 CMIS 存储库,被称为 BPM 文档存储,它提供了支持嵌入式 ECM 的能力,并集成了一致的访问机制,比如自 8.0 版以后用于外部 ECM 机制的机制,如 图 2 中所示。

图 2. 对内部文档的 CMIS 访问
对内部文档的 CMIS 访问

请注意,内部 BPM 文档存储不是一个全功能的 ECM,它无法取代企业级 ECM。请参阅 IBM BPM 信息中心,了解与新文档存储特性相关的完整的功能和限制集合的详细信息。

在 IBM BPM 中使用内部 BPM 文档存储的内容集成功能支持许多典型的场景:

  • 在用户需要在某个流程活动中执行的操作中,在 Coach 中访问和显示文档
  • 作为一个文档事件(比如创建一个新文档或更新一个现有文档)的结果,启动一个业务流程
  • 恢复一个在等待预期的文档事件(比如接收要用作权利确认书的证明文档)时暂停的业务流程

在这些场景中,本文将重点介绍最后一个,因为它是最复杂的场景,而且它包含其他两个场景的各个方面,因此是对该特性的功能的更加全面的演示。该逻辑场景被作为 图 3 中的一个 BPMN(Business Process Model and Notation,业务流程模型和概念)流程而演示。

图 3. 涉及异步入站事件的 BPMN 场景
涉及异步入站事件的 BPMN 场景

在此场景中,需要提前执行一些自动处理工作(初始检查),然后才能发送出站消息,向客户请求更多的信息。这个出站消息是合理的,因为它可通过 Order Management 角色中的一位直接呼叫客户的参与者执行相应操作,或者能够以电子邮件形式发送它。Customer 角色显示了消息的响应接收者,后跟一些内部处理操作,然后作为响应发送一条出站消息。这些都不在 Order Management 流程的控制范围内,该流程仅在中间消息事件在 Verification 用户活动之前收到入站消息时,才知道此阶段已完成。本文剩余部分将演示如何在 IBM BPM 8.5 中使用内部 BPM 文档存储实现此场景。


一个内容驱动的场景演示

该场景已在 BPM 文档存储样例 流程应用程序中提供。如果您希望自行运行该场景,则应该下载该样例并将其导入您的 Process Center 中。导入该样例之后,单击运行图标打开并运行 ECM Await Document Process,如 图 4 中所示。

图 4. 从 Process Designer 中运行流程
从 Process Designer 中运行流程

点击查看大图

图 4. 从 Process Designer 中运行流程

从 Process Designer 中运行流程

流程启动后,切换到 Process Designer 中的 Process Inspector 视图。您应该看到,该流程中的第一个活动已激活并在等待操作,如 图 5 中所示。您现在可运行此活动,启动关联的 Coach 并与之交互。

图 5. Process Inspector 视图中的流程
Process Inspector 视图中的流程

点击查看大图

图 5. Process Inspector 视图中的流程

Process Inspector 视图中的流程

图 6 显示了一些输入 Coach 中的样例数据。最重要的是针对客户标识符而突出显示的字段,您应当记下该字段,因为您需要让它与您稍后在该场景中上传的文档相匹配。

图 6. 完成的客户应用程序信息
完成的客户应用程序信息

完成用户活动后(单击 Submit 之后),Process Inspector 会显示该流程已前进到下一个活动 (图 7),这是一个中间内容事件(一种与 CMIS 内容存储中的某个事件有关联的特殊的消息事件类型)。在一个与此流程实例有关联的内容事件到达之前(也就是一个针对客户标识符字段惟一标识的同一个客户的事件),该流程将会停留在这一步。

图 7. 流程正在等待入站内容事件
流程正在等待入站内容事件

点击查看大图

图 7. 流程正在等待入站内容事件

流程正在等待入站内容事件

为了让流程实例完成此活动,您需要生成一个文档事件。这将在收到来自此客户的预期文档时完成。您需要运行所提供的人工服务 Document Upload Client CS 来上传该文档,如 图 8 中所示。

图 8. 将文档上传到文档存储的服务
将文档上传到文档存储的服务

点击查看大图

图 8. 将文档上传到文档存储的服务

将文档上传到文档存储的服务

流程应用程序中包含一个名为 Delete All Documents Utility 的实用程序服务,从名称可以看出,该服务将删除文档存储中的所有文档。此服务可在测试之间用来清除文档存储中所有已存储的文档。

在第一次运行此服务时,内部 BPM 文档存储中不应存在任何现有的文档,Coach 应显示为如 图 9 中所示。

图 9. 没有现有文档的初始 UI
没有现有文档的初始 UI

要上传一个文档,可单击 Create Document 打开如 图 10 中所示的对话框。

图 10. 上传显示默认值的文档的向导
上传显示默认值的文档的向导

对于第一次测试,我们将特意提供不会与流程实例有关联的值。流程实例关联规则(我们稍后将介绍如何实现此规则)规定了流程实例想要一种特定的文档类型 (Application)。在对话框中,选择其他一种文档类型,提供其他字段的示例数据,如 图 11 中所示(记住使用与您在初始数据输入步骤中使用的标识符相同的客户标识符)。单击 OK 完成创建步骤。

图 11. 使用示例值创建文档(没有关联)
使用示例值创建文档(没有关联)

您现在应能够在 Process Inspector 中验证,流程实例仍然在该活动中等待一个内容事件,而且由于您明确选择了一个 Application 以外的文档类型,所以没有发生关联。您现在可再次单击 Create Document 关联此文档,这一次提供正确的文档类型和客户标识符组合,如 图 12 中所示。这一次,单击 Browse 并选择 Sample Document.pdf 来上传一个文件,如果您将提供的 zip 文件解压到了 C:\ 目录,应该可以在 C:\BPM85DocumentStore\upload 中找到该文件。

图 12. 使用示例值创建文档(应关联到流程实例)
使用示例值创建文档(应关联到流程实例)

点击查看大图

图 12. 使用示例值创建文档(应关联到流程实例)

使用示例值创建文档(应关联到流程实例)

这一次关联应该取得成功,流程实例应前进到最后一个活动 (Confirm Application),如 图 13 中所示。

图 13. 流程显示等待操作的确认步骤
流程显示等待操作的确认步骤

点击查看大图

图 13. 流程显示等待操作的确认步骤

流程显示等待操作的确认步骤

要完成该场景(并验证预期的文档确实已被流程实例收到),可启动最后一个活动,该活动应得到如 图 14 中所示的 Coach。如果您希望在全屏模式下查看文档,可单击图中突出显示的 Open in new window

图 14. 显示了初始值的确认活动
显示了初始值的确认活动

点击查看大图

图 14. 显示了初始值的确认活动

显示了初始值的确认活动

为了完成此场景,执行该活动的用户需要完成如 图 15 中所示的表单并单击 Confirm。流程实例然后应该在 Process Inspector 中显示为已完成。

图 15. 确认活动已完成
确认活动已完成

用于构建该场景的重要组件

我们刚演示的场景使用了许多重要技术来实现,本节将介绍这些技术:

  • 配置一个中间内容事件来接收业务流程中的入站文档消息
  • 定义一个事件订阅来检测内部 BPM 文档存储中的文档创建
  • 提供 Document List Coach 控件的一个增强版本,该版本允许在上传的文档上设置元数据属性

配置一个中间内容事件

图 16 中显示的流程上的中间内容事件与一个已定义为一个事件订阅一部分的 UCA(秘密代理)相关联。

图 16. 中间内容事件配置
中间内容事件配置

为了确保正确的文档接收事件与业务流程的特定实例相关联,需要定义一种相互关联,图 17 中的 Data Mapping 中已突出显示这一点。

图 17. 中间内容事件数据映射
中间内容事件数据映射

定义一个事件订阅

为了发送表示一个新文档的创建的事件,您需要指定一个针对内部 BPM 文档存储的事件订阅,如 图 18 中所示。相关的重要设置已突出显示。请注意,您还可能检测到其他事件类型,比如正在更新一个现有的文档。

图 18. 事件订阅
事件订阅

点击查看大图

图 18. 事件订阅

事件订阅

配置的 Attached Service 充当着订阅处理程序,包含决定在检测到文档创建时间时要做什么的逻辑。图 19 中突出显示的已调用服务是一个特殊的 Content Integration 元素,它允许在内容存储上调用已定义的操作,在本例中,调用 Get document 操作来检索文档信息。

图 19. 订阅处理程序 – 调用 get document
订阅处理程序 – 调用 get document

点击查看大图

图 19. 订阅处理程序 – 调用 get document

订阅处理程序 – 调用 get document

回想一下,在我们的场景中,我们表明了它需要文档类型和客户标识符的一种特殊组合,才能触发与等待的流程实例的关联。实现此目标的逻辑在一个名为 Check Application Info 的服务中执行,该服务是从订阅处理程序调用的,如 图 20 中显示。

图 20. 订阅处理程序 – 调用 Check Application Info
订阅处理程序 – 调用 Check Application Info

点击查看大图

图 20. 订阅处理程序 – 调用 Check Application Info

订阅处理程序 – 调用 Check Application Info

创建的文档将拥有文档属性形式的关联的元数据。您将在下一节中看到如何在上传时指定这些元数据。这些文档属性会在 Check Application Info 服务中检查 (图 21),如果检测到预期的文档类型,那么结果是匹配的。

图 21. 检查文档属性的逻辑
检查文档属性的逻辑

点击查看大图

图 21. 检查文档属性的逻辑

检查文档属性的逻辑

在一个决策网关验证了文档是否与定义的类型匹配后,会执行一个 Invoke UCA 步骤 (图 22),将为任何定义了各自的 UCA 的监听业务流程实例发送该事件。

图 22. 订阅处理程序 – 调用 Invoke UCA
订阅处理程序 – 调用 Invoke UCA

点击查看大图

图 22. 订阅处理程序 – 调用 Invoke UCA

订阅处理程序 – 调用 Invoke UCA

UCA 定义如 图 23 中显示。请注意解释一个服务实现的特殊用途的文档,该实现用于传递用于关联的业务数据字段。

图 23. UCA 定义
UCA 定义

点击查看大图

图 23. UCA 定义

UCA 定义

使用 Document List 控件

Content Management Toolkit 提供了一个 Document List 控件来显示文档存储中的文档,并允许添加或删除其中的文档。该控件允许定义应用于每个上传的文档的静态属性,此场景的需求是动态元数据属性添加到每个上传的文档中。我们提供了 Document List 控件的一个增强版本(名为 Extended Document List),它被用在 图 24 中的 Coach 中。

图 24. Extended Document List Coach View 的使用
Extended Document List Coach View 的使用

点击查看大图

图 24. Extended Document List Coach View 的使用

Extended Document List Coach View 的使用

为了比较和对比增强,在 图 25 中,我们显示了开箱即用的 Document List Coach View。请注意所包含的已突出显示的 JavaScript™ 文件。

图 25. 提供的 Document List Coach View
提供的 Document List Coach View

我们创建 Extended Document List Coach View 的方法是,获取 Document List Coach View 的一个副本并重命名所提供的 JavaScript 文件,以便将它们与原始文件区分开。突出显示的主要 JavaScript 文件 (图 26) 包含核心逻辑,该逻辑已扩展,以支持在上传文档时添加动态属性的能力。

图 26. Extended Document List Coach View
Extended Document List Coach View

点击查看大图

图 26. Extended Document List Coach View

Extended Document List Coach View

扩展该控件是为了允许逐个文档地动态设置属性。继承自基础 Document List 控件的配置设置 (图 27) 表明有一个条款指定了静态属性。但是,每个后续上传的文档都有相同的属性,所以这不足以满足该场景的需求。

图 27. Document List 中的上传属性配置选项
Document List 中的上传属性配置选项

扩展的 JavaScript 文件拥有已突出的额外的逻辑,带有以 // EXTENSION : 开头的注释约定,如 图 28 中的代码段所示。该代码用于在用户创建一个文档时显示的对话框上创建额外的字段。这些字段值然后被设置为上传到文档存储的文档的文档属性。如果希望理解代码增强,您可查看所提供的 JavaScript 文件。

图 28. JS 文件中的扩展逻辑示例
JS 文件中的扩展逻辑示例

点击查看大图

图 28. JS 文件中的扩展逻辑示例

JS 文件中的扩展逻辑示例

结束语

本文演示了一种内容驱动的场景,使用了 IBM BPM V8.5 中引入的 BPM 文档存储嵌入式 ECM 功能。您看到了如何将文档的接收与一个现有的流程实例相关联,而且该实例需要使用该文档作为支持应用程序的证据。在本文中,我们了解了 IBM BPM 中用于实现该场景的一些特性,包括一些对所提供的 Document List Coach 控件的增强,以便允许用户在将文档上传到 BPM 文档存储时指定元数据属性。


下载

描述名字大小
样例代码BPM85DocumentStore.zip1.6MB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=960686
ArticleTitle=集成 BPM 和企业内容管理
publish-date=01202014