jueves, 4 de diciembre de 2008

Suscribirse a multiples IDOCs en una misma ReceiveLocation ( Biztalk )

Tuve un asunto hace poco en mi trabajo en la que necesitaba suscribirme a mas de un IDOC de SAP y por una cuestión de orden y buenas practicas en la arquitectura del proyecto de EAI en el que estoy trabajando los IDOCs debían ser recepcionados por la misma receive location.
La solucion vino de la mano de un Groso y en este post trato de pasar en claro la forma en la que puede hacer andar esto y por supuesto configurarlo.
La idea es básicamente crear una Pipeline la cual se encargue de desensamblar los IDOCs que lleguen a una determinada receive location y posteriormente configurar la pipeline construida en la receive location que necesitamos realice el trabajo.

El primer paso seria como venimos hablando generar una nueva Pipeline.
Debido a que los esquemas que Biztalk genera cuando importamos la estructura del IDOC sera local en cada proyecto en el que se hizo la importación, pero publico para cualquier proyecto que referenecie voy a hacer de cuenta que los esquemas son importados en los proyectos en los que se encuentran las orquestaciones con lógica y la pipeline se desarrollara en un assembly aparte.

En definitiva los proyectos de Biztalk o assemblys que contendría los esquemas de los IDOCs se verían así en el caso del primero:

Y así para el caso del segundo (pueden ser la cantidad que uno quiera o necesite):








En la siguiente instancia toca construir la Pipeline que nos va a solucionar el problema, la misma podría estar en un assembly aparte, esto es porque sera necesario referenciar las proyectos anteriormente construidos. Resumiendo en tres pasos el proceso de construcción de este proyecto serian básicamente, construirlo, referenciar los assemblys que contienen los esquemas correspondientes a cada IDOC y agregar una Pipeline de recepción que "desensamble" el IDOC correspondiente. Para esto en la Pipeline deberemos agregar tanto shapes de Flat File Disassemble como esquemas de IDCOs tengamos referenciados y configurar en cada sahpe arrastrado un el esquema correspondiente.











En lo que respecta a desarrollo esto seria todo. Quedaría finalmente hacer deploy de nuestros assemblys en el servidor y configurar, que es por cierto la parte mas sencilla, simplemente al crear nuestra Receive Location creada para recibir los IDOCs informarle que debera utilizar la Pipeline creada y recientemente desplegada en nuestro server de la siguiente manera:




Eso seria todo, espero que pueda servirle.

Ariel Serlin

No hay comentarios: