次の方法で共有


ReportingService2005.CreateDataDrivenSubscription Method

指定したレポートのデータ ドリブン サブスクリプションを作成します。

名前空間: Microsoft.WSSUX.ReportingServicesWebService.RSManagementService2005
アセンブリ: ReportService2005 (reportingservice2005.dll 内)

構文

'宣言
<SoapHeaderAttribute("ServerInfoHeaderValue", Direction:=SoapHeaderDirection.Out)> _
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/CreateDataDrivenSubscription", RequestNamespace:="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", ResponseNamespace:="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", Use:=SoapBindingUse.Literal, ParameterStyle:=SoapParameterStyle.Wrapped)> _
<SoapHeaderAttribute("BatchHeaderValue")> _
Public Function CreateDataDrivenSubscription ( _
    Report As String, _
    ExtensionSettings As ExtensionSettings, _
    DataRetrievalPlan As DataRetrievalPlan, _
    Description As String, _
    EventType As String, _
    MatchData As String, _
    Parameters As ParameterValueOrFieldReference() _
) As String
[SoapHeaderAttribute("ServerInfoHeaderValue", Direction=SoapHeaderDirection.Out)] 
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/CreateDataDrivenSubscription", RequestNamespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", ResponseNamespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped)] 
[SoapHeaderAttribute("BatchHeaderValue")] 
public string CreateDataDrivenSubscription (
    string Report,
    ExtensionSettings ExtensionSettings,
    DataRetrievalPlan DataRetrievalPlan,
    string Description,
    string EventType,
    string MatchData,
    ParameterValueOrFieldReference[] Parameters
)
[SoapHeaderAttribute(L"ServerInfoHeaderValue", Direction=SoapHeaderDirection::Out)] 
[SoapDocumentMethodAttribute(L"https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/CreateDataDrivenSubscription", RequestNamespace=L"https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", ResponseNamespace=L"https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", Use=SoapBindingUse::Literal, ParameterStyle=SoapParameterStyle::Wrapped)] 
[SoapHeaderAttribute(L"BatchHeaderValue")] 
public:
String^ CreateDataDrivenSubscription (
    String^ Report, 
    ExtensionSettings^ ExtensionSettings, 
    DataRetrievalPlan^ DataRetrievalPlan, 
    String^ Description, 
    String^ EventType, 
    String^ MatchData, 
    array<ParameterValueOrFieldReference^>^ Parameters
)
/** @attribute SoapHeaderAttribute("ServerInfoHeaderValue", Direction=SoapHeaderDirection.Out) */ 
/** @attribute SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/CreateDataDrivenSubscription", RequestNamespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", ResponseNamespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped) */ 
/** @attribute SoapHeaderAttribute("BatchHeaderValue") */ 
public String CreateDataDrivenSubscription (
    String Report, 
    ExtensionSettings ExtensionSettings, 
    DataRetrievalPlan DataRetrievalPlan, 
    String Description, 
    String EventType, 
    String MatchData, 
    ParameterValueOrFieldReference[] Parameters
)
SoapHeaderAttribute("ServerInfoHeaderValue", Direction=SoapHeaderDirection.Out) 
SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/CreateDataDrivenSubscription", RequestNamespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", ResponseNamespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped) 
SoapHeaderAttribute("BatchHeaderValue") 
public function CreateDataDrivenSubscription (
    Report : String, 
    ExtensionSettings : ExtensionSettings, 
    DataRetrievalPlan : DataRetrievalPlan, 
    Description : String, 
    EventType : String, 
    MatchData : String, 
    Parameters : ParameterValueOrFieldReference[]
) : String

パラメータ

  • Report
    データ ドリブン サブスクリプションを作成するレポートの完全なパス名です。
  • ExtensionSettings
    配信拡張機能固有の設定の一覧を格納した ExtensionSettings オブジェクトです。
  • Description
    ユーザーに対して表示される説明文です。
  • EventType
    データ ドリブン サブスクリプションをトリガするイベントの種類です。有効な値は、TimedSubscription または SnapshotUpdated です。
  • MatchData
    指定した EventType パラメータに関連付けられているデータです。このパラメータは、データ ドリブン サブスクリプションと発生したイベントの照合のために、イベントで使用されます。

戻り値

レポート サーバー データベース内のデータ ドリブン サブスクリプションを一意に識別するサブスクリプション ID を表す String です。

解説

