IBM Cognos 最佳实践: 将 IBM Lotus Quickr Document Metadata 转换为 IBM Cognos BI 可用的数据源

文档性质:技巧或技术;产品:IBM Cognos BI;关注领域:基础结构

本文描述一种 Java 实用工具,它可在 Lotus Quickr Document 对象上提取元数据并使用 XSLT 样式表将该元数据转换成 IBM Cognos BI XML 数据源。

Cognos Proven Practices Team, Cognos 最佳实践团队, IBM

Cognos 最佳实践团队。



2011 年 7 月 22 日

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

目的

本文档描述了提取并将 IBM Lotus Quickr 库中包含的 Document 对象的元数据转换成 XML 数据源(可在使用的 IBM Cognos BI 上建模、打包和报告)的方法。

适用性

本文中的信息适用于 IBM Cognos BI 8.3 版或更高版本,包括 IBM Cognos 10 BI。

本文附带的提取并转换元数据的组件是针对 IBM Lotus Quickr For WebSphere Portal 8.1.1 服务提供商创建的。

假定条件

本文档假设您熟悉 IBM Lotus Quickr Services For WebSphere Portal 8.1.1、XML、XSLT 以及批处理文件 /shell 脚本。


概述

本文档是文档 “IBM Cognos 8 - XML 作为数据源” 中所描述的技术的实现,在撰写本文时,其可在 http://www.ibm.com/developerworks/data/library/cognos/page476.html 上的 developerWorks 发现。如果不熟悉 IBM Cognos BI 的 XML 数据源,我们建议在使用本文的以前阅读 “IBM Cognos 8 - XML 作为数据源”。

这里有两个独立的组件,它们用于将从 IBM Lotus Quickr 库中提取的数据转换为 IBM Cognos BI 所使用的 XML 文档,该 XML 文档可作为 XML 数据源、Java 应用程序和 XSLT 样式表。

组件 1 - Java 应用程序

第一个组件是 Java 应用程序,其可以从 IBM Lotus Quickr 库提取元数据并将该信息保存到文件系统。使用 XML 文档的形式返回元数据信息。

Java 应用程序执行以下任务,

  • 使用指定的用户凭据登录 IBM Lotus Quickr 站点。
  • 使用指定的 IBM Lotus Quickr 库名称确定内部库 ID。此 ID 用于从库中提取数据的调用。
  • 获取库的 AllDocuments 提要。AllDocuments 提要是一个 XML 文档,其包含了适用于库中所有文档的标准元数据。AllDocuments 提要中返回文档的数量是可配置的,将在下一部分进行描述。在收到 AllDocuments 提要时,会将其加载到 XML DOM 做即时处理。
  • 遍历包含 AllDocuments 提要的 XML DOM 时,要处理每一个 <entry> 元素。在 <entry> 元素内存在一个 <td:uuid> 包含 IBM Lotus Quickr 文档 ID 元素。<td:uuid> 元素的值用于创建为各个 IBM Lotus Quickr 文档检索元数据的 URL。使用文档 ID 作为文件名,则每一个 IBM Lotus Quickr 文档的元数据都将保存到文件系统的指定位置。如果在处理单个 IBM Lotus Quickr 时遇到自定义属性表,自定义属性表也将被提取并作为 XML 文档保存到文件系统。
  • 通过调用 IBM Lotus Quickr Services 的 REST API,可在 HTTP 上检索每个文件中的 AllDocuments 提要和元数据。

组件 2 - XSLT 样式表

该 XSLT 表单就是执行所有处理和逻辑来创建 IBM Cognos BI XML 数据源之处。样例 XSLT 文件用于转换检索的 XML 文件,并通过 Java 应用程序保存到 IBM Cognos BI 的 XML 数据源。此处提供的 XSLT 文件被命名为 xformToXMLDataSource.xsl。

该样例 XSLT 文件将处理 AllDocuments 提要,而对于 <entry> 元素来说,其将提取这类信息,如 IBM Lotus Quickr 文档名、ID 和作者。IBM Lotus Quickr 文档的路径值取自各个 IBM Lotus Quickr 文档的元数据。

