Поделиться через


ReportingService2010.CreateCatalogItem Метод

Определение

Добавляет новый элемент в базу данных сервера отчетов или в библиотеку SharePoint Этот метод применим к элементам типа Report, Model, Dataset, Component, Resource и DataSource.

public:
 ReportService2010::CatalogItem ^ CreateCatalogItem(System::String ^ ItemType, System::String ^ Name, System::String ^ Parent, bool Overwrite, cli::array <System::Byte> ^ Definition, cli::array <ReportService2010::Property ^> ^ Properties, [Runtime::InteropServices::Out] cli::array <ReportService2010::Warning ^> ^ % Warnings);
[System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCatalogItem", 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 ReportService2010.CatalogItem CreateCatalogItem (string ItemType, string Name, string Parent, bool Overwrite, byte[] Definition, ReportService2010.Property[] Properties, out ReportService2010.Warning[] Warnings);
[<System.Web.Services.Protocols.SoapDocumentMethod("http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer/CreateCatalogItem", 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.CreateCatalogItem : string * string * string * bool * byte[] * ReportService2010.Property[] * Warning[] -> ReportService2010.CatalogItem
Public Function CreateCatalogItem (ItemType As String, Name As String, Parent As String, Overwrite As Boolean, Definition As Byte(), Properties As Property(), ByRef Warnings As Warning()) As CatalogItem

Параметры

ItemType
String

Тип элемента.

Name
String

Имя нового элемента, включая расширение файла в режиме интеграции с SharePoint.

Parent
String

Полный URL-адрес родительской папки, в которой будет содержаться элемент.

Overwrite
Boolean

Выражение типа Boolean, которое показывает, следует ли перезаписывать существующий элемент в указанном расположении в случае совпадения имен.

Definition
Byte[]

RDL-файл определения отчета, определение модели отчета или содержимое ресурса для публикации на сервере отчетов.

Properties
Property[]

Массив объектов Property, который содержит имена и значения свойств, задаваемых для элемента.

Warnings
Warning[]

[out] Массив объектов Warning, который описывает все предупреждения, полученные при проверке определения отчета.

Возвращаемое значение

Объект CatalogItem для вновь созданного элемента.

Атрибуты

Примеры

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  

Комментарии

В следующей таблице показаны сведения о заголовках и разрешениях для этой операции.

Использование заголовков SOAP (In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue
Необходимые разрешения в собственном режиме Зависит от типа элемента:

- Report
Создание нового отчета: CreateReport on Parent AND ReadProperties on the report's data sources AND ReadProperties on the report's datasets
Обновление существующего отчета: UpdateReportDefinition для Item (если Properties содержит свойства) И UpdateProperties в ItemUpdateProperties и в источниках данных отчета И UpdateProperties в наборах данных отчета
- DataSet
Создание нового общего набора данных: CreateReport в Parent И ReadProperties в источниках данных набора данных
Обновление существующего общего набора данных: UpdateReportDefinition on Item AND UpdateProperties on Item (если Properties содержит свойства) AND UpdateProperties в источниках данных набора данных.
- Resource, Component:
Создание нового элемента: CreateResource в Parent
Обновление существующего элемента: UpdateContent в Item
Обновление свойств элемента: UpdateContent И UpdateProperties в Item
- DataSource:
Создание нового источника данных: CreateDatasourceParent
Обновление существующего источника данных: UpdateContent
Обновление свойств источника данных: UpdateContent AND UpdateProperties
- Model: CreateModel
Необходимые разрешения в режиме SharePoint Зависит от типа элемента:

- Report
Создание нового отчета: <xref:Microsoft.SharePoint.SPBasePermissions.AddListItems> on Parent AND <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> для источников данных и наборов данных, определенных в Definition
Обновление существующего отчета: <xref:Microsoft.SharePoint.SPBasePermissions.EditListItems> on Item AND on data <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> sources and datasets defined in Definition AND <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> on Item (если Properties содержит свойства)
- DataSet
Создание нового общего набора данных: <xref:Microsoft.SharePoint.SPBasePermissions.AddListItems> в Parent И <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> в источниках данных, определенных в Definition
Обновление существующего общего набора данных: <xref:Microsoft.SharePoint.SPBasePermissions.EditListItems> в Item И <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> в источниках данных, определенных в Definition<xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> ( Item если Properties содержит свойства)
- Resource, DataSource, Component:
Создание нового элемента: <xref:Microsoft.SharePoint.SPBasePermissions.AddListItems> в Parent
Обновление существующего элемента: <xref:Microsoft.SharePoint.SPBasePermissions.EditListItems> в Item
- Model: <xref:Microsoft.SharePoint.SPBasePermissions.AddListItems> в Parent

Этот метод может создавать элементы всех поддерживаемых типов элементов. Чтобы узнать, какие типы элементов поддерживаются, используйте ListItemTypes метод .

Тип Model элемента не может быть перезаписан. Поэтому параметр должен иметь значение False , Overwrite если ItemType имеет значение Model. В противном случае создается исключение rsInvalidParameterCombination .

Если ItemType имеет значение Report, XML-данные определяются языком определения отчета. Если ItemType имеет значение Model, XML-данные определяются языком определения семантической модели.

При возникновении ошибок элемент не создается.

Добавление элемента в базу данных сервера отчетов или библиотеку ModifiedBy SharePoint изменяет свойства и ModifiedDate родительской папки.

Если из имени элемента исключается соответствующее расширение имени файла (например, RDL- файл), rsFileExtensionRequired возвращается ошибка.

Длина Parent параметра не может превышать 260 символов. В противном случае создается исключение SOAP с кодом ошибки rsItemLengthExceededed.

Параметр Parent не может быть пустым или иметь значение NULL или содержать следующие зарезервированные символы: : ? ; @ & = + $ , \ * > < | . ". Символ косой черты (/) можно использовать для разделения элементов в полном пути к папке, но его нельзя использовать в конце имени папки.

Применяется к