Я новичок в развертывании SSRS, и я искал его, но не могу найти точный сценарий, который применим к моей ситуации. У меня есть несколько отчетов, развернутые в различных подпапках в SSRS 2012 Например:Удаление нескольких отчетов SSRS в подпапках с помощью командной строки?
- Продажа/salesReport1
- Продажа/salesReport2
- Финансы/finReport1
- Финансы/finReport2
- Разное/miscReport1
- Misc/miscReport2
В связи с тем, что s osetms SSRS не любит перезаписываемый файл отчета, я хотел бы удалить все файлы отчетов в экземпляре перед развертыванием любых новых отчетов. Я могу успешно удалить папки и их содержимое, вызвав этот сценарий с помощью rs.exe:
Public Sub Main()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim bh As New BatchHeader()
bh.BatchID = rs.CreateBatch()
rs.BatchHeaderValue = bh
'Delete all reports from Main Folder and sub folders.Note:The Folders will be deleted also.
'If do not want to delete the folder, we could use rs.CreateFolder(“Folder name”, “/Main Folder”, “nothing”) to create a new one with nothing.
rs.DeleteItem("/Sales")
rs.DeleteItem("/Finance")
rs.DeleteItem("/Misc")
'Delete all reports from a sub folder, and delete the sub folder
'rs.DeleteItem("/Main Folder/Sub Folder ")
rs.BatchHeaderValue = bh
' Delete folders using batch header.
Try
rs.ExecuteBatch()
Console.WriteLine("Folders deleted successfully.")
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
Finally
rs.BatchHeaderValue = Nothing
End Try
End Sub 'Main
Проблема заключается в том, что если какой-либо из этих папок не существует, то скрипт остановится. Я пытаюсь определить лучший способ справиться с этим. Будет ли лучший способ освободить папки и оставить их там, или найти способ игнорировать ошибки и продолжить?
В зависимости от ответа, как я могу вызвать это в этом скрипте?
Это именно то, что я искал - спасибо. Одно небольшое редактирование - вы получите сообщение об ошибке с помощью 'Item.TypeName =" Folder "', поэтому вы захотите изменить его на: 'If item.Type = ItemTypeEnum.Folder'. – edgesrazor