다음을 통해 공유


CreateCacheRefreshPlan 메서드

항목에 대한 캐시 새로 고침 계획을 만듭니다. 이 메서드는 Report 및 Dataset 항목 유형에 적용됩니다.

네임스페이스:  ReportService2010
어셈블리:  ReportService2010(ReportService2010.dll)

구문

‘선언
<SoapHeaderAttribute("TrustedUserHeaderValue")> _
<SoapHeaderAttribute("ServerInfoHeaderValue", Direction := SoapHeaderDirection.Out)> _
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCacheRefreshPlan", 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)> _
Public Function CreateCacheRefreshPlan ( _
    ItemPath As String, _
    Description As String, _
    EventType As String, _
    MatchData As String, _
    Parameters As ParameterValue() _
) As String
‘사용 방법
Dim instance As ReportingService2010
Dim ItemPath As String
Dim Description As String
Dim EventType As String
Dim MatchData As String
Dim Parameters As ParameterValue()
Dim returnValue As String

returnValue = instance.CreateCacheRefreshPlan(ItemPath, _
    Description, EventType, MatchData, _
    Parameters)
[SoapHeaderAttribute("TrustedUserHeaderValue")]
[SoapHeaderAttribute("ServerInfoHeaderValue", Direction = SoapHeaderDirection.Out)]
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCacheRefreshPlan", 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)]
public string CreateCacheRefreshPlan(
    string ItemPath,
    string Description,
    string EventType,
    string MatchData,
    ParameterValue[] Parameters
)
[SoapHeaderAttribute(L"TrustedUserHeaderValue")]
[SoapHeaderAttribute(L"ServerInfoHeaderValue", Direction = SoapHeaderDirection::Out)]
[SoapDocumentMethodAttribute(L"https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCacheRefreshPlan", 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)]
public:
String^ CreateCacheRefreshPlan(
    String^ ItemPath, 
    String^ Description, 
    String^ EventType, 
    String^ MatchData, 
    array<ParameterValue^>^ Parameters
)
[<SoapHeaderAttribute("TrustedUserHeaderValue")>]
[<SoapHeaderAttribute("ServerInfoHeaderValue", Direction = SoapHeaderDirection.Out)>]
[<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCacheRefreshPlan", 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)>]
member CreateCacheRefreshPlan : 
        ItemPath:string * 
        Description:string * 
        EventType:string * 
        MatchData:string * 
        Parameters:ParameterValue[] -> string 
public function CreateCacheRefreshPlan(
    ItemPath : String, 
    Description : String, 
    EventType : String, 
    MatchData : String, 
    Parameters : ParameterValue[]
) : String

매개 변수

  • ItemPath
    유형: System. . :: . .String
    캐시 새로 고침 계획과 연결할 항목의 정규화된 URL이며 파일 이름과 SharePoint 모드에서는 확장명을 포함합니다.
  • Description
    유형: System. . :: . .String
    캐시 새로 고침 계획에 대한 설명입니다. 이 매개 변수를 nullNothingnullptrunitnull 참조(Visual Basic에서는 Nothing)(Visual Basic에서는 Nothing)로 설정하면 보고서 서버가 자동으로 설명을 생성합니다.
  • EventType
    유형: System. . :: . .String
    캐시 새로 고침을 트리거하는 이벤트의 유형입니다. 현재 유효한 값은 RefreshCache입니다. 이 매개 변수를 nullNothingnullptrunitnull 참조(Visual Basic에서는 Nothing)(Visual Basic에서는 Nothing)로 설정하면 기본값 RefreshCache가 사용됩니다.
  • MatchData
    유형: System. . :: . .String
    지정한 EventType 매개 변수와 연결된 데이터입니다. ItemPath의 항목에 따라 직렬화된 ScheduleDefinition이거나 공유 일정의 일정 ID여야 합니다.

반환 값

유형: System. . :: . .String
캐시 새로 고침 계획의 고유 식별자를 나타내는 string입니다.

주의

The table below shows header and permissions information on this operation.

SOAP Header Usage

(In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue

Native Mode Required Permissions

ReadPolicy AND UpdatePolicy

SharePoint Mode Required Permissions

EditListItems()()()() AND ViewListItems()()()()

The EventType used to create cache refresh plans is RefreshCache. The MatchData parameter depends on the event type. If the event is a TimedSubscription event, a ScheduleDefinition object is required as the MatchData parameter. You must first serialize the ScheduleDefinition object as XML in order to pass it as a string value and create a cache refresh plan based on the schedule.

You can use the XmlSerializer class to convert your object class to an XML string automatically.

The following example loads a report into the cache and refreshes the cache daily.

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