Sprache

ReportingService2005.CreateSubscription Methode

Definition

Erstellt ein Abonnement für einen bestimmten Bericht in der Berichtsdatenbank.

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 Objekt, das eine Liste von Einstellungen enthält, die spezifisch für die Liefererweiterung ExtensionSettings sind.

Description
String

Eine aussagekräftige Beschreibung, die den Nutzern angezeigt wird.

EventType
String

Die Art von Ereignis, die das Abonnement auslöst. Die gültigen Werte sind TimedSubscription oder SnapshotUpdated.

MatchData
String

Die Daten, die mit dem angegebenen EventType Parameter verknüpft sind. Dieser Parameter wird von einem Event verwendet, um das Abonnement mit einem ausgelösten Ereignis abzugleichen.

Parameters
ParameterValue[]

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

Gibt zurück

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

Beispiele

Um dieses Codebeispiel zu kompilieren, müssen Sie auf die Reporting Services WSDL zurückgreifen und bestimmte Namensräume importieren. Weitere Informationen finden Sie unter Beispiele für Kompilierung und Ausführung von Coden. Das folgende Codebeispiel wird verwendet CreateSubscription , um ein neues Abonnement zur Berichtsdatenbank 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

Die untenstehende Tabelle zeigt Header- und Berechtigungsinformationen zu dieser Operation.

SOAP-Überschriften (In) BatchHeaderValue

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

Sie können die Methode GetExtensionSettings nutzen, um eine Liste der erforderlichen Einstellungen für eine Liefererweiterung abzurufen. Sie müssen Werte für diese erforderlichen Einstellungen im Parameter ExtensionSettings übergeben. Informationen zu E-Mail-Zustelleinstellungen finden Sie unter Reporting Services Delivery Extension Settings.

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

Der Wert des Parameters MatchData hängt vom Ereignistyp ab. Wenn das Ereignis ein TimedSubscription-Ereignis ist, wird ein ScheduleDefinition Objekt als Parameter MatchData benötigt. Sie müssen das ScheduleDefinition Objekt zunächst als XML serialisieren, um es als String-Wert zu übergeben und ein Abonnement basierend auf dem Zeitplan zu erstellen. Die XML-Struktur könnte der im folgenden Beispiel ähneln:

<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 es als XML-String übergeben wird, sollte dem Datumsformat ISO 8601 entsprechen. Dieser internationale Datums- und Uhrzeitstandard ist das erweiterte Format CCYY-MM-DDThh:mm:ss+/-Z, wobei "CC" das Jahrhundert, "YY" das Jahr, "MM" den Monat und "DD" den Tag darstellt. Der Buchstabe "T" ist der Datums- und Zeittrenner, und "hh", "mm", "ss" stehen jeweils für Stunde, Minute und Sekunde. Diese Darstellung kann unmittelbar von einem "Z" gefolgt werden, um die koordinierte Universalzeit (UTC) anzuzeigen. Um die Zeitzone anzuzeigen, dargestellt als Differenz zwischen der Ortszeit und der koordinierten Universalzeit, wird "Z" von einem "+" oder "-" Zeichen vorangestellt, gefolgt von der Differenz von UTC, die als hh:mm dargestellt wird.

Wenn die Zeitplandefinition für ein TimedSubscription ein gemeinsamer Zeitplan ist, musst du die Zeitplan-ID des gemeinsamen Zeitplans als Parameter MatchData weitergeben. Die Schedule-ID wird beispielsweise als String"4608ac1b-fc75-4149-9e15-5a8b5781b843" weitergegeben. Die Zeitplan-ID kann durch Aufruf der Methode ListSchedules erhalten werden.

Du kannst die XmlSerializer-Klasse verwenden, um deine Objektklasse automatisch in eine XML-Zeichenkette umzuwandeln. Weitere Informationen zur XmlSerializer-Klasse finden Sie unter "System.Xml.XmlSerializer Class" in der Microsoft .NET Framework-Dokumentation.

Wenn das Ereignis ein SnapshotUpdated-Abonnement ist, sollte der Wert von MatchData (oder Nothing in Visual Basic) sein null .

Mit diesem Verfahren setzt die LastExecutedSpecified Eigenschaft des Abonnements auf false, die Status Eigenschaft des Abonnements auf new subscription, und alle Eigenschaften des Objekts Active des Abonnements auf false. Auch die Eigenschaften ModifiedBy des ModifiedDate Berichts werden aktualisiert.

Gilt für: