Blog del CIIN

Blog del Centro de Innovación en Integración de Cantabria

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

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

Como os comentaba en un post previo de BizTalk Server 2006 (BTS 2006), recientemente en el CIIN hemos preparado (mi compañero de batallas Anuar y yo) un pequeño piloto con el objetivo de mostrar algunas de las prestaciones  de esta plataforma para resolver problemáticas de negocio específica, las posibilidades de integración que ofrece, sus capacidades BMP (Business Process Management), y las facilidades que aporta a la hora de administrar y gestionar los diferentes procesos de negocio desplegados. En particular, en este post y el siguiente voy a comentar como BTS 2006 facilita el intercambio de datos entre aplicaciones de una organización (escenario EAI) o entre socios de negocio (escenario B2B) a través de un conjunto de adaptadores que proporcionan la conectividad necesaria para permitir estos intercambios de datos. En el ejemplo desarrollado, os mostraré como de un modo muy sencillo se pueden insertar datos en una BD SQL Server 2005, y luego extraerlos para su envío a una lista de WSS (esta parte la desarrollaré en la segunda parte del post). Empecemos.

¿Qué es un adaptador en BTS 2006?

Antes de meternos en materia, creo que no está de más entender que es un adaptador. De acuerdo a la documentación online de BTS 2006 (descargable aquí), un adaptador es un componente software que permite enviar y recibir datos encapsulados en mensajes XML a través de distintos mecanismos de transporte: SMTP, POP3, MSMQ, SQL, WSS, etc. y otros que habilitan integración nativa con aquellas aplicaciones que los utilicen de una modo estándar.  Además de los adaptadores que vienen por defecto con BTS 2006, existen otros que  han ido desarrollando desde la propia Microsoft como es el caso del adaptador Microsoft CRM, o por partners como el adaptador de Attunity para el entorno Natural-Adabas. Por supuesto, dado el carácter extensible de BTS 2006,  se pueden definir adaptadores personalizados y a medida para resolver problemáticas concretas.

Insertando datos en SQL Server 2005

Para insertar datos en una BD, lo primero que tenemos que es definir crear el documento XML de intercambio (en un ejemplo real, una aplicación o entidad de negocio nos entregaría este documento, y a través de BTS 2006 insertaríamos los datos en la BD SQL) que cumpla con la especificación de BTS 2006 para poder insertar datos en una BD SQL Server:

Como vemos en el esquema anterior, hay dos puntos clave:

·         Dentro del elemento raíz <ReqRoot>, el atributo xmlns:updg="urn:schemas -microsoft -com:xml -updategram"  que indica que vamos a realizar una operación de inserción de datos.

·         Los nodos hijos que identifican la tabla que vamos a actualizar y cuyos atributos coinciden con los campos de la tabla: <Facturas IDFactura="BL0213" FechaFactura="2000-10-24" />

Una forma de construir de manera automática el esquema que sigue el documento XML anterior es a través de la utilidad Add Generated Items que tenemos disponible para los proyectos de BTS 2005 en Visual Studio 2005. Esta utilidad nos permite generar esquemas XSD para ser utilizados en adaptadores de BTS 2006.

Esta opción nos permitirá definir estos esquemas para los adaptadores registrados (en nuestro caso, para el adaptador SQL). Como vemos en la siguiente figura, el wizard nos va guiando en las configuraciones necesarias para poder generar el correspondiente esquema XSD (especificar el servidor de BD SQL Server, la base de datos, etc.).

Los siguientes pasos en la configuración pasan por especificar el espacio de nombres para nuestro esquema y si lo vamos a utilizar en un puerto físico de recepción o de envío de BTS 2006. En este caso lo que queremos hacer es recoger un archivo XML y volcar su contenido en la BD, luego especificamos que el puerto sea de envío.

 

A continuación especificaremos que vamos a insertar los datos a través de una sentencia SQL (opción updategram), y finalmente la tabla de datos y las columnas a actualizar.  Llegado a este punto, hemos concluido el proceso de generación del XSD, que nos aparecerá en nuestra solución de BTS 2006. Sin más, a través de la opción Generate Instance, podemos crear un XML que cumpla el esquema XSD autogenerado.

Antes de seguir, seguro que os habréis dado cuenta de una limitación del wizard: sólo permite insertar datos en una tabla, mientras que el esquema XML de más arriba parece que permite insertar datos en múltiples tablas. A pesar de esta limitación, la idea de enseñaros este wizard es ver como generar el XSD que necesitaríamos y a partir de él ver la estructura del XML que lo cumple, para de esta manera deducir fácilmente como podemos modificar esa estructura para poder actualizar más de una tabla de la BD.

Una vez que ya tenemos el XML, tenemos que implementar en BTS 2006 el mecanismo de recogida del fichero XML de una carpeta local y el volcado de datos en la carpeta SQL Server.  Para ello, y a través de la BizTalk Administration Console, necesitamos definir:

·         Un puerto de recepción con la correspondiente ubicación de recepción que recogerá el archivo XML de la carpeta que especifiquemos (también podríamos definir que se recogieran los datos de una ubicación FTP, de un buzón POP3, etc.).

 

  • Un puerto de envío, que hemos e configurar para que se suscriba al puerto de recepción anterior e inserte los datos en la BD SQL Server. La parte de suscripción ya la vimos en un post previo, por lo que nos centraremos en las configuraciones necesarias para insertar los datos en la BD SQL Server. En este caso, cuando creemos el puerto de envío, especificamos que el tipo de transporte sea SQL y lo configuramos de manera adecuada.

Como veis, la configuración del transporte SQL es realmente sencilla. Sólo tenemos que especificar la cadena de conexión y el nombre del esquema que se va a utilizar en el intercambio de datos.

 

Probando la inserción

 

Sin más, para probar que la inserción de datos funciona correctamente colocamos un archivo XML en la carpeta especificada en la ubicación de recepción del puerto de recepción creado y a través del SQL Server Management Studio comprobamos que la inserción de datos se ha realizado tal y como esperábamos.

 

 

Bueno, pues hasta aquí la primera entrega de la integración de BTS 2006 con SQL Server. En el próximo post veréis como es todavía más sencillo extraer datos de SQL Server. Espero que el post os haya resultado interesante.

Published 18/1/2007 18:39 por Juan Carlos González Martín

Archivado en:
Comparte este post:

Comentarios

# re: BTS 2006: Integración con SQL Server (I)@ Thursday, January 18, 2007 7:19 PM

Hola Juan Carlos!

Espectacular artículo. Espero ávidamente la continuación, ya que Biztalk es una de las innumerables cosas que aún me faltan por aprender...

Augusto Ruiz

# re: BTS 2006: Integración con SQL Server (I)@ Thursday, January 18, 2007 9:36 PM

Hola Augusto!

Gracias por tus comentarios, espero en breve poner la parte II, y seguro que Anuar y yo iremos poniendo más cosillas de BizTalk por aqui porque parece que nos va a tocar "jugar" con él bastante en el futuro cercano. Un saludo

JC

Juan Carlos González Martín

# BTS 2006: Integración con SQL Server (II)@ Thursday, January 25, 2007 9:01 AM

En el post previo de BizTalk Server 2006 (BTS 2006) os comentaba las capacidades de integración de BTS

Blog del CIIN

# BTS 2006: Como manejar estructuras repetitivas en el esquema origen y en el esquema destino de un mapa de BizTalk@ Wednesday, February 28, 2007 4:02 PM

En un post anterior explicamos cómo crear estructuras repetitivas en el esquema destino de un mapa de

Blog del CIIN

# BTS 2006: Integrando con SQL Server y Servicio Web.@ Friday, March 23, 2007 2:43 PM

Siguiendo con las capacidades de integración de Biztalk Server 2006 (BTS 2006) que estamos probando en

Blog del CIIN

# re: BTS 2006: Integración con SQL Server (I)@ Tuesday, May 31, 2011 6:11 PM

The social bookmarking seo company will help you setting your Blog on very good place in the most of search engines. A lot of businessmen think about that.  

bookmarking services