我们有开发、测试和生产的标准 3 环境设置。每个环境都有自己的报表服务器、Web 服务器、数据库服务器等。
我们迁移的一部分是在服务器之间移动我们的业务对象 (xi r2) 报告,但现在我们需要手动更新每个报告的连接设置。现在有 40 多份报告,这有点痛苦,随着我们的继续,这将成为一场噩梦。
由于我们生成报告的方式,我们无法在生成报告时动态更改连接字符串。我们使用存储过程而不是 Universe,因为这是团队最熟悉的。
任何建议将不胜感激。
我们有开发、测试和生产的标准 3 环境设置。每个环境都有自己的报表服务器、Web 服务器、数据库服务器等。
我们迁移的一部分是在服务器之间移动我们的业务对象 (xi r2) 报告,但现在我们需要手动更新每个报告的连接设置。现在有 40 多份报告,这有点痛苦,随着我们的继续,这将成为一场噩梦。
由于我们生成报告的方式,我们无法在生成报告时动态更改连接字符串。我们使用存储过程而不是 Universe,因为这是团队最熟悉的。
任何建议将不胜感激。
有一个 API 可用于以编程方式更新这类事情,尽管我不记得如何去做。查看 Business Objects 提供的文档 - IIRC,它们不是公开可用的(至少在我上次使用它时它们不是在 2006 年),因此您可能必须从供应商处获取它们。
我四处寻找,这似乎是一个不寻常的情况。我似乎没问题的最终解决方案是在每个环境中都有一个一致的 DSN 连接字符串。这意味着每个连接字符串实际上是相同的。
它仍然感觉不对,如果有人有其他想法会很棒。
编辑:
经过一些测试后,这惨遭失败,我发现我们的许多存储过程无法使用 DSN 运行。之后我就彻底放弃了。
查看BusinessObjects SDK的CrystalDecisions.Enterprise.Desktop.Report 程序集中的 Report Class 的 ReportLogon 类。用于更改数据库连接的相当多的选项。
我为客户写了类似的东西来批量更改 Universe 和 WebI 报告。我想这与 Crystal Reports 非常相似。
你是在改变宇宙连接还是宇宙本身?
在我们的环境中,我们通过在环境之间命名相同的宇宙来解决这个问题,但它们每个都有不同的环境连接。这可以防止需要更改每个报告。