ReportingService2010.CreateCacheRefreshPlan メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アイテムのキャッシュ更新計画を作成します。 この方法は Report および Dataset アイテムタイプに適用されます。
public:
System::String ^ CreateCacheRefreshPlan(System::String ^ ItemPath, 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/CreateCacheRefreshPlan", 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("TrustedUserHeaderValue")]
[System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)]
public string CreateCacheRefreshPlan(string ItemPath, string Description, string EventType, string MatchData, ReportService2010.ParameterValue[] Parameters);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCacheRefreshPlan", 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("TrustedUserHeaderValue")>]
[<System.Web.Services.Protocols.SoapHeader("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)>]
member this.CreateCacheRefreshPlan : string * string * string * string * ReportService2010.ParameterValue[] -> string
Public Function CreateCacheRefreshPlan (ItemPath As String, Description As String, EventType As String, MatchData As String, Parameters As ParameterValue()) As String
パラメーター
- ItemPath
- String
キャッシュリフレッシュ計画を関連付ける項目の完全限定URL(ファイル名、SharePointモードでは拡張子を含む)です。
- Description
- String
キャッシュの更新計画の説明。 このパラメータがnull(Visual BasicではNothing)に設定されている場合、レポートサーバーは自動的に説明を生成します。
- EventType
- String
キャッシュの更新を引き起こすイベントの種類です。 現在の有効値は RefreshCacheです。 このパラメータがnullに設定されている場合(NothingはVisual Basic)、デフォルトの値RefreshCacheが使われます。
- MatchData
- String
指定された EventType パラメータに関連付けられたデータ。 これはItemPath内のアイテムに特化したシリアル化されたScheduleDefinitionか、共有スケジュールのスケジュールIDでなければなりません。
- Parameters
- ParameterValue[]
ItemPathで指定されたアイテムのパラメータリストを含む、ParameterValueオブジェクトの配列です。
返品
キャッシュリフレッシュ計画の一意識別子を表す string です。
- 属性
例
以下の例は、レポートをキャッシュに読み込み、キャッシュを毎日更新します。
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 = "Daily refresh of the report cache, starting 2/22/2010 at 2:15am";
string eventType = "RefreshCache";
ScheduleDefinition definition =
new ScheduleDefinition();
// Create the schedule definition.
definition.StartDateTime =
new DateTime(2010, 2, 22, 10, 15, 0);
DailyRecurrence recurrence =
new DailyRecurrence();
recurrence.DaysInterval = 1;
definition.Item = recurrence;
// Serialize schedule definition
System.Xml.Serialization.XmlSerializer serializer =
new System.Xml.Serialization.XmlSerializer(
typeof(ScheduleDefinition));
MemoryStream stream = new MemoryStream();
serializer.Serialize(stream, definition);
UTF8Encoding encoding = new UTF8Encoding();
string defString = encoding.GetString(stream.ToArray());
try
{
rs.CreateCacheRefreshPlan(report, desc, eventType,
defString, 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 = " Daily refresh of the report cache, _
starting 2/22/2010 at 2:15am."
Dim eventType As String = "RefreshCache"
Dim definition As New ScheduleDefinition()
' Create the schedule definition.
definition.StartDateTime = New DateTime(2010, 2, 22, 10, 15, 0)
Dim recurrence As New DailyRecurrence()
recurrence.DaysInterval = 1
definition.Item = recurrence
Dim serializer As New System.Xml.Serialization.XmlSerializer(_
GetType(ScheduleDefinition))
Dim stream As New MemoryStream()
serializer.Serialize(stream, definition)
Dim encoding As New UTF8Encoding()
Dim defString As String = encoding.GetString(stream.ToArray())
Try
rs.CreateCacheRefreshPlan(report, desc, eventType,
defString, Nothing)
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub
End Class
注釈
以下の表は、この操作のヘッダーおよび権限情報を示しています。
| SOAPヘッダーの使用 | (イン) TrustedUserHeaderValue (アウト) ServerInfoHeaderValue |
| ネイティブモードの必要権限 | ReadPolicy そして UpdatePolicy |
| SharePointモードの必要権限 | <xref:Microsoft.SharePoint.SPBasePermissions.EditListItems> そして <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
キャッシュリフレッシュ計画を作成するために使われる EventType は RefreshCacheです。
MatchDataパラメータはイベントタイプによって異なります。 イベントがTimedSubscriptionイベントの場合、ScheduleDefinitionパラメータとしてMatchDataオブジェクトが必要です。 まず ScheduleDefinition オブジェクトをXMLとしてシリアライズし、それを文字列値として渡し、スケジュールに基づいてキャッシュの更新計画を作成する必要があります。
System.Xml.Serialization.XmlSerializerクラスを使ってオブジェクトクラスを自動的にXML文字列に変換できます。