BTS 2006: Integración con SQL Server (II)

En el post previo de BizTalk Server 2006 (BTS 2006) os comentaba las capacidades de integración de BTS 2006 gracias al conjunto de adaptadores de que dispone. Como vimos, insertar datos en una base de datos SQL Server es bastante sencillo si se construye adecuadamente el esquema XML de inserción de datos y se configuran los puertos de recepción y envío necesarios. En este post vamos a ver como aplicando la misma filosofía se pueden extraer los datos de una o varias tablas de SQL Server 2005 y volcarlos como archivos XML en una lista de WSS.


Pasos previos a la extracción de datos


Como paso previo a la extracción de datos, definiremos un procedimiento almacenado (SP) de SQL Server que realice la operación de obtención de los datos relativos a las facturas cargadas (ver post previo). Como veremos posteriormente, este procedimiento almacenado será ejecutado desde una  receive location asociada a un puerto de recepción.






if exists (select * from sysobjects where name=’ExtraerFacturas’ and type=’P’)


            drop proc ExtraerFacturas


go


CREATE procedure ExtraerFacturas


as


            begin


                        select F.IDFactura, F.FechaFactura, DF.TotalFactura


                                   from Facturas F


                                   left join Detalle_Factura DF on


                                   DF.IDFactura=F.IDFactura


                                   for XML AUTO,XMLData,Elements


            end


 


(Notas: Este ejemplo de SP es muy sencillo. Se podría haber definido un SP para escenarios más  complejos en los que se necesiten extraer los datos necesarios para construir un informe).


Configurando los puertos necesarios de BTS 2006


Una vez definido el SP de extracción de datos tenemos que implementar en BTS 2006 el mecanismo de ejecución de dicho SP y el volcado del resultado en una lista de WSSv3.  Para ello, y a través de la BizTalk Administration Console, tenemos que definir los siguientes elementos:


·         Un puerto de recepción con la correspondiente ubicación de recepción que se encargará de realizar la ejecución efectiva del SP. Veamos como configurar dicha ubicación de recepción. El tipo de transporte tiene que ser SQL, y en la configuración tenemos que especificar:


o   La cadena de conexión, que especificaremos a traves de la ventana de configuración correspondiente.


o   El elemento raíz del documento XML que se va a generar como consecuencia de la generación del SP.


o   El target namespace para el documento XML.


o   El comando SQL que vamos a ejecutar (nuestro SP).



Como vemos, además podríamos especificar el intervalo entre consultas.


·         Un puerto de envío, que hemos e configurar para que se suscriba al puerto de recepción anterior y vuelque los datos extraídos a una librería de documentos de WSS (Del mismo modo que enviamos los datos en WSS, los podríamos enviar a una cuenta de correo, otra BD SQL Server, un carpeta, una ubicación FTP, etc utilizando para ello los distintos adaptadores que nos ofrece BTS 2006). La parte de suscripción ya la vimos en un post previo de BTS 2006, por lo que nos centraremos en las configuraciones necesarias para subir los datos a WSS. En este caso, cuando creemos el puerto de envío, especificamos que el tipo de transporte sea WSS y lo configuramos de manera adecuada:


o   Destination Folder, que especifica el nombre de la librería de documentos de WSS dónde vamos a subir los resultados de nuestras consultas periódicas.


o   Filename, en el que especificamos %MessageId%.xml para que nos cree por  cada consulta un mensaje XML único.


o   SharePoint Site Url, en el que especificamos la url del sitio de WSS dónde vamos a subir las facturas.



Probando la extracción



Sin más, para probar que la extracción de datos funciona correctamente  habilitamos la ubicación de recepción SQL creada, iniciamos el puerto de envío y comprobamos que en la librería de documentos creada en WSS van apareciendo los documentos XML correspondientes a las ejecuciones del SP definido (en este caso dejamos el polling interval de 30 segundos que nos venía por defecto en la ubicación de recepción).



Después de refrescar el sitio de WSS:



Y este sería el contenido de uno de los archivos XML subidos:



Bueno, pues  aquí finaliza la serie de dos post de integración de BTS 2006 con SQL Server. Estad seguro de que publicaremos nuevas cosas conforme sigamos probando cosas de BTS 2006 en el CIIN. Espero que el post os haya resultado interesante.


 

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

2 comentarios en “BTS 2006: Integración con SQL Server (II)”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *