Langue

ReportingService2005.CreateSubscription Méthode

Définition

Crée un abonnement pour un rapport spécifié dans la base de données du serveur de rapports.

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

Paramètres

Report
String

Le nom complet du chemin du rapport pour lequel créer un abonnement.

ExtensionSettings
ExtensionSettings

Un ExtensionSettings objet contenant une liste de paramètres spécifiques à l’extension de livraison.

Description
String

Une description significative qui est affichée aux utilisateurs.

EventType
String

Le type d’événement qui déclenche l’abonnement. Les valeurs valides sont TimedSubscription ou SnapshotUpdated.

MatchData
String

Les données associées au paramètre spécifié EventType . Ce paramètre est utilisé par un événement pour associer l’abonnement à un événement qui a été déclenché.

Parameters
ParameterValue[]

Un tableau d’objets ParameterValue contenant une liste de paramètres pour le rapport.

Retours

Un identifiant d’abonnement, qui identifie de manière unique l’abonnement dans la base de données du serveur de rapports.

Exemples

Pour compiler cet exemple de code, vous devez référencer le WSDL de Reporting Services et importer certains espaces de noms. Pour plus d’informations, voir Exemples de compilation et exécution de code. L’exemple de code suivant sert CreateSubscription à ajouter un nouvel abonnement à la base de données du serveur de rapports :

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());  
      }  
   }  
}  

Remarques

Le tableau ci-dessous présente les informations sur l’en-tête et les autorisations concernant cette opération.

En-têtes SOAP (En) BatchHeaderValue

(Dehors) ServerInfoHeaderValue
Autorisations requises ExecuteAndView ET (CreateAnySubscription OU CreateSubscription)

Vous pouvez utiliser cette GetExtensionSettings méthode pour obtenir une liste des paramètres requis pour une extension de livraison. Vous devez passer les valeurs de ces réglages requis dans le ExtensionSettings paramètre. Pour des informations sur les paramètres de livraison des e-mails, consultez les paramètres d’extension de livraison de Reporting Services.

La valeur du EventType paramètre doit correspondre à un événement configuré pour le serveur de rapport. Les deux événements utilisés pour créer des abonnements sont TimedSubscription et SnapshotUpdated. Utilisez la ListEvents méthode pour retourner une liste de tous les événements configurés pour le serveur de rapports.

La valeur du MatchData paramètre dépend du type d’événement. Si l’événement est un événement TimedSubscription , un ScheduleDefinition objet est requis comme MatchData paramètre. Vous devez d’abord sérialiser l’objet ScheduleDefinition en XML afin de le passer en tant que valeur de chaîne et de créer un abonnement basé sur le planning. La structure XML pourrait ressembler à celle de l’exemple suivant :

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

La valeur de l’élément StartDateTime lorsqu’il est passé sous forme de chaîne XML doit correspondre au format de date ISO 8601. Cette norme internationale de date et d’heure est le format étendu CCYY-MM-DDThh :mm :ss+/-Z où « CC » représente le siècle, « YY » l’année, « MM » le mois et « DD » le jour. La lettre « T » est le séparateur de date et d’heure, et « hh », « mm », « ss » représentent respectivement l’heure, la minute et la seconde. Cette représentation peut être immédiatement suivie d’un « Z » pour indiquer le Temps Universel Coordonné (UTC). Pour indiquer le fuseau horaire, représenté par la différence entre l’heure locale et l’heure universelle coordonnée, « Z » est précédé d’un signe « + » ou « - », suivi de la différence avec UTC représentée par hh :mm.

Si la définition du planning pour un TimedSubscription est un horaire partagé, vous devez passer l’ID du planning partagé comme MatchData paramètre. L’identifiant du calendrier est transmis comme String, par exemple, « 4608ac1b-fc75-4149-9e15-5a8b5781b843 ». L’ID de l’ordonnance peut être obtenu en appelant la ListSchedules méthode.

Vous pouvez utiliser la classe XmlSerializer pour convertir automatiquement votre classe objet en chaîne XML. Pour plus d’informations sur la classe XmlSerializer, voir « System.Xml.XmlSerializer Class » dans la documentation du Microsoft .NET Framework.

Si l’événement est un abonnement SnapshotUpdateed, la valeur de MatchData devrait être null (ou Nothing dans Visual Basic).

En utilisant cette méthode, la LastExecutedSpecified propriété de l’abonnement à false, la Status propriété de l’abonnement à new subscription, et toutes les propriétés de l’objet de l’abonnement Active à false. Les ModifiedBy propriétés et ModifiedDate du rapport sont également mises à jour.

S’applique à