私は SSRS の展開が初めてで、いろいろと探し回っていますが、自分の状況に当てはまる正確なシナリオを見つけることができません。SSRS 2012 のさまざまなサブフォルダーに展開されたいくつかのレポートがあります。たとえば、次のようになります。
- 売上・売上報告1
- 売上・売上報告2
- 財務/finReport1
- 財務/finReport2
- その他/その他レポート1
- その他/miscReport2
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
問題は、これらのフォルダーのいずれかが存在しない場合、スクリプトが停止するという事実にあります。これを処理する最善の方法を決定しようとしています。フォルダを空にしてそのままにしておくか、エラーを無視して続行する方法を見つけるのが最善の方法でしょうか?
答えによっては、このスクリプトでそれをどのように呼び出すのでしょうか?