Recibir mensajes AS2

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Integración con AS2 >

Recibir mensajes AS2

Con FlowForce Server puede crear trabajos para recibir mensajes AS2 de los socios de su organización, procesar esos datos y almacenarlos de forma local. Estos trabajos tienen las mismas características que el resto de trabajos de FlowForce y además cuentan con las siguientes funciones:

 

Puede crear, directamente desde la página de configuración del trabajo, un servicio AS2 que atienda solicitudes
Como se ilustra más adelante, el trabajo que recibe datos AS2 toma dos parámetros predefinidos: socio y mensaje. Estos parámetros proporcionan respectivamente información sobre el socio emisor y sobre el mensaje entrante.

 

Exponer un trabajo como AS2 funciona a grandes rasgos de forma similar a exponer un trabajo como servicio web (véase Exponer trabajos como servicios web). En concreto, la URL del servicio AS2 tiene el formato http(s)://<flowforce-server>:<port>/service/<as2-service-name>, donde:

 

<http(s)> se refiere al protocolo que puede escoger: HTTP o HTTPS, lo cual se elige en la página de configuración de FlowForce Server (véase Definir la configuración de red).
<flowforce-server> es el nombre de host o la dirección IP de la máquina en la que se está ejecutando FlowForce.
<port> es el nombre del puerto (puerto predeterminado: 4646). Tenga en cuenta que HTTP y HTTPS tienen distintos números de puerto según las opciones definidas en la página de configuración, en concreto en la sección FlowForce Server (véase Definir la configuración de red).
service: esta parte de la URL es siempre igual y no se puede cambiar.
<as2-service-name> es el nombre personalizado que le quiere dar a su servicio AS2. Puede definir esta parte de la URL cuando cree el trabajo.

 

En función de sus necesidades, puede configurar FlowForce Server para que acepte respuestas de clientes sin autenticar (lo que convierte el servicio en público) o solicita una autenticación HTTP básica a los clientes. Para que el servicio AS2 sea accesible sin autenticación, cree el trabajo de servicio AS2 en un contenedor de FlowForce en el que el usuario useranonymous tiene el siguiente permiso: "Servicio: Uso". Para más información sobre contenedores y permisos, consulte Permisos y contenedores. Para ver un ejemplo de esta configuración, consulte Ejemplo: intercambio completo de mensajes AS2 (Simple).

 

Requisitos previos

Antes de que pueda recibir datos AS2 de los socios deben cumplirse los siguientes requisitos:

 

Debe añadir a FlowForce Server los detalles de todos los socios de quienes recibirá datos (véase Configurar socios AS2).
El servicio "FlowForce Server" debe aceptar conexiones de clientes remotos en la URL designada, como se explica más arriba.

 

La configuración predeterminada de FlowForce Server es aceptar conexiones de localhost en el puerto 4646. Para hacer que el servicio sea accesible a otras máquinas, abra la página de configuración y cambie la Dirección de enlace de FlowForce Server a Todas las interfaces (0.0.0.0.0) o a una interfaz específica (véase Definir la configuración de red). Asegúrese también de que el servidor de seguridad del sistema operativo no bloquea la comunicación de FlowForce.

 

Nota:no se debe confundir el servicio "FlowForce Server" con el servicio "FlowForce Web Server". Este último se usa para acceder a la interfaz web de administración, aceptar conexiones en el puerto 8082 y tiene una configuración diferente (véase también Funcionamiento)

 

Crear el servicio AS2

Este ejemplo muestra cómo crear un trabajo que exponga un servicio AS2. Primero debe iniciar sesión en la interfaz de administración de FlowForce Web (véase Iniciar sesión en FlowForce Server). Puede crear el servicio AS2 en el contenedor predeterminado public; sin embargo, es buena idea crear un contenedor aparte porque puede que este servicio necesite permisos por separado. Haga clic en Configuración y después en Crear | Crear contenedor.

ff_as2_service_01

Introduzca un nombre para el contenedor (por ejemplo "as2service") y haga clic en Guardar y abrir. A continuación haga clic en Crear | Crear trabajo. Se abrirá la página de configuración del trabajo:

ff_as2_service_02

Para convertir este trabajo en un servicio AS2, marque la casilla Permitir acceso a este trabajo por... e introduzca el nombre del servicio (por ejemplo "as2-receiver"). Asegúrese también de que selecciona Servicio AS2 de la lista desplegable.

ff_as2_ex1-09

Tenga en cuenta que se añaden automáticamente dos parámetros al trabajo:

ff_as2_ex1-10

