通过命令行导出单个刚果报告
Exporting individual Congos Reports via command line
我正在尝试研究如何通过命令行导出单个 Cognos 报告,以便在 Git 中逐个报告级别进行源版本控制。我假设 XML 将是输出格式。
我读到 Cognos SDK 可以提供帮助,但您需要构建自己的解决方案,这可能是可行的,但这个用例感觉就像许多其他人已经想要的东西并且已经有工具了。
当然,也需要导入个人报告。
有人可以帮忙吗?
谢谢。
您可以使用 http://www.motio.com 等公司提供的工具。使用免费版本,您可以导出 XML 份报告,但只能一份一份地导出。
您还可以使用报告的 Cognos 部署,该部署会生成包含报告 XML 的 zip 文件,但所有报告都在同一个文件中,您必须提取 XML 的个人报告。
我发现 SDK 很麻烦,而且当我开始工作时,速度很慢。
是的,报告规格是 XML。
我已经创建了一个流程来产生您所要求的输出。这是它涉及的内容:
- 获取报告的递归通用table表达式(CTE)查询
specs 以及在 Cognos 中看到的文件夹结构。
- 用于运行 查询并将结果写入文件系统的 PowerShell 脚本。
- 另一个 PowerShell 脚本从远程 git 存储库中提取当前内容,运行 第一个 PowerShell 脚本,然后添加、提交并将结果推送到远程 git 回购。
我还编写了一个 PowerShell 脚本来执行与 git 推送相关的操作。这涉及使用我发现的名为 HTML Tidy (http://tidy.sourceforge.net/) 的程序,该程序可用于使 XML 人类可读。这有助于 git 中的差异。我使用 TFS,所以如果我整理了 XML,我会得到一个很好的并排差异。 (否则,它告诉我 XML 的唯一一行已更改。)
我最近添加了仪表板(探索)和数据集(dataSet2)的输出。仪表板存储为 JSON,因此我的例程必须整理它(在 PowerShell 中很简单)。
我 运行 我的日常工作是每天获取最近 3 天的新内容和修改过的内容(以防万一),每周进行一次完整的转储(以捕获删除内容)。每周的过程大约需要六分钟。日常流程可以忽略不计
在你问之前:我对提供实际代码犹豫不决,因为我不能对你的系统承担任何责任。
更新:
不建议破解 Content Store 数据库,IBM 也不支持它。
对于 reference/comparison:我在 Windows 2012 R2 上的 IIS 上 运行ning IBM Cognos 11.0.7,在 MS SQL Server 2016 上使用 Content Store 数据库.您的系统可能不同。
其他资源
https://www.cognoise.com/index.php/topic,28289.msg113869.html#msg113869
https://www.cognoise.com/index.php/topic,17411.msg50409.html#msg50409
https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-6
https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-2017
https://git-scm.com/docs
http://tidy.sourceforge.net/
如果您的最终目标是版本控制(谁在何时更改了什么?),您应该研究一下 MotioCI。上次看的时候,没有免费版的MotioCI。
我正在尝试研究如何通过命令行导出单个 Cognos 报告,以便在 Git 中逐个报告级别进行源版本控制。我假设 XML 将是输出格式。
我读到 Cognos SDK 可以提供帮助,但您需要构建自己的解决方案,这可能是可行的,但这个用例感觉就像许多其他人已经想要的东西并且已经有工具了。
当然,也需要导入个人报告。
有人可以帮忙吗?
谢谢。
您可以使用 http://www.motio.com 等公司提供的工具。使用免费版本,您可以导出 XML 份报告,但只能一份一份地导出。
您还可以使用报告的 Cognos 部署,该部署会生成包含报告 XML 的 zip 文件,但所有报告都在同一个文件中,您必须提取 XML 的个人报告。
我发现 SDK 很麻烦,而且当我开始工作时,速度很慢。
是的,报告规格是 XML。
我已经创建了一个流程来产生您所要求的输出。这是它涉及的内容:
- 获取报告的递归通用table表达式(CTE)查询 specs 以及在 Cognos 中看到的文件夹结构。
- 用于运行 查询并将结果写入文件系统的 PowerShell 脚本。
- 另一个 PowerShell 脚本从远程 git 存储库中提取当前内容,运行 第一个 PowerShell 脚本,然后添加、提交并将结果推送到远程 git 回购。
我还编写了一个 PowerShell 脚本来执行与 git 推送相关的操作。这涉及使用我发现的名为 HTML Tidy (http://tidy.sourceforge.net/) 的程序,该程序可用于使 XML 人类可读。这有助于 git 中的差异。我使用 TFS,所以如果我整理了 XML,我会得到一个很好的并排差异。 (否则,它告诉我 XML 的唯一一行已更改。)
我最近添加了仪表板(探索)和数据集(dataSet2)的输出。仪表板存储为 JSON,因此我的例程必须整理它(在 PowerShell 中很简单)。
我 运行 我的日常工作是每天获取最近 3 天的新内容和修改过的内容(以防万一),每周进行一次完整的转储(以捕获删除内容)。每周的过程大约需要六分钟。日常流程可以忽略不计
在你问之前:我对提供实际代码犹豫不决,因为我不能对你的系统承担任何责任。
更新:
不建议破解 Content Store 数据库,IBM 也不支持它。
对于 reference/comparison:我在 Windows 2012 R2 上的 IIS 上 运行ning IBM Cognos 11.0.7,在 MS SQL Server 2016 上使用 Content Store 数据库.您的系统可能不同。
其他资源
https://www.cognoise.com/index.php/topic,28289.msg113869.html#msg113869
https://www.cognoise.com/index.php/topic,17411.msg50409.html#msg50409
https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-6
https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-2017
https://git-scm.com/docs
http://tidy.sourceforge.net/
如果您的最终目标是版本控制(谁在何时更改了什么?),您应该研究一下 MotioCI。上次看的时候,没有免费版的MotioCI。