如何访问IBM Cognos Report Studio背后的数据库

时间:2019-02-08 16:05:40

标签: database oracle report cognos

我们正在使用IBM Cognos Report Studio制作报告。 我们已经开发和使用了数千个报告。 现在,我需要获取在这1000多个报告中编写的所有SQL查询。 目前,我正在为每个单独的报告打开报告工作室并获取查询。 但这是一项非常繁琐的工作,要花费数月的时间才能获得这1000多种报告中的所有SQL。

因此,我正在寻找一种从Cognos studio背后的数据库获取所有这些查询的方法。 这些报告参数(包括SQL)存储在数据库中还是仅存储在Contentstore中? 如果它存储在DB中,那么是否可以使用Oracle SQL Developer这样的数据库工具访问Report Studio? 这样我就可以一次从数据库表中获取所有SQL。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我从一种报告产品迁移到另一种报告产品的经验就像您要问的一样。我想我知道有7000个报告,而工作站硬盘驱动器上还有许多报告。在此过程中的某个时刻,我们意识到新产品与旧产品具有不同的功能,因此在大多数情况下,重新设计报表是一个不错的选择。我们实际上开始处理报告花了18个月。那是取代700个“标准”报告。用户可以自己(在IT和主题专家的支持下)进行自定义工作。我现在在Cognos中大约有19,000个报告。

除非报表开发人员在“查询”区域的SQL对象中编写了SQL,否则Cognos报表不包含SQL代码。 Cognos在运行时根据报表规范和用户交互(他们设置的参数,打开的页面等)生成SQL。没有编写自己的报表规范分析器,重复了Cognos为您所做的工作,我无法知道如何生成SQL。

一种可能性:我还没有对Cognos SDK进行过深入的研究。那里可能存在一种为每个报告生成SQL的方法。然后,您可以自动执行此操作。请注意,对于成千上万的报告,您将需要在非工作时间运行此过程。它可能会运行数小时,并且可能会占用大量资源。

另一种可能性:打开本机查询日志记录(Cognos管理|系统|所有调度程序| |设置属性|设置|日志记录|选中“审核本机查询...”框)。然后让一个人,您自己创建的Motio产品或您创建的Cognos SDK程序运行每个报告。然后,您可以从审核数据库中获取SQL。当然,这里的问题是回答提示。运行这些可能需要一个人。

答案 1 :(得分:0)

要将两列添加到列表中,或将两个数据元素添加到报表或页面页眉或页脚中,或添加两个过滤器(我不知道“子句”是什么意思),则需要使用{ {3}}。

  1. 选择不同类型报告的相关示例。
  2. 检查每个报告的XML报告规范。
  3. 确定如何识别新元素应在XML中出现的位置。
  4. 编写一个程序(可能是C#或Java)以使用SDK来...
    1. 检查环境中的每个报告。
    2. 确定报告适合的模式。
    3. 添加数据元素。
    4. 保存报告。