gpt4 book ai didi

powershell - 如何使用Powershell更改RDL中的共享数据集路径

转载 作者:行者123 更新时间:2023-12-03 00:15:33 24 4
gpt4 key购买 nike

抱歉,这是我的第一个stackoverflow问题。

我想做的是在RDL中编辑共享数据集的位置。
也就是说,我正在使用Powershell将报告从本地硬盘驱动器部署到报告服务器。不幸的是,其中一些报告使用共享数据集,并且RDL引用的位置与共享数据集的实际位置不同。共享数据集名称相同。

因此,有没有一种方法可以使我在上传这些报告时可以遍历它们并更改共享数据集引用,从而使其指向实际位置?例如,现在RDL将共享数据集引用为“Employee”,但是我想使用Powershell将其更改为/ IT / Sales / Datasets / Employee。提前非常感谢您。

最佳答案

我在研究同一个东西时发现了这个问题。仍然没有答案,所以...

您可以为此使用ReportingService2010 Web服务,可以使用New-WebServiceProxy创建该服务。当心-Namespace参数,因为您需要实例化其他对象,并且会遇到this问题。

其要点是:

$dataSources = $proxy.GetItemDataSources("/path/to/report")
$dsRef = New-Object -TypeName ($proxy.GetType().Namespace + ".DataSourceReference")
$dsRef.Reference = "/path/to/datasource"
$dataSources[0].Item = $dsRef
$proxy.SetItemDataSources("/path/to/report", $datasources)

您可能需要提供从数据源名称到服务器路径的映射,然后基于 $dataSources[0].Name查找引用。另外,您可以查询报告XML以查找正在使用的数据源并构造一个新的 DataSource对象,而不用查询现有的。

我假设使用SSRS 2008 R2或更高版本-如果这是针对2005,则需要对其进行调整以使用ReportingService2005 Web服务。

关于powershell - 如何使用Powershell更改RDL中的共享数据集路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com