- A partir do Perspectiva do Desenvolvimento de Aplicativos do Intermediário, crie os seguintes recursos:
- um projeto de conjunto de mensagens e um conjunto de mensagens chamado MAPPING3_COMPLEX_messages,
assegurando que o conjunto de mensagens esteja ativado para espaço de nomes com o formato de ligação XML
- um arquivo de definição de mensagem chamado COMPLEX, que tem um espaço de nomes de destino www.complex.net, com prefixo comp
- Crie mensagens addev1, addev1s e addev1n com as seguintes estruturas:
addev1
bool (xsd:boolean) elemento local
bin (xsd:hexBinary) elemento local
dat (xsd:dateTime) elemento local
dec (xsd:decimal) elemento local
dur (xsd:duration) elemento local
flt (xsd:float) elemento local
int (xsd:int) elemento local
str (xsd:string) elemento local
addev1s
bin (xsd:hexBinary) elemento local
dat (xsd:dateTime) elemento local
dur (xsd:duration) elemento local
str (xsd:string) elemento local
addev1n
dec (xsd:decimal) elemento local
flt (xsd:float) elemento local
int (xsd:int) elemento local
- Crie um projeto de fluxo de mensagens chamado MAPPING3_COMPLEX_flows.
- Crie um fluxo de mensagens chamado addev1 que contém:
MQInput ->Filter -> Mapping -> Compute
\ \ --> RCD -> MQOutput
\-> Mapping1-----------/
- No nó Filtro, configure o seguinte ESQL:
IF Body.bool THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
- No nó de mapeamento conectado ao terminal verdadeiro Filter
(Mapping1), abra o mapa e selecione addev1 como origem e addev1s como destino.
- Ligue a origem ao destino da seguinte maneira:
bin --- bin
dat --- dat
dur --- dur
str --- str
- Na área de janela Planilha, expanda Propriedades e configure os seguintes valores:
MessageType | 'addev1s'
- Clique com o botão direito do mouse no destino dat e clique em If.
- Substitua a condição fn:true() por $source/comp:addev1/str
= 'dat'.
- Configure o valor para dat para $source/comp:addev1/dat + xs:duration("P3M").
- Clique com o botão direito na condição e clique em Else.
- Clique com o botão direito do mouse no destino dur e clique em If.
- Substitua a condição fn:true() por $source/comp:addev1/str
= 'dur'.
- Configure o valor para dur para $source/comp:addev1/dur + xs:duration("P1Y").
- Clique com o botão direito na condição e clique em Else.
- Abra o mapa para o nó conectado ao terminal falso do nó Filtro (Mapping) e selecione addev1 como origem e addev1n como destino.
- Ligue a origem ao destino da seguinte maneira:
dec --- dec
flt --- flt
int --- int
- Na área de janela Planilha, expanda Propriedades e configure os seguintes valores:
MessageType | 'addev1n'
- Configure o ESQL no nó Compute para:
CALL CopyMessageHeaders();
SET OutputRoot.MRM.dec = InputBody.dec * 10;
SET OutputRoot.MRM.flt = InputBody.flt * 10;
SET OutputRoot.MRM.int = InputBody.int * 10;
- No nó ResetContentDescriptor, configure o Domínio de Mensagem para XMLNS
e selecione a caixa de opções Reconfigurar Domínio de Mensagem.
- Crie três mensagens de instância com os cabeçalhos RFH2 apropriados:
<comp:addev1 xmlns:comp="http://www.complex.net">
<bool>1</bool>
<bin><![CDATA[010203]]></bin>
<dat>2005-05-06T00:00:00+00:00</dat>
<dec>19.34</dec>
<dur>P2Y4M</dur>
<flt>3.245E+2</flt>
<int>2104</int>
<str>dat</str>
</comp:addev1>
<comp:addev1 xmlns:comp="http://www.complex.net">
<bool>1</bool>
<bin><![CDATA[010203]]></bin>
<dat>2005-05-06T00:00:00+00:00</dat>
<dec>19.34</dec>
<dur>P2Y4M</dur>
<flt>3.245E+2</flt>
<int>2104</int>
<str>dur</str>
</comp:addev1>
<comp:addev1 xmlns:comp="http://www.complex.net">
<bool>0</bool>
<bin><![CDATA[010203]]></bin>
<dat>2005-05-06T00:00:00+00:00</dat>
<dec>19.34</dec>
<dur>P2Y4M</dur>
<flt>3.245E+2</flt>
<int>2104</int>
<str>dat</str>
</comp:addev1>
Agora implemente o conjunto de mensagens e fluxo de mensagens.