次の方法で共有


ReportingService2005.CreateSubscription メソッド

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

名前空間:  ReportService2005
アセンブリ:  ReportService2005 (ReportService2005.dll)

構文

'宣言
Public Function CreateSubscription ( _
    Report As String, _
    ExtensionSettings As ExtensionSettings, _
    Description As String, _
    EventType As String, _
    MatchData As String, _
    Parameters As ParameterValue() _
) As String
'使用
Dim instance As ReportingService2005 
Dim Report As String 
Dim ExtensionSettings As ExtensionSettings 
Dim Description As String 
Dim EventType As String 
Dim MatchData As String 
Dim Parameters As ParameterValue()
Dim returnValue As String 

returnValue = instance.CreateSubscription(Report, _
    ExtensionSettings, Description, _
    EventType, MatchData, Parameters)
public string CreateSubscription(
    string Report,
    ExtensionSettings ExtensionSettings,
    string Description,
    string EventType,
    string MatchData,
    ParameterValue[] Parameters
)
public:
String^ CreateSubscription(
    String^ Report, 
    ExtensionSettings^ ExtensionSettings, 
    String^ Description, 
    String^ EventType, 
    String^ MatchData, 
    array<ParameterValue^>^ Parameters
)
member CreateSubscription : 
        Report:string * 
        ExtensionSettings:ExtensionSettings * 
        Description:string * 
        EventType:string * 
        MatchData:string * 
        Parameters:ParameterValue[] -> string
public function CreateSubscription(
    Report : String, 
    ExtensionSettings : ExtensionSettings, 
    Description : String, 
    EventType : String, 
    MatchData : String, 
    Parameters : ParameterValue[]
) : String

パラメーター

  • Report
    型: System.String
    サブスクリプションを作成するレポートの完全なパス名です。
  • Description
    型: System.String
    ユーザーに対して表示される説明文です。
  • EventType
    型: System.String
    サブスクリプションを開始するイベントの種類です。 有効な値は、TimedSubscription または SnapshotUpdated です。
  • MatchData
    型: System.String
    指定した EventType パラメーターに関連付けられているデータです。 このパラメーターは、サブスクリプションと発生したイベントの照合のために、イベントで使用されます。

戻り値

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

説明

次の表に、この操作に関連するヘッダーおよび権限の情報を示します。

SOAP ヘッダー

(In) BatchHeaderValue

(Out) ServerInfoHeaderValue

必要な権限

ExecuteAndView および (CreateAnySubscription または CreateSubscription)

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

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

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

<ScheduleDefinition>
   <WeeklyRecurrence>
      <StartDateTime>2004-06-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 の値は nullNULL 参照 (Visual Basic では Nothing) (Visual Basic では Nothing) である必要があります。

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

使用例

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

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

関連項目

参照

ReportingService2005 クラス

ReportService2005 名前空間