Este é o terceiro estágio do cenário para executar
enriquecimento de mensagem simples. Este tópico demonstra como desenvolver um fluxo de mensagens para mapear os campos de destino de vários outros campos e também envolve o desenvolvimento de modelos de mensagens e documentos de instâncias correspondentes.
- Na definição de mensagem COMPLEX, no espaço de nomes www.complex.net, crie uma mensagem chamada addev2, que tenha a seguinte estrutura:
addev2
firstname (xsd:string) elemento local
lastname (xsd:string) elemento local
branch (xsd:string) elemento local
accountno (xsd:string) elemento local
balance (xsd:decimal) elemento local
transvalue elemento complexo local, tipo base xsd:decimal
transdir (xsd:string) atributo local
- No conjunto de mensagens MAPPING3_COMPLEX_messages, crie um novo arquivo de definição de mensagem chamado COMP2, que possui o espaço de nomes de destino www.comp2.net, com o prefixo c2.
- Na definição de mensagem COMP2, crie uma mensagem chamada addev2out, que tenha a estrutura:
addev2out
accountdetails (xsd:string) elemento local
transvalue (xsd:decimal) elemento local
balance (xsd:decimal) elemento local
- Crie um fluxo de mensagem chamado addev2, que contenha
o seguinte mapeamento: MQInput -> Mapeamento -> MQOutput.
- Abra o mapa e selecione addev2 como a origem e addev2out como o destino.
- Ligue a origem ao destino da seguinte maneira:
accountno --- accountdetails
balance --- balance
transvalue --- transvalue
- Na área de janela Planilha, expanda Propriedades e configure os seguintes valores:
MessageType | 'addev2out'
- Configure o destino accountdetails para fn:concat($source/comp:addev2/accountno,
$source/comp:addev2/branch, $source/comp:addev2/lastname, $source/comp:addev2/firstname).
- Clique com o botão direito do mouse no destino transvalue e clique em If.
- Altere a condição de fn:true() para $source/comp:addev2/transvalue/@transdir = 'DEBIT'.
- Selecione transvalue e configure seu valor para $source/comp:addev2/transvalue * (-1).
- Clique com o botão direito na condição e clique em Else.
- Clique com o botão direito do mouse no destino balance e clique em If.
- Altere a condição de fn:true() para $source/comp:addev2/transvalue/@transdir = 'DEBIT'.
- Selecione balance e configure seu valor para $source/comp:addev2/balance
- $source/comp:addev2/transvalue.
- Clique com o botão direito do mouse na condição e clique em Condição.
- Altera a condição de fn:true() para $source/comp:addev2/transvalue/@transdir
= 'CREDIT'.
- Selecione balance após a segunda condição e configure seu valor para
$source/comp:addev2/balance + $source/comp:addev2/transvalue.
- Crie duas mensagens de instância com os cabeçalhos RFH2 apropriados:
<comp:addev2 xmlns:comp="http://www.complex.net">
<firstname>Brian</firstname>
<lastname>Benn</lastname>
<branch>52-84-02</branch>
<accountno>567432876543</accountno>
<balance>1543.56</balance>
<transvalue transdir="DEBIT">25.28</transvalue>
</comp:addev2>
<comp:addev2 xmlns:comp="http://www.complex.net">
<firstname>Brian</firstname>
<lastname>Benn</lastname>
<branch>52-84-02</branch>
<accountno>567432876543</accountno>
<balance>1543.56</balance>
<transvalue transdir="CREDIT">25.28</transvalue>
</comp:addev2>
Você criou os seguintes recursos:
- uma mensagem chamada addev2 na definição de mensagem chamada COMPLEX
- uma mensagem chamada addev2out na definição de mensagem chamada COMP2
- um fluxo de mensagens chamado addev2, que contém o arquivo de mapeamento addev2_Mapping.msgmap
- arquivos que contêm mensagens de instância para teste
Agora, implemente o conjunto de mensagens e o fluxo de mensagens