ReportingService2005.CreateSubscription Methode

Definition

Erstellt in der Berichtsserver-Datenbank ein Abonnement für einen angegebenen Bericht.

public:
 System::String ^ CreateSubscription(System::String ^ Report, ReportService2005::ExtensionSettings ^ ExtensionSettings, System::String ^ Description, System::String ^ EventType, System::String ^ MatchData, cli::array <ReportService2005::ParameterValue ^> ^ Parameters);
public string CreateSubscription (string Report, ReportService2005.ExtensionSettings ExtensionSettings, string Description, string EventType, string MatchData, ReportService2005.ParameterValue[] Parameters);
member this.CreateSubscription : string * ReportService2005.ExtensionSettings * string * string * string * ReportService2005.ParameterValue[] -> string
Public Function CreateSubscription (Report As String, ExtensionSettings As ExtensionSettings, Description As String, EventType As String, MatchData As String, Parameters As ParameterValue()) As String

Parameter

Report
String

Der vollständige Pfadname des Berichts, für den ein Abonnement erstellt werden soll.

ExtensionSettings
ExtensionSettings

Ein ExtensionSettings-Objekt mit einer Liste von Einstellungen, die für die Übermittlungserweiterung spezifisch sind.

Description
String

Eine aussagekräftige Beschreibung, die Benutzern angezeigt wird.

EventType
String

Der Typ des Ereignisses, das das Abonnement auslöst. Die gültigen Werte sind TimedSubscription oder SnapshotUpdated.

MatchData
String

Die Daten, die dem angegebenen EventType Parameter zugeordnet sind. Dieser Parameter wird von einem Ereignis verwendet, um das Abonnement mit einem ausgelösten Ereignis zu vergleichen.

Parameters
ParameterValue[]

Ein Array von ParameterValue-Objekten, das eine Liste der Parameter für den Bericht enthält.

Gibt zurück

Eine Abonnement-ID, die das Abonnement eindeutig in der Berichtsserver-Datenbank identifiziert.

Beispiele

Um dieses Codebeispiel zu kompilieren, müssen Sie auf die Reporting Services WSDL verweisen und bestimmte Namespaces importieren. Weitere Informationen finden Sie unter Kompilieren und Ausführen von Codebeispielen. Im folgenden Codebeispiel wird verwendet CreateSubscription , um der Berichtsserver-Datenbank ein neues Abonnement hinzuzufügen:

Imports System  
Imports System.Web.Services.Protocols  

Class Sample  
   Public Shared Sub Main()  
      Dim rs As New ReportingService2005()  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials  

      Dim report As String = "/SampleReports/Employee Sales Summary"  
      Dim desc As String = "Send email to anyone@microsoft.com"  
      Dim eventType As String = "TimedSubscription"  
      Dim scheduleXml As String = "<ScheduleDefinition><StartDateTime>2003-02-24T09:00:00-08:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>"  

      Dim extensionParams(7) As ParameterValue  

      extensionParams(0) = New ParameterValue()  
      extensionParams(0).Name = "TO"  
      extensionParams(0).Value = "dank@adventure-works.com"  

      extensionParams(1) = New ParameterValue()  
      extensionParams(1).Name = "ReplyTo"  
      extensionParams(1).Value = "reporting@adventure-works.com"  

      extensionParams(2) = New ParameterValue()  
      extensionParams(2).Name = "IncludeReport"  
      extensionParams(2).Value = "True"  

      extensionParams(3) = New ParameterValue()  
      extensionParams(3).Name = "RenderFormat"  
      extensionParams(3).Value = "MHTML"  

      extensionParams(4) = New ParameterValue()  
      extensionParams(4).Name = "Subject"  
      extensionParams(4).Value = "@ReportName was executed at @ExecutionTime"  

      extensionParams(5) = New ParameterValue()  
      extensionParams(5).Name = "Comment"  
      extensionParams(5).Value = "Here is your daily sales report for Michael."  

      extensionParams(6) = New ParameterValue()  
      extensionParams(6).Name = "IncludeLink"  
      extensionParams(6).Value = "True"  

      extensionParams(7) = New ParameterValue()  
      extensionParams(7).Name = "Priority"  
      extensionParams(7).Value = "NORMAL"  

      Dim parameter As New ParameterValue()  
      parameter.Name = "EmpID"  
      parameter.Value = "38"  

      Dim parameters(1) As ParameterValue  
      parameters(0) = parameter  

      Dim matchData As String = scheduleXml  
      Dim extSettings As New ExtensionSettings()  
      extSettings.ParameterValues = extensionParams  
      extSettings.Extension = "Report Server Email"  

      Try  
         rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters)  

      Catch e As SoapException  
         Console.WriteLine(e.Detail.InnerXml.ToString())  
      End Try  
   End Sub 'Main  
End Class 'Sample  
using System;  
using System.Web.Services.Protocols;  

