Compartir a través de


Detección de tipos de mensaje dinámicos y resolución de esquemas

El Acelerador de Microsoft BizTalk para SWIFT (A4SWIFT) permite la detección dinámica de tipos de mensajes y la resolución de esquemas tanto en el desensamblador de SWIFT como en el ensamblador.

Desensamblador de SWIFT

El desensamblador swift (DASM) tiene la capacidad de detectar dinámicamente el tipo de mensaje de un mensaje recibido y cargar el esquema adecuado necesario para analizar el mensaje. La mayor ventaja de esta característica es que puede configurar una sola canalización mediante el desensamblador de SWIFT para procesar mensajes SWIFT de cualquier tipo de mensaje SWIFT. A diferencia del desensamblador de archivos planos nativo de BizTalk, el desensamblador swift no requiere que cree una canalización de recepción independiente para cada tipo de mensaje que pueda encontrar A4SWIFT.

Puede usar la detección dinámica de tipos de mensaje si asume que, en la mayoría de los casos, todos los mensajes que recibe un sistema comenzarán con datos de encabezado estructuralmente homogéneos. Dentro de los datos de encabezado hay campos que revelan el tipo de mensaje del mensaje. Para los mensajes SWIFT, los datos de encabezado constan de bloques de mensajes SWIFT 1, 2 y 3, con información de tipo de mensaje contenida en el bloque 2 (conocido como encabezado de aplicación).

El componente SWIFT DASM puede procesar todos los mensajes SWIFT "únicos" (no por lotes) listos para usar sin necesidad de establecer ninguna de las propiedades. De forma predeterminada, no se establecen el esquema de intercambio swift y el esquema de encabezado SWIFT; sin embargo, el componente DE DASM de SWIFT usará el esquema de encabezado SWIFT presente en Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas.dll para detectar el tipo de mensaje SWIFT dinámicamente y procesar los mensajes. Además, la validación bre y XML están habilitadas de forma predeterminada, por lo que cualquier mensaje que se procese se validará por completo. Si se establece la propiedad de esquema de encabezado SWIFT para que apunte al encabezado SWIFT en RuntimeSchemas.dll también se producirá el mismo comportamiento que anteriormente.

Cuando la propiedad de configuración esquema de encabezado swift para el desensamblador swift se establece en "None" (valor predeterminado), el desensamblador resuelve y carga dinámicamente el esquema adecuado mediante los pasos siguientes:

  1. Usa el esquema de encabezado especificado por el usuario (especificado por la propiedad de configuración Esquema de encabezado swift) para analizar el principio (encabezado) del mensaje de recepción.

  2. Inspecciona el "xml de encabezado" resultante para el campo de propiedad promocionado A4SWIFT_MessageType. Si este campo existe, usa el valor del campo como "tipo de mensaje" y continúa con el paso 4. Si el campo no existe, continúa con el paso 3.

  3. Inspecciona el XML de encabezado para el campo de propiedad promocionada A4SWIFT_MessageType2 (se espera si el desensamblador no encuentra el campo A4SWIFT_MessageType). Usa el valor del campo A4SWIFT_MessageType2 como "tipo de mensaje".

  4. Si el "tipo de mensaje" identificado en el paso 2 o 3 es "574", el desensamblador swift comprueba si el tipo de mensaje "574" está en la lista de tipos de mensaje especificados en la propiedad de configuración Lista de mensajes de tipo dual (que es una propiedad del desensamblador). Si es así, continúa con el paso 5. Si no, continúa con el paso 6.

  5. Inspecciona el XML de encabezado para el campo de propiedad promocionado A4SWIFT_SecondaryMessageType. Si este campo existe, el desensamblador usa el valor de campo (por ejemplo, "IRSLST") como el "subtipo de mensaje" y lo anexa al "tipo de mensaje", por ejemplo, "574_IRSLST".

    Importante

    La explicación dada para el paso 5 es una simplificación de lo que el desensamblador de SWIFT realmente hace para evaluar el subtipo de mensaje. En realidad, el desensamblador de SWIFT usa el siguiente algoritmo para determinar si un tipo de mensaje tiene subtipos y, si es así, lo que ese subtipo es el siguiente.

    Given MT type number nxx ...  
    if nxx is in the Dual-Type list {  
      if field 119 exists AND field 119 is NOT null/empty {  
        if n == 1 {  
          if field 119 == "STP" {  
            Use MTnxxPLUS schema  
          } else if field 119 == "REMIT" {  
            Use MTnxx schema  
          } else {  
            Use MTnxx_<field 119> schema  
          }   
        } else {  
          // n != 1  
          Use MTnxx_<field 119> schema  
        }  
      } else {  
        // field 119 does not exist or 119 does exist but is null/empty  
        Use MTnxx schema  
      }  
    } else {  
      // nxx is not a dual-type message  
      Use MTnxx schema  
    }  
    
  6. El desensamblador ahora conoce el tipo de mensaje y puede formar el nombre del esquema de intercambio concatenando algunos prefijos y sufijos de nomenclatura de esquema fijo (como "MT" en el prefijo para crear "MT574_IRSLST").

  7. Carga el esquema de intercambio (por nombre) y analiza todo el mensaje, empezando desde el principio, utilizando el esquema cargado (esto significa que el desensamblador analiza los datos de encabezado dos veces: una vez con el esquema de encabezado y de nuevo usando el principio del esquema de intercambio). El esquema de intercambio debe ser capaz de analizar todo el mensaje, incluido el encabezado .

    Nota

    El desensamblador puede usar todos los esquemas de mensajes SWIFT A4SWIFT para analizar todo el intercambio SWIFT (bloques SWIFT 1, 2, 3, 4 y 5). El desensamblador usa el esquema de encabezado SWIFT predeterminado para analizar solo los bloques 1, 2 y 3. Para obtener información más detallada, vea a continuación.

    El algoritmo de resolución de esquema descrito anteriormente implica que, para que funcione la detección dinámica de tipos de mensaje, el esquema de encabezado SWIFT debe contener campos que el desensamblador ha promovido mediante las siguientes propiedades promocionadas (definidas en el esquema de propiedades de A4SWIFT, Microsoft.Solutions.A4SWIFT.Property.PropertySchema):

  • A4SWIFT_MessageType

  • A4SWIFT_MessageType2 (opcional si se usa A4SWIFT_MessageTypes )

  • A4SWIFT_SecondaryMessageType (opcional)

    Para obtener más información sobre estas y otras propiedades promocionadas, vea propiedades promocionadas A4SWIFT_*.

Nota

Si establece el esquema de encabezado SWIFT en Ninguno, debe especificar un esquema de intercambio completo para la propiedad Esquema de intercambio de SWIFT . En este caso, el desensamblador usa el esquema de intercambio especificado para analizar todos los mensajes que A4SWIFT recibe. Es decir, deshabilitará la resolución de esquemas dinámicos y configurará la canalización para recibir solo mensajes cuyo tipo coincida con el esquema de intercambio especificado.

A4SWIFT instala un esquema de encabezado SWIFT predeterminado (Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas.HeaderSchema) que puede analizar los datos de encabezado estándar swift y tiene las propiedades promocionadas necesarias para facilitar la resolución dinámica del esquema.

El esquema de encabezado SWIFT predeterminado tiene los siguientes campos promocionados:

  • SWIFTHeader/ApplicationHeaderBlock_Input/MessageType. El desensamblador lo promueve mediante la propiedad A4SWIFT_MessageType .

  • SWIFTHeader/ApplicationHeaderBlock_Output/MessageType. El desensamblador lo promueve mediante la propiedad A4SWIFT_MessageType2 .

  • SWIFTHeader/UserHeaderBlock/ValidationFlag_119. El desensamblador lo promueve mediante la propiedad A4SWIFT_MessageType .

    El desensamblador usa Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas.HeaderSchema de forma predeterminada como esquema de encabezado si establece las propiedades de configuración esquema de encabezado SWIFT y esquema de intercambio SWIFT en "None".

Ensamblador de SWIFT

Al igual que el desensamblador de SWIFT, el ensamblador swift tiene la capacidad de detectar dinámicamente el tipo de mensaje de un mensaje saliente y cargar el esquema adecuado necesario para serializar el mensaje. Esta característica le permite configurar una única canalización mediante el ensamblador SWIFT para procesar mensajes SWIFT de cualquier tipo de mensaje SWIFT. A diferencia del ensamblador de archivos planos nativo de BizTalk, el ensamblador SWIFT no requiere que cree una canalización de envío independiente para cada tipo de mensaje que A4SWIFT pueda encontrar.

La resolución dinámica del esquema en el ensamblador SWIFT es mucho más sencilla que en el desensamblador de SWIFT porque el ensamblador realiza el trabajo de serializar XML de nuevo en formato de archivo plano SWIFT. El XML que BizTalk Server proporciona al ensamblador SWIFT para la serialización contiene el tipo de mensaje y la información de esquema, que el ensamblador SWIFT puede usar directamente para cargar el esquema adecuado para la serialización. Por lo tanto, el ensamblador SWIFT no tiene ninguna capacidad de configuración para los esquemas de encabezado e intercambio: siempre usa el esquema especificado en el XML que serializará.

Consulte también

Trabajar con el desensamblador y el ensamblador de SWIFT