No WebSphere Message
Broker, uma mensagem SOAP é descrita por um modelo genérico que inclui o Envelope e, opcionalmente, Anexos do SOAP. É possível definir partes da mensagem SOAP em um mapa de mensagem usando a função Cast.
Sobre Esta Tarefa
Uma mensagem SOAP consiste em um Envelope e, opcionalmente, em Anexos. O envelope contém um cabeçalho SOAP e um corpo SOAP. Um corpo SOAP pode incluir falhas SOAP.
No WebSphere Message
Broker, quando você usa nós SOAP, uma mensagem SOAP é descrita por um modelo genérico. Para obter informações adicionais, consulte Visão geral da árvore SOAP.
Além das partes SOAP padrão, o modelo genérico de mensagens SOAP inclui uma parte de Contexto que inclui informações contextuais sobre a mensagem SOAP atual que está sendo processada. Essa é a única parte em um mapa de mensagem cuja estrutura é incluída automaticamente. Você deve definir as outras partes da mensagem SOAP manualmente, usando a função Cast.
A tabela a seguir compara a estrutura da mensagem SOAP com o modelo genérico da mensagem SOAP do WebSphere Message
Broker:
Tabela 1. Comparação entre a estrutura da mensagem SOAP e a representação da mensagem SOAP do WebSphere Message
BrokerPartes da mensagem SOAP padrão |
Status |
Partes da mensagem SOAP do WebSphere Message
Broker |
Status do WebSphere Message
Broker |
|
|
Contexto |
Obrigatório |
Cabeçalho SOAP (parte do envelope SOAP) |
Opcional |
Cabeçalho (parte do SOAP_Domain_Msg) |
Opcional |
Corpo SOAP (parte do envelope SOAP) |
Obrigatório |
Corpo (parte do SOAP_Domain_Msg) |
Obrigatório |
Falhas de SOAP (parte do corpo SOAP) |
Opcional |
Falha (parte do corpo) |
Opcional |
Anexos de SOAP |
Opcional |
Anexo (parte do SOAP_Domain_Msg) |
Opcional |
Neste cenário, você aprende a configurar seu mapa de mensagem
para mapear as partes da mensagem SOAP padrão que formam o SOAP_Domain_Msg.
Procedimento
Conclua as etapas a seguir para configurar o SOAP_Domain_Msg quando o nó Mapping estiver conectado diretamente de um nó SOAPInput a nenhum nó SOAPExtract:
- Defina uma transformação Mover entre o objeto de Contexto de entrada e o objeto de Contexto de saída.
- Defina uma transformação Mover entre o objeto de Cabeçalho de entrada e o objeto de Cabeçalho de saída.
A figura a seguir mostra o mapa de mensagem depois de você definir uma transformação Mover para copiar o Cabeçalho.
O elemento Header de SOAP contém informações específicas do aplicativo, incluindo atributos que definem como você deve processar a mensagem SOAP.
- Defina a transformação para o objeto Corpo.
Você define as partes do corpo SOAP usando a função Cast.
É possível converter os atributos e outras partes do corpo. Em seguida, defina as transformações entre os elementos de entrada e os
elementos de saída em cada parte do corpo incluída.
Conclua as etapas a seguir para definir as partes do corpo SOAP e suas transformações:
- Converta o elemento do corpo SOAP xsd:any em um tipo específico. Para obter informações adicionais, consulte Convertendo o corpo SOAP em um tipo específico.
- Converta um elemento de tipo de base do corpo SOAP em um elemento de tipo derivado. Um elemento de tipo derivado também é conhecido como um elemento de tipo de extensão. Para obter informações adicionais, consulte Configurando tipos derivados no corpo SOAP.
Em um mapa de mensagem, você converte um tipo de base em um tipo derivado ou um tipo de extensão para que possa definir transformações entre subtipos de um tipo de dados. Por exemplo, os endereços são representados de forma diferente para diferentes países. Talvez você queira mapear endereços de países diferentes em uma estrutura complexa comum para endereços.
- Crie e configure a transformação If, Else if e Else para controlar o fluxo do mapeamento entre os elementos definidos como um específico ou derivado no conjunto da mensagem de entrada e de saída, definindo as condições. Para obter informações adicionais, consulte Configurando uma transformação If, Else if e Else em um mapa de mensagem.
- Defina uma transformação Mover entre o objeto Anexo de entrada e o objeto Anexo de saída.
Resultados
Você configurou um mapa de mensagem que transforma uma mensagem SOAP.
Quando você usa uma transformação
If, Else if e Else entre o objeto
SOAP_Domain_Msg de entrada e o objeto
SOAP_Domain_Msg de saída, deverá configurar manualmente cada elemento no
SOAP_Domain_Msg.
Você deve mapear cada elemento no objeto
SOAP_Domain_Msg de entrada para o objeto de saída correspondente para não perder as informações do elemento.
Nota: Os elementos que fazem parte do objeto de entrada e não possuem uma transformação definida para um objeto de saída são excluídos da estrutura de saída e seus valores são perdidos.
Agora você tem um mapa de mensagem que transforma dados de endereço, com base no país do endereço. O mapa de mensagem contém um mapa aninhado que usa a transformação If, Else if e Else definida por você.
A figura a seguir mostra o mapa de mensagem após a conclusão das etapas anteriores:
O que Fazer Depois
Você concluiu com êxito o cenário. Agora, o seu mapa está pronto para uso.