次の方法で共有


ReportingService2010.CreateCatalogItem メソッド

レポート サーバー データベースまたは SharePoint ライブラリに新しいアイテムを追加します。 このメソッドは、アイテムの種類 Report、Model、Dataset、Component、Resource、および DataSource に適用されます。

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

構文

'宣言
<SoapHeaderAttribute("TrustedUserHeaderValue")> _
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCatalogItem", 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)> _
<SoapHeaderAttribute("ServerInfoHeaderValue", Direction := SoapHeaderDirection.Out)> _
Public Function CreateCatalogItem ( _
    ItemType As String, _
    Name As String, _
    Parent As String, _
    Overwrite As Boolean, _
    Definition As Byte(), _
    Properties As Property(), _
    <OutAttribute> ByRef Warnings As Warning() _
) As CatalogItem
'使用
Dim instance As ReportingService2010 
Dim ItemType As String 
Dim Name As String 
Dim Parent As String 
Dim Overwrite As Boolean 
Dim Definition As Byte()
Dim Properties As Property()
Dim Warnings As Warning()
Dim returnValue As CatalogItem 

returnValue = instance.CreateCatalogItem(ItemType, _
    Name, Parent, Overwrite, Definition, _
    Properties, Warnings)
[SoapHeaderAttribute("TrustedUserHeaderValue")]
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCatalogItem", 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)]
[SoapHeaderAttribute("ServerInfoHeaderValue", Direction = SoapHeaderDirection.Out)]
public CatalogItem CreateCatalogItem(
    string ItemType,
    string Name,
    string Parent,
    bool Overwrite,
    byte[] Definition,
    Property[] Properties,
    out Warning[] Warnings
)
[SoapHeaderAttribute(L"TrustedUserHeaderValue")]
[SoapDocumentMethodAttribute(L"https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCatalogItem", 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)]
[SoapHeaderAttribute(L"ServerInfoHeaderValue", Direction = SoapHeaderDirection::Out)]
public:
CatalogItem^ CreateCatalogItem(
    String^ ItemType, 
    String^ Name, 
    String^ Parent, 
    bool Overwrite, 
    array<unsigned char>^ Definition, 
    array<Property^>^ Properties, 
    [OutAttribute] array<Warning^>^% Warnings
)
[<SoapHeaderAttribute("TrustedUserHeaderValue")>]
[<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCatalogItem", 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)>]
[<SoapHeaderAttribute("ServerInfoHeaderValue", Direction = SoapHeaderDirection.Out)>]
member CreateCatalogItem : 
        ItemType:string * 
        Name:string * 
        Parent:string * 
        Overwrite:bool * 
        Definition:byte[] * 
        Properties:Property[] * 
        Warnings:Warning[] byref -> CatalogItem
public function CreateCatalogItem(
    ItemType : String, 
    Name : String, 
    Parent : String, 
    Overwrite : boolean, 
    Definition : byte[], 
    Properties : Property[], 
    Warnings : Warning[]
) : CatalogItem

パラメーター

  • Name
    型: System.String
    SharePoint モードのファイル拡張子を含む、新しいアイテムの名前です。
  • Parent
    型: System.String
    アイテムを格納する親フォルダーの完全修飾 URL です。
  • Overwrite
    型: System.Boolean
    指定された場所に同じ名前のアイテムが既に存在する場合に上書きするかどうかを示す Boolean 式です。
  • Definition
    型: array<System.Byte[]
    レポート サーバーにパブリッシュする .rdl レポート定義、レポート モデル定義、またはリソース コンテンツです。
  • Warnings
    型: array<ReportService2010.Warning[]%
    [out] アイテムの検証時に発生したすべての警告を表す Warning オブジェクトの配列です。

戻り値

型: ReportService2010.CatalogItem
新しく作成されたアイテムの CatalogItem オブジェクトです。

説明

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

SOAP ヘッダーの使用方法

(In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue

ネイティブ モードで必要な権限

アイテムの種類によって異なります。

SharePoint モードで必要な権限

アイテムの種類によって異なります。

  • Report

    新しいレポートの作成: Parent に対する AddListItems、および Definition で定義されるデータ ソースとデータセットに対する ViewListItems

    既存のレポートの更新: Item に対する EditListItems、Definition で定義されるデータ ソースとデータセットに対する ViewListItems、および Item に対する ViewListItems (Properties にプロパティが含まれている場合)

  • DataSet

    新しい共有データセットの作成: Parent に対する AddListItems、およびDefinition で定義されるデータ ソースに対する ViewListItems

    既存の共有データセットの更新: Item に対する EditListItems、Definition で定義されるデータ ソースに対する ViewListItems、および Item に対する ViewListItems (Properties にプロパティが含まれている場合)

  • Resource、DataSource、Component:

    新しいアイテムの作成: Parent に対する AddListItems

    既存のアイテムの更新: Item に対する EditListItems

  • Model: Parent に対する AddListItems

このメソッドでは、サポートされているすべての種類のアイテムを作成できます。 サポートされているアイテムの種類を確認するには、ListItemTypes メソッドを使用します。

アイテムの種類 Model は上書きできません。 このため、ItemType が Model である場合は、Overwrite パラメーターを False に設定する必要があります。 この操作を行わなかった場合は、rsInvalidParameterCombination 例外がスローされます。

ItemType が Report の場合、XML データは、Report Definition Language によって定義されています。 ItemType が Model の場合、XML データは、Semantic Model Definition Language によって定義されています。

エラーが発生すると、アイテムは作成されません。

レポート サーバー データベースまたは SharePoint ライブラリにアイテムを追加すると、親フォルダーの ModifiedBy プロパティと ModifiedDate プロパティが変更されます。

該当するファイル名拡張子 (.rdl など) をアイテム名に含めない場合、rsFileExtensionRequired エラーが返されます。

Parent パラメーターの長さは、260 文字以下でなくてはなりません。これを超えると、SOAP 例外がエラー コード rsItemLengthExceeded でスローされます。

Parent パラメーターを NULL または空の文字列にすることはできません。また、予約文字 : ?; @ & = + $ , \ * > < | ." を含めることもできません。 スラッシュ (/) は、フォルダーの完全なパス名内の各項目を区切るために使用することはできますが、フォルダー名の末尾には使用できません。

使用例

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;

        Byte[] definition = null;
        Warning[] warnings = null;
        string name = "MyReport.rdl";

        try
        {
            FileStream stream = File.OpenRead("MyReport.rdl");
            definition = new Byte[stream.Length];
            stream.Read(definition, 0, (int)stream.Length);
            stream.Close();
        }
        catch (IOException e)
        {
            Console.WriteLine(e.Message);
        }

        try
        {
            string parent = "http://<Server Name>/Docs/Documents/";
            CatalogItem report = rs.CreateCatalogItem("Report", name, parent,
                        false, definition, null, out warnings);

            if (warnings != null)
            {
                foreach (Warning warning in warnings)
                {
                    Console.WriteLine(warning.Message);
                }
            }

            else
                Console.WriteLine("Report: {0} created successfully " +
                                  " with no warnings", name);
        }
        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 definition As [Byte]() = Nothing
        Dim warnings As Warning() = Nothing
        Dim name As String = "MyReport.rdl"

        Try
            Dim stream As FileStream = File.OpenRead("MyReport.rdl")
            definition = New [Byte](stream.Length - 1) {}
            stream.Read(definition, 0, CInt(stream.Length))
            stream.Close()

        Catch e As IOException
            Console.WriteLine(e.Message)
        End Try

        Try
            Dim parentPath As String = _
                "http://<Server Name>/Docs/Documents/"
            rs.CreateCatalogItem("Report", name, parentPath, False, _
                definition, Nothing, warnings)

            If Not (warnings Is Nothing) Then
                Dim warning As Warning
                For Each warning In warnings
                    Console.WriteLine(warning.Message)
                Next warning

            Else
                Console.WriteLine("Report: {0} created " + _
                    "successfully with no warnings", name)
            End If

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

    End Sub

End Class

関連項目

参照

ReportingService2010 クラス

ReportService2010 名前空間