GetExtensionSettings メソッドを使用して、配信拡張機能に必須の設定の一覧を取得することができます。これらの必須の設定の値は、ExtensionSettings パラメータで渡す必要があります。電子メールの配信設定については、「Reporting Services 配信拡張機能の設定」を参照してください。

DataRetrievalPlan パラメータは、引数として DataRetrievalPlan オブジェクトを使用します。DataRetrievalPlan オブジェクトには、配信クエリを使用したデータセットが含まれます。データ ドリブン サブスクリプションでは、配信クエリ (QueryDefinition オブジェクト) の CommandType プロパティに既定で Text が設定されるため、特に指定する必要はありません。CommandType プロパティの値を指定する場合は、値を Text とする必要があります。

配信クエリのデータセットで提供または参照されているデータ ソースでは、CredentialRetrieval の設定を Store とする必要があります。

配信拡張機能の設定値とパラメータの値は、静的な値かフィールド参照のどちらかに設定できます。配信拡張機能の設定またはパラメータでフィールド参照を指定すると、その設定またはパラメータの値はデータ ドリブンになります。配信クエリを使用したデータセットには、配信拡張機能設定 (ExtensionParameter オブジェクト) やレポート パラメータ値 (ParameterValue オブジェクト) にマップされる一連のフィールド (Field オブジェクト) があります。配信拡張機能の設定やレポート パラメータ値で参照されるすべてのフィールドは、データセットのフィールドに対応する必要があります。配信クエリが、配信拡張機能の設定またはパラメータ値で指定したフィールドを返さない場合は、サブスクリプションの処理時にレポート サーバーでエラーが発生します。

EventType パラメータの値は、レポート サーバー用に構成されたイベントに対応する必要があります。サブスクリプションの作成に使用されるイベントは、TimedSubscriptionSnapshotUpdated の 2 つです。レポート サーバー用に構成されたすべてのイベントの一覧を返すには、ListEvents メソッドを使用します。

MatchData パラメータの値は、イベントの種類によって異なります。イベントが TimedSubscription イベントである場合は、MatchData パラメータとして ScheduleDefinition オブジェクトが必要です。ScheduleDefinition オブジェクトを文字列値として渡し、スケジュールに基づくサブスクリプションを作成するには、まずこのオブジェクトを XML としてシリアル化する必要があります。XML 構造は、次の例のようになります。

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

StartDateTime 要素を XML 文字列として渡すときの値は、ISO 8601 の日付形式に対応する必要があります。この国際日時標準は拡張形式 CCYY-MM-DDThh:mm:ss+/-Z となっており、"CCYY" が年、"MM" が月、"DD" が日を表します。文字 "T" は日付と時刻の区切り記号を表し、"hh"、"mm"、"ss" はそれぞれ時、分、秒を表します。協定世界時 (UTC) を表す場合には、すぐ後ろに "Z" を付けます。ローカル時刻と協定世界時の差でタイム ゾーンを示すには、"Z" の前に "+"記号か "-" 記号を付け、"Z" の後ろに UTC との差を hh:mm の形式で表します。

TimedSubscription のスケジュール定義が共有スケジュールである場合、共有スケジュールの ID を MatchData パラメータとして渡す必要があります。スケジュール ID は、"4608ac1b-fc75-4149-9e15-5a8b5781b843" のように、String として渡されます。スケジュール ID は、ListSchedules メソッドを呼び出すことにより取得されます。

XmlSerializer クラスを使用して、オブジェクト クラスを XML 文字列に自動的に変換できます。XmlSerializer クラスの詳細については、Microsoft .NET Framework のドキュメントの「System.Xml.XmlSerializer クラス」を参照してください。

イベントが SnapshotUpdated サブスクリプションである場合、MatchData の値は NULL (Visual Basic では Nothing) である必要があります。

このメソッドを使用すると、レポートの LastExecuted プロパティが none に、サブスクリプションの Status プロパティが new subscription に、サブスクリプションの Active プロパティが true に、それぞれ設定されます。また、レポートの ModifiedBy プロパティと ModifiedDate プロパティも更新されます。

使用例

このコード例をコンパイルするには、Reporting Services の WSDL を参照し、特定の名前空間をインポートする必要があります。詳細については、「コード例のコンパイルと実行」を参照してください。次のコード例では、CreateDataDrivenSubscription を使用して新しいデータ ドリブン サブスクリプションをレポート サーバー データベースに追加します。

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

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

ReportingService2005 Class
ReportingService2005 Members
Microsoft.WSSUX.ReportingServicesWebService.RSManagementService2005 Namespace