连接:http://www.ibm.com/developerworks/cn/bpm/bpmjournal/1212_ramos/1212_ramos.html
集成 IBM Business Process Manager V8 与企业内容管理系统
简介
业务流程往往需要处理非结构化数据,如扫描的文档或图片。IBM Business Process Manager V8(以下简称 IBM BPM)提供无缝集成 Enterprise Content Management (ECM) 系统的能力,后者专门处理这种类型的数据。
IBM BPM 使用 Content Management Interoperability Services(CMIS,内容管理互操作性服务)标准来连接到 ECM 系统。在本文中,我们将演示如何配置从 IBM BPM 到 ECM 系统的连接。然后,我们将构建一个人工服务,包括在 Coach 中的文档列表和查看功能。
先决条件
为了完成本文中的步骤,您需要运行 IBM BPM 开发环境和已创建的现有流程应用程序,并在 Process Designer 中打开它们。
您还需要让 ECM 系统启动并运行,展示符合 CMIS 1.0 规范的 Web 服务。此类 ECM 服务器的示例包括 IBM FileNet P8、IBM Content Manager 和 Alfresco。请注意,虽然 IBM FileNet P8 产品中包含了 CMIS,但 CMIS 是一个独立的可选安装。在本文中,我们使用了一个 IBM FileNet P8 实例。
回页首
创建 ECM 服务器定义
首先,您必须在流程应用程序中定义 ECM 服务器连接,让您可以在服务和 coach 中使用它。要将服务器定义添加到流程应用程序设置,请执行以下步骤:
- 在 Process Designer 中,转到 Process App Settings 并单击 Servers 选项卡,如图 1 所示。
图 1. 选中 Process App Settings 中的 Servers 选项卡
- 填写服务器配置选项,如图 2 所示。选中 Enterprise Content Management Server 作为服务器类型。然后指定 CMIS 服务器的主机名、HTTP 端口,以及托管 CMIS Web 服务的 Web 应用程序的上下文根。(对于 FileNetP8,默认的上下文根示例是
fncmis
,对于 Alfresco,该示例是 alfresco/cmis
)。完成剩下的字段,包括存储库名称(由 ECM 系统定义)和身份验证选项。 图 2. ECM 服务器定义
Always Use This Connection Information 选项告诉 IBM BPM 对每个 ECM 服务器都使用该 userid 和密码。这意味着,每一个 ECM 交互都使用一个通用的用户,并且最终用户的身份没有从 IBM BPM 传递给 ECM 服务器。
如果您想在 BPM 中使用用户的身份进行 ECM 交互,您必须取消选中该复选框。但是,请记住,如果您这样做,则需要在 IBM BPM 和 ECM 应用程序服务器之间配置一个单点登录机制,本文中不打算介绍该机制。
- 单击 Test Connection 验证 ECM 连接是否已正确配置。如果您收到一个错误消息,则应该通过检查 IBM BPM SystemOut.log 文件执行进一步的调查。
回页首
使用 Content Management 工具包
IBM BPM 包括一个工具包,它提供若干个 ECM 资产,比如针对 ECM 访问的预构建资产。
将 ECM 工具包添加到您的流程应用程序
您需要将该工具包添加到您的流程应用程序,以便在您的流程中使用所需的组件。
- 单击 Process Designer 中 Toolkits 部分旁边的加号 (+),如图 3 所示。
图 3. 添加工具包依赖关系
- 选择 Content Management 下面的 8.0 快照,如图 4 所示。
图 4. 选择 8.0 工具包
将示例 AJAX 搜索服务复制到您的流程应用程序中
IBM BPM 使用 Ajax 服务实现 ECM 服务器交互。搜索文档及其元数据等操作中包括了一些基本服务。这些服务可供 ECM coach 控件使用,这些控件让您可以列出和查看 ECM 服务器上的文档。
您不需要从头开始操作,您可以执行下列操作,复制一个由该工具包提供的基本搜索服务的副本:
- 从 Content Management 工具包将 Default ECM Search Service 复制到您的流程应用程序,在 Content Management 工具包上单击 User Interface,然后右键单击 Default ECM Search Service,如图 5 所示。
图 5. 复制一个样例 Ajax 服务
重命名 Ajax 服务
- 单击流程应用程序库中的 User Interface 部分。
- 右键单击 Default ECM Search Service 并选中 Rename,如图 6 所示。
图 6. 重命名 Ajax 服务
- 为新复制的 Ajax 服务指定一个名称。在本例中,我们将使用
My ECM Search Service
。
回页首
定制 ECM Search 服务
刚刚复制和重命名的 Ajax 服务只是一个模板,它包含 ECM 集成所需的输入和输出变量。然而,它不提供任何具体操作。您现在需要定制它,让它执行所需的操作,在本例中,需要在 ECM 服务器上执行搜索,查找将要在 coach 中列出的文档。
定义 Ajax 服务流程图
- 打开之前复制的 ECM Search 服务,如图 7 所示。
图 7. 打开 Ajax 服务
- 执行以下操作,将 Content Integration 组件添加到该服务:
- 删除 Start 和 End 事件之间的线
- 在它们之间放置一个 Content Integration 组件,如图 8 所示,并将其重命名为有意义的名称。在本例中,我们称其为
Get Documents
。
图 8. 添加 Content Integration 组件
- 将组件连接到 Start 和 End 事件,如图 9 所示。
图 9. 连接 Ajax 服务中的元素
配置 Content Integration 组件
配置 Content Integration 组件,如下:
- 单击您刚才添加到 Ajax 服务的 Content Integration 组件。
- 在 Properties 选项卡的 Implementation 部分,将 Server Name 设置为您在 Process App Settings 中创建连接时所指定的名称。
- 选中 Search 作为 Operation name。
图 10. 配置 Content Integration 组件
- 在 Properties 选项卡的 Data Mapping 部分,将每个输入和输出变量映射到相应的私有变量,如图 11 所示。
图 11. 执行数据映射
定义内容过滤器
现在,你需要定义从 ECM 服务器中为特定的流程实例和 ECM 集成服务实现选择哪些文档。在 IBM BPM 中,您可以通过直观的方式指定选择标准。在后台,Process Designer 生成适当的 CMIS SELECT 查询,包含所需的子句和参数。
- 单击 ECM Search 服务的 Content Filters 选项卡,如图 12 所示。
图 12. 内容过滤器
- 在 Object Type 下面,您可以选择由您的 ECM 系统所管理的任何文档类,如图 13 所示。不同的文档类具有不同的属性,可在查询中使用。在本例中,我们将使用来自我们的 ECM 服务器的根 Document 类。
图 13. 指定一个文档类
- 如果您愿意,可以添加更多的文档属性列,单击 Add 按钮,使其显示在文档列表中,如图 14 所示。
图 14. 添加文档类属性
我们在本例中不会添加更多的列,所以您不需要单击 Add,您的屏幕不会和图示完全一样。
- 如果您愿意,也可以定义选择标准,在运行时用于过滤列出的文档,如图 15 所示。
图 15. 指定文档搜索标准
通过将任意文档属性匹配到一个字符串值,可以构建搜索条件。tw.local.cmisQuery
变量可作为 Ajax 服务的输入参数之一,并且应该用来传递一个来自 coach 的字符串值。
与上一步一样,我们在本例中不会执行该操作,所以您不需要单击 Add Search Criterion,您的屏幕不会和图示完全一样。
回页首
利用 ECM 内容构建 coach
您刚完成了用于在 ECM 服务器中搜索文档的服务的创建。现在您将构建 coach,向流程的最终用户列出它并显示文档。
创建人工服务和 coach
- 创建新的人工服务。
- 将一个新的 coach 添加到服务,如图 16 所示,并双击它。
图 16. 在人工服务上的 coach
- 将 Document List 和 Document Viewer 控件拖放到 coach,如图 17 所示。这些控件位于调色板的 Content 部分。
图 17. 构建 coach
- 单击 Document List 1 控件,然后单击属性的 Configuration 部分,并填写各字段,如图 18 所示:
- 选中 Allow Create 和 Allow Update。
- 指定
10
作为要显示的结果数量。
- 对于 Search 选项,选中您之前创建的 ECM Search 服务。
图 18. Document List 控件配置
配置 ECM 控件上的变量绑定
完成以下步骤,配置 ECM 控件上的变量绑定:
- 创建新的变量,用于存储由搜索返回的文档列表,如图 19 所示:
- 单击人工服务的 Variables 选项卡。
- 创建新的私有变量,其名称为
documentInfoList
,类型为 ECMDocumentInfo
。
- 选中 Is List。
- 选中 Has Default。
图 19. 在人工服务中添加变量
- 为 Document List 控件设置绑定,如下所示:
- 转到编辑器中的 Coaches 选项卡。
- 单击 Document List 控件。
- 单击 Properties 选项卡的 General 部分。
- 在 Binding 属性中,选中您之前创建的 documentInfoList,如图 20 所示。
图 20. 为 Document List 控件设置绑定
- 为 Document Viewer 控件设置绑定,如下所示:
- 转到编辑器中的 Coaches 选项卡。
- 单击 Document Viewer 1 控件。
- 为 Document Viewer 控件选择绑定
- 在 coach 上单击 Document Viewer 控件,然后单击 Properties 选项卡的 General 部分。
- 在 Binding 属性中,选中您之前创建的 documentInfoList 的 listSelected (ECMDocumentInfo) 字段,如图 21 所示。
图 21. 为 Document Viewer 控件指定绑定
回页首
利用 ECM 内容集成测试 coach
执行以下操作,测试 coach:
- 单击右侧的 Playback 按钮,如图 22 所示。
图 22. 运行 coach
- Coach 在新的浏览器窗口打开,并显示存储在您的 ECM 中的文档的列表,如图 23 所示。您可以使用 Actions 图标来查看内容或元数据。您也可以使用 Create Document 按钮来上传新的文档。
图 23. Coach 执行
回页首
结束语
本文介绍了利用存储在 Enterprise Content Management(企业内容管理系统)中的内容来构建 coach 的过程。虽然本文重点介绍了列出通用内容的基本步骤,但您可以配置不同的文档类和元数据,以便使用特定类型的内容。