ReportingService2005.CreateSubscription Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.