Я надеюсь, что кто-то может помочь мне с этой проблемой, я пытаюсь загрузить отчет SSRS, используя powershell, однако он полностью теряет ссылку на источник данных после его загрузки.
Я нашел в Интернете какой-то скрипт, который меняет ссылку, но это не сработает для того, что мне нужно, потому что он использует имя источника данных, чтобы стать ссылкой, но в моем сценарии имя источника данных может быть чем-то вроде Datasource1, но ссылка может быть / Data Sources / Translations
Чтомне нужно сделать, это изменить ссылку в bytearray до его загрузки.
Это скрипт, который я использую до сих пор, который работает для загрузки.
#ReportName
$reportName = [System.IO.Path]::GetFileNameWithoutExtension($rdlFile);
write-host $reportName -ForegroundColor Green
#Upload File
try
{
#Get Report content in bytes
Write-Host "Getting file content of : $rdlFile"
$byteArray = gc $rdlFile.FullName -encoding Byte
$msg = "Total length: {0}" -f $byteArray.Length
Write-Host $msg
Write-Host "Uploading to: $reportFolder_Final"
$type = $ssrsProxy.GetType().Namespace
$datatype = ($type + '.Property')
$DescProp = New-Object($datatype)
$DescProp.Name = 'Description'
$DescProp.Value = ''
$HiddenProp = New-Object($datatype)
$HiddenProp.Name = 'Hidden'
$HiddenProp.Value = 'false'
$Properties = @($DescProp, $HiddenProp)
#Call Proxy to upload report
$warnings = $null
$Results = $ssrsProxy.CreateCatalogItem("Report",$reportName,$reportFolder_Final, $IsOverwriteReport,$byteArray,$Properties,[ref]$warnings)
Если я пытаюсь прочитатьXML-файл в виде строки, а затем преобразование его обратно в байтовый массив перед его загрузкой на сервер ssrs. Загрузка не удалась, так как он жалуется на форматирование.У меня были планы прочитать его как строку, изменить ссылку на источник данных, кодировать его, а затем загрузить, но это та часть, в которой мне нужна ваша помощь.
Приветствия