martes, febrero 15, 2011

Procesamiento síncrono de ficheros

En alguna ocasión puede ser necesario configurar un escenario en el que de manera síncrona se procese un fichero de entrada desde un servicio externo y, como respuesta, éste devuelva un fichero de respuesta que se desee almacenar en el servidor local.

Un aspecto a tener en cuenta es que los adaptadores de ficheros no soportan los procesos síncronos, por lo que, para que funcione, existen dos posibles modos de configuración:
  1. A través de BPM
  2. Mediante módulos de configuración del propio canal de comunicación
En este caso abordaremos la segunda opción. En el wiki Using Request Response Bean Module in FILE Adapter se detalla un ejemplo en el que se consume un servicio de una BAPI en un servidor externo el cuál se alimenta de un fichero y devuelve otro. Este ejemplo se puede extrapolar a otros escenarios síncronos con web services o similar. Lo más importante de este artículo son los módulos (con los parámetros) que se deben incluir en el canal de comunicación de salida de fichero:
  1. AF_Modules/RequestResponseBean - Local Enterprise Bean - 1
  2. CallSapAdapter - Local Enterprise Bean - 2
  3. AF_Modules/ResponseOnewayBean - Local Enterprise Bean - 3
Parámetros:
  • 1 - passThrough - true
  • 3 - receiverChannel - <Receiver File Adapter Name>
  • 3 - receiverService - <Receiver Business Service / System>

Con esto, estaremos indicando el adaptador del fichero que está esperando por respuesta en la interfaz. No hay que olvidar que, para que el procesamiento funcione, las interfaces de mensajes (Message Interface) de entrada y salida del servicio externo deben ser síncronos. No confundir con el parámetro de calidad de servicio (QoS) del canal de fichero de envío, que deberá mantenerse en asíncrono ("Exactly Once").

Enlaces de referencia:

No hay comentarios: