En WebSphere Message Broker, un mensaje SOAP se describe mediante un modelo genérico que incluye el Sobre SOAP y opcionalmente Archivos adjuntos. Puede definir las partes del mensaje SOAP en una correlación de mensajes mediante la función Convertir.
Acerca de esta tarea
Un mensaje SOAP consta de un Sobre y, opcionalmente, de Archivos adjuntos. El sobre contiene una cabecera SOAP y un cuerpo SOAP. Un cuerpo SOAP puede incluir errores SOAP.
En WebSphere Message Broker, cuando se utilizan nodos SOAP, un mensaje SOAP se describe mediante un modelo genérico. Para obtener más información, consulte Visión general del árbol SOAP.
Además de las partes SOAP estándar, el modelo genérico de mensaje SOAP incluye una parte Context que incluye información contextual sobre el mensaje SOAP actual que se está procesando. Esta es la única parte de una correlación de mensajes cuya estructura se incluye automáticamente. Debe definir las otras partes de mensaje SOAP manualmente utilizando la función Cast.
En la tabla siguiente se compara la estructura del mensaje SOAP con el modelo genérico de mensaje SOAP de WebSphere Message Broker:
Tabla 1. Comparación entre la estructura de mensaje SOAP y la representación de mensaje SOAP de WebSphere Message BrokerPartes estándar de mensaje SOAP |
Estado |
Partes de mensaje SOAP de WebSphere Message Broker |
Estado de WebSphere Message Broker |
|
|
Contexto |
Necesario |
Cabecera SOAP (parte del sobre SOAP) |
Opcional |
Cabecera (parte de SOAP_Domain_Msg) |
Opcional |
Cuerpo SOAP (parte del sobre SOAP) |
Necesario |
Cuerpo (parte de SOAP_Domain_Msg) |
Necesario |
Errores SOAP (parte del cuerpo SOAP) |
Opcional |
Error (parte del cuerpo) |
Opcional |
Archivos adjuntos SOAP |
Opcional |
Archivos adjuntos (parte de SOAP_Domain_Msg) |
Opcional |
En este
escenario aprenderá a configurar la correlación de mensajes para correlacionar las
partes de mensaje SOAP estándar que componen SOAP_Domain_Msg.
Procedimiento
Realice los pasos siguientes para configurar SOAP_Domain_Msg cuando el nodo Mapping se conecta directamente desde un nodo SOAPInput sin ningún nodo SOAPExtract:
- Defina una transformación Move entre el objeto Contexto de entrada y el objeto Contexto de salida.
- Defina una transformación Move entre el objeto Cabecera de entrada y el objeto Cabecera de salida.
La figura siguiente muestra la correlación de mensajes después de que se haya definido una transformación Move para copiar la Cabecera.
El elemento Cabecera SOAP contiene información específica de la aplicación, incluidos atributos que definen cómo se debe procesar el mensaje SOAP.
- Defina la transformación para el objeto Cuerpo.
Puede definir las partes del cuerpo SOAP mediante la función Convertir. Puede convertir los atributos y otras partes del cuerpo. A continuación, defina transformaciones entre los elementos de entrada y los elementos de salida de cada parte del cuerpo que haya añadido.
Realice los pasos siguientes para definir las partes del cuerpo SOAP y sus transformaciones:
- Convierta el elemento xsd:any del cuerpo SOAP a un tipo específico. Para obtener más información, consulte Conversión del cuerpo SOAP en un tipo específico.
- Convierta un elemento de tipo base del cuerpo SOAP en un elemento de tipo derivado. Un elemento de tipo derivado también se conoce como un elemento de tipo de extensión. Para obtener más información, consulte Configuración de tipos derivados en el cuerpo SOAP.
En una correlación de mensajes, puede convertir un tipo base en un tipo derivado o tipo de extensión de forma que pueda definir transformaciones entre subtipos de un tipo de datos. Por ejemplo, las direcciones se representan de distinta forma para distintos países. Es posible que desee correlacionar las direcciones de distintos países en una compleja estructura común de direcciones.
- Cree y configure la transformación If, Else if y
Else para controlar el flujo de la correlación entre elementos definidos como un tipo específico o derivado en el conjunto de mensajes de entrada y salida estableciendo condiciones. Para obtener más información, consulte Configuración de una transformación If, Else if y Else en una correlación de mensajes.
- Defina una transformación Move entre el objeto Archivo adjunto de entrada y el objeto Archivo adjunto de salida.
Resultados
Ha configurado una correlación de mensajes que transforma un mensaje SOAP.
Cuando utilice una transformación
If, Else if y Else entre el objeto de entrada
SOAP_Domain_Msg y el objeto de salida
SOAP_Domain_Msg, debe configurar manualmente cada elemento de
SOAP_Domain_Msg. Debe correlacionar cada elemento del objeto de entrada
SOAP_Domain_Msg con el objeto de salida correspondiente de forma que no pierda información del elemento.
Nota: Los elementos que forman parte del objeto de entrada y que no tienen una transformación definida a un objeto de salida se suprimen de la estructura de salida y su valor se pierde.
Ahora tiene una correlación de mensajes que transforma datos de dirección en función del país de la dirección. La correlación de mensajes contiene una correlación anidada que utiliza la transformación If, Else if y Else que ha definido.
La figura siguiente muestra la correlación de mensajes tras haber realizado los pasos anteriores:
Qué hacer a continuación
Ha completado correctamente el escenario. Ahora la correlación está lista para usarse.