Parámetro

Objetivo

partner

Este parámetro proporciona información sobre el socio AS2 que envía el mensaje. El tipo de datos del parámetro es "Socio AS2". Puede procesar este objeto más adelante y obtener el nombre local o remoto del socio como cadena, con ayuda de las funciones de expresión de FlowForce -partner-local-name o as2-partner-remote-name.

message

Este parámetro permite acceder a los mensajes entrantes. El tipo de datos del mensaje es "secuencia". Como se muestra en la imagen siguiente, puede convertir la secuencia en un archivo usando las funciones de expresión de FlowForce.

 

Nota:no se deben borrar los parámetros predefinidos partner y message. Si no va a usar los parámetros predefinidos más adelante, puede simplemente ignorarlos (esto no afecta a la validez del trabajo). Sin embargo, puede que quiera procesar de alguna manera el mensaje entrante (por ejemplo, guardarlo en un archivo). Como se muestra en la imagen siguiente, esto se puede hacer mediante funciones de expresión (en concreto, con las Funciones de expresión MIME). En algunos casos puede que quiera agregar nuevos parámetros al trabajo (por ejemplo, para definir un valor constante que se pueda usar en distintos pasos); si es así, asegúrese de que el parámetro tiene un valor predeterminado. De lo contrario, el trabajo no se iniciará cuando llegue un mensaje AS2 y se generará un mensaje de error.

 

En este punto, el trabajo está configurado para aceptar datos AS2, pero todavía no hace nada con esos datos. Para leer el contenido del mensaje de la secuencia y guardarlo en un archivo, agregue un nuevo paso de ejecución al trabajo. Haga clic en nuevo paso de ejecución y busque la función /system/filesystem/copy. Ahora rellene los parámetros Origen y Destino como sigue:

ff_as2_ex1-11

En la imagen anterior, el paso de ejecución llama a la función /system/filesystem/copy para copiar datos de Origen a Destino. Origen es una expresión de FlowForce. En este caso, la expresión

 

{as-file(message)}

 

lee el parámetro message antes mencionado y lo convierte en un nombre de archivo con la ayuda de la función de expresión as-file.

 

La expresión

 

{substring(current-message-id(), 1, -1)}

 

hace lo siguiente:

 

1.Obtiene el valor del campo del encabezado Message-ID en forma de cadena con ayuda de la función de expresión current-message-id. Por ejemplo, un Message-ID típico tendría este aspecto: <20180309125433018954-56c8aeb2fb4b478eb02f6f57662607da@somehostname>.
2.Elimina el primero y último carácter de la cadena resultante con la función de expresión substring. Ahora el Message-ID sería 20180309125433018954-56c8aeb2fb4b478eb02f6f57662607da@somehostname (observe que se han eliminado los símbolos "<" y ">"..

 

Por último se anexa el sufijo ".msg" a la expresión, lo que crea la ruta en la que FlowForce guardará el mensaje AS2 entrante. Observe que la ruta es relativa al directorio de trabajo C:\temp. Fundamentalmente, cada vez que se envíe un mensaje AS2 a http://<flowforce-server>:<port>/service/as2-receiver, este trabajo leerá el contenido de ese mensaje y lo guardará en una ruta como C:\temp\20180309125433018954-56c8aeb2fb4b478eb02f6f57662607da@somehostname.msg.

 

Notas:

 

Si la casilla Sobrescribir no está seleccionada, el trabajo devolverá un error en caso de que llegue dos veces un trabajo con el mismo message ID.
Si se habilita la opción Anular en caso de error, si falla la función de copiar, el trabajo también será fallido. Si un trabajo falla, FlowForce envía una MDN negativa al socio. En este caso, la opción está habilitada, por lo que si FlowForce no puede guardar el mensaje, enviará una MDN negativa al socio.

 

Ya ha terminado de crear un servicio AS2 básico que atiende solicitudes AS2 y guarda mensajes AS2 entrantes de forma local. Para ver un ejemplo de cómo pueden consumir este servicio AS2 los clientes, consulte Ejemplo: intercambio completo de mensajes AS2.

 

En un caso real en el que sea necesario un procesamiento más complejo, es posible que necesite añadir más pasos de ejecución al trabajo, además de usar otras funciones de expresión disponibles en FlowForce. Para ver cuáles son las funciones a las que puede llamar en los pasos de ejecución, consulte Funciones integradas. Para leer la introducción básica a las expresiones de FlowForce, consulte el apartado Lenguaje de expresiones de FlowForce.


© 2019 Altova GmbH