3
我是SSRS部署的新手,我一直在四处搜寻,但无法完全找到适用于我的情况的确切场景。我已经部署在不同的子文件夹在SSRS 2012例如几个报告:使用命令行在子文件夹中删除多个SSRS报告?
- 销售/ salesReport1
- 销售/ salesReport2
- 金融/ finReport1
- 金融/ finReport2
- 杂项/ miscReport1
- Misc/miscReport2
由于s有时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 2014-09-24 13:28:04