该样例 XSLT 文件不能太过复杂,旨在说明能够从 IBM Lotus Quickr 库输出报告的潜力。在生产环境中,XSLT 很可能会处理自定义属性表,这可能会生成多个 XML 数据源,其中多个数据源将通过 IBM Lotus Quickr 文档 ID 链接在一起。此外,可能运行多个 Java 应用程序的实例以便用综合方式从几个 IBM Lotus Quickr 库输出报告。


安装和配置

安装

安装所需要的是将文件 C8ReportOnQuickr.zip 解压到首选位置。

配置

这里有一些需要与特定安装信息一起编辑的文件。要编辑这些文件,使用文本编辑器(如 Notepad 或 vi)。

编辑 run.bat 或 run.sh

  1. 将 MY_JAVA 环境变量更改为指向 Java 运行时环境(Java Runtime Environment,JRE)。因为 run.bat 和 run.sh 文件被设置为使用 IBM JRE(包括一个 XSLT 处理器),所以我们推荐 IBM JRE 1.5 或更高版本。如果使用非 IBM JRE,则可能需要从 http://xml.apache.org/xalan-j/ 下载 Xalan-Java 分析器和支持文件并将这些文件添加到类路径。如果此应用程序安装在相同的计算机上,就像 IBM Cognos BI 8.3 版或更高版本那样,则可在 IBM Cognos BI 安装位置的 bin\jre\version\bin 子目录中找到推荐的 IBM JRE。
  2. 将 QUICKR_DOCS 环境变量更改为指向 Java 应用程序,保存从 IBM Lotus Quickr 提取的 XML 文件的目录。默认值为安装位置的 quickrDocs 子目录。在其他位置中将需要指定此值。

创建虚拟目录以便服务各个 IBM Lotus Quickr 文档元数据文件

在 webserver(如 IBM HTTP Server 或 Apache)上,创建名为 C8ReportOnQuickr 的虚拟目录并将其指向此应用程序的安装目录。XSLT 文件将利用此 virtualdDirectory 来处理保存到此位置的各个 IBM Lotus Quickr 文档元数据文件。

编辑 xformToXMLDataSource.xsl

除了处理来自 AllDocuments 提要的 <entry> 元素以外,此 XSLT 文件还将读取各个 IBM Lotus Quickr 文档元数据文件以便提取文档路径值。这是通过让 XSLT 处理器从刚刚创建的虚拟目录中读取 HTTP 上的各个 IBM Lotus Quickr 文档元数据完成的。

找到以下行,大约在第 79 行。

<xsl:text>http://localhost/C8ReportOnQuickr/quickrDocs/</xsl:text>

通过托管虚拟目录可将 localhost 更改为服务器名。如果更改 QUICKR_DOCS 环境变量,那么将需要更改以上 URL 的 quickrDocs 路径元素以便与 QUICKR_DOCS 环境变量的值相匹配。确保 URL 用 "/" 字符结束,否则 XSLT 将会失败。

编辑 C8ReportOnQuickr.properties

以下列出了启动时 Java 应用程序所使用的属性,对于样例 XSLT 需要修改才能运行的属性有:c8ReportOnQuickr.quickrServerc8ReportOnQuickr.quickrPortc8ReportOnQuickr.quickrLibrary

c8ReportOnQuickr.quickrServer — IBM Lotus Quickr 服务器的名称。

c8ReportOnQuickr.quickrPort — IBM Lotus Quickr 服务器正在侦听的端口号。

c8ReportOnQuickr.quickrLibrary — 将要处理的 IBM Lotus Quickr 库的名称。此名称用于导出 libraryID,这是 IBM Lotus Quickr REST API 调用所必需的 。

c8ReportOnQuickr.quickrUser — 用于登录 IBM Lotus Quickr 服务器的用户名。如果这是空白的,则构成登录凭据的用户 ID 和密码将需要指定为命令行参数(run.batrun.sh)。

c8ReportOnQuickr.quickrPswd — 用于 IBM Lotus Quickr 服务器的密码。在属性文件中指定时不对此密码进行加密。我们建议在运行时提供登录凭据。如果在属性文件中指定密码,我们建议将此包中的文件部署到安全位置。

c8ReportOnQuickr.allDocuments — 用于获取 IBM Lotus Quickr 库中所有 Document 列表的部分 URL。默认值为 view/AllDocuments/feed 且无需更改。

c8ReportOnQuickr.allDocuments.parameters — 在检索 AllDocuments 提要时,此属性用于指定其他参数(name=value 形式)。可指定多个参数且必须用 & 字符分隔。

c8ReportOnQuickr.allDocuments.maxDocs — 用于从 IBM Lotus Quickr 库检索的 Document 的最大数量。在 AllDocuments 提要上此值被用作 pagesize= 参数。默认值为 99999,其在许多实例中将大到足以获得库中所有 Document 的列表。

c8ReportOnQuickr.allDocuments.save — 如果设置为 true,从 AllDocuments 提要返回的 XML 文档将保存到一个文件中,该文件由根据属性 c8ReportOnQuickr.outputDir 指定目录中的属性 c8ReportOnQuickr.allDocuments.output 命名。默认值为 true

c8ReportOnQuickr.allDocuments.output — 用于保存由 AllDocuments 提要返回的 XML 的文件名。默认值为 allDocuments.xml。如果更改此值,则也需要更新 run.batrun.sh 中的 ALLDOCS 环境变量。

c8ReportOnQuickr.eachDoc — 确定是否处理 AllDocuments 提要中返回的每一个文档。默认为 true,这意味着要为各个 IBM Lotus Quickr 文档处理 AllDocuments 提要。如果无需检索各个 IBM Lotus Quickr 文档(例如,无需处理自定义属性表),那么将该属性设置为 false 是十分有用的。

c8ReportOnQuickr.eachDoc.parameters — 在为各个 IBM Lotus Quickr 文档检索元数据时,此属性用于指定其他参数(name=value 形式)。可指定多个参数且必须用 & 字符分隔。

c8ReportOnQuickr.propSheetExt — 在将属性表名称保存到文件系统时用于给出这些名称的文件扩展名。在将其添加到 IBM Lotus Quickr 库时,文件名将成为属性表的名称。默认值为 .propSheet.xml

c8ReportOnQuickr.processPropSheets — 是否检索并保存自定义属性表。默认为 true

c8ReportOnQuickr.outputDir — 在文件系统上指定 AllDocuments 提要的元数据和各个 IBM Lotus Quickr 文档所保存的位置。默认值为 quickrDocs。此值应与 run.batrun.sh 中的 QUICKR_DOCS 环境变量所指定的值相同。


调用转换流程

要创建 IBM Cognos BI XML 数据源,请从命令提示中调用 run.batrun.sh 文件。run.batrun.sh 文件将采用 IBM Lotus Quickr 登录凭据作为命令行参数。如果在命令行上指定凭据,那么将覆盖文件 C8ReportOnQuickr.properties 中所指定的凭据。命令行参数是 -u <username>-p <password>。我们建议为引号中的 <username><password> 输入值。例如,

run -u "joe.bloe@ca.ibm.com" -p "Password"

如果不打算使用 -u-p 命令行参数,则有必要编辑文件 C8ReportOnQuickr.properties 并修改属性 c8ReportOnQuickr.quickrUserc8ReportOnQuickr.quickrPswd。请注意这些属性将被存储为纯文本,且我们建议采用适用于保护这些值的目录和/或文件等级安全性。

在成功完成 run.batrun.sh 时,将生成名为 xformToXMLDataSource.xml 的 XML 文件。此 XML 文件可以导入进 Framework Manager,并在 IBM Cognos BI 上建模、发布以及报告,如文档 “IBM Cognos 8 - XML 作为数据源” 中所描述。

在开发和测试 XSLT 时,通常只需要运行 XSLT 转换且不必为由 AllDocuments 提要返回的各个文档检索元数据。要绕过检索流程且只运行 XSLT 转换,请使用 -x 命令行参数。

run -x

这将获取由 XSLTIN 环境变量指定的 XSLT 样式表并将生成一个具有 XSLTOUT 环境变量中指定文件名的文件。


下载

描述名字大小
文章包含的 ZIP 文件C8ReportOnQuickr.zip1131KB

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

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=Information Management
ArticleID=677309
ArticleTitle=IBM Cognos 最佳实践: 将 IBM Lotus Quickr Document Metadata 转换为 IBM Cognos BI 可用的数据源
publish-date=07222011