Imagen para determinar la altura de la cabecera
Other Blogs
There are no items in this list.
Our Blogs > Español > BICorner
Primer vistazo a Performance Point Services

 

Un paseo rápido por Performance Point Services buscando diferencias con la versión 2007

Desde el punto de vista de arquitectura el cambio es grande, no tanto si lo vemos desde el punto de vista de funcionalidad.

clip_image002

Diagrama de despliegue de arquitectura de Performance Point Services. Absolutamente integrado en SharePoint 2010.

Para llegar de forma rápida a lanzar Dashboard Designer me he creado un colección de sitos con la plantilla de Business Intelligence Center, lo que me permite disparar el instalador de Dashboard Designer por primera vez, aun estoy buscando el equivalente a la pagina central donde se podía hacer la distribución de Dashboard Designer y el acceso directo a la página de Preview, no localizo el sitio de Preview, seguirá existiendo?

clip_image004

Look & Feel  muy similares a la versión 2007, la Jerarquía de objetos de la solución también, los orígenes de datos permanecen, excepto AS 2000 y ODBC tal como se anuncia, echo de menos BW SAP 3.x (Fue un sueño que duró poco).

En la cinta home hay una opción nueva para importar elementos de un Dashboard existente, el nuevo formato del Dashboard ahora se almacena en extensión *.ddwx, he localizado bastante ayuda sobre como migrar soluciones y objetos existentes en PPS Monitoring 2007, pero no para las basadas en OWC 2003, lógico ya que estaban marcadas para morir…, tampoco veo el análisis de tendencia, pero si un “KPI details” que no conocía en los informes.

clip_image006

clip_image008

Al crear un nuevo Scorecard, tengo opción de ponerlo en distintas listas de SPS 2010

clip_image010

Por el resto de cosas por donde he pasado tiene un aspecto muy similar a como estaba, claro pero ahora embebido completamente en SPS2010 con todo lo que eso implica a nivel de seguridad y de control de versionado, de seguridad de acceso a orígenes de datos Etc.

Finalmente la opción de despliegue es muy parecida a la versión anterior.

clip_image012

Despliegue realizado y Dashboard listo para consumir desde Webparts.

También he visto algunos cambios en las propiedades de la columna del actual y target en el Scorecard

clip_image014

Las propiedades de conexión al servidor siguen en el mismo sitio, pero ahora ya sin posibilidad de gestionar los roles de seguridad de servidor, estos se han ido a SharePoint.

clip_image016

Seguiremos buscando novedades que contar.

Más información en:

http://technet.microsoft.com/es-es/library/ee661741(office.14).aspx

Como usar el calendario contra consultas MDX en SSRS

En base a mi experiencia he visto que uno de los tipos de parámetro más utilizado en la mayoría de los informes es el calendario. Es raro encontrar un informe que no tenga un o varios parámetros para identificar un rango o un momento en el tiempo que identifique los datos a mostrar por los informes.

Cuando el informe está atacando al motor relacional, utilizar el valor devuelto por el parámetro calendario es automático, podemos utilizarlo directamente contra las columnas datetime que se utilizan en nuestra consulta relacional, sin embargo, cuando el informe está utilizando una consulta MDX su uso se complica algo más.

En el siguiente ejemplo, vemos como se ha definido a través del asistente un filtro basado en la dimensión tiempo y que se modificará a través de parámetros en el informe.

Ilustración 1 - Identificación de parametros en el asistente

Al marcar los check-boxes que identifican el filtro como parámetro veremos que por cada uno de los parámetros que se definen, se crea automáticamente:

  1. Un dataset oculto en el informe que devuelve el conjunto de miembros de la dimensión utilizada para filtrar por cada uno de los parámetros.
  2. Un parámetro en el informe que utiliza el dataset para mostrar la jerarquía de tiempo al usuario.

Ilustración 2 - Arbol de objetos en el area de datos del informe

Cuando la dimensión es el tiempo dicho dataset devuelve el rango de fechas que tengamos cargados en nuestra dimensión visualizado en el árbol jerárquico que se haya definido. Esta solución, aunque válida desde el punto de vista técnico, presenta varios problemas; Por un lado no suele agradar al usuario final y por otro puede provocar problemas de rendimiento si tenemos un rango de fechas muy grande cargado en la dimensión tiempo. Estos dos problemas se pueden resolver fácilmente si la clave de la dimensión tiempo está basada en una clave inteligente, es decir, la clave de cada registro en la dimensión tiempo identifica de forma visual la fecha del registro y no es un mero índice incremental (la clave del registro es un entero que representa la concatenación del año, el mes y el dia con el formato yyyymmdd).

Si nuestra dimensión sigue esta regla ya estamos preparados para utilizar parámetros datetime en el informe y podremos seguir los siguientes pasos para su correcta implementación:

  1. Eliminar el dataset que ha creado SSRS para evitar que se ejecute y se produzca una demora en la presentación del informe al usuario. (datasets FromDateCalendar y ToDateCalendar que aparecen en la Ilustración 2)
  2. Editar el parámetro para indicar que no utilice ningún dataset como fuente de origen a la vez que indicamos que el parámetro es de tipo datetime.
  3. Editar los parámetros del dataset principal (AsistenciasSanitarias en nuestro ejemplo) para que utilicen una expresión que identifique el miembro de la dimensión tiempo asociado a la fecha seleccionado por el usuario. En nuestro ejemplo las expresión quedan como sigue:

Parameter Value para el Parámetro FromDateCalendar:

="[Date].[Calendar].[Date].&[" + year(Parameters!FromDateCalendar.Value).ToString + month(Parameters!FromDateCalendar.Value).ToString("00") + day(Parameters!FromDateCalendar.Value).ToString("00") + "]"

 

Parameter Value para el Parámetro ToDateCalendar:

="[Date].[Calendar].[Date].&[" + year(Parameters!ToDateCalendar.Value).ToString + month(Parameters!ToDateCalendar.Value).ToString("00") + day(Parameters!ToDateCalendar.Value).ToString("00") + "]"

 

Una vez seguidos estos pasos, la experiencia del usuario se habrá incrementado drásticamente al poder utilizar el control calendario (Ilustración 4) para poder filtrar los datos que desea visualizar en lugar de tener que navegar por una lista de fechas (Ilustración 3).

Ilustración 3 - Navegación por miembros de la dimensión

Ilustración 4 - Control calendario

 

Podéis ver un video explicativo (está en inglés) a través de este enlace

mms://solidq.com/Using%20Date%20control%20in%20SSRS%20with%20MDX%20datasets.wmv

Democratizando BI (3/3)

Hay una serie de nuevas fórmulas que se han incorporado a Excel 2007 que nos permiten acceder a valores almacenados en el cubo directamente y mostrarlos en la celda. Lo que simplifica el acceso a valores concretos del cubo sin la necesidad de conocer el lenguaje MDX.

 

Funciones de cubo:

  • CUBEKPIMEMBER (MIEMBROKPICUBO)
  • CUBEMEMBER (MIEMBROCUBO)
  • CUBEMEMBERPROPERTY (PROPIEDADMIEMBROCUBO)
  • CUBERANKEDMEMBER (MIEMBRORANGOCUBO)
  • CUBESET (CONJUNTOCUBO)
  • CUBESETCOUNT (RECUENTOCONJUNTOCUBO)
  • CUBEVALUE (VALORCUBO)

    Hay que tener en cuenta, que como con cualquier fórmula de Excel, el propio nombre de la función ha sido traducido al idioma en el que tengamos el producto, en la relación anterior aparece tanto el nombre en español como el nombre en inglés.

Además, como en cualquier otra fórmula, le podemos pasar como parámetros referencias a otras celdas, para que puedan ser usadas de una forma más flexible.

Veamos un ejemplo, supongamos que queremos obtener un informe de las ventas realizadas en Francia y Alemania, para ello necesitaremos acceder al cubo, a la dimensión Geografía, a obtener los miembros Francia y Alemania, y la medida Cantidad de Ventas por Internet, tal y como se ve en la figura 4.

En la figura se puede apreciar que utilizamos la fórmula VALORCUBO para acceder a la medida indicada. Para acceder a los miembros utilizaremos, en las celdas donde aparece el país, la función MIEMBROCUBO

=MIEMBROCUBO("Adventureworsk UDM";"[Customer].[Customer Geography].[Country].&[France]")

Otra posibilidad es crear una tabla dinámica y posteriormente convertirla en fórmulas utilizando las herramientas OLAP, en concreto, la opción Convertir en fórmulas, mostrada en la figura 5.

Con ello habremos generado una serie de fórmulas sin necesidad de haberlas escrito directamente, y podremos aplicar todo lo visto anteriormente sobre su uso.

Y por último, no nos podemos olvidar de las posibilidades que nos ofrece Excel en cuanto a gráficos dinámicos. Todo el dinamismo que hemos visto, también es aplicable en la creación de gráficos.

Como hemos podido comprobar, disponemos de una potente herramienta analítica, totalmente integrada con nuestro servidor de Analysis Services, con la que además ya estamos familiarizados desde hace años, que ahora dispone de una gran flexibilidad para gestionar y analizar la información.

Democratizando BI (2/3)

Microsoft Excel 2007

Aunque como hemos visto, en Visio tenemos alguna funcionalidad que nos permite interactuar con aplicaciones de Inteligencia de Negocio, la herramienta integrada por excelencia es Excel 2007. Esta sí que nos permite aprovechar una gran cantidad de definiciones que realizamos en el servidor, de forma totalmente integrada y transparente para el usuario, que unidas a su nueva y potente interfaz gráfica, nos permiten presentar la información de una forma muy sencilla y amigable (a la que ya estamos acostumbrados con las herramientas de Office), con una gran calidad, aprovechando las nuevas característica incorporadas, tanto a nivel de cliente como de servidor.

En la figura 3 tenemos un ejemplo en el que se muestra varias tablas dinámicas, un gráfico dinámico, y sus correspondientes listas de campos.

Como se puede apreciar, en las tablas dinámicas conectadas a Analysis Services también podemos seguir utilizando las nuevas galerías de diseño, con todo lo que nos aporta a nivel de tablas, de celdas y de formatos condicionales. A nivel de tablas y gráficos tenemos una amplia variedad de formatos prediseñados que podemos aplicar.

Veamos ahora con más detalle la interfaz gráfica y cómo cada uno de sus componentes permite al usuario interactuar con el servidor.

En el nuevo componente de tabla dinámica tenemos disponible un nuevo panel de drag & drop, que nos permite usar todos los elementos (medidas, dimensiones, KPIs,…) de una forma mucho más organizada e intuitiva, teniendo además carpetas para ir organizando los diferentes atributos de las dimensiones.

Para entender mejor esta nueva organización es conveniente revisar los siguientes elementos:

Medidas y grupos de medidas: podemos crear grupos de medidas para mostrar diferentes conjuntos de cifras de negocio.

KPI (indicadores clave de rendimiento): podemos utilizar los KPI definidos en el servidor (valor, objetivo, meta, tendencia), simplemente arrastrándolos sobre el área de valores de la tabla dinámica, como si una medida se tratase, visualizando el valor numérico o gráfico definido en el servidor.

Dimensiones: podemos ver las diferentes dimensiones enumeradas, y elegir entre sus atributos y jerarquías (sencillas de explorar), organizados de forma intuitiva en carpetas, facilitando así su navegación. Cuando seleccionamos una jerarquía realmente estamos seleccionando todos sus niveles, que serán mostrados de forma agrupada y con la posibilidad de ser desplegados con más o menos nivel de detalles, según se desee.

Ámbitos de vista: podemos centrar la información en diferentes ámbitos de vista, lo que nos permite ver sólo información relativa a lo que estemos analizando, seleccionando un grupo de medidas y viendo sólo la información relacionada con dicho grupo.

Perspectivas: tenemos la posibilidad de definir perspectivas a nivel de servidor, que simplemente son subconjuntos de elementos de un cubo, y a la hora de seleccionar el origen de datos podremos elegir una perspectiva o un cubo. Si elegimos una perspectiva sólo tendremos disponibles ese subconjunto de datos, lo que facilita al usuario la localización de la información que necesita, ya que no se muestra el gran número de elementos que pueda tener el cubo.

En cuanto a la presentación de los datos, podemos realizar drilldrown dentro de la misma columna (así evitamos que se extienda excesivamente el uso de columnas cada vez que desplegamos en un miembro).

Soporta interactividad mediante acciones que nos permiten, por ejemplo, pulsar el botón secundario del ratón sobre una celda y desde allí acceder a un informe de Reporting Services para ampliar o desglosar la información allí mostrada, hacer drill-throug (obtención de detalles) para, por ejemplo, saber con mucho más detalle de donde proviene la fila que estamos mostrando. Imaginemos que estamos viendo las cifras de ventas de un artículo realizadas por un comercial en el primer trimestre del año, es fácil que queramos en algún momento ver un listado detallado de cada una de esas ventas, con esta técnica lo conseguimos en un par de clics.

Si nos posicionamos sobre cualquier miembro, tenemos la posibilidad de que se nos muestre en un tooltip el valor de cada uno de sus elementos, por ejemplo, si nos posicionamos sobre un artículo podremos ver el valor de todos sus atributos (marca, modelo, precio, etc.).

Disponemos de una potente herramienta de filtrado a nivel de jerarquías, que además de la potencia ya conocida de los filtros estándar a nivel de datos, nos permite filtrar miembros por propiedades de un objeto, y mostrar y ocultar elementos. Por ejemplo, sobre un informe de ventas, podemos filtrar los artículos de color rojo.

Democratizando BI (1/3)

Seguro que muchas veces has escuchado este término, utilizado por muchos fabricantes y gurús del Business Intelligence. Incluso algunos de ellos, fundamentalmente Microsoft, basan su apuesta en este mercado alrededor de este término, que probablemente sea la raíz del vocablo Gestión del Rendimiento (¿os suena este otro? J), o al menos eso postula Howard Dresner, a quien se le atribuye la "creación" del término Business Intelligence. Pero, ¿Qué es realmente la Democratización de BI en el mundo Microsoft? Básicamente se trata de acercar la potencia y funcionalidad de las soluciones de Inteligencia de Negocio al usuario final, y obviamente ahí Microsoft lleva ventaja, puesto que dispone de la suite ofimática más implantada del mercado, Microsoft Office. En este artículo veremos las posibilidades que un usuario final tiene de utilizar aplicaciones de Inteligencia de Negocio a través de las herramientas con las que está acostumbrado a trabajar diariamente.

Tal y como comentábamos al comienzo, la apuesta de Microsoft en este entorno es muy clara. Aprovechemos toda nuestra base instalada de herramientas de productividad personal para incorporarles capacidades de Inteligencia de Negocio y que la curva de aprendizaje de los usuarios en el momento de acercarse a este mundo se reduzca drásticamente.

Integración de Office 2007 en una solución BI

A continuación vamos a ver con detalle las posibilidades que nos ofrece Microsoft Office 2007 para gestionar datos de soluciones de BI, almacenados en SQL Server Analysis Services 2005 (conocidos frecuentemente como "cubos OLAP"). Las herramientas que permiten esta integración son Visio y Excel.

Veamos a continuación los beneficios más destacados de esta integración:

  • Podemos personalizar para cada usuario la información, dando sólo acceso a nivel de servidor a los datos que esté autorizado a visualizar (gestionando roles), mostrándole sólo los datos que necesita (creando perspectivas), y en su idioma (mediante el uso de traducciones).
  • Ofrecer capacidad analítica mediante KPI's, cálculos, formatos condicionales y medidas que pueden ser expuestas directamente en tablas dinámicas, con un tiempo de respuesta inmediato.
  • Dispondremos de un solo modelo analítico, en el que tendremos consolidados los datos de diferentes fuentes, de forma centralizada, lo que nos permite tener una sola versión de la verdad.

Para que el usuario pueda disponer de muchas de las facilidades que tenemos, habrá que realizar ciertas definiciones a nivel de servidor, en Analysis Services. Por ejemplo, si al arrastrar una medida que es el cálculo de un porcentaje queremos que nos aparezca directamente en la celda, con un cierto formato (formato de porcentaje, si es menor que cero en rojo y si no en negro), de forma totalmente transparente para quien está usando la herramienta cliente.

Microsoft Office Visio 2007

Es fácil que nos preguntemos, ¿ y qué tiene que ver Visio con el acceso a datos analíticos ? pues vamos a explicarlo. Hay ocasiones en las que nos interesa representar los datos de forma jerárquica, bien basándonos en la estructura organizacional de la empresa, de un departamento, de nuestras sedes, o cualquier otro criterio. Para ello Visio nos ofrece los diagramas empresariales (business diagrams), que nos permiten representar gráficamente, por ejemplo, el organigrama de nuestra empresa. Seguro que en más de una ocasión hemos tenido que utilizar nuestra herramienta favorita para la representación de organigramas y plasmar allí datos obtenidos desde otras aplicaciones, simplemente utilizando la técnica de "copiar y pegar", para presentarlos en alguna reunión.

Ante esa situación, si utilizamos Microsoft Visio, podemos evitar ese engorroso trabajo, y acceder directamente a una base de datos de Analysis Services y obtener de ella los datos que necesitemos, para representarlos gráficamente en la herramienta. Nos podemos crear un diagrama dinámico (PivotDiagram), tal y como se muestre en la figura 1.

Se ejecutará un asistente que nos irá pidiendo los datos de conexión al servidor, que nos permite conectarnos a una de las siguientes fuentes de datos: Excel, Access, listas de Sharepoint, bases de datos de SQL Server, Analysis Services, y fuentes OLEDB u ODBC. En nuestro caso elegiremos Analysis Services, y una vez finalizado, ya disponemos de nuestro diagrama listo para ir colocando los datos que queramos representar. Para ello simplemente tenemos que arrastrar los datos a representar desde la ventana de Diagrama Dinámico, allí tenemos las medidas, dimensiones, atributos, etc… correspondientes al cubo al que nos hayamos conectado. Adicionalmente podemos añadir formas gráficas y elementos gráficos para representar los datos, y por supuesto realizar los retoques que consideremos oportunos como si de cualquier otro diagrama se tratase, tal como podemos ver en la figura 2.

