ReportingService2010.CreateSubscription Metodo

Definizione

Crea un abbonamento per l'elemento specificato nel database del server di report o nella raccolta di SharePoint. Questo metodo si applica al tipo di Report oggetto.

public:
 System::String ^ CreateSubscription(System::String ^ ItemPath, ReportService2010::ExtensionSettings ^ ExtensionSettings, System::String ^ Description, System::String ^ EventType, System::String ^ MatchData, cli::array <ReportService2010::ParameterValue ^> ^ Parameters);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateSubscription", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)]
[System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)]
[System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")]
public string CreateSubscription(string ItemPath, ReportService2010.ExtensionSettings ExtensionSettings, string Description, string EventType, string MatchData, ReportService2010.ParameterValue[] Parameters);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateSubscription", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, RequestNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", ResponseNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", Use=System.Web.Services.Description.SoapBindingUse.Literal)>]
[<System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)>]
[<System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")>]
member this.CreateSubscription : string * ReportService2010.ExtensionSettings * string * string * string * ReportService2010.ParameterValue[] -> string
Public Function CreateSubscription (ItemPath As String, ExtensionSettings As ExtensionSettings, Description As String, EventType As String, MatchData As String, Parameters As ParameterValue()) As String

Parametri

ItemPath
String

L'URL completamente qualificato dell'elemento, incluso il nome del file e, in modalità SharePoint, l'estensione.

ExtensionSettings
ExtensionSettings

Un oggetto che contiene una lista di impostazioni specifiche per l'estensione ExtensionSettings di consegna.

Description
String

Una descrizione significativa che viene mostrata agli utenti.

EventType
String

Il tipo di evento che attiva l'abbonamento. I valori validi sono TimedSubscription o SnapshotUpdated.

MatchData
String

I dati associati al parametro specificato EventType . Questo parametro viene utilizzato da un evento per abbinare l'abbonamento a un evento che è stato attivato.

Parameters
ParameterValue[]

Un array di ParameterValue oggetti che contiene un elenco di parametri per l'elemento.

Valori restituiti

Un ID di abbonamento che identifica in modo univoco l'abbonamento nel database del server di report o nella raccolta di SharePoint.

Attributi

Esempio

using System;  
using System.Collections.Generic;  
using System.IO;  
using System.Text;  
using System.Web;  
using System.Web.Services;  
using System.Web.Services.Protocols;  

class Sample  
{  
    static void Main(string[] args)  
    {  
        ReportingService2010 rs = new ReportingService2010();  
        rs.Url = "http://<Server Name>" +  
            "/_vti_bin/ReportServer/ReportService2010.asmx";  
        rs.Credentials =   
            System.Net.CredentialCache.DefaultCredentials;  

        string report = "http://<Server Name>" +  
            "/Docs/Documents/AdventureWorks Sample Reports" +  
            "/Sales Order Detail.rdl";  
        string desc = "Send to Document Library";  
        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[6];  

        extensionParams[0] = new ParameterValue();  
        extensionParams[0].Name = "RENDER_FORMAT";  
        extensionParams[0].Value = "EXCEL";  

        extensionParams[1] = new ParameterValue();  
        extensionParams[1].Name = "FILENAME";  
        extensionParams[1].Value = "Sales Order Detail";  

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

        extensionParams[3] = new ParameterValue();  
        extensionParams[3].Name = "PATH";  
        extensionParams[3].Value = "http://<Server Name>" +  
            "/Docs/Documents/AdventureWorks Sample Reports/";  

        extensionParams[4] = new ParameterValue();  
        extensionParams[4].Name = "WRITEMODE";  
        extensionParams[4].Value = "Overwrite";  

        extensionParams[5] = new ParameterValue();  
        extensionParams[5].Name = "AUTOCOPY";  
        extensionParams[5].Value = "False";  

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

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

        catch (SoapException e)  
        {  
            Console.WriteLine(e.Detail.InnerXml.ToString());  
        }  
    }  
}  
Imports System  
Imports System.IO  
Imports System.Text  
Imports System.Web.Services  
Imports System.Web.Services.Protocols  

Class Sample  

    Public Shared Sub Main()  

        Dim rs As New ReportingService2010()  
        rs.Url = "http://<Server Name>" + _  
            "/_vti_bin/ReportServer/ReportService2010.asmx"  
        rs.Credentials = _  
            System.Net.CredentialCache.DefaultCredentials  

        Dim report As String = "http://<Server Name>/Docs/" + _  
            "Documents/AdventureWorks Sample Reports/" + _  
            "Sales Order Detail.rdl"  
        Dim desc As String = "Send to Document Library"  
        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(6) As ParameterValue  

        extensionParams(0) = New ParameterValue()  
        extensionParams(0).Name = "RENDER_FORMAT"  
       extensionParams(0).Value = "EXCEL"  

        extensionParams(1) = New ParameterValue()  
        extensionParams(1).Name = "FILENAME"  
        extensionParams(1).Value = "Sales Order Detail"  

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

        extensionParams(3) = New ParameterValue()  
        extensionParams(3).Name = "PATH"  
        extensionParams(3).Value = "http://<Server Name>" + _  
            "/Docs/Documents/AdventureWorks Sample Reports/"  

        extensionParams(4) = New ParameterValue()  
        extensionParams(4).Name = "WRITEMODE"  
        extensionParams(4).Value = "Overwrite"  

        extensionParams(5) = New ParameterValue()  
        extensionParams(5).Name = "AUTOCOPY"  
        extensionParams(5).Value = "False"  

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

        Try  
            rs.CreateSubscription(report, extSettings, desc, _  
                eventType, matchData, Nothing)  
        Catch e As SoapException  
            Console.WriteLine(e.Detail.InnerXml.ToString())  
        End Try  

   End Sub  

End Class  

Commenti

La tabella sottostante mostra informazioni sull'intestazione e sui permessi di questa operazione.

Utilizzo dell'intestazione SOAP (Dentro) TrustedUserHeaderValue

(Fuori) ServerInfoHeaderValue
Permessi richiesti per la modalità nativa ExecuteAndView E (CreateAnySubscription OPPURE CreateSubscription)
Permessi richiesti in modalità SharePoint <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> E (<xref:Microsoft.SharePoint.SPBasePermissions.ManageAlerts> OPPURE <xref:Microsoft.SharePoint.SPBasePermissions.CreateAlerts>)

Puoi usare il GetExtensionSettings metodo per recuperare una lista di impostazioni richieste per un'estensione di consegna. Devi passare i valori per queste impostazioni richieste nel ExtensionSettings parametro. Per informazioni sulle impostazioni di consegna e-mail, consulta le Impostazioni di estensione di consegna di Reporting Services.

Il valore del EventType parametro deve corrispondere a un evento configurato per il server di report. I due eventi utilizzati per creare abbonamenti sono TimedSubscription e SnapshotUpdated. Usa il ListEvents metodo per restituire un elenco di tutti gli eventi configurati per il server di report.

Il valore del MatchData parametro dipende dal tipo di evento. Se l'evento è un TimedSubscription evento, è richiesto un ScheduleDefinition oggetto come MatchData parametro. Devi prima serializzare l'oggetto ScheduleDefinition come XML per poterlo passare come valore di stringa e creare un abbonamento basato sul programma. La struttura XML potrebbe assomigliare a quella del seguente esempio:

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

Il valore dell'elemento StartDateTime quando viene passato come stringa XML dovrebbe corrispondere al formato di data ISO 8601. Questo standard internazionale di data e ora è il formato esteso CCYY-MM-DDThh:mm:ss+/-Z, dove "CC" rappresenta il secolo, "YY" l'anno, "MM" il mese e "DD" il giorno. La lettera "T" indica il separatore data e ora e "hh", "mm", "ss" rappresentano rispettivamente ora, minuto e secondo. Questa rappresentazione può essere immediatamente seguita da una "Z" per indicare il Tempo Universale Coordinato (UTC). Per indicare il fuso orario, rappresentato come la differenza tra l'ora locale e il Tempo Universale Coordinato, "Z" è preceduta da un segno "+" o "-", seguito dalla differenza rispetto all'UTC rappresentata come hh:mm.

Se la definizione di schedule per a TimedSubscription è un schedule condiviso, devi passare l'ID schedule del programma condiviso come MatchData parametro. L'ID dell'elenco viene trasmesso come String, ad esempio, "4608ac1b-fc75-4149-9e15-5a8b5781b843". L'ID dell'schedule può essere ottenuto chiamando il ListSchedules metodo.

Puoi usare la System.Xml.Serialization.XmlSerializer classe per convertire automaticamente la tua classe oggetto in una stringa XML.

Se l'evento è un SnapshotUpdated abbonamento, il valore di MatchData dovrebbe essere null (o Nothing in Visual Basic).

Quando questo metodo viene utilizzato, imposta la LastExecutedSpecified proprietà della sottoscrizione a false, la Status proprietà della sottoscrizione a new subscription, e tutte le proprietà dell'abbonamento Activeoggetto a false. Le ModifiedBy proprietà e ModifiedDate del rapporto sono state aggiornate.

Qualsiasi schema specificato nel MatchData parametro deve trovarsi nello stesso sito e nel ItemPath.

Si applica a