Aracılığıyla paylaş


ReportingService2010.CreateDataDrivenSubscription Yöntemi

veri temelli abonelik belirtilen öğe için oluşturur.Bu yöntem uygulandığı raporu öğe türü.

Ad Alanı:  ReportService2010
Derleme:  ReportService2010 (ReportService2010 içinde.dll)

Sözdizimi

'Bildirim
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateDataDrivenSubscription", RequestNamespace := "https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer",  _
    ResponseNamespace := "https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
<SoapHeaderAttribute("ServerInfoHeaderValue", Direction := SoapHeaderDirection.Out)> _
<SoapHeaderAttribute("TrustedUserHeaderValue")> _
Public Function CreateDataDrivenSubscription ( _
    ItemPath As String, _
    ExtensionSettings As ExtensionSettings, _
    DataRetrievalPlan As DataRetrievalPlan, _
    Description As String, _
    EventType As String, _
    MatchData As String, _
    Parameters As ParameterValueOrFieldReference() _
) As String
'Kullanım
Dim instance As ReportingService2010
Dim ItemPath As String
Dim ExtensionSettings As ExtensionSettings
Dim DataRetrievalPlan As DataRetrievalPlan
Dim Description As String
Dim EventType As String
Dim MatchData As String
Dim Parameters As ParameterValueOrFieldReference()
Dim returnValue As String

returnValue = instance.CreateDataDrivenSubscription(ItemPath, _
    ExtensionSettings, DataRetrievalPlan, _
    Description, EventType, MatchData, _
    Parameters)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateDataDrivenSubscription", RequestNamespace = "https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", 
    ResponseNamespace = "https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
[SoapHeaderAttribute("ServerInfoHeaderValue", Direction = SoapHeaderDirection.Out)]
[SoapHeaderAttribute("TrustedUserHeaderValue")]
public string CreateDataDrivenSubscription(
    string ItemPath,
    ExtensionSettings ExtensionSettings,
    DataRetrievalPlan DataRetrievalPlan,
    string Description,
    string EventType,
    string MatchData,
    ParameterValueOrFieldReference[] Parameters
)
[SoapDocumentMethodAttribute(L"https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateDataDrivenSubscription", RequestNamespace = L"https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", 
    ResponseNamespace = L"https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", 
    Use = SoapBindingUse::Literal, ParameterStyle = SoapParameterStyle::Wrapped)]
[SoapHeaderAttribute(L"ServerInfoHeaderValue", Direction = SoapHeaderDirection::Out)]
[SoapHeaderAttribute(L"TrustedUserHeaderValue")]
public:
String^ CreateDataDrivenSubscription(
    String^ ItemPath, 
    ExtensionSettings^ ExtensionSettings, 
    DataRetrievalPlan^ DataRetrievalPlan, 
    String^ Description, 
    String^ EventType, 
    String^ MatchData, 
    array<ParameterValueOrFieldReference^>^ Parameters
)
[<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateDataDrivenSubscription", RequestNamespace = "https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", 
    ResponseNamespace = "https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)>]
[<SoapHeaderAttribute("ServerInfoHeaderValue", Direction = SoapHeaderDirection.Out)>]
[<SoapHeaderAttribute("TrustedUserHeaderValue")>]
member CreateDataDrivenSubscription : 
        ItemPath:string * 
        ExtensionSettings:ExtensionSettings * 
        DataRetrievalPlan:DataRetrievalPlan * 
        Description:string * 
        EventType:string * 
        MatchData:string * 
        Parameters:ParameterValueOrFieldReference[] -> string 
public function CreateDataDrivenSubscription(
    ItemPath : String, 
    ExtensionSettings : ExtensionSettings, 
    DataRetrievalPlan : DataRetrievalPlan, 
    Description : String, 
    EventType : String, 
    MatchData : String, 
    Parameters : ParameterValueOrFieldReference[]
) : String

Parametreler

  • ItemPath
    Tür: System.String
    Tam URL'sini öğe için dosya adı da dahil olmak üzere veri temelli abonelik, oluşturulacak ve SharePoint modunda uzantısı.
  • Description
    Tür: System.String
    Kullanıcılara görüntülenen anlamlı bir açıklama.
  • EventType
    Tür: System.String
    veri temelli abonelik tetikleyen olay türü.Geçerli değerler TimedSubscription veya SnapshotUpdated.
  • MatchData
    Tür: System.String
    Belirtilen ile ilişkili verileri EventType parametresi.Bu parametre bir olay eşleştirmek için kullanılan veri temelli abonelik ile harekete bir olay.

Dönüş Değeri

Tür: System.String
A dize içeren benzersiz bir şekilde tanımlayan bir abonelik kimliği değeri veri temelli abonelik rapor sunucusu veritabanı veya SharePoint Kitaplığı.

Açıklamalar

Aşağıdaki tablo üstbilgi ve izinler bu işlemi gösterir.

soap üstbilgisi kullanımı

(De)TrustedUserHeaderValue

(Giden)ServerInfoHeaderValue

Yerel mod gerekli izinleri

ExecuteAndView AND CreateAnySubscription

SharePoint modu gerekli izinleri

ViewListItems() AND ManageAlerts()

Uzunluğu ItemPath parametresi; 260 karakteri aşamaz Aksi takdirde hata koduyla bir soap özel durum rsItemLengthExceeded.

ItemPath Parametresi null veya boş veya aşağıdaki ayrılmış karakterleri içeremez: : ? ; @ & = + $ , \ * > < | . ".Öğeler klasörünün tam yol adını ayırmak için eğik çizgi (/) karakter kullanabilirsiniz, ancak klasör adının sonuna kullanamazsınız.

Kullanabileceğiniz GetExtensionSettings yöntem için gerekli ayarların bir listesini almak içinbir teslim uzantısı.Bu gerekli ayarları için değerleri geçmesi gereken ExtensionSettings parametresi.E-posta teslimi ayarları hakkında daha fazla bilgi için bkz: Raporlama Hizmetleri teslim uzantısı ayarları.

DataRetrievalPlan Parametre alan bir DataRetrievalPlan nesnesi olarak kendi bağımsız değişkeni.DataRetrievalPlan Nesnesini içeren bir dataset teslim sorgu.CommandType Teslim sorgu özelliği (QueryDefinition nesne) olan küme için metin veri uygulamalı abonelikleri için varsayılan olarak ve belirtilmesi gerekmez.Bir değer belirtirseniz, CommandType özellik, değeri olmalıdır metin.

Veri kaynak sağlanan veya teslim sorgu olmalıdır için dataset içinde başvurulan bir CredentialRetrieval ayarı deposu.

Teslim uzantısı için değerleri kümetings ve parametreleri olabilir küme ya da statik değerleri veya alan başvuruları.Bir alan başvurusu için teslim uzantısı ayarı veya bir parametre değeri belirlendiğinde, ayar ya da parametre veri kullanan değeridir.Teslimat sorgu ile dataset alanları küme vardır (Field nesneleri) teslim uzantısı ayarları için eşleştirilir (ExtensionParameter nesneleri) ve rapor parametre değerlerini (ParameterValue nesneleri).teslim uzantısı ayarları ve rapor parametre değerlerini başvuruda bulunulan tüm alanları dataset alanları karşılık gelmesi gerekir.Teslimat sorgu teslim uzantısı ayarı veya bir parametre değeri belirtilen alan değişmezse, rapor sunucusu abonelik işlenirken bir hata yükseltir.

Değeri EventType parametresi gerekir için yapılandırılmış bir olaya karşılık gelen rapor sunucusu.Abonelikleri oluşturmak için kullanılan iki olayların TimedSubscription ve SnapshotUpdated.Use ListEvents yöntem için rapor sunucusu yapılandırılmış tüm olayların bir listesini döndürmek için

Değeri MatchData parametresi bağlıdır olay türü.Olay ise, bir TimedSubscription olay, bir ScheduleDefinition nesnesi olarak gerekli MatchData parametresi.Seri hale, ilk getirmek gerekir ScheduleDefinition Nesne bir dize değeri olarak geçirmek ve esas Abonelik oluşturmak için xml olarakzamanlama.xml yapısı aşağıdaki örnekte benzer görünebilir:

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

Değeri StartDateTime bir xml olarak geçirildiğinde öğesi dize ISO 8601 tarih biçimine karşılık gelmelidir.Bu uluslararası tarih ve saat genişletilmiş standart yyyy biçimi-mm-DDThh:mm:ss z +/-burada "cc" "yy" yüzyýlý simgeler, Yıl, "mm" ay ve "Gg" gün."t" harfi Tarih ve saat ayracı ve "ss", "mm", "ss" olduğunu saat, dakika ve saniye, sırasıyla temsil eder.Bu gösterim hemen bir "z" takip edilebilir Eşgüdümlü evrensel saat (utc) göstermek için.Eşgüdümlü Evrensel Saat, "z" ve yerel saat arasındaki farkı olarak gösterilen saat dilimini belirtmek için tarafından öncesinde bir "+" veya "-" ss: dd temsil edilen utc Farkı arkasından işareti.

Varsa zamanlamayı tanımı için bir TimedSubscription paylaşılan bir zamanlama. paylaşılan zamanlama zamanlama kimliği geçmesi gereken MatchData parametresi.Kimliği olarak geçirdi zamanlama bir dize, örneğin, "4608ac1b-fc75-4149-9e15-5a8b5781b843".Zamanlama kimliği elde edilebilir çağırarak ListSchedules() yöntem.

Kullanabileceğiniz XmlSerializer , nesne sınıfı bir xml biçimine dönüştürmek için sınıf dize otomatik olarak.Hakkında daha fazla bilgi için XmlSerializer sınıf, "System.Xml.XmlSerializer Class" konusuna bakın. Microsoft.net Framework belgeleri.

Olay ise, bir SnapshotUpdated abonelik, değeri MatchData olması gereken nullnull başvuru (Visual Basic'te Nothing) (veya hiçbir şey Visual Basic).

Bu yöntem kullanarak LastExecuted özellik öğe için yok, Status için abonelik özellik Yeni Abonelikve Active için abonelik özellik doğru.ModifiedBy Ve ModifiedDate özelliklerini öğe de güncelleştirildi.

Örnekler

Bu kod örneği derlemek için Raporlama Hizmetleri wsdl başvuran ve belirli ad alanları almak gerekir.Daha fazla bilgi için, bkz. Compiling and Running Code Examples.Aşağıdaki kod örneği CreateDataDrivenSubscription Yeni bir eklemek için veri temelli abonelik rapor sunucusu veritabanı için:

Imports System
Imports System.Web.Services.Protocols

Class Sample
   Public Shared Sub Main()
      Dim rs As New ReportingService2010()
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials

      Dim report As String = "/SampleReports/Employee Sales Summary"
      Dim description As String = "My new data driven subscription"

      ' Set the extension setting as report server email.
      Dim settings As New ExtensionSettings()
      settings.Extension = "Report Server Email"

      ' Set the extension parameter values.
      Dim extensionParams(7) As ParameterValueOrFieldReference

      Dim [to] As New ParameterFieldReference() ' Data-driven.
      [to].ParameterName = "TO"
      [to].FieldAlias = "EmailAddress"
      extensionParams(0) = [to]

      Dim replyTo As New ParameterValue()
      replyTo.Name = "ReplyTo"
      replyTo.Value = "dank@adventure-works.com"
      extensionParams(1) = replyTo

      Dim includeReport As New ParameterValue()
      includeReport.Name = "IncludeReport"
      includeReport.Value = "False"
      extensionParams(2) = includeReport

      Dim renderFormat As New ParameterValue()
      renderFormat.Name = "RenderFormat"
      renderFormat.Value = "HTML4.0"
      extensionParams(3) = renderFormat

      Dim priority As New ParameterValue()
      priority.Name = "Priority"
      priority.Value = "NORMAL"
      extensionParams(4) = priority

      Dim subject As New ParameterValue()
      subject.Name = "Subject"
      subject.Value = "Your sales report"
      extensionParams(5) = subject

      Dim comment As New ParameterValue()
      comment.Name = "Comment"
      comment.Value = "Here is the link to your report."
      extensionParams(6) = comment

      Dim includeLink As New ParameterValue()
      includeLink.Name = "IncludeLink"
      includeLink.Value = "True"
      extensionParams(7) = includeLink

      settings.ParameterValues = extensionParams

      ' Create the data source for the delivery query.
      Dim delivery As New DataSource()
      delivery.Name = ""
      Dim dataSourceDefinition As New DataSourceDefinition()
      dataSourceDefinition.ConnectString = "data source=(local);initial catalog=Employee"
      dataSourceDefinition.CredentialRetrieval = CredentialRetrievalEnum.Store
      dataSourceDefinition.Enabled = True
      dataSourceDefinition.EnabledSpecified = True
      dataSourceDefinition.Extension = "SQL"
      dataSourceDefinition.ImpersonateUserSpecified = False
      dataSourceDefinition.UserName = "username"
      dataSourceDefinition.Password = "runUnAtt1"
      delivery.Item = dataSourceDefinition

      ' Create the fields list.
      Dim fieldsList(1) As Field
      fieldsList(0) = New Field()
      fieldsList(0).Name = "EmailAddress"
      fieldsList(0).Alias = "EmailAddress"
      fieldsList(1) = New Field()
      fieldsList(1).Name = "EmpID"
      fieldsList(1).Alias = "EmpID"

      ' Create the data set for the delivery query.
      Dim dataSetDefinition As New DataSetDefinition()
      dataSetDefinition.AccentSensitivitySpecified = False
      dataSetDefinition.CaseSensitivitySpecified = False
      dataSetDefinition.KanatypeSensitivitySpecified = False
      dataSetDefinition.WidthSensitivitySpecified = False
      dataSetDefinition.Fields = fieldsList
      Dim queryDefinition As New QueryDefinition()
      queryDefinition.CommandText = "Select * from MailList"
      queryDefinition.CommandType = "Text"
      queryDefinition.Timeout = 45
      queryDefinition.TimeoutSpecified = True
      dataSetDefinition.Query = queryDefinition
      Dim results As New DataSetDefinition()
      Dim changed As Boolean
      Dim paramNames as String() = Nothing

      Try
         results = rs.PrepareQuery(delivery, dataSetDefinition, changed, paramNames)
      Catch e As SoapException
         Console.WriteLine(e.Detail.InnerText.ToString())
      End Try

      Dim dataRetrieval As New DataRetrievalPlan()
      dataRetrieval.DataSet = results
      dataRetrieval.Item = dataSourceDefinition

      ' Set the event type and match data for the delivery.
      Dim eventType As String = "TimedSubscription"
      Dim matchData As String = "<ScheduleDefinition><StartDateTime>2003-04-14T19:15:00-07:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday><Tuesday>True</Tuesday><Wednesday>True</Wednesday><Thursday>True</Thursday><Friday>True</Friday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>"

      ' Set the report parameter values.
      Dim parameters(2) As ParameterValueOrFieldReference

      Dim empID As New ParameterFieldReference() ' Data-driven.
      empID.ParameterName = "EmpID"
      empID.FieldAlias = "EmpID"
      parameters(0) = empID

      Dim reportYear As New ParameterValue()
      reportYear.Name = "ReportYear"
      reportYear.Value = "2004"
      parameters(1) = reportYear

      Dim reportMonth As New ParameterValue()
      reportMonth.Name = "ReportMonth"
      reportMonth.Value = "6" ' June
      parameters(2) = reportMonth

      Try
         Dim subscriptionID As String = rs.CreateDataDrivenSubscription(report, settings, dataRetrieval, description, eventType, matchData, parameters)
      Catch e As SoapException
         Console.WriteLine(e.Detail.InnerText.ToString())
      End Try
   End Sub 'Main
End Class 'Sample
using System;
using System.Web.Services.Protocols;

class Sample
{
   public static void Main()
   {
      ReportingService rs = new ReportingService2010();
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;

      string report = "/SampleReports/Employee Sales Summary";
      string description = "My new data driven subscription";

      // Set the extension setting as report server email.
      ExtensionSettings settings = new ExtensionSettings();
      settings.Extension = "Report Server Email";

      // Set the extension parameter values.
      ParameterValueOrFieldReference[] extensionParams = 
         new ParameterValueOrFieldReference[8];

      ParameterFieldReference to = new ParameterFieldReference(); // Data-driven.
      to.ParameterName = "TO";
      to.FieldAlias = "EmailAddress"; 
      extensionParams[0] = to;

      ParameterValue replyTo = new ParameterValue();
      replyTo.Name = "ReplyTo";
      replyTo.Value ="dank@adventure-works.com";
      extensionParams[1] = replyTo;

      ParameterValue includeReport = new ParameterValue();
      includeReport.Name = "IncludeReport";
      includeReport.Value = "False";
      extensionParams[2] = includeReport;

      ParameterValue renderFormat = new ParameterValue();
      renderFormat.Name = "RenderFormat";
      renderFormat.Value = "HTML4.0";
      extensionParams[3] = renderFormat;

      ParameterValue priority = new ParameterValue();
      priority.Name = "Priority";
      priority.Value = "NORMAL";
      extensionParams[4] = priority;

      ParameterValue subject = new ParameterValue();
      subject.Name = "Subject";
      subject.Value = "Your sales report";
      extensionParams[5] = subject;

      ParameterValue comment = new ParameterValue();
      comment.Name = "Comment";
      comment.Value = "Here is the link to your report.";
      extensionParams[6] = comment;

      ParameterValue includeLink = new ParameterValue();
      includeLink.Name = "IncludeLink";
      includeLink.Value = "True";
      extensionParams[7] = includeLink;

      settings.ParameterValues = extensionParams;

      // Create the data source for the delivery query.
      DataSource delivery = new DataSource();
      delivery.Name = "";
      DataSourceDefinition dataSourceDefinition = new DataSourceDefinition();
      dataSourceDefinition.ConnectString = "data source=(local);initial catalog=Employee";
      dataSourceDefinition.CredentialRetrieval = CredentialRetrievalEnum.Store;
      dataSourceDefinition.Enabled = true;
      dataSourceDefinition.EnabledSpecified = true;
      dataSourceDefinition.Extension = "SQL";
      dataSourceDefinition.ImpersonateUserSpecified = false;
      dataSourceDefinition.UserName = "username";
      dataSourceDefinition.Password = "runUnAtt1";
      delivery.Item = dataSourceDefinition;

      // Create the fields list.
      Field[] fieldsList = new Field[2];
      fieldsList[0] = new Field();
      fieldsList[0].Name = "EmailAddress";
      fieldsList[0].Alias = "EmailAddress";
      fieldsList[1] = new Field();
      fieldsList[1].Name = "EmpID";
      fieldsList[1].Alias = "EmpID";

      // Create the data set for the delivery query.
      DataSetDefinition dataSetDefinition = new DataSetDefinition();
      dataSetDefinition.AccentSensitivitySpecified = false;
      dataSetDefinition.CaseSensitivitySpecified = false;
      dataSetDefinition.KanatypeSensitivitySpecified = false;
      dataSetDefinition.WidthSensitivitySpecified = false;
      dataSetDefinition.Fields = fieldsList;
      QueryDefinition queryDefinition = new QueryDefinition();
      queryDefinition.CommandText = "Select * from MailList";
      queryDefinition.CommandType = "Text";
      queryDefinition.Timeout = 45;
      queryDefinition.TimeoutSpecified = true;
      dataSetDefinition.Query = queryDefinition;
      DataSetDefinition results = new DataSetDefinition();
      bool changed;
      string[] paramNames;

      try
      {
         results = rs.PrepareQuery(delivery, dataSetDefinition, out changed, out paramNames);
      }
      catch (SoapException e)
      {
         Console.WriteLine(e.Detail.InnerText.ToString());
      }

      DataRetrievalPlan dataRetrieval = new DataRetrievalPlan();
      dataRetrieval.DataSet = results;
      dataRetrieval.Item = dataSourceDefinition;
      // Set the event type and match data for the delivery.
      string eventType = "TimedSubscription";
      string matchData = "<ScheduleDefinition><StartDateTime>2003-04-14T19:15:00-07:00</StartDateTime><WeeklyRecurrence><WeeksInterval>1</WeeksInterval><DaysOfWeek><Monday>True</Monday><Tuesday>True</Tuesday><Wednesday>True</Wednesday><Thursday>True</Thursday><Friday>True</Friday></DaysOfWeek></WeeklyRecurrence></ScheduleDefinition>";

      // Set the report parameter values.
      ParameterValueOrFieldReference[] parameters = new ParameterValueOrFieldReference[3];

      ParameterFieldReference empID = new ParameterFieldReference(); // Data-driven.
      empID.ParameterName = "EmpID";
      empID.FieldAlias = "EmpID";
      parameters[0] = empID;

      ParameterValue reportYear = new ParameterValue();
      reportYear.Name = "ReportYear";
      reportYear.Value = "2004";
      parameters[1] = reportYear;

      ParameterValue reportMonth = new ParameterValue();
      reportMonth.Name = "ReportMonth";
      reportMonth.Value = "6"; // June
      parameters[2] = reportMonth;

      try
      {
         string subscriptionID = rs.CreateDataDrivenSubscription( 
   report, settings, dataRetrieval, description, eventType, matchData, parameters);
      }
      catch (SoapException e)
      {
         Console.WriteLine(e.Detail.InnerText.ToString());
      }
   }
}