Como se puede observar, hemos conseguido hacer un diagrama empresarial, representar en él datos de ventas de los empleados de diferentes departamentos, y realizar sobre él mejoras visuales aprovechando las características de Microsoft Visio. Adicionalmente, y debido a las definiciones a nivel de servidor, se puede observar que, por ejemplo, los importes los pone en euros sin necesidad de intervención del usuario, esto es debido a que en el servidor hemos configurado la presentación del dato como tipo Currency con dos decimales, y tenemos configurado Windows para que use la moneda euro.

Configurando Reporting Services 2008 en modo Integrado con MOSS

Instalación detallada de una Instancia de Reporting Services 2008 en modo integrado. El artículo se complementa con la configuración necesaria en MOSS para utilizar Report Builder 2.0 y en él también se explica cómo configurar una biblioteca de documentos para generar contenidos de tipo Informes, Orígenes de datos o Modelos de datos.

En primer lugar hacer una pequeña introducción muy resumida de cuales serán los pasos que vamos a seguir a muy alto nivel:

  1. Instalación de SharePoint technology.
  2. Instalar SQL Server 2008 Reporting Services +SP1 y especificar que el servidor de informes use modo integrado de SharePoint.
  3. Configurar Reporting Services.
  4. Descargar e instalar Reporting Services Add-in.
  5. Configurar el servidor de informes en la instancia de SharePoint technology.
  6. Establecemos los permisos.
  7. Verificar la instalación

Fuente: ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10rs_4deptrbl/html/06a737c5-5cd4-4d89-af0d-40d026ec9041.htm

 

El paso uno no lo detallo porque creo que queda fuera del ámbito de la guía que nos ocupa y esa parte de detalle haría generaría un documento excesivamente largo y pesado de seguir.

En el punto 2 he realizado una instalación de una segunda instancia de RS que configuro en modo integrado, la instalación de SQL Server Reporting Services tampoco la encontrareis detallada en el documento por las mismas razones expuestas para la de SharePoint y por que además es muy sencilla de realizar.

 

 

La configuración de una instancia de Reporting Services se realiza desde una herramienta propia de SQL Server de nombre Reporting Services Configuration Manager disponible en el grupo de programas de SQL Server 2008 en Configuration Tools, lo primero que nos pide al asistente es el nombre de la instancia a la que nos queremos conectar para configurarla.

 

 

 

Conexión a la instancia

 

A continuación y siguiendo el orden de los objetos que aparecen en el panel de la izquierda vamos configurando. En primer lugar especificamos un nombre para la URL del servicio WEB, debido a que en mi caso esta es la segunda instancia que instalo y configuro no dejo las opciones por defecto por que ya están siendo utilizadas por la instancia anterior. Entonces especifico el nombre de"ReportServer _RSINTEGRATED "

 

A continuación configuro la instancia que contendrá la base de del repositorio de objetos que generaremos en nuestro servidor de informes.

 

Configuramos nombre de la base de datos el lenguaje y si queremos modo integrado o nativo, en mi caso la base de datos se llama ReportServerIntegrated , que difiere del nombre propuesto por defecto porque ya lo estoy usando para otra instancia que tengo instalada.

 

Especificación de las credenciales que se usaran para conectar desde el servidor de informes a la base de datos del repositorio, en mi caso especifico una cuenta de sistema por tratarse de una demo, pero lo recomendable es usar una cuenta de dominio dedicada.

 

  

 

Por último veremos una ventana donde de forma resumida podremos repasar las opciones que hemos especificado antes de pulsar sobre siguiente para comenzar realmente con la configuración.

 

Fase final de configuración con el resumen de estado

 

 

A continuación configuramos la dirección URL del servicio de gestión de informes. En mi caso uso el siguiente nombre Reports_RSINTEGRATED.

 

Creación de la URL de gestión de informes

 

A continuación procedemos con el punto 4 descargar e instalar Reporting Services Add-in para Microsoft SharePoint Services, el componente está disponible en el link que se proporciona a continuación.

http://www.microsoft.com/downloads/details.aspx?FamilyID=200fd7b5-db7c-4b8c-a7dc-5efee6e19005&displaylang=en

Instalación del Add-in.

1

2

3

4

5

 

 

La finalización de la instalación se produce en un sexto paso donde terminamos , esta operación consume bastante tiempo, tanto que olvide tomar esa ultima captura.

Descargamos e instalamos también la última actualización de Report Builder 2.0 para el Reporting Services Add-in desde la siguiente URL (Ojo solo si tu instancia de RS está en versión SQL Server Reporting Services 2008)

http://www.microsoft.com/downloads/details.aspx?FamilyID=58edd0e4-255b-4361-bd1e-e530d5aab78f&displaylang=en

 

El siguiente paso el 5 de nuestra lista inicial de alto nivel consiste en configurar las opciones de MOSS para poder utilizar las capacidades de integración.

 

En primer lugar activamos la capacidad de integración a nivel de todos los sitios siguiendo estos pasos:

Start, click Herramientas Administrativas y SharePoint 3.0 Central Administration.

Click Site Actions.

Click Site Settings.

Click Site Collection Features.

Localizar Report Server Integration Feature en la lista y después activar.

Podéis encontrar más ayuda sobre esta configuración en el siguiente enlace de los libros en pantalla de SQL Server 2008 (BOL)

Link ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10sq_GetStart/html/c7f64a54-c555-4d31-bf99-3abe57dc8626.htm

 

Configurar elementos de integración desde SPS, aquí es donde especificamos la URL del servidor de informes, conexión a la base de datos y otras configuraciones que veremos en detalle.

 

En primer lugar pulsando sobre el enlace Manage Integration Settings marcado con un circulo bajo la sección Reporting Services y especificamos la dirección URL previamente configurada y elegimos uno de los modos de autenticación.

 

 

A continuación damos permisos de escritura en la sección Reporting Services apartado Grant Database Access y Proporcionamos una cuenta administrativa con permisos para realizar la operación

 

 

Establecemos los permisos sobre la base de datos mediante la opción Grant Database Access procediendo de la siguiente forma, hacemos clic en el enlace Grant Database Access de la sección Reporting Services y especificamos los valores de la base de datos e instancia solicitada y una cuenta con permisos para la configuración.

 

A continuación establecemos los valores predeterminados para la configuración de Reporting Services, en este apartado vamos a configurar el uso de Report Builder 2.0 en lugar de la versión predeterminada Report Builder 1.0, en la casilla Custom Report Builder Launch URL escribimos el valor: /_vti_bin/ReportBuilder/ReportBuilder_2_0_0_0.application

 

A continuación estaríamos en el último paso de nuestra lista de pasos iniciales el punto 7 verificaciones de la instalación, para verificar la instalación lo primero que haremos será configurar una biblioteca de documentos para que permita gestión de contenidos de tipo Reporting Services, para lo que procedemos de la siguiente forma:

 

Desde una biblioteca de documentos que designemos pulsamos sobre Library Settings

En el apartado de General Settings verificamos que podemos gestionar contenidos para la biblioteca

 

 

Permisos de gestión de contenidos habilitados

 

El siguiente paso consiste en añadir a la biblioteca los tipos de contenidos de Reporting Services que queremos incorporar a nuestra biblioteca, para esto en la ventana de Settings inicial buscamos la opción de add from existing Content Types en el apartado de Content Types.

En los tipos de contenidos disponibles elegimos el grupo Report Server Content Types, seleccionamos los tres disponibles y los incluimos pulsando sobre el botón Add.

Finalmente pulsamos Ok.

 

 

Finalmente para invocar Report Builder desde la biblioteca de documentos configurada navegamos a sitio que contiene la biblioteca abrimos la biblioteca en el menú nuevo hacemos clic sobre Report Builder Report.

 

A continuación se nos pedirá que confirmemos si queremos ejecutar la aplicación(Windows Vista y Windows Server 2008) Report Builder, pulsamos sobre Run (Ejecutar)

Por último después de unos instantes se ejecutará Report Builder 2.0 para que podamos comenzar a diseñar nuestros informes.

 

En definitiva se trata de una guía paso a paso con enlaces útiles para descargar las actualizaciones y Add-in necesarios, que espero resulte útil y ayude, aprovecho para avanzar que en un próximo artículo configuraremos Report Center para gestionar los informes y orígenes de datos de forma ordenada y veremos cómo implementar informes generados desde Visual Studio 2008 a nuestro Report Center en SharePoint.

SSIS Versatilidad escribiendo paquetes

 

Como ejemplo de la potencia  y flexibilidad que pueden proporcionar SSIS usando las expresiones he realizado un sencillo ejercicio que permite a un paquete padre ejecutar uno de 2 paquetes hijos (1 y 2) según el valor de una variable.  Es un sencillo ejemplo de cuanto de flexible puede llegar a ser un paquete usando expresiones para bifurcar la ejecución. Básicamente evaluamos una variable y si esta es igual a cero ejecuto Hijo 1 si es distinta de cero  ejecuto Hijo 2.

El resto se explica solo en este video demostrativo.

Ejecutando Paquetes de IS Dinamicamente
Bug en tablas dinámicas de Excel 2007

Excel 2007 es una gran herramienta para explorar y analizar los datos almacenados en Analysis Services, sin embargo, hay un pequeño bug que puede provocar confusiones en el análisis que los usuarios estén realizando cuando las dimensiones involucradas son dimensiones jugadoras de rol (role-playing dimensions).

Si utilizamos la base de datos de AdventureWorks como ejemplo, podemos ver que contiene varias dimensiones tiempo asociadas al mismo grupo de medidas. Seleccionando el grupo de medidas 'Internet Customers' quedan disponibles las dimensiones 'Delivery Date' y 'Ship Date'. Si el usuario quisiera realizar un análisis para ver la fecha de envio relacionada con la de recepción bastaría con arrastrar dichas dimensiones a la zona de filas para ver cómo están relacionadas.

Al hacer esto vemos como los dos elementos que quedan dentro de la zona de filas tienen el mismo nombre ¿Cómo saber qué fecha representa qué? Manualmente podemos renombrarlas para identificarlas, pero esta tarea se puede volver ardua cuando tenemos muchas dimensiones o ficheros Excel a manejar.

Podríamos pensar en cambiar el diseño de la tabla dinámica para que nos muestre en la cabecera el nombre del elemento. Sin embargo el resultado es el mismo, no somos capaces de identificar a que dimensión pertenecen los datos.

Para solventar esto he creado un add-in para Excel 2007 que nos permite renombrar los elementos utilizados hasta ese momento en la Pivot Table con la ruta completa. El add-in añade una opción más al menú contextual de la tabla dinámica para realizar dicha operación. Al seleccionar dicho menú las columnas y la zona de diseño quedará como sigue:

El add-in estará habilitado para descarga a través de la página de SolidQ. Os avisaremos en cuanto esté.

Despliegue de paquetes de Integration Services – Parte 5

Podemos utilizar el Agente de SQL Server para programar la ejecución de paquetes SSIS. Crearemos un nuevo trabajo (Job), y aplicaremos una programación para que se ejecute todas las noches a las 3:30AM.

Vamos a explicar con detalle cómo se realiza. Iremos al Agente SQL Server, y sobre la carpeta 'Trabajos', pulsaremos botón derecho y haremos clic en la opción 'Nuevo trabajo…'.

Figura 7. Nuevo trabajo en el Agente SQL Server

Nos aparece un formulario, en el menú 'General', introduciremos el nombre del paquete (en nuestro ejemplo 'Paquete Importar Empleados') y una descripción, para que quede mejor documentado.

En el menú 'Pasos', pulsaremos el botón 'Nuevo', daremos un nombre ('Paso Importar Empleados'), indicaremos que el del tipo 'Paquete SQL Server Integration Services', que se ejecutará con la cuenta del servicio SQL Server Agent. En la pestaña 'General' indicaremos el nombre y la ubicación del paquete.

Figura 8. Configuración del primer Paso, y único, de este trabajo.

En la pestaña 'Configuraciones' indicaremos la ruta de acceso a los archivos de configuración.

Figura 9. Pestaña Configuraciones.

Como podéis apreciar en la figura 9, hay otras muchas pestañas, pero por el momento, dejamos al lector la tarea de conocerlas e irse familiarizando más afondo con ellas.

Bien, ahora vamos a pasar a configurar la programación de la ejecución de dicho trabajo, iremos al menú 'Programaciones' y pulsaremos el botón 'Nueva' que aparece en la parte inferior. Allí tenemos un formulario muy completo, donde indicar con gran flexibilidad cuando se ejecutará dicho trabajo. En este caso lo vamos a programar, tal y como indicamos anteriormente, para que se ejecute todas las noches a las 3:30AM.

Figura 10. Programación del trabajo.

Ya tenemos nuestro trabajo en el servidor, preparado para ejecutarse automáticamente todas las noches.

Otra alternativa, a la hora de programar la ejecución del paquete, es hacer un archivo .bat que llame a la utilidad de línea de comandos DTEXEC y programar luego la ejecución del archivo de comandos (.bat). En circunstancias habituales, no recomiendo esta alternativa, sino la descrita anteriormente. Pero, hay ciertos casos, por ejemplo, para entornos de 64 bits donde hay que ejecutar paquetes de 32 bits, que es necesario recurrir a esta alternativa.

Damos por finalizada esta serie de posts, con este breve resumen:

Hemos creado un paquete SSIS, para facilitar su despliegue en diferentes entornos (desarrollo, pruebas, preproducción, producción), hemos almacenado la información susceptible de cambiar de forma externa al paquete, para evitar que el cambio de entorno implique la modificación del paquete. Simplemente tendremos que modificar el archivo XML, o las filas correspondientes en la tabla 'dbo.SSIS Configurations' de la base de datos 'Configuracion', en función de las características del nuevo entorno de ejecución. Hemos explicado las utilidades que tenemos para configurar y realizar el despliegue, y cómo hacerlo de forma manual. Finalmente, hemos explicado cómo ejecutar el paquete utilizando estas configuraciones externas, y como programarlo para que se ejecute periódicamente.

 

Acceso ODBC a fuentes de datos mediante Integration Services III

Conexión ODBC por código

Para nuestro ejemplo vamos a utilizar una tabla Cliente en el sistema origen con la siguiente estructura:

Nombre de columna

Tipo de datos

IdCliente

Integer

NombreCliente

Varchar(100)

Salario

Double

Edad

Smallint

FechaModificacion

DateTime

 

Una vez creada la conexión ODBC dentro del paquete, tal y como expliqué en el primer capítulo de esta serie, necesitamos añadir un objeto script dentro del flujo de datos. Automáticamente nos aparecerá una ventana donde determinamos que tipo de objeto vamos a crear: Fuente de datos, Destino o Transformación. En nuestro caso elegiremos Fuente de datos.

Cuando el objeto script está en el área de diseño del flujo de datos basta con que hagamos doble click sobre él para acceder al editor de propiedades y poder añadir cada uno de los elementos que necesitamos definir en nuestro objeto fuente.

Inicialmente vamos a generar los metadatos que representan el conjunto de datos a extraer de la fuente ODBC. Dentro de la sección Input and Ouput añadiremos las columnas necesarias dentro de la salida que viene predefinida. Para cada columna le daremos un nombre y especificaremos el tipo de datos que contiene. El tipo de datos ha de ser equivalente al tipo de datos en la tabla origen.

El siguiente paso será definir un gestor de conexiones que apuntará a nuestra conexión ODBC. Dicho gestor de conexión será utilizado internamente a través del código para poder abrir y manejar la fuente de datos.

En este punto ya solo tenemos que incluir el código que va a manejar la conexión ODBC para realizar la consulta y devolver la información a través del flujo de salida especificado. A continuación podemos ver un ejemplo de código a incluir dentro de este componente. Dentro de este script es importante que incluyamos la directiva system.data.odbc. Esta directiva nos dará acceso a la librería de manejo de conexiones ODBC.

    

' Microsoft SQL Server Integration Services user script component

' This is your new script component in Microsoft Visual Basic .NET

' ScriptMain is the entrypoint class for script components

 

Imports System

Imports System.Data

Imports System.Math

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

 

 

'Incluimos la directiva que nos permite utilizar los componentes necesarios para la conexión ODBC

Imports System.Data.Odbc

 

Public Class ScriptMain

Inherits UserComponent

 

' Se define el gestor de conexiones y el lector de datos que se va a utilizar internamente

Dim connMgr As IDTSConnectionManager90

Dim odbcConn As OdbcConnection

Dim odbcReader As OdbcDataReader

 

' Se sobreescribe el evento PreExecute para abrir la conexión y ejecutar el comando SQL correspondiente

Public Overrides Sub PreExecute()

 

Dim cmd As OdbcCommand

 

connMgr = Me.Connections.FuenteODBC

odbcConn = CType(connMgr.AcquireConnection(Nothing), OdbcConnection)

 

cmd = New OdbcCommand(Me.Variables.MiComandoSQL.ToString, odbcConn)

cmd.CommandTimeout = 0

odbcReader = cmd.ExecuteReader

 

End Sub

 

' Se sobreescribe el evento CreateNewOutputRows para recoger el resultado del comando SQL dentro del buffer

' de salida especificado manualmente a través de las propiedades

Public Overrides Sub CreateNewOutputRows()

Do While odbcReader.Read

With Output0Buffer

.AddRow()

.IdCliente = odbcReader.GetInt32(0)

.NombreCliente = odbcReader.GetString(1)

.Salario = odbcReader.GetDecimal(2)

 

' Podemos leer solo aquellas columnas que nos interesen para nuestro flujo de datos, en este caso

' no hemos leído la columna 3 del conjunto de datos devueltos por la fuente

.FechaModificado = odbcReader.GetDateTime(4)

End With

Loop

End Sub

 

End Class

 

 

 

 

 

1 - 10 Next

 ‭(Hidden)‬ Admin Links


¿Problemas técnicos? Contáctenos en webmaster@solidq.com o al 800 300 800 (desde España) o al +34 91 414 8950 (desde fuera de España)