class Sample  
{  
   public static void Main()  
   {  
      ReportingService2005 rs = new ReportingService2005();  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

      string report = "/SampleReports/Employee Sales Summary";  
      string desc = "Send email to anyone@microsoft.com";  
      string eventType = "TimedSubscription";  
      string scheduleXml = @"<ScheduleDefinition><StartDateTime>2003-02-24T09:00:00-08:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>";  

      ParameterValue[] extensionParams = new ParameterValue[8];  

      extensionParams[0] = new ParameterValue();  
      extensionParams[0].Name = "TO";  
      extensionParams[0].Value = "dank@adventure-works.com";  

      extensionParams[1] = new ParameterValue();  
      extensionParams[1].Name = "ReplyTo";  
      extensionParams[1].Value = "reporting@adventure-works.com";  

      extensionParams[2] = new ParameterValue();  
      extensionParams[2].Name = "IncludeReport";  
      extensionParams[2].Value = "True";  

      extensionParams[3] = new ParameterValue();  
      extensionParams[3].Name = "RenderFormat";  
      extensionParams[3].Value = "MHTML";  

      extensionParams[4] = new ParameterValue();  
      extensionParams[4].Name = "Subject";  
      extensionParams[4].Value = "@ReportName was executed at @ExecutionTime";  

      extensionParams[5] = new ParameterValue();  
      extensionParams[5].Name = "Comment";  
      extensionParams[5].Value = "Here is your daily sales report for Michael.";  

      extensionParams[6] = new ParameterValue();  
      extensionParams[6].Name = "IncludeLink";  
      extensionParams[6].Value = "True";  

      extensionParams[7] = new ParameterValue();  
      extensionParams[7].Name = "Priority";  
      extensionParams[7].Value = "NORMAL";  

      ParameterValue parameter = new ParameterValue();  
      parameter.Name = "EmpID";  
      parameter.Value = "38";  

      ParameterValue[] parameters = new ParameterValue[1];  
      parameters[0] = parameter;  

      string matchData = scheduleXml;  
      ExtensionSettings extSettings = new ExtensionSettings();  
      extSettings.ParameterValues = extensionParams;  
      extSettings.Extension = "Report Server Email";  

      try  
      {  
         rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameters);  
      }  

      catch (SoapException e)  
      {  
         Console.WriteLine(e.Detail.InnerXml.ToString());  
      }  
   }  
}  

Hinweise

In der folgenden Tabelle werden Header- und Berechtigungsinformationen zu diesem Vorgang dargestellt.

SOAP-Header (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
Erforderliche Berechtigungen ExecuteAndView UND (CreateAnySubscription ODER CreateSubscription)

Sie können die GetExtensionSettings -Methode verwenden, um eine Liste der erforderlichen Einstellungen für eine Übermittlungserweiterung abzurufen. Sie müssen Werte für diese erforderlichen Einstellungen im ExtensionSettings Parameter übergeben. Informationen zu E-Mail-Übermittlungseinstellungen finden Sie unter Reporting Services Übermittlungserweiterungseinstellungen.

Der Wert des EventType Parameters muss einem Ereignis entsprechen, das für den Berichtsserver konfiguriert ist. Die beiden Ereignisse, die zum Erstellen von Abonnements verwendet werden, sind TimedSubscription und SnapshotUpdated. Verwenden Sie die ListEvents -Methode, um eine Liste aller ereignisse zurückzugeben, die für den Berichtsserver konfiguriert sind.

Der Wert des MatchData Parameters hängt vom Ereignistyp ab. Wenn es sich bei dem Ereignis um ein TimedSubscription-Ereignis handelt, ist ein ScheduleDefinition -Objekt als MatchData Parameter erforderlich. Sie müssen das ScheduleDefinition Objekt zuerst als XML serialisieren, um es als Zeichenfolgenwert zu übergeben, und ein Abonnement basierend auf dem Zeitplan erstellen. Die XML-Struktur könnte wie im folgenden Beispiel aussehen:

<ScheduleDefinition>  
   <WeeklyRecurrence>  
      <StartDateTime>2004-06-24T09:00:00-08:00</StartDateTime>  
      <WeeksInterval>1</WeeksInterval>  
      <DaysOfWeek>  
         <Monday>True</Monday>  
         </DaysOfWeek>  
   </WeeklyRecurrence>  
</ScheduleDefinition>  

Der Wert des StartDateTime Elements, wenn er als XML-Zeichenfolge übergeben wird, sollte dem Datumsformat ISO 8601 entsprechen. Dieser internationale Datums- und Uhrzeitstandard ist das erweiterte Format CCJJ-MM-TTThh:mm:ss+/-Z, wobei "CC" das Jahrhundert, "JJ" das Jahr, "MM" den Monat und "TT" den Tag darstellt. Der Buchstabe "T" ist das Datums- und Uhrzeittrennzeichen, und "hh", "mm", "ss" stellen Stunde, Minute und Sekunde dar. Dieser Darstellung kann unmittelbar ein "Z" folgen, um die koordinierte Weltzeit (UTC) anzugeben. Um die Zeitzone anzugeben, die als Differenz zwischen der lokalen Zeit und der koordinierten Weltzeit dargestellt wird, wird "Z" ein "+"- oder "-"-Zeichen vorangestellt, gefolgt von der Differenz von UTC, die als hh:mm dargestellt wird.

Wenn die Zeitplandefinition für eine TimedSubscription ein freigegebener Zeitplan ist, müssen Sie die Zeitplan-ID des freigegebenen Zeitplans MatchData als Parameter übergeben. Die Zeitplan-ID wird beispielsweise als String"4608ac1b-fc75-4149-9e15-5a8b5781b843" übergeben. Die Zeitplan-ID kann durch Aufrufen der ListSchedules -Methode abgerufen werden.

Sie können die XmlSerializer-Klasse verwenden, um Ihre Objektklasse automatisch in eine XML-Zeichenfolge zu konvertieren. Weitere Informationen zur XmlSerializer-Klasse finden Sie unter "System.Xml. XmlSerializer-Klasse" in der Microsoft .NET Framework-Dokumentation.

Wenn es sich bei dem Ereignis um ein SnapshotUpdated-Abonnement handelt, sollte der Wert von MatchData (oder Nothing in Visual Basic) sein null .

Mit dieser Methode wird die LastExecutedSpecified -Eigenschaft des Abonnements auf false, die Status -Eigenschaft des Abonnements auf new subscriptionund alle Eigenschaften des Abonnementobjekts Active auf falsefestgelegt. Die ModifiedBy Eigenschaften und ModifiedDate des Berichts werden ebenfalls aktualisiert.

Gilt für: