PowerShell可以脚本出SQL Server Reporting Services RDL文件吗?

问题描述 投票:6回答:4

是否可以使用PowerShell在SQL Server 2008中编写SQL Server Reporting Services rdl文件的脚本?如果是这样,有人可以提供执行此操作的代码示例吗?对于使用第三方工具编写由我的商业智能部门之外的商业用户创建的RDL文件的脚本,这将是一个有用的替代方法。

术语解释为“ SCRIPT OUT”

通过“ script out”,我的意思是我想为服务器上的每个报告自动生成基础RDL文件。例如,当您在BIDS中对报告进行编码时,您正在生成RDL文件。将文件部署到服务器时,该文件将以某种方式导入到SQL Server ReportServer数据库中,并且不再是单独的物理RDL文件。我想以RDL文件格式从服务器提取所有报告。

我已经使用RSScripter工具将报告提取为RDL文件,因此我知道可以使用PowerShell以外的工具。我特别想知道是否可以使用PowerShell进行操作,如果可以,请获取执行该操作的代码示例。

为什么要生成报告的RDL版本的说明

为什么将报告“脚本化”为RDL文件很重要?我想每晚将RDL文件检入到我的源代码控制系统中,以跟踪由我的商业智能部门以外的用户创建的所有报告。自从我们在BIDS中开发报告以来,我已经跟踪了我部门生成的所有报告,但是我无法跟踪使用在线Report Builder工具构建的报告的版本控制历史记录。

为什么要用力壳澄清,什么都不是

  1. 好奇心。我有一个可以通过以下两种方法(API或RSSCripter)之一解决的问题,我想知道是否可以通过第三种方法解决。

  2. 通过PowerShell扩展我的问题解决工具的机会。使用PowerShell解决此问题可能为学习如何使用PowerShell解决我尚未尝试解决的其他问题提供基础。

  3. PowerShell对我和我的团队来说更容易理解。通常,我和我的团队成员比.NET代码更容易理解PowerShell代码。尽管我知道可以使用API​​使用某些.NET代码解决此问题(毕竟,这就是RSScripter的工作方式),但我认为对我们而言,编写和维护PowerShell脚本会更加容易。我也意识到PowerShell脚本可能会使用.NET代码,但是我希望PowerShell已经能够以某种方式将报表视为对象,因此我不必使用Reporting Services API来提取文件。 >

  4. RSScripter尚不支持2008。过去,我使用RSScript编写报告脚本。不幸的是,它似乎还不支持2008年。这意味着我现在必须针对API编写代码,因为这是我目前所知道的唯一方法,该方法知道如何以自动无人值守的方式提取文件。

是否可以使用PowerShell在SQL Server 2008中编写SQL Server Reporting Services rdl文件的脚本?如果是这样,有人可以提供执行此操作的代码示例吗?这将是一个有用的替代方法...

powershell reporting-services reporting service
4个回答
6
投票

有点晚了,但是你去了


4
投票

PowerShell为此不提供任何本机的,具有PowerShell风格的功能。您只能在PowerShell中执行此操作(如上一个答案中所述),因为PowerShell可以访问基础Framework类。正如您在对先前答案的评论中指出的那样,这与在C#或VB中使用API​​没什么不同。


2
投票

我刚刚意识到ReportServer.dbo.Catalog中的Content列包含Image格式的定义。我编写了以下代码,将其转换为可读的文本:


0
投票

任何支持.Net的都可以做到这一点。有关API文档的一些链接,请参见this Stackoverflow posting。该过程实际上非常简单-API可以调用上载或下载.rdl文件。

© www.soinside.com 2019 - 2024. All rights reserved.