Compartir a través de


Procesar un mensaje AS2 entrante

La canalización de recepción AS2 procesa un mensaje entrante a través de AS2. La canalización de recepción AS2EdiReceive procesa un mensaje con codificación EDI mediante el Desensamblador EDI. La canalización de recepción AS2Receive procesa un mensaje sin codificación EDI mediante el Desensamblador de AS2. Las dos canalizaciones procesan la carga del mensaje AS2 y generan un MDN de forma distinta; sin embargo, ambas canalizaciones de recepción utilizan el descodificador AS2 para procesar el mensaje AS2.

Si AS2EdiReceivePipeline procesa un mensaje AS2 con una carga EDI, completa el procesamiento de AS2 del mensaje recibido antes de llevar a cabo el procesamiento de EDI. Cuando la canalización genera una confirmación de EDI para la carga EDI de un mensaje AS2, debe devolver la confirmación de EDI de forma asíncrona porque la respuesta de AS2 cierra la conexión.

El puerto de recepción

Se usa un puerto de recepción HTTP para recibir un mensaje AS2 con una carga EDI o que no sea EDI. Si el MDN se va a devolver de forma sincrónica, el puerto de recepción debe ser un puerto de recepción de solicitud-respuesta.

Un MDN puede devolverse de forma sincrónica o asincrónica. Esto viene determinado por el encabezado Disposition-notification-to del mensaje AS2, a menos que la configuración de Uso del contrato para validación y MDN en lugar de la propiedad del encabezado de mensaje esté seleccionada en la pestaña acuerdo AS2 unidireccional del cuadro de diálogo Propiedades del contrato . Si la propiedad está seleccionada, la forma en que se devuelve MDN viene determinada por la propiedad Solicitar MDN asincrónica en la página Configuración de MDN remitente de la pestaña acuerdo AS2 unidireccional del cuadro de diálogo Propiedades del contrato . Para obtener más información, vea Mensajes AS2 y mensajes MDN.

Si el MDN se devuelve de forma sincrónica, el MDN se devolverá a través del puerto de envío de la ubicación de recepción bidireccional. Este MDN sirve como respuesta HTTP, por ejemplo, un valor 200OK que indica una recepción correcta del mensaje.

Si el MDN se va a devolver de forma asíncrona, deberá hacerse a través de un puerto de envío independiente. Si se usa un puerto de envío dinámico, el MDN se enviará a la dirección incluida en el encabezado Disposition-notification-to.

Nota

El puerto de recepción bidireccional que se va a utilizar para recibir mensajes AS2 no debe utilizarse para recibir mensajes MDN. Los mensajes MDN deben recibirse en un puerto de recepción unidireccional. El empleo de un puerto de recepción de solicitud-respuesta para un MDN devuelto de forma asíncrona evitaría que un mensaje 200OK se devolviese en respuesta al MDN entrante, lo que generaría reintentos innecesarios de la transmisión MDN.

Cómo funcionan las canalizaciones de recepción de AS2

Los pasos que usan las canalizaciones de recepción de AS2 en el procesamiento de un mensaje entrante de AS2 son los siguientes:

  • Determina la entidad de envío haciendo coincidir el valor de AS2-From en el encabezado AS2 del mensaje con el valor de AS2-From lista en la página Identificadores de la pestaña acuerdo AS2 unidireccional del cuadro de diálogo Propiedades del contrato del contrato . Si ese proceso no se lleva a cabo correctamente, intenta determinar la entidad de envío haciendo coincidir la propiedad de contexto AS2-From que se haya establecido para el mensaje entrante con el nombre de una entidad. Si se encuentra una coincidencia y la opción Usar la configuración del contrato para la validación y MDN en lugar de la propiedad del encabezado de mensaje está seleccionada en la pestaña contrato AS2 unidireccional del cuadro de diálogo Propiedades del contrato, BizTalk Server usará las propiedades AS2 asociadas al contrato para la parte para procesar el mensaje AS2. Si la propiedad no está seleccionada, la canalización de recepción utilizará las etiquetas del encabezado de AS2 en el mensaje entrante. Si no se encuentra el acuerdo, la canalización anula el procesamiento, suspende el mensaje y genera una excepción.

    Nota

    La configuración del contrato De uso para validación y MDN en lugar de la propiedad de encabezado de mensaje permite validar que un mensaje entrante tiene propiedades de firma, cifrado y compresión (si esas propiedades se especifican en el contrato en la pestaña Validación del contrato unidireccional) y, si no es así, para suspender el mensaje y publicar un error. Estos cambios deben negociarse con el acuerdo para la entidad remitente. Para obtener más información, vea Configuración de propiedades de AS2.

  • Si el acuerdo para la entidad remitente se ha determinado, pero se genera un error cuando la canalización de recepción intenta procesar el mensaje AS2, la canalización definirá la propiedad de contexto MessageDestination en el mensaje AS2 como SuspendQueue. La canalización de recepción suspenderá el mensaje en el cuadro de mensaje. La canalización de recepción también establecerá la EdiIntAS.IsAS2FailedMessage propiedad de contexto en True. Si un MDN está habilitado estableciendo Solicitar MDN en la página Configuración de MDN remitente de la pestaña acuerdo AS2 unidireccional del cuadro de diálogo Propiedades del contrato, la canalización devolverá el MDN adecuado al remitente. La canalización siempre intentará devolver un MDN si se solicita.

  • Determina si el mensaje es un duplicado, si la opción Comprobar si hay mensajes duplicados en la página Validación de la pestaña contrato AS2 unidireccional del cuadro de diálogo Propiedades del contrato. La detección de mensajes duplicados se lleva a cabo haciendo coincidir los valores AS2-From, AS2-To y Message-ID del mensaje entrante con los valores existentes en los mensajes recibidos con anterioridad. Si los tres valores coinciden, la canalización de recepción establecerá el valor de la EdiIntAs.IsAS2MessageDuplicate propiedad de contexto en true. Si la opción Suspender mensajes duplicados también está seleccionada en la página Validación , el mensaje se suspenderá y se registrará un error.

  • Recupera el nombre de archivo, si lo hubiera, de cada archivo de datos adjuntos y lo promueve en las propiedades de contexto.

  • Realiza una copia del mensaje (en su formato correspondiente) y la almacena en la base de datos de recepción sin repudio, si esta opción está habilitada en las propiedades de acuerdo AS2 unidireccional.

  • Lleva a cabo el procesamiento MIME, que incluye la comprobación de la firma y el descifrado del mensaje (basándose en las etiquetas del encabezado).

  • Descomprime el mensaje recibido si estaba comprimido.

  • Genera una respuesta HTTP anexa al MDN en modo de solicitud-respuesta sincrónico, o enviada como respuesta independiente en modo asíncrono.

  • Genera una respuesta MDN si se solicita. La canalización generará una MDN basada en las propiedades del contrato, si se establece la configuración del contrato De uso para validación y MDN en lugar de la propiedad del encabezado de mensaje , o desde propiedades de contexto, si esa propiedad no está establecida. Si los parámetros de configuración y los encabezados en el mensaje entrante son incoherentes, la canalización generará un MDN negativo.

  • El Desensamblador EDI de la canalización de recepción AS2EdiReceive genera una confirmación de EDI si el mensaje tenía codificación EDI y se había habilitado una confirmación. La canalización enrutará la confirmación de EDI al cuadro de mensajes, desde donde un puerto de envío dinámico la seleccionará o la enviará de forma asíncrona. Las confirmaciones de EDI siempre se envían de forma asíncrona a través del transporte AS2 porque tanto las respuestas de MDN como de HTTP se envían de forma sincrónica.

  • Realiza una copia del MDN y la almacena en la base de datos de recepción sin repudio, si esta opción está habilitada en las propiedades de acuerdo AS2 unidireccional.

  • Realiza una copia del mensaje descodificado y la almacena en la base de datos de recepción sin repudio, si esta opción está habilitada en las propiedades de acuerdo AS2 unidireccional.

    Si se produce un error de AS2, no se llevará a cabo más procesamiento en el mensaje recibido. Sin embargo, la canalización de recepción generará una respuesta de MDN.

Consulte también

Cómo recibe BizTalk Server los mensajes AS2
Mensajes AS2
Mensajes MDN