У меня есть командный файл, который развертывает файл .rss.В файле rss есть скрипт, который создает подписку на 10 отчетов.Однажды, когда пакетный файл развернут, запускается файл .rss, который, в свою очередь, создает подписку в «диспетчере отчетов» (для всех 10 отчетов).Моя проблема в том, что каждый раз, когда я развертываю пакетный файл, создается новый набор подписок.т.е. вместо перезаписи существующей подписки создается новый набор дубликатов.Я получаю много подписок на один отчет.Мне нужен скрипт, который перезаписывает существующие файлы при развертывании. Должен ли я использовать какой-либо метод ??Требуется помощь ..
код для создания подписки: это довольно грязно! Потерпите меня ..:)
Sub Main ()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
'The name of the report for which the DDS are to be created
Dim fullpath As String = rootpath
'set extension as Windows File Share
Dim settings as new ExtensionSettings()
settings.Extension = "Report Server FileShare"
'Retrieve rdl files deployed in the server
Dim report As String
Dim desc As String
Dim eventType As String = "TimedSubscription"
Dim destpath As String = Path
Dim i as Integer = 0
Dim items As CatalogItem() = rs.ListChildren(fullpath, False)
For Each item As CatalogItem In items
If item.Type = ItemTypeEnum.Report Then
i = i + 1
desc = item.name
report = fullpath &"/" & desc
Dim drp As DataRetrievalPlan
Dim ser As Serialization.XmlSerializer = New Serialization.XmlSerializer(GetType(DataRetrievalPlan))
Dim sr As New StringReader("<?xml version=""1.0"" encoding=""utf-16""?>" + Microsoft.VisualBasic.ControlChars.CrLf + "<DataRetrievalPlan xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">" + Microsoft.VisualBasic.ControlChars.CrLf + " <DataSourceDefinition xmlns=""http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices"">" + Microsoft.VisualBasic.ControlChars.CrLf + " <Extension>SQL</Extension>" + Microsoft.VisualBasic.ControlChars.CrLf + " <ConnectString>Data Source="& DBServer & ";Initial Catalog=ClearviewBilling</ConnectString>" + Microsoft.VisualBasic.ControlChars.CrLf + " <UseOriginalConnectString>false</UseOriginalConnectString>" + Microsoft.VisualBasic.ControlChars.CrLf + " <OriginalConnectStringExpressionBased>false</OriginalConnectStringExpressionBased>" + Microsoft.VisualBasic.ControlChars.CrLf + " <CredentialRetrieval>Store</CredentialRetrieval>" + Microsoft.VisualBasic.ControlChars.CrLf + " <WindowsCredentials>false</WindowsCredentials>" + Microsoft.VisualBasic.ControlChars.CrLf + " <ImpersonateUser>false</ImpersonateUser>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Prompt>Enter a user name and password to access the data source:</Prompt>" + Microsoft.VisualBasic.ControlChars.CrLf + " <UserName>RptSrvr</UserName>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Password>deploy1</Password>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Enabled>true</Enabled>" + Microsoft.VisualBasic.ControlChars.CrLf + " </DataSourceDefinition>" + Microsoft.VisualBasic.ControlChars.CrLf + " <DataSet xmlns=""http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices"">" + Microsoft.VisualBasic.ControlChars.CrLf + " <Fields>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Field>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Alias>ReportID</Alias>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Name>ReportID</Name>" + Microsoft.VisualBasic.ControlChars.CrLf + " </Field>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Field>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Alias>ReportName</Alias>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Name>ReportName</Name>" + Microsoft.VisualBasic.ControlChars.CrLf + " </Field>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Field>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Alias>Path</Alias>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Name>Path</Name>" + Microsoft.VisualBasic.ControlChars.CrLf + " </Field>" + Microsoft.VisualBasic.ControlChars.CrLf + " </Fields>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Query>" + Microsoft.VisualBasic.ControlChars.CrLf + " <CommandType>Text</CommandType>" + Microsoft.VisualBasic.ControlChars.CrLf + " <CommandText>exec uspSetSubscriptionParameters "& i & ",'"& destpath &"'</CommandText>" + Microsoft.VisualBasic.ControlChars.CrLf + " <Timeout>30</Timeout>" + Microsoft.VisualBasic.ControlChars.CrLf + " </Query>" + Microsoft.VisualBasic.ControlChars.CrLf + " <CaseSensitivity>False</CaseSensitivity>" + Microsoft.VisualBasic.ControlChars.CrLf + " <AccentSensitivity>False</AccentSensitivity>" + Microsoft.VisualBasic.ControlChars.CrLf + " <KanatypeSensitivity>False</KanatypeSensitivity>" + Microsoft.VisualBasic.ControlChars.CrLf + " <WidthSensitivity>False</WidthSensitivity>" + Microsoft.VisualBasic.ControlChars.CrLf + " </DataSet>" + Microsoft.VisualBasic.ControlChars.CrLf + "</DataRetrievalPlan>")
drp = ser.Deserialize(sr)
Dim parameters(0) As ParameterValueOrFieldReference
Dim parameter1 As New ParameterFieldReference()
parameter1.ParameterName = "ReportID"
parameter1.FieldAlias = "ReportID"
parameters(0) = parameter1
Dim extensionParams(6) As ParameterValueOrFieldReference
extensionParams(0) = New ParameterFieldReference()
CType(extensionParams(0),ParameterFieldReference).FieldAlias = "ReportName"
CType(extensionParams(0),ParameterFieldReference).ParameterName = "FILENAME"
extensionParams(1) = New ParameterFieldReference()
CType(extensionParams(1),ParameterFieldReference).FieldAlias = "Path"
CType(extensionParams(1),ParameterFieldReference).ParameterName = "PATH"
extensionParams(2) = New ParameterValue()
CType(extensionParams(2),ParameterValue).Name = "RENDER_FORMAT"
CType(extensionParams(2),ParameterValue).Label = ""
CType(extensionParams(2),ParameterValue).Value = "PDF"
extensionParams(3) = New ParameterValue()
CType(extensionParams(3),ParameterValue).Name = "WRITEMODE"
CType(extensionParams(3),ParameterValue).Label = ""
CType(extensionParams(3),ParameterValue).Value = "OverWrite"
extensionParams(4) = New ParameterValue()
CType(extensionParams(4),ParameterValue).Name = "FILEEXTN"
CType(extensionParams(4),ParameterValue).Label = ""
CType(extensionParams(4),ParameterValue).Value = "True"
extensionParams(5) = New ParameterValue()
CType(extensionParams(5),ParameterValue).Name = "USERNAME"
CType(extensionParams(5),ParameterValue).Label = ""
CType(extensionParams(5),ParameterValue).Value = "SQL_Test"
extensionParams(6) = New ParameterValue()
CType(extensionParams(6),ParameterValue).Name = "PASSWORD"
CType(extensionParams(6),ParameterValue).Label = ""
CType(extensionParams(6),ParameterValue).Value = "Rfgh"
Dim extSettings As New ExtensionSettings()
extSettings.ParameterValues = extensionParams
extSettings.Extension = "Report Server FileShare"
Dim matchData As String = "<ScheduleDefinition xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""><StartDateTime xmlns=""http://schemas.microsoft.com/sqlserver/2006/03/15/reporting/reportingservices"">2011-02-14T01:00:00.000-05:00</StartDateTime></ScheduleDefinition>"
Try
rs.CreateDataDrivenSubscription(report, extSettings, drp, desc, eventType, matchData, parameters)
Console.WriteLine("Subscription created successfully for "&desc)
catch ex as System.Exception
Console.WriteLine(ex)
end try
End If
Next
End Sub