Establecer el espacio de nombres de elementos para el método GetProperties
Puede utilizar el encabezado SOAP ItemNamespaceHeader en Reporting Services para recuperar propiedades de elementos basadas en dos identificadores del elemento diferentes: la ruta de acceso completa o el identificador del elemento.
Al realizar una llamada al método GetProperties, normalmente pasa como argumento la ruta de acceso completa del elemento para el que desea recuperar las propiedades. Puede establecer el encabezado SOAP para que la llamada al método le permita utilizar GetProperties pasando el identificador del elemento como un identificador utilizando ItemNamespaceHeader.
El ejemplo de código siguiente recupera los valores de las propiedades de elementos basadas en el identificador del elemento.
[!NOTA]
De forma predeterminada, no necesita establecer un valor para ItemNamespaceHeader si pasa al método GetProperties el nombre de ruta de acceso completa como identificador del elemento.
Imports System
Imports System.Collections
Imports myNamespace.MyReferenceName
Class Sample
Sub Main()
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx"
Dim items() As CatalogItem
Try
' Need the ID property of items. Normally, you would already have
' this stored somewhere.
items = rs.ListChildren("/AdventureWorks Sample Reports", False)
' Set the item namespace header to be GUID-based
rs.ItemNamespaceHeaderValue = New ItemNamespaceHeader()
rs.ItemNamespaceHeaderValue.ItemNamespace = ItemNamespaceEnum.GUIDBased
' Call GetProperties with item ID.
If Not (items Is Nothing) Then
Dim item As CatalogItem
For Each item In items
Dim properties As [Property]() = rs.GetProperties(item.ID, Nothing)
Dim property As [Property]
For Each property In properties
Console.WriteLine(([property].Name + ": " + [property].Value))
Next property
Console.WriteLine()
Next item
End If
Catch e As Exception
Console.WriteLine((e.Message + ": " + e.StackTrace))
End Try
End Sub 'Main
End Class 'Sample
using System;
using System.Collections;
using myNamespace.MyReferenceName;
class Sample
{
static void Main()
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx";
CatalogItem[] items;
try
{
// Need the ID property of items. Normally, you would already have
// this stored somewhere.
items = rs.ListChildren("/AdventureWorks Sample Reports", false);
// Set the item namespace header to be GUID-based
rs.ItemNamespaceHeaderValue = new ItemNamespaceHeader();
rs.ItemNamespaceHeaderValue.ItemNamespace = ItemNamespaceEnum.GUIDBased;
// Call GetProperties with item ID.
if (items != null)
{
foreach( CatalogItem item in items)
{
Property[] properties = rs.GetProperties(item.ID, null);
foreach (Property property in properties)
{
Console.WriteLine(property.Name + ": " + property.Value);
}
Console.WriteLine();
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Vea también