我有一个使用 SQL 报告服务的项目。在项目中,我有一个 UI 可以向他们的系统声明现有报告,因此他们不必查看他们不需要的所有报告。为了做这个声明,我在 ReportServer 数据库中使用 CatalogId,我的表中的目录表来获取数据。但是当我将报告部署到服务器时,CatalogId 会发生变化,这给我带来了一个大问题。
ReportServer 是否将更改保留在服务器上?
如何通过使用旧的 CatalogId 获取新的 CatalogId?
我有一个使用 SQL 报告服务的项目。在项目中,我有一个 UI 可以向他们的系统声明现有报告,因此他们不必查看他们不需要的所有报告。为了做这个声明,我在 ReportServer 数据库中使用 CatalogId,我的表中的目录表来获取数据。但是当我将报告部署到服务器时,CatalogId 会发生变化,这给我带来了一个大问题。
ReportServer 是否将更改保留在服务器上?
如何通过使用旧的 CatalogId 获取新的 CatalogId?
首先要尝试回答您的问题,您应该使用 ReportServer 数据库的 Catalog 表中的 ItemID。此 GUID 会被维护,并且在重新部署报告时将持续存在。仅当删除并重新部署报告时,它才会更改。
只有在运行报告时才会维护这些 ItemID。您可以在 ExecutionLogStorage 表中找到旧版 GUID 作为 ReportID。ELS 仅将数据存储到您在 ConfigurationInfo 表中设置了“ExecutionLogDaysKept”设置的任何位置。
其次,不需要自定义 UI,因为使用适当的文件夹结构,您可以通过 Active Directory 组维护报告权限。没有报告权限的组中的个人看不到它们。