Enviar mensajes AS2
Un trabajo que envía un mensaje AS2 a un socio remoto es similar a cualquier otro trabajo de FlowForce Server. Es decir, puede tomar parámetros, contener varios pasos de ejecución, se puede desencadenar como un trabajo programado o bajo petición, etc. Este ejemplo explica cómo crear un trabajo AS2 sencillo que envía un archivo EDIFACT a un servidor AS2.
Requisitos
•Debe haber un servidor AS2 disponible que esté configurado para aceptar mensajes AS2 de clientes HTTP (en este caso, FlowForce Server actúa como cliente HTTP para el servidor remoto).
•Los datos del socio remoto deben estar guardados en FlowForce Server (véase Configurar socios AS2). Como mínimo debería definir un socio sin ningún certificado (si acepta conexiones sin cifrar y sin firmar). En este caso lo único que deberá conocer es la URL del socio, el nombre de socio AS2 y el nombre AS2 de su organización.
Crear el trabajo
Cree un trabajo nuevo de FlowForce Server de la forma habitual (Crear | Crear trabajo) dentro de cualquier contenedor (véase Crear trabajos). Después añada un paso de ejecución que llame a la función /system/as2/send. Para buscar esta función haga clic dentro del cuadro Ejecutar función y empiece a teclear el nombre de la función:
Una vez añadida la función al trabajo, su estructura se carga en la página y se habilitan los campos para los parámetraltovaos necesarios. Para garantizar una correcta configuración de la transmisión AS2 deberá definir estos parámetros:
•Socio: este campo debe ser una referencia a un objeto socio configurado previamente (véase Configurar socios AS2). Haga clic dentro del campo para buscar el objeto socio.
•Mensaje: este campo debe contener una expresión de FlowForce que abra la secuencia que desea incluir en el mensaje. Por ejemplo, para enviar un archivo EDIFACT situado en C:\as2\orders.edi con un encabezado Content-Type application/EDIFACT deberá introducir esta expresión:
stream-open("c:\as2\orders.edi", "application/EDIFACT")
Para más información consulte la sección Lenguaje de expresiones de FlowForce. El archivo de origen (ya sea EDI o XML) también puede ser un archivo generado con MapForce (p. ej. por un paso de ejecución previo que ejecute una asignación que está implementada en FlowForce Server). Consulte el apartado Integración con AS2 en MapForce y MapForce Server.
•ID del mensaje: este campo da el valor para el campo del encabezado ID del mensaje en forma de secuencia. Para generar este valor debe llamar a la función de expresión new-message-id, como se muestra más abajo.
•Anular en caso de error: el trabajo debe estar compuesto por varios pasos de ejecución y no solo el paso que envía el mensaje AS2. Por ejemplo, puede definir otros pasos de ejecución después del actual para procesar la notificación MDN que devuelva el socio. Asigne el valor TRUE a este parámetro para abandonar la ejecución posterior del trabajo si este paso de ejecución falla. Si el parámetro Anular en caso de error tiene el valor TRUE y el paso de ejecución actual falla, los demás pasos de ejecución no se ejecutarán y se anulará todo el trabajo (véase Procesamiento secuencial de pasos).
En la imagen siguiente puede ver un paso de ejecución que se refiere a un socio llamado "APOLLO" y que envía un archivo EDIFACT en el cuerpo del mensaje con ayuda de una expresión de FlowForce Server:
Como decíamos antes, el trabajo de FlowForce Server se puede ejecutar bajo petición o como trabajo programado. Para más información sobre cómo desencadenar un trabajo consulte el apartado Desencadenadores. En este ejemplo configuraremos el trabajo AS2 para que se ejecute bajo petición desde el explorador como servicio web (imagen siguiente). Observe que en este ejemplo el nombre del servicio web es "sendAS2". Consulte el apartado Trabajos como servicios web para obtener más información.
Por último, antes de guardar el trabajo, debemos introducir las credenciales de la cuenta del sistema operativo que FlowForce debe usar para la ejecución (estas no son las credenciales que usted utiliza para iniciar sesión en FlowForce). En este ejemplo, introducimos las credenciales dentro del trabajo directamente. Sin embargo, puede almacenar las credenciales por separado en un registro y seleccionarlas desde los trabajos (véase el apartado Credenciales).
Ahora puede guardar el trabajo con el botón Guardar situado al final de la página.
FlowForce Server comprueba la integridad de los datos para evitar que un trabajo mal configurado se guarde. A menudo los errores son provocado por expresiones incorrectas en los valores de parámetros (véase Tipos de datos en los pasos). Si no tiene mucha experiencia trabajando con FlowForce, recomendamos consultar las secciones Lenguaje de expresiones de FlowForce y Ejemplos de trabajos. |
Nota: | si necesita crear varios trabajos similares, puede duplicar trabajos de FlowForce con facilidad y así ahorrar tiempo (véase Duplicar trabajos). |
Ejecutar el trabajo
Como el trabajo se expuso como servicio web, podemos ejecutarlo con solo teclear la URL del servicio web en la barra de dirección del explorador. La URL del servicio web está compuesta por la URL donde se ejecuta el servicio FlowForce Server (p. ej. http://localhost:4646/), más la parte service/sendAS2 (siendo sendAS2 el nombre de servicio web que configuramos cuando definimos el trabajo). Por tanto, la URL es http://localhost:4646/service/sendAS2. Si configuró el servicio FlowForce Server para ejecutarse en otro host y en otro puerto, deberá ajustar la URL (véase Definir la configuración de red). En la imagen siguiente puede ver el resultado que se obtiene cuando el trabajo se ejecuta correctamente:
El resultado de la ejecución del trabajo también se puede ver en el registro de FlowForce Server (véase Ver el registro de trabajos).
Procesar el resultado del trabajo AS2
El trabajo AS2 que hemos creado está formado por un solo paso de ejecución que llama a la función /system/as2/send. Sin embargo, en un caso real, lo más probable es que el trabajo de FlowForce tuviera más pasos de ejecución.
Es importante mencionar que el tipo devuelto de la función /system/as2/send es un objeto MDN AS2. Para poder extraer información práctica de este objeto es necesario procesarlo con funciones de expresión de FlowForce. Por ejemplo, para obtener el ID de mensaje del mensaje AS2 original podemos agregar un paso de ejecución como el que aparece en esta imagen:
El segundo paso de ejecución de la imagen obtiene el ID de mensaje AS2 original en forma de cadena (tomando como parámetro el resultado del primer paso, que se declaró como output1). Para conseguir este objetivo el paso llama a la función /system/compute (la forma habitual de calcular expresiones en FlowForce). La expresión aplica la función de expresión as2-message-id al resultado del primer paso de ejecución (output1).
Recuerde que FlowForce Server viene con otras funciones de expresión que pueden ser muy útiles. Por ejemplo, para poder determinar si la llamada AS2 se realizó correctamente puede llamar a la función as2-success. Asimismo, para obtener el estado HTTP de la llamada AS2 puede llamar a la función de expresión as2-http-status. Todas las funciones de expresión de FlowForce Server se enumeran en la sección Funciones de expresión. Las funciones relacionadas con AS2 y MIME aparecen en los apartados Funciones de expresión AS2 y Funciones de expresión MIME respectivamente.
Cuando trabaje con expresiones de FlowForce, es importante prestar atención al tipo de datos devuelto de cada función. El tipo de datos debe ser compatible en todas las funciones de llamada y en todos los pasos. De lo contrario, el trabajo no se podrá guardar. Por tanto, lo más recomendable es tener conocimientos básicos de las expresiones de FlowForce antes de usarlas.