提取多个 Cognos 报告定义

Extract multiple Cognos report definitions

在 COGNOS 中有没有办法从一个文件夹中的多个报表中获取定义(过滤器、选定字段)?

我继承了一个文件夹中定义的大约 500 份报告,由于存在业务错误(不是技术错误),因此都需要检查和修复。如果有可能在一次提取中获取所有定义,这将节省大量时间,而不必多次单击以从每个报告中逐一获取该信息。

在 ACCESS 中,这可以通过 VBA(对于查询定义)来完成,但我不确定是否有一种脚本语言可以与 COGNOS 一起使用以获得类似的结果。

听起来您可能想要 "validate" 这 500 份报告中的每一份(如果报告在创作工作室中打开,则实际上相当于在每个单独的报告上按 "validate" 按钮)。

验证将确保报告规范 XML 在语法上仍然正确,引用内容存储中仍然存在的包,仅引用该包中仍然存在的查询项目,生成有效 SQL 与底层数据源等

如果这就是您正在寻找的,对所有 500 份报告进行批量验证的一种简单方法是使用 MotioPI(它是 Cognos 的免费管理工具)。这是一篇简短的文章,将引导您完成整个过程:

http://info.motio.com/Blog/bid/70357/Batch-Validation-of-Cognos-Reports

如果您想要为这 500 个对象中的每一个检索实际的报告规范 (XML),那么您需要编写一个程序来利用 Cognos SDK 来检索规范 XML 来自 500 个报告对象中的每一个。之后,您需要添加逻辑来检查这 500 个 XML 文档中的每一个文档,以查找您要查找的内容。

我们通过在内容存储上使用 SQL 查询导出报告的 XML 解决了这个问题。 使用 Python 脚本处理输出以将 XML 转换为 CSV 格式的 table 布局。 此 CSV 文件可以轻松导入 Excel。

您可能希望使用 xmltable 函数直接在 SQL 查询中处理报告 XML。在我们的情况下,这是一个繁重的过程,我们不想给内容存储数据库增加负担。对于一小部分报告,这虽然工作正常。