Trabajar con suscripciones de mensajes con errores
Cuando el desensamblado del Acelerador de Microsoft BizTalk para SWIFT (A4SWIFT) procesa (analiza y valida) un mensaje, promueve las propiedades de ese mensaje. Estas propiedades promocionadas proporcionan información sobre la exactitud y validez del mensaje, así como información relacionada con lotes si A4SWIFT recibió el mensaje como parte de un lote de entrada. Para obtener una lista completa de estas propiedades, consulte A4SWIFT_* Propiedades promocionadas.
A diferencia de los desensambladores nativos de BizTalk, el A4SWIFT desensamblador no suspende un mensaje cuando el procesamiento genera errores o errores. En su lugar, publica el mensaje con errores en la base de datos messageBox como lo haría con un mensaje válido. Como resultado, los mensajes con errores pueden llevar detalles de error a la base de datos messageBox. Puede recuperar el mensaje de la base de datos messageBox, controlarlo y repararlo, e incluso volver a enviar el mensaje a la base de datos messageBox. No podrá realizar la mayoría de estas tareas si el mensaje se suspendió realmente.
Puede identificar un mensaje que A4SWIFT ha publicado en la base de datos messageBox como errónea o errónea por sus propiedades promocionadas. Al procesar un mensaje con errores, el desensamblador swift rellena y promueve la propiedad A4SWIFT_Failed y una o varias de las demás propiedades siguientes, antes de publicar el mensaje en la base de datos cuadro de mensajes:
A4SWIFT_ParseErrors indica el número de errores de análisis (como datos con formato incorrecto) encontrados durante el procesamiento.
A4SWIFT_XmlValidationErrors indica el número de errores de validación XML (como datos no válidos o tipo incorrecto con respecto al esquema) encontrados durante el procesamiento.
A4SWIFT_BreValidationErrors indica el número de errores de validación del motor de reglas de negocio (BRE) (como los datos que interrumpen una regla de red SWIFT) encontrados durante el procesamiento.
A4SWIFT_Failed es true cuando el recuento de cualquiera de las propiedades anteriores es mayor que cero, o false cuando el recuento es igual a cero.
Estas propiedades forman parte de Microsoft . Espacio de nombres Solutions.A4SWIFT.Property. Para obtener más información sobre estas y otras propiedades promocionadas, vea Propiedades promocionadas A4SWIFT_*.
Para detectar o recuperar mensajes con errores, debe crear expresiones de filtro (suscripciones) para puertos de envío o orquestación recibir formas que incluyan algunas de las propiedades enumeradas anteriormente, como cláusulas AND de la expresión.
Por ejemplo, para suscribirse a todos los mensajes con errores, agregue la siguiente cláusula (como cláusula AND si hay otras cláusulas):
Microsoft. Solutions.A4SWIFT.Property.A4SWIFT_Failed == true
Para suscribirse a mensajes con solo errores de análisis, agregue las cláusulas siguientes:
Y Microsoft. Solutions.A4SWIFT.Property.A4SWIFT_Failed == true,ANDMicrosoft . Solutions.A4SWIFT.Property.A4SWIFT_XmlValidationErrors == 0,ANDMicrosoft . Solutions.A4SWIFT.Property.A4SWIFT_BreValidationErrors == 0;
Por el contrario, para los puertos de envío o orquestaciones diseñados para controlar solo mensajes válidos, incluya "ANDMicrosoft . Solutions.A4SWIFT.Property.A4SWIFT_Failed == false" como una cláusula en sus expresiones de filtro.
Nota
Si las suscripciones se superponen, A4SWIFT cumplirán todas las suscripciones. Es decir, si más de un servicio (puerto de envío o orquestación) tiene expresiones de filtro completadas por un mensaje determinado, todos estos servicios recibirán el mismo mensaje. Por ejemplo, si un puerto de envío se suscribe a todos los mensajes con errores y una orquestación se suscribe solo a mensajes con errores de análisis, ambas suscripciones se cumplirán cuando A4SWIFT encuentre errores de análisis al procesar un mensaje. Asegúrese de eliminar superposiciones no deseadas en suscripciones entre servicios.
Nota
Si A4SWIFT recibe y procesa un mensaje y publica ese mensaje en la base de datos cuadro de mensajes, pero el mensaje no satisface ninguna suscripción, A4SWIFT suspenderá el mensaje con un error de BizTalk Server que indica la falta de suscriptores. Por ejemplo, si tiene un servicio que se suscribe a todos los mensajes "A4SWIFT_Failed == false", pero ningún servicio se suscribe a los mensajes en los que "A4SWIFT_Failed == true", los mensajes que no se analizan o validan se suspenderán debido a una falta de suscriptores. En realidad, este escenario permite imitar la suspensión tradicional de mensajes con errores. Asegúrese de suscribirse a todos los mensajes que no desea haber suspendido. Consulte BizTalk Server Ayuda para obtener más detalles sobre las suscripciones de base de datos de Cuadro de mensajes, los puertos de envío, las orquestaciones y las expresiones de filtro.
Esta sección contiene: