De programacion y otros demonios

miércoles, 16 de junio de 2010

SSIS - Paso a paso package como datasource para Reporting Services

Y quien querría hacer algo asi ?....   imagina este escenario: tienes varios reportes que tus usuarios finales autonomamente ejecutan pero que requieren cierta manipulación de los datos, como la que proveen los paquetes SSIS por ej. el componente lookup, envío de correo, conexion por ftp etc. 

La solución que propongo es:  crear un paquete SSIS que lea de la base de datos la información, haga los calculos y tareas que se requieran y por último estos datos sirvan de entrada al reporte. :) facil ah? solo sigue estos pasos.

 1. Debemos habilitarle al reporting services la opción de permitir como data source un SSIS:

    a). Debemos activar la opción en el diseñador de reportes BIDS.
Si tienes una instalación por default, ve al directorio "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies", abre con Wordpad el archivo "RSReportDesigner.config", aqui es donde le decimos al BIDS que liste SSIS como datasource.  Busca la palabra SSIS y descomentarea esta línea (quitar el al final):



Vuelve a buscar y descomentarea esta otra linea:





     b) Ahora tambien debemos modificar el archivo de configuración del reportServer.
Si tienes una instalación por default, en el mismo directorio del punto anterior, y abre con wordpad el archivo "RSReportServer.config". Busca la palabra SSIS y descomentarea esta linea:




    c) Por si acaso, reinicia el servicio de Reporting Services


 
2.  Crea el paquete SSIS como lo requieras, lo importante aquí es que en el flujo de datos, estos deben terminar con una DataReader Destination, en mi caso lo he llamado  DataReaderDest

El nombre es muy importante pues así mismo lo llamaremos en el DataSet del reporting services.

Graba el paquete, en mi caso "C:\SSIS\test_datareaderDest.dtsx"


 
3.  Ahora vamos a crear el reporte.

    a.) Crea un data source con conexion embebida de tipo SSIS; esto pues solo nos servirá para ejecutar esta paquete, entonces no vale crearlo como Shared.




    b) En el Connection String pulsa el boton expression, debe quedarte algo parecido a la imagen, te voy a explicar.



Para ejecutar los paquetes SSIS estos deben quedar guardados como archivos dtsx en tu disco duro, y es por esta razón que el Reporting Services y el SSIS deben estar instalados en el mismo server pues no se pueden colocar rutas de red como string de conexion.

El -f es para indicarle al comando dtexec la ubicación del paquete en el disco duro, este comando es quien en realidad se esta ejecutando en el RS (reporting services), el /Set para los que no sepan es para indicar el paso de variables al paquete por línea de comandos.  Puedes googlear y leer mas sobre esto.

Mi reporte tiene un parametro que ingresa el usuario que es la fecha (llamado fecha_ini), así que debo pasarsela a mi paquete SSIS, se la asigno a la variable fecha (definida dentro de mi paquete, y llamada así). 

Observa que en esta expresion todo esta dentro de una cadena "" excepto el valor del parametro fecha del reporte Parameters!fecha_ini.value

Presiona el botón OK, y ahora ve al tab de Credentials y selecciona la opción "Do not use credentials". Guarda el datasource.

   
c).  Crea un DataSet que use el datasource creado en el paso anterior, y cuyo query sea el nombre del DataReader del paquete SSIS que creaste.








Ingresa a "Fields" y agregas los campos de tu consulta, en mi caso solo hay uno llamado resultado, como muestra la imagen.


Ahora ya puedes usar estos campos en la vista de Diseño de tu reporte.

Etiquetas:

1 comentarios:

  • buenas, realice todo lo que esta aqui documentado en el framework 2.0 de Visual Studio y cuando trate de mostrar el reporte me aparece el siguiente mensaje:

    A procedure imported by 'DTEParseMgd, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc910'could not be loaded.

    Apreciaria tu ayuda que he buscado y no he podido darle solución.

    De Anonymous Anónimo, A las 3 de marzo de 2011, 7:07  

Publicar un comentario



<< Inicio