Uso de SQL Server 2005 Reporting Services con SAP NetWeaver Business Intelligence

**
**

Autor: Richard Mao, Simba Technologies

En esta página
IntroducciónIntroducción
Requisitos previosRequisitos previos
Información general de la instalaciónInformación general de la instalación
Términos y conceptos en SAP NetWeaver BITérminos y conceptos en SAP NetWeaver BI
Consejos y trucosConsejos y trucos
Detalles técnicosDetalles técnicos
Solución de problemasSolución de problemas
ConclusiónConclusión

Introducción

Gracias a un completo modelo de extensibilidad, las características de creación e implementación de informes de SQL Server Reporting Services 2005 se pueden integrar con tantos orígenes de datos de inteligencia empresarial como se desee. Con el fin de responder a la necesidad de una herramienta de informes enriquecida para SAP NetWeaver BI y eliminar las carencias existentes entre estas dos potentes plataformas de inteligencia empresarial, Microsoft ha desarrollado un proveedor de datos y un diseñador de consultas de .NET para SAP NetWeaver Business Intelligence. Los usuarios de SAP BW ya se pueden beneficiar de las capacidades de informe flexibles y fáciles de usar de Reporting Services sin necesidad de migrar los datos a otra plataforma. La creación de informes se realiza en el conocido y fácil de usar Business Intelligence Development Studio mediante un diseñador de consultas personalizado para el usuario y la implementación es un proceso sencillo de un solo paso que considera como la plataforma de informe a la Web. La distribución de informes es ahora tan sencilla como distribuir un hipervínculo. Nunca ha sido tan fácil hacer llegar la inteligencia empresarial de SAP a aquellos que la necesitan.

Principio de la páginaPrincipio de la página

Requisitos previos

Para usar el proveedor, se deben instalar los siguientes componentes:

Microsoft SQL Server Reporting Services 2005 Service Pack 1

Microsoft .NET Framework 2.0

El proveedor se ha desarrollado y probado para SAP BW 3.5. Sin embargo, el proveedor debe ser también compatible con los servidores BW 3.1 y BW 3.0B que se han revisado conforme a un nivel adecuado de Service Pack, descrito más adelante.

Support Package 30 para SAP BW 3.0B

Support Package 24 para SAP BW 3.1

Support Package 16 para SAP BW 3.5

Support Package 6 para SAP NetWeaver 2004s (BW 7.0)

La sección Solución de problemas describe algunos de los problemas conocidos al usar el proveedor en un servidor BW que no alcanza el nivel adecuado de Service Pack.

Principio de la páginaPrincipio de la página

Información general de la instalación

Los ensamblados requeridos para usar el proveedor se instalan junto con el Service Pack 1 (SP1) en dos ubicaciones individuales: una ubicación para el entorno de diseño (Business Intelligence Development Studio) y otra para el entorno de tiempo de ejecución (Report Server). La instalación de SP1 copia los archivos en las ubicaciones correspondientes para cada entorno instalado. La instalación se ejecuta en ambas ubicaciones si los entornos de tiempo de ejecución y de diseño están en el mismo equipo. Si sólo se dispone de uno de los entornos al instalar SP1 pero el otro se instala posteriormente, debe volver a ejecutar la instalación de SP1 para instalar los ensamblados requeridos para el nuevo entorno agregado.

Después de instalar el proveedor, debe registrarlo en los entornos para los que se usará. Para el entorno de diseño, debe modificar el archivo RSReportDesigner.config, ubicado en <unidad>:\Archivos de programa\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies. Para el entorno de tiempo de ejecución, debe modificar el archivo RSReportServer.config, ubicado en <unidad>:\Archivos de programa\Microsoft SQL Server\MSSQL.n\Reporting Services\ReportServer. Consulte los Libros en pantalla de SQL Server 2005 Service Pack 1 (en inglés) para obtener detalles sobre la configuración.

Principio de la páginaPrincipio de la página

Términos y conceptos en SAP NetWeaver BI

La terminología y conceptos de la base de datos multidimensional de SAP BW son parecidos a la terminología de SQL Server Analysis Services (SSAS), aunque no son idénticos. Estas pequeñas diferencias precisan una explicación antes de proseguir.

Objetos de metadatos

Algunos términos de SAP BW para los objetos de metadatos de expresiones multidimensionales (MDX) coinciden exactamente con la terminología de SSAS. Así, los miembros (members) son miembros, los niveles (levels) son niveles y las jerarquías (hierarchies) son jerarquías. Sin embargo, existen diferencias suficientes para confundir al lego en la materia. Por ejemplo, en el universo de SAP BW, las dimensiones (dimensions) son denominadas características (characteristics). Las características pueden pertenecer a una agrupación lógica, que en el sistema de SAP BW se denomina Dimensión (Dimension), aunque esta agrupación no se expone en la vista de OLAP y no se manipula a través de MDX. Por lo tanto, para los usuarios de MDX, las características (characteristics) de SAP BW equivalen a las dimensiones (dimensions) de MDX. Otra diferencia notable en la nomenclatura se refiere a las medidas del cubo. En el universo de SAP BW, se suele hacer referencia a las medidas (measures) como cifras clave (key figures). Aunque, por lo general, se pueden considerar equivalentes, el analizador de sintaxis de MDX de SAP MDX las denomina medidas (measures). En este artículo técnico se usa la terminología de SAP BW en la mayor proporción posible.

QueryCubes e InfoProviders

SAP BW incluye Business Explorer Analyzer (abreviado normalmente como “BEx Analyzer”) como herramienta de informes y Business Explorer Query Designer como herramienta de creación de informes. Los objetos de datos de SAP BW de los que se puede informar se denominan InfoProviders. Para generar una consulta a partir de un InfoProvider, antes de poder ver la información en BEx Analyzer, se usa Business Explorer Query Designer. La consulta representa varios subconjuntos del InfoProvider creados a partir del mismo y conserva la estructura multidimensional. También se suele hacer referencia a una consulta como QueryCube.

El proveedor Microsoft .NET Data Provider 1.0 para SAP NetWeaver BI se comunica con SAP BW mediante la especificación XML para Analysis (XML/A), que directamente pone a disposición varios InfoProviders. XML/A proporciona acceso directo a QueryCubes y también a InfoCubes y MultiProviders. InfoCubes es la estructura de datos multidimensional nativa en SAP BW. MultiProviders son InfoProviders que consolidan datos de múltiples InfoProviders. No se puede tener acceso directo a los objetos ODS desde XML/A; para usar un objeto ODS, debe crear un QueryCube en dicho objeto. También se debe configurar QueryCube para tener acceso desde XML/A.

Los InfoProviders a los que se tiene acceso directo tienen siempre un nombre de cubo que comienza con el carácter del signo del dólar ($): por ejemplo, $0D_DECU. Los nombres de QueryCube están siempre compuestos por el InfoProvider a partir del que se crearon, seguido por una barra diagonal y el nombre de la consulta. Por ejemplo, una consulta QUERYCUBE1 creada a partir de InfoCube $0D_DECU, se denominaría [0D_DECU/QUERYCUBE1].

En el sistema de SAP BW, el concepto OLAP de un catálogo corresponde al InfoProvider primario para QueryCubes. Es decir, un QueryCube pertenece siempre a un catálogo denominado a partir del InfoProvider primario. En el ejemplo anterior, el QueryCube [0D_DECU/QUERYCUBE1] pertenecería a un catálogo denominado 0D_DECU. Los InfoProviders sin procesar a los que se tiene acceso directo y que no presentan un InfoProvider primario se agrupan en un pseudocatálogo denominado $INFOCUBES. Esta jerarquía se refleja en el cuadro de diálogo Selección de cubo del diseñador de consultas, como se muestra en la figura 4. El cuadro de diálogo muestra los nombres descriptivos de cubos y catálogos; los nombres técnicos se muestran en información sobre herramientas y se puede ver colocando el ratón sobre el nombre descriptivo.

Cuadro de diálogo Selección de cubo

Figura 1: cuadro de diálogo Selección de cubo.
Ver imagen en tamaño completo

Variables

Las variables de SAP son una forma de crear parámetros de un QueryCube similar a la característica de parámetro de Analysis Services 2005. Ambas permiten la creación de parámetros de los resultados de consultas de MDX al margen de la sintaxis de MDX estándar. Los parámetros de Analysis Services funcionan mediante la creación de parámetros de las consultas de MDX, mientras que las variables de SAP crean parámetros de QueryCube. Esto da lugar a algunas diferencias importantes:

Las variables de SAP se definen en el origen de datos del QueryCube. Puede definir las variables mediante BEx Query Designer. Analysis Services 2005 no requiere configurar el servidor para habilitar parámetros.

Puesto que las variables de SAP sólo pueden existir en QueryCubes, sólo se pueden crear parámetros de las consultas en QueryCubes. No es posible crear parámetros de las consultas en InfoProviders. Por el contrario, los parámetros de Analysis Services se agregan directamente a las consultas de MDX mediante el signo de arroba (@) reservado para los nombres de variables; por lo tanto, no existen límites en los cubos para los que se pueden crear consultas con parámetros.

Los valores de las variables de SAP se especifican en una cláusula de propiedad de MDX anexada a la consulta original. Los valores de parámetro de Analysis Services se pasan individualmente desde la consulta de MDX y se evalúan en el servidor.

Microsoft .NET Data Provider 1.0 para SAP NetWeaver BI asigna las variables a parámetros de consulta. El proveedor toma el valor de parámetro especificado por el usuario y modifica la consulta para asignar dicho valor a la variable correspondiente.

Al abrir un QueryCube para el que se ha definido una variable, se habilita el cuadro de diálogo Variables. Este cuadro de diálogo enumera en una lista todas las variables definidas y le permite asignar un valor predeterminado a cada variable. Al asignar un valor a una variable, el proveedor genera automáticamente el parámetro de informe correspondiente. Sin embargo, a diferencia de la característica de parámetro de Analysis Services, no se genera una lista de los valores disponibles para el parámetro de informe. Para definir manualmente una lista de valores, siga las instrucciones de la sección Rellenar los valores de parámetro del informe de este artículo.

Se admiten varios tipos de variable. El cuadro de diálogo Variables ofrece un control de selección diferente para cada tipo de variable.

Tabla 1: Cuadro de diálogo Variables
Tipo de variableDescripciónIconoControl de selección

Variables de jerarquía

Las variables de jerarquía aceptan las jerarquías como valores válidos. Los valores de la variable de jerarquía pueden afectar al cálculo de las variables de salida de cliente que usan dichos valores.

Icono 1

Cuadro de lista de jerarquía:

Cuadro de lista de jerarquía

Variables de fórmula

Las variables de fórmula se usan para que influyan en las cifras clave calculadas. Las variables de fórmula aceptan los valores numéricos usados en los cálculos.

Icono 2

Cuadro de texto:

Cuadro de texto

Variables de miembro (valor único)

Se pueden asignar valores a las variables de miembro del conjunto de miembros de una dimensión. Si la jerarquía primaria de la variable de miembro es la jerarquía predeterminada, se considera como una variable característica. Si la jerarquía primaria de la variable es una de las jerarquías alternativas, se considera como una variable de nodo de jerarquía. Las variables de miembro pueden admitir a los miembros de la jerarquía primaria como válidos. Para las variables de nodo de jerarquía, esto incluye todos los nodos que no son hojas.

El uso de una variable de miembro tiene el mismo efecto que especificar un miembro para el eje de corte de la consulta de MDX.

Icono 3

Vista de árbol de selección única:

Vista de árbol de selección única

Variables de miembro (valor múltiple):

Las variables de miembro de valor múltiple son las mismas que las variables de miembro, con la diferencia de que pueden aceptar uno o varios valores.

Icono 4

Vista de árbol de selección múltiple:

Vista de árbol de selección múltiple

Variables de miembro (valor de intervalo):

Las variables de miembro de valor de intervalo son las mismas que las variables de miembro, la diferencia es que pueden aceptar un intervalo de valores. Si el segundo valor es menor que el primero, el intervalo seleccionado estará vacío.

Icono 5

Vista de árbol de intervalo:

Vista de árbol de intervalo

Nota: el cuadro de diálogo Variables trata de enumerar en una lista todos los valores posibles para una variable determinada. Si se crea una variable a partir de una jerarquía muy grande, la recuperación de la lista de valores requerirá mucho tiempo. Si el número de valores es muy grande, el cuadro de diálogo no rellenará la lista y, en su lugar, abrirá un cuadro de texto para que escriba manualmente un valor para la variable.

Principio de la páginaPrincipio de la página

Consejos y trucos

Esta sección explica algunas técnicas para trabajar con características de Microsoft .NET Data Provider 1.0 para SAP NetWeaver Business Intelligence.

Prueba del proveedor XML/A para SAP BW  con Internet Explorer

Una forma rápida de comprobar que el proveedor XML/A para SAP BW se ha configurado correctamente y que se tiene acceso a los datos de SAP es a través del uso de Internet Explorer para abrir la URL del proveedor XML/A. Si la conexión al proveedor es correcta, debería ver las descripción XML del servicio web, como en la figura 2.

Prueba del proveedor XML/A para SAP BW mediante Internet Explorer

Figura 2: prueba del proveedor XML/A para SAP BW mediante Internet Explorer.
Ver imagen en tamaño completo

Habilitación de QueryCube para el acceso XML/A

Para que un QueryCube sea visible en la interfaz XML/A para SAP BW, éste debe estar configurado para habilitar el acceso externo (desde fuera de BW). Siga los pasos siguientes para habilitar el acceso remoto al QueryCube:

1.

Abra el BEx Query Designer.

2.

En el cuadro de diálogo Query Properties, haga clic en la ficha Extended.

3.

Active la casilla de verificación Allow External Access to this Query y, a continuación, haga clic en OK.

Configuración de un QueryCube para acceso externo

Figura 3: configuración de un QueryCube para acceso externo.
Ver imagen en tamaño completo

Especificación de parámetros de inicio de sesión adicionales en SAP (cliente e idioma)

SAP BW puede aceptar un número de cliente y un idioma como parámetros de inicio de sesión. Para especificar estos parámetros en el origen de datos, puede incrustarlos directamente en su URL de conexión, como se muestra en este ejemplo:

Data Source=http://sap8:8000/sap/bw/xml/soap/xmla?sap-client= 100&sap-language=EN

Si no especifica el número de cliente o el idioma, el servidor usará los valores predeterminados que se configuraron en el servidor. El parámetro sap-language puede aceptar una especificación de idioma de SAP de un carácter o una especificación de idioma ISO 639 de dos caracteres.

Nota: SAP BW también permite que se envíen credenciales mediante los parámetros sap-user y sap-password en la URL. Sin embargo, no debe configurar los conjuntos de datos para pasar credenciales al servidor mediante este método porque la cadena se almacenará sin cifrar en el archivo de informe (.RDL).

Configuración del sistema para establecer comunicaciones seguras

Se recomienda encarecidamente el uso de las conexiones SSL para todas las comunicaciones que se establecen entre Reporting Services y un servidor SAP BW. Si desea usar SSL, el servidor SAP BW debe estar configurado para aceptar conexiones HTTPS y se debe usar “https” en la cadena de conexión para el origen de datos.

Nota: el servidor web SAP configura de forma predeterminada las conexiones SSL para que usen un puerto distinto al de las conexiones que no sean SSL. Compruebe que haya especificado el número de puerto correcto para SSL en la cadena de conexión.

Todos los equipos que usen origen de datos SSL deben tener instalado un certificado de cliente. Aquí se incluyen el servidor de informes y los equipos que los autores de informes usan para diseñar informes mediante Reporting Services en Business Intelligence Development Studio. Los usuarios de informes que tienen acceso a los mismos mediante la Web no necesitan tener instalado un certificado SAP BW. Para instalar un certificado en el equipo cliente, siga estos pasos:

1.

Abra Internet Explorer y escriba la URL que dirija al servicio SSL de XML/A del servidor SAP BW. Por ejemplo, https://sap8:8000/sap/bw/xml/soap/xmla.

2.

Haga clic en Ir a para tener acceso al sitio que aloja este servicio web. Si no se ha instalado un certificado, aparece el cuadro de diálogo Alerta de seguridad.

3.

En el cuadro de diálogo Alerta de seguridad, haga clic en Ver certificado.

4.

En el cuadro de diálogo Certificado, haga clic en la ficha General y, a continuación, en Instalar certificado.

5.

Siga los pasos indicados por el Asistente para importación de certificados. Se suelen aceptar las opciones predeterminadas.

Después de instalar el certificado, el equipo debe tener acceso al origen de datos SSL.

Depuración de red y compresión de transporte

A veces resulta útil examinar las comunicaciones XML sin procesar mediante un rastreador de red o un analizador de protocolo. Para deshabilitar la compresión de transporte de modo que se pueda leer la especificación XML, agregue este par clave-valor a la cadena de conexión: Transport Compression=None. Cuando realice este tipo de prueba, normalmente necesitará usar una conexión que no sea SSL; por lo tanto, compruebe que está en una red segura o que inició sesión mediante una cuenta que tiene los privilegios requeridos mínimos.

Depuración de MDX en el sistema SAP BW

Los usuarios avanzados pueden estar interesados en probar las consultas de MDX sin procesar directamente en el sistema SAP BW. Esto resulta muy útil en caso de que la consulta no se ejecute correctamente. Ejecutar directamente la consulta en el servidor puede ayudar a aislar el origen del problema. Al usar la interfaz gráfica de usuario de SAP, use la transacción MDXTEST para ver el editor de MDX que le permitirá ejecutar consultas de MDX sin procesar y ver los resultados. Esto evita la interfaz XML/A y envía las consultas de MDX directamente al servidor.

Trabajo con propiedades

Al agregar un nodo a una consulta, el generador de consultas crea una instrucción de MDX que solicita la propiedad predeterminada (la que se ve en la vista previa de datos) y algunas propiedades adicionales más. Para las cifras clave, la propiedad predeterminada es el valor numérico sin procesar; sin embargo, también está disponible el valor con formato, así como la representación de la cadena con formato. Para los miembros de dimensión, la propiedad predeterminada es el título descriptivo, aunque también puede usar la propiedad de un solo nombre del miembro.

Las propiedades de celda siguientes están disponibles para las cifras clave:

VALUE (predeterminada)

FORMATTED_VALUE

FORMAT_STRING

BACK_COLOR

FORE_COLOR

Las propiedades de metadatos siguientes están disponibles para las dimensiones:

MEMBER_CAPTION (predeterminada)

MEMBER_UNIQUE_NAME

Cuando dispone el orden los campos de un informe en la ficha de diseño del diseñador de informes, puede incluir un campo en el informe arrastrándolo hasta la superficie de diseño. La propiedad Valor del campo se agrega al informe de forma predeterminada. Para usar alguna de las otras propiedades, puede editar la expresión del cuadro de texto para hacer referencia a ella mediante la sintaxis Fields!FieldName.PropertyName, como se muestra en la figura 4.

Especificación de propiedades alternativas durante el diseño de informe

Figura 4: especificación de propiedades alternativas durante el diseño de informe.
Ver imagen en tamaño completo

Además de las propiedades mencionadas anteriormente, algunas dimensiones presentan propiedades adicionales específicas que se definen en SAP BW. Estas propiedades adicionales se presentan como nodos de la carpeta Propiedades de miembro en la vista de árbol de metadatos. Para que estas propiedades estén disponibles en un informe, arrastre el nodo a la superficie de diseño. La figura 5 muestra el diseñador de consultas después de agregar la propiedad Nombre del grupo Material a la consulta.

Inclusión de una propiedad de miembro en una consulta

Figura 5: inclusión de una propiedad de miembro en una consulta.
Ver imagen en tamaño completo

Para usar la propiedad que se acaba de agregar al informe, modifique la expresión en el cuadro de texto de la superficie de diseño con el fin de usar la sintaxis Fields!FieldName("PropertyName") como se muestra en la figura 6.

Especificación de una propiedad de miembro durante el diseño

Figura 6: Especificación de una propiedad de miembro durante el diseño.
Ver imagen en tamaño completo

También puede crear manualmente un campo para representar una de estas propiedades. Para ello, en el panel Conjuntos de datos, haga clic con el botón secundario en el conjunto de datos y, a continuación, haga clic en Agregar. En el cuadro de diálogo Agregar nuevo campo, escriba un nombre para el campo nuevo y seleccione la opción Campo calculado. Escriba una expresión que defina el campo en el cuadro de texto o haga clic en el botón Generador de expresiones para crear una expresión. En la figura 7 se muestra un campo que hace referencia a la misma propiedad que aparece en la figura 6, pero en la figura 7 se ha usado el nombre técnico en la definición del campo. Se puede tener acceso a una propiedad mediante el nombre descriptivo o el técnico.

Adición de un campo de propiedad nuevo

Figura 7: adición de un campo de propiedad nuevo.

Después de crear un campo, puede incluirlo en un informe si lo arrastra a la superficie del informe.

Asignación de valores de variable sin usar los parámetros de informe

Al asignar un valor a una variable, el generador de consultas crea parámetros del informe automáticamente según dicha variable. Puede que desee asignar un valor estático a la variable en un informe concreto, en lugar de facilitar al usuario del informe la posibilidad de cambiar el valor. Para ello, asigne un valor a la variable y, a continuación, abra el cuadro de diálogo Report Parameters y seleccione el parámetro de informe correspondiente. Seleccione la opción Interno para el parámetro de informe y, a continuación, seleccione la opción Permitir valor NULL, como se muestra en la figura 8. En el grupo de valores predeterminados, seleccione NULL como valor predeterminado. Haga clic en Aceptar para cerrar el cuadro de diálogo Report Parameters.

Al hacerlo, se deshabilita el parámetro de informe, lo que obliga a que se use el valor de variable que se especificó al principio cuando se creó la variable en el cuadro de diálogo Variables. El usuario no tendrá la opción de especificar un valor para este parámetro.

Deshabilitación de un parámetro de informe

Figura 8: deshabilitación de un parámetro de informe.
Ver imagen en tamaño completo

Rellenar los valores de parámetro del informe

Mediante los parámetros de informe de Reporting Services, podrá especificar un conjunto de valores del que los usuarios puedan elegir cuando se ejecute un informe. Resulta adecuado configurar una lista de valores posibles para los parámetros, porque facilitará notablemente el uso del informe para los usuarios. Puede escribir manualmente el conjunto de valores posibles para los parámetros mediante la opción No consultado, o bien, puede configurar el informe para que solicite al servidor una lista de los valores posibles. El procedimiento siguiente muestra la forma de rellenar una lista de valores mediante una consulta. Se da por hecho que está trabajando con un QueryCube que ya tiene una variable definida.

1.

Haga clic en Variables para abrir el cuadro de diálogo Variables.

2.

Asigne un valor predeterminado a la variable y, a continuación, haga clic en Aceptar. Esto genera el parámetro de informe correspondiente.

3.

En la lista desplegable Conjunto de datos, seleccione <Nuevo conjunto de datos…> para abrir el cuadro de diálogo Conjunto de datos.

4.

Seleccione el mismo origen de datos del conjunto de datos original. Otorgue un nombre descriptivo al conjunto de datos, como “VAR1_ParameterValues”.

5.

En el panel Metadatos, haga clic en el cubo que contiene la jerarquía primaria de la variable que está configurando. Normalmente es el mismo cubo que el de su conjunto de datos original.

6.

Arrastre la jerarquía primaria a la superficie Diseño.

7.

Haga clic en Actualizar campos para rellenar la lista de campos del conjunto de datos. Debe ver uno o varios campos que se corresponden con la jerarquía recién agregada. Los datos aparecen en el panel de conjuntos de datos debajo del conjunto de datos nuevo, como se muestra en la figura 9.

Creación de una consulta para un parámetro de informe

Figure 9: creación de una consulta para un parámetro de informe.
Ver imagen en tamaño completo

8.

Haga clic con el botón secundario en el conjunto de datos nuevo y, a continuación, en Agregar. De este modo creará un campo nuevo para cada miembro de la jerarquía que contenga el nombre único del miembro. Se asignarán las variables a los valores según los nombres técnicos de los miembros.

9.

En el cuadro de diálogo Agregar nuevo campo, especifique la propiedad UniqueName como el valor de campo calculado para el campo nuevo. Se muestra un ejemplo en la figura 10.

Creación de un campo de nombre único

Figure 10: creación de un campo de nombre único.

10.

En el menú Informe, seleccione Report Parameters para abrir el cuadro de diálogo Report Parameters.

11.

En la sección Valores disponibles, seleccione el conjunto de datos nuevo de la lista desplegable Conjunto de datos. En el cuadro de texto del campo Valor, seleccione el campo de nombre único que acaba de crear. En el campo Etiqueta, seleccione el nombre de campo original, como se muestra en la figura 11.

12.

Haga clic en Aceptar para cerrar el cuadro de diálogo.

Rellenar los valores disponibles desde un conjunto de datos

Figure 11: rellenar los valores disponibles desde un conjunto de datos.
Ver imagen en tamaño completo

El usuario del informe tiene ahora una lista desplegable rellenada con los valores posibles para el parámetro de informe. La figura 12 muestra la lista desplegable en la pantalla de vista previa de Business Intelligence Development Studio. La misma lista desplegable estará disponible para los usuarios cuando vean el informe.

Parámetro de informe rellenado con los valores de una consulta

Figura 12: parámetro de informe rellenado con los valores de una consulta.
Ver imagen en tamaño completo

Rellenar los parámetros con los valores de un nodo de jerarquía de varios niveles

En el procedimiento anterior, el conjunto de valores de parámetro de informe sólo se puede rellenar desde un campo del conjunto de datos. Sin embargo, en un conjunto de datos, los miembros de niveles distintos de una jerarquía aparecen siempre en columnas individuales y, por lo tanto, en campos individuales. Esto es consecuencia del algoritmo de simplificación definido en la especificación OLE DB para OLAP. ¿Cómo podemos entonces rellenar los valores para una variable con miembros de niveles diferentes de una jerarquía, si los valores de niveles diferentes siempre aparecen en campos individuales? En SAP BW, las variables del nodo de jerarquía pueden aceptar variables de cualquier nivel de la jerarquía.

La solución es modificar la instrucción de MDX, de forma que los valores “All” agregados desde el nivel primario se incluyan en la columna resultante y, a continuación, usar las funciones de Reporting Services para seleccionar el valor correcto. En esta sección, verá paso a paso el proceso para crear un conjunto de parámetros para una jerarquía de varios niveles.

Para asimilar bien esta técnica, debe comprender la función básica del algoritmo de simplificación. El algoritmo de simplificación, que tiene sólo en cuenta una propiedad de dimensión única y una jerarquía única en los ejes distintos del eje-0, indica la presencia de una columna para cada nivel de la jerarquía, desde la parte superior de la jerarquía en sentido descendente hasta el nivel más cercano a la hoja. Sin embargo, la consulta predeterminada generada por el diseñador de consultas al arrastrar una jerarquía al panel de diseño selecciona todos los miembros sólo a partir del nivel de hoja inferior. La instrucción de MDX siguiente representa la consulta predeterminada creada al arrastrar la jerarquía a la superficie de diseño:

SELECT 
NON EMPTY {[Measures].[1MEHY2C418T0QYBP2KX9KQBG6]} ON COLUMNS, 
NON EMPTY {[0D_COUNTRY                    PM_COUNTRY].[LEVEL02].ALLMEMBERS
} 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM [0D_PU_C01/ZD_PU_C01_VAR1] CELL PROPERTIES VALUE
        

Nota: a causa de un problema en la implementación de la propiedad XML/A ReturnCellProperty de SAP, debe hacer referencia al menos a una medida, aunque tenga intención de prescindir de estos valores.

En la consulta de ejemplo, el conjunto de resultados devuelto contiene una columna para cada nivel que no tenga el valor ALL de la jerarquía, en sentido descendente hasta el nivel inferior especificado, como se muestra en la figura 13.

Conjunto de resultados de una consulta de jerarquía predeterminada

Figura 13: conjunto de resultados de una consulta de jerarquía predeterminada.

Ahora, cambie a modo de MDX y modifique la consulta de modo que se incluyan todos los miembros definidos con “All”. En lugar de seleccionar sólo los miembros del nivel de hoja, modifique la instrucción MDX para seleccionar todos los miembros de la jerarquía completa.

SELECT 
NON EMPTY {[Measures].[1MEHY2C418T0QYBP2KX9KQBG6]} ON COLUMNS, 
NON EMPTY {[0D_COUNTRY                    PM_COUNTRY].ALLMEMBERS} 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM [0D_PU_C01/ZD_PU_C01_VAR1] CELL PROPERTIES VALUE
        

El conjunto de resultados de esta consulta se muestra en la figura 14. Las entradas vacías de la columna de hoja (PM_CountryLevel02) representan los miembros definidos con “All”, que son valores agregados al nivel primario. La primera fila, que contiene dos de estas entradas vacías, es el miembro ALL para la jerarquía completa. La segunda fila contiene EUROPE en la primera columna y una entrada vacía en la columna de hoja; es el miembro que representa “All” para Europa. La sexta fila contiene AMERICA en la primera columna y una entrada vacía en la columna de hoja; representa “All” para América. Este conjunto de datos nos ofrece una fila aparte para los miembros de la jerarquía que se deseen poner a disposición como valores posibles para la variable de nodo de jerarquía.

Conjunto de resultados que incluye los miembros All

Figura 14: conjunto de resultados que incluye los miembros All

A continuación, crearemos algunos campos que consolidarán toda la información requerida. En primer lugar, cree un campo de etiqueta.

1.

Haga clic con el botón secundario en el conjunto de datos de parámetro de la ventana de conjunto de datos y, a continuación, haga clic en Agregar.

2.

En el cuadro de diálogo Agregar campo, escriba un nombre descriptivo para el campo: por ejemplo, PM_COUNTRY_Parameter_Labels.

3.

Seleccione la opción Campo calculado.

4.

Haga clic en el botón Generador de expresiones en el cuadro de texto Valor con el fin de crear una expresión que seleccione el valor de la columna del segundo nivel si no está vacía y en caso de que lo esté, el valor de la columna del primer nivel. Para ello, use la función IIf de Reporting Services:

=IIf(Fields!PM_Country_Level_02.Value = "",
Fields!PM_Country_Level_01.Value, Fields!PM_Country_Level_02.Value)

5.

Haga clic en Aceptar.

6.

Siga los pasos 1-3 para crear un campo que consolide todos los nombres únicos para el campo Valor.

7.

En el cuadro de texto Valor, escriba la siguiente fórmula:

=IIf(Fields!PM_Country_Level_02.Value = "",
Fields!PM_Country_Level_01.UniqueName,
Fields!PM_Country_Level_02.UniqueName)

8.

Abra el cuadro de diálogo Report Parameter.

9.

En el grupo de valores disponibles, asigne el campo Valor y el campo Etiqueta a estos campos compuestos, como se muestra en la figura 15.

Asignación de valores de parámetro de informe mediante campos consolidados

Figura 15: asignación de valores de parámetro de informe mediante campos consolidados.
Ver imagen en tamaño completo

El usuario del informe puede ahora seleccionar valores de niveles distintos de la jerarquía. Por ejemplo, en la figura 16, la lista desplegable contiene nodos del nivel de continente (EUROPE, AMERICA) y nodos del nivel de país (Germany, France, USA).

Lista de selección de parámetros de niveles individuales de una jerarquía

Figura 16: lista de selección de parámetros de niveles individuales de una jerarquía.
Ver imagen en tamaño completo

Puede propagar este método a una jerarquía con más niveles. Para ello, en la expresión de campo calculado, anide instrucciones IIf múltiples para cubrir los niveles que le interesan.

Este método se puede aplicar cuando desee que la lista de selección incluya todos los niveles en sentido descendente hasta el nivel de hoja. Sin embargo, si sólo desea las selecciones de algunos niveles superiores, debe modificar la instrucción MDX; en caso contrario, la lista de selección contendrá valores por duplicado. En lugar de seleccionar todos los miembros de la dimensión completa, use la función DRILLDOWNLEVEL de MDX para obtener los detalles del nivel deseado. Comience por el nivel superior en el que tenga interés y descienda para obtener los detalles hasta el nivel inferior deseado. El ejemplo siguiente de una instrucción MDX muestra cómo obtener los detalles desde el primer nivel dos veces, para conocer todos los miembros del primer al tercer nivel en sentido descendente.

SELECT 
NON EMPTY {[Measures].[57FQA4HFVVTQPYLPVV4RP673N] } ON COLUMNS, 
NON EMPTY {DRILLDOWNLEVEL(DRILLDOWNLEVEL([0D_DBSIC1
BRANCHE SIC_HIERARCHIE].[LEVEL01].ALLMEMBERS))} 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM [0D_DX_C02/Z_DX_TEST] CELL PROPERTIES VALUE
	

El conjunto de filas resultante es similar al de la figura 17.

Conjunto de resultados de una consulta para la obtención de detalles en sentido descendente

Figura 17: conjunto de resultados de una consulta para la obtención de detalles en sentido descendente.
Ver imagen en tamaño completo

Ahora puede definir los campos calculados en el informe para consolidar los valores de las distintas columnas mediante la técnica descrita anteriormente.

Especificación de los intervalos de valores a través de Report Parameters

Como se ha descrito en la sección Variables, puede crear variables que tomen valores múltiples o que tomen un intervalo de valores. Las variables definidas como variables interval pueden aceptar un especificador de intervalos como valor. En un especificador de intervalos, se define un valor superior e inferior; todos los valores comprendidos en ese intervalo se usan automáticamente como valores en la consulta. Si desea que el usuario pueda especificar un intervalo de valores, también debe especificar que el parámetro del informe es un parámetro multivalor. Para crear un parámetro multivalor, en el cuadro de diálogo Report Parameters, seleccione la opción Multi-value.

Si el proveedor recibe valores múltiples para una variable que se ha definido como una variable de intervalo, tomará los dos primeros valores como los especificadores de intervalo superior e inferior respectivamente. Si el proveedor recibe un único valor, sólo éste se pasará a la variable.

Si desea definir una variable como variable de intervalo, abra el SAP BW Variables Wizard o el BEx Query Designer. En el cuadro de diálogo SAP BW Variables Editor, seleccione Interval como el valor en la lista Variable Represents.

Nota: otro tipo de variable, la variable Selection Option, puede aceptar cualquier combinación de intervalos múltiples y valores únicos. De momento, el usuario no puede especificar un valor de variable complejo mediante Microsoft .NET Data Provider 1.0 para SAP NetWeaver Business Intelligence. Si se especifican valores múltiples para este tipo de variable, se considerarán siempre como valores únicos múltiples, no como especificadores de intervalo.

Principio de la páginaPrincipio de la página

Detalles técnicos

En esta sección se explican algunos detalles técnicos de Microsoft .NET Data Provider 1.0 para SAP NetWeaver Business Intelligence.

XML para Analysis y SAP BW

El proveedor Microsoft .NET Data Provider 1.0 para SAP NetWeaver BI establece una comunicación con los servidores de SAP BW mediante el protocolo XML para Analysis 1.1 (XML/A). XML/A es un XML estándar para el procesamiento analítico en línea (OLAP) que usa protocolos estándar de Internet. XML/A se generó en la especificación OLE DB para OLAP (ODBO) y, por lo tanto, contiene muchas interfaces, estructuras y conceptos similares. La compatibilidad con XML/A está generada en SAP BW, aunque se debe configurar un servidor determinado para usar esta característica.

Conjuntos de filas acoplados y propiedades de celda

Reporting Services procesa todos los datos procedentes del conjunto de filas acoplado de los resultados, lo que proporciona muchas mejoras en el rendimiento gracias a la forma en que se procesan los conjuntos de filas. El algoritmo original para generar un conjunto de filas acoplado se definió en la especificación ODBO. Sin embargo, el algoritmo no era compatible con las propiedades de celda. La especificación no aclaraba qué propiedad de celda se debía devolver para las cifras clave y era básicamente cada implementador quien debía decidir qué valor correcto devolver. En los proveedores ODBO para SAP y XML/A original para SAP BW, el conjunto de filas acoplado devuelve el valor de cadena con formato para cada cifra clave. Como en el SAP BW Service Pack 16, el proveedor XML/A es compatible con una nueva propiedad XML/A denominada ReturnCellProperties. Microsoft .NET Data Provider 1.0 para SAP NetWeaver BI establece esta propiedad en verdadero, lo que provoca que el proveedor XML/A para SAP BW procese la cláusula MDX CELL PROPERTIES y devuelva todas las propiedades enumeradas. Los nombres de la columna de cifras clave están formados por la cifra clave concatenada con el nombre de la propiedad. Si se está estableciendo conexión con un servidor SAP BW que pertenece a un nivel de revisión anterior a SP16, estas propiedades CELL adicionales no se procesarán; por lo tanto, sólo tendrá acceso al valor con formato de cada cifra clave. (Consulte la sección Solución de problemas para obtener más información sobre un tema relacionado).

Compresión de transporte

El formato basado en caracteres XML facilita la lectura pero puede dar lugar a un uso elevado del ancho de banda de red en comparación con los protocolos binarios. Afortunadamente, la naturaleza textual de XML lo convierte en un candidato ideal para la compresión. Microsoft .NET Data Provider 1.0 para SAP NetWeaver BI usa comprensión GZIP de forma predeterminada en las comunicaciones con el servidor SAP BW. Esto reduce significativamente el ancho de banda requerido y mejora notablemente el rendimiento. Puede deshabilitar la compresión de transporte como se ha descrito anteriormente en la sección Depuración de red y compresión de transporte.

Seguridad de la autenticación

Microsoft .NET Data Provider 1.0 para SAP NetWeaver BI transmite información de credenciales mediante la autenticación básica HTTP. Por lo tanto, se recomienda encarecidamente usar sólo conexiones SSL seguras para las comunicaciones con el servidor SAP BW. Para obtener más información sobre cómo configurar el servidor de informes y los equipos clientes para usar SSL, haga clic aquí para consultar la sección Consejos y trucos.

Principio de la páginaPrincipio de la página

Solución de problemas

Al intentar ver un informe, el servidor de informes muestra este mensaje:
“Se ha intentado utilizar una extensión de datos 'SAPBW' que no está registrada en este servidor de informes.”

Este error indica que el servidor de informes no se ha configurado correctamente. Consulte la sección Información general de la instalación para obtener más información sobre el registro del proveedor con el servidor de informes.

La vista de árbol de metadatos muestra un nodo de error con el mensaje siguiente:
“Error al recuperar nodos secundarios: Guid debe contener 32 dígitos con 4 guiones (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).”

Este es un problema habitual en los servidores SAP BW 3.5 del nivel de Service Pack 15 (referencia de nota en SAP: 893807). para solucionar este problema, actualice el servidor SAP BW al nivel de Service Pack 16 o posterior.

No puedo realizar operaciones aritméticas en los datos de cifras clave porque los valores se devuelven en cadenas con formato.

La propiedad ReturnCellProperties de XML/A permite especificar el formato de los datos de la celda mediante la cláusula CELL PROPERTIES de MDX. La compatibilidad con esta propiedad se agregó en el nivel de Service Pack 16 (referencia de nota en SAP: 895234). después de instalar este Service Pack, los valores predeterminados devueltos a la extensión son valores numéricos sin formato. Sin embargo, aún puede tener acceso a la propiedad de valores con formato mediante el método FormattedValue en Reporting Services.

Las consultas que hacen referencia a dimensiones múltiples no se ejecutan correctamente en el servidor.

Existe un problema conocido con BW3.5 SP11 y SP12 que provoca que el servidor procese los cross-joins en una memoria sin resultados. Por lo tanto, las consultas con cross-joins grandes pueden producir un error cuando se agota la memoria del servidor. Este problema se ha solucionado a partir de SP13 (referencia de nota en SAP: 836849).

en modo de MDX, la consulta tiene al menos un eje y el primer eje contiene un conjunto vacío. Sin embargo, muestra el mensaje de error “No se puede preparar la consulta: La consulta debe tener como mínimo un eje. El primer eje de la consulta no debe tener múltiples jerarquías ni debe hacer referencia a otra dimensión que no sea la dimensión Medidas."

Esto se debe a un problema con la forma en que SAP BW administra las consultas que no hacen referencia a la dimensión Medidas. Es probable que este problema se solucione en un Service Pack futuro. De momento, haga siempre referencia a una medida, como mínimo, en el primer eje.

Principio de la páginaPrincipio de la página

Conclusión

Este artículo técnico ha ofrecido una visión amplia de las características del nuevo proveedor Microsoft .NET Data Provider 1.0 para SAP NetWeaver Business Intelligence. El artículo presenta instrucciones paso a paso sobre el uso del proveedor con Reporting Services en Business Intelligence Development Studio, para funcionalidades de informe básicas. En este artículo también se han ofrecido instrucciones detalladas sobre el uso de algunas características más avanzadas en SAP BW, como las variables de SAP. SQL Server Reporting Services tiene como objetivo ofrecer una solución para todas las necesidades relacionadas con los informes. Ahora esta solución abarca hasta los orígenes de datos de SAP NetWeaver BI.


Principio de la páginaPrincipio de la página