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
Chemin d'accès complet du rapport pour lequel créer un abonnement.
- ExtensionSettings
- ExtensionSettings
Objet ExtensionSettings qui contient une liste de paramètres spécifiques à l'extension de remise.
- Description
- String
Description explicite affichée pour les utilisateurs.
- EventType
- String
Type d'événement qui a déclenché l'abonnement. Les valeurs valides sont TimedSubscription
ou SnapshotUpdated
.
- MatchData
- String
Données associées au paramètre spécifié EventType
. Ce paramètre est utilisé par un événement pour faire correspondre l'abonnement avec un événement déclenché.
- Parameters
- ParameterValue[]
Tableau d'objets ParameterValue qui contient une liste de paramètres pour le rapport.
Retours
ID d'abonnement, qui identifie l'abonnement de façon unique dans la base de données du serveur de rapports.
Exemples
Pour compiler cet exemple de code, vous devez référencer le Reporting Services WSDL et importer certains espaces de noms. Pour plus d’informations, consultez Compilation et exécution d’exemples de code. L’exemple de code suivant utilise CreateSubscription pour 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 suivant présente les informations relatives aux en-têtes et aux autorisations sur cette opération.
En-têtes SOAP | (In) BatchHeaderValue (Out) ServerInfoHeaderValue |
Autorisations requises | ExecuteAndView AND (CreateAnySubscription OR CreateSubscription) |
Vous pouvez utiliser la GetExtensionSettings méthode pour récupérer une liste de paramètres requis pour une extension de remise. Vous devez passer des valeurs pour ces paramètres requis dans le ExtensionSettings
paramètre . Pour plus d’informations sur les paramètres de remise par courrier électronique, consultez Reporting Services Paramètres d’extension de remise.
La valeur du EventType
paramètre doit correspondre à un événement configuré pour le serveur de rapports. Les deux événements utilisés pour créer des abonnements sont TimedSubscription et SnapshotUpdated. Utilisez la ListEvents méthode pour renvoyer une liste de tous les événements configurés pour le serveur de rapports.
La valeur du paramètre dépend du MatchData
type d’événement. Si l’événement est un événement TimedSubscription , un ScheduleDefinition objet est requis en tant que MatchData
paramètre . Vous devez d’abord sérialiser l’objet ScheduleDefinition au format XML pour le passer en tant que valeur de chaîne et créer un abonnement en fonction de la planification. La structure XML peut 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 lorsqu’il StartDateTime est passé en tant que chaîne XML doit correspondre au format de date ISO 8601. Cette norme internationale de date et d’heure est au 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é comme 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 utc représentée par hh:mm.
Si la définition de planification d’un TimedSubscription est une planification partagée, vous devez passer l’ID de planification de la planification partagée en tant que MatchData
paramètre. L’ID de planification est passé en tant que String
, par exemple, « 4608ac1b-fc75-4149-9e15-5a8b5781b843 ». L’ID de planification peut être obtenu en appelant la ListSchedules méthode .
Vous pouvez utiliser la classe XmlSerializer pour convertir automatiquement votre classe d’objet en chaîne XML. Pour plus d’informations sur la classe XmlSerializer , consultez « System.Xml. XmlSerializer, classe » dans la documentation microsoft .NET Framework.
Si l’événement est un abonnement SnapshotUpdated , la valeur de MatchData
doit être null
(ou Nothing
en Visual Basic).
À l’aide de cette méthode, la LastExecutedSpecified propriété de l’abonnement false
est définie sur , la Status propriété de l’abonnement sur new subscription
et toutes les propriétés de l’objet de l’abonnement Active sur false
. Les ModifiedBy propriétés et ModifiedDate du rapport sont également mises à jour.