Share via


ReportingService2010.GetItemDefinition(String) Method

Definition

Retrieves the definition or content for an item. This method applies to the Report, Model, Dataset, Component, Resource, and DataSource item types.

public:
 cli::array <System::Byte> ^ GetItemDefinition(System::String ^ ItemPath);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/GetItemDefinition", 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("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)]
[System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")]
public byte[] GetItemDefinition (string ItemPath);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/GetItemDefinition", 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("ServerInfoHeaderValue", Direction=System.Web.Services.Protocols.SoapHeaderDirection.Out)>]
[<System.Web.Services.Protocols.SoapHeader("TrustedUserHeaderValue")>]
member this.GetItemDefinition : string -> byte[]
Public Function GetItemDefinition (ItemPath As String) As Byte()

Parameters

ItemPath
String

The fully qualified URL of the item including the file name and, in SharePoint mode, the extension.

Returns

Byte[]

The item definition as a Base 64-encoded byte array. For more information about this data type, see "Byte Structure" in the Microsoft .NET Framework documentation.

Attributes

Examples

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 reportName = "http://<Server Name>/Docs/Documents" +  
            "/AdventureWorks Sample Reports/Sales Order Detail.rdl";  
        byte[] reportDefinition = null;  
        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();  

        try  
        {  
            reportDefinition = rs.GetItemDefinition(reportName);  
            MemoryStream stream = new MemoryStream(reportDefinition);  

            string myDocumentsFolder =   
                Environment.GetFolderPath(  
                    Environment.SpecialFolder.Personal);  

            doc.Load(stream);  
            doc.Save(Path.Combine(myDocumentsFolder,   
                "Sales Order Detail.rdl"));  
        }  
        catch (SoapException e)  
        {  
            Console.WriteLine(e.Detail.InnerXml.ToString());  
        }  
        catch (IOException e)  
        {  
            Console.WriteLine(e.Message);  
        }  
    }  
}  
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 reportName As String = "http://<Server Name>" + _  
            "/Docs/Documents/AdventureWorks Sample Reports" + _  
            "/Sales Order Detail.rdl"  
        Dim reportDefinition As Byte() = Nothing  
        Dim doc As New System.Xml.XmlDocument  

        Try  
            reportDefinition = rs.GetItemDefinition(reportName)  
            Dim stream As New MemoryStream(reportDefinition)  

            Dim myDocumentsFolder As String = _  
                My.Computer.FileSystem.SpecialDirectories.MyDocuments  
            doc.Load(stream)  
            doc.Save(Path.Combine(myDocumentsFolder, _  
                "Sales Order Detail.rdl"))  

        Catch e As SoapException  
            Console.WriteLine(e.Detail.InnerXml.ToString())  
        Catch e As IOException  
            Console.WriteLine(e.Message)  
        End Try  

    End Sub  

End Class  

Remarks

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

SOAP Header Usage (In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue
Native Mode Required Permissions Depends on the item type:

- Report, DataSet: ReadReportDefinition
- Resource, Component: ReadContent
- DataSource: ReadContent
- Model: ReadContent
SharePoint Mode Required Permissions <xref:Microsoft.SharePoint.SPBasePermissions.OpenItems>

Applies to