- Nel Prospettiva Sviluppo dell'applicazione
broker, creare le seguenti
risorse:
- un progetto serie di messaggi ed una serie di messaggi denominati MAPPING3_COMPLEX_messages,
verificando che la serie di messaggi sia abilitata per lo spazio dei nomi, con XML Wire Format
- un file di definizione dei messaggi denominato COMPLEX, che ha uno spazio dei nomi di destinazione
www.complex.net, con prefisso comp
- Creare i messaggi addev1, addev1s e addev1n con le seguenti
strutture:
addev1
bool (xsd:boolean) local element
bin (xsd:hexBinary) local element
dat (xsd:dateTime) local element
dec (xsd:decimal) local element
dur (xsd:duration) local element
flt (xsd:float) local element
int (xsd:int) local element
str (xsd:string) local element
addev1s
bin (xsd:hexBinary) local element
dat (xsd:dateTime) local element
dur (xsd:duration) local element
str (xsd:string) local element
addev1n
dec (xsd:decimal) local element
flt (xsd:float) local element
int (xsd:int) local element
- Creare un progetto flusso di messaggi denominato MAPPING3_COMPLEX_flows.
- Creare un flusso di messaggi denominato addev1 che contiene:
MQInput ->Filter -> Mapping -> Compute
\ \ --> RCD -> MQOutput
\-> Mapping1-----------/
- Nel nodo Filter, impostare la seguente istruzione ESQL:
IF Body.bool THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
- Nel nodo Mapping collegato al terminale Filter true
(Mapping1), aprire la mappa e selezionare addev1 come origine e addev1s come destinazione.
- Collegare l'origine alla destinazione come mostrato:
bin --- bin
dat --- dat
dur --- dur
str --- str
- Nel riquadro Foglio elettronico, espandere le proprietà ed impostare i seguenti
valori:
MessageType | 'addev1s'
- Fare clic con il tasto destro del mouse su dat di destinazione e fare clic su If.
- Sostituire la condizione fn:true() con $source/comp:addev1/str
= 'dat'.
- Impostare il valore per dat su $source/comp:addev1/dat + xs:duration("P3M").
- Fare clic con il tasto destro del mouse sulla condizione e fare clic su Else.
- Fare clic con il tasto destro del mouse su dur di destinazione e fare clic su If.
- Sostituire la condizione fn:true() con $source/comp:addev1/str
= 'dur'.
- Impostare il valore per dur su $source/comp:addev1/dur + xs:duration("P1Y").
- Fare clic con il tasto destro del mouse sulla condizione e fare clic su Else.
- Aprire la mappa per il nodo collegato al terminale false
del nodo Filter (Mapping) e selezionare addev1 come origine e addev1n come destinazione.
- Collegare l'origine alla destinazione come mostrato:
dec --- dec
flt --- flt
int --- int
- Nel riquadro Foglio elettronico, espandere le proprietà ed impostare i seguenti
valori:
MessageType | 'addev1n'
- Impostare l'ESQL nel nodo Compute su:
CALL CopyMessageHeaders();
SET OutputRoot.MRM.dec = InputBody.dec * 10;
SET OutputRoot.MRM.flt = InputBody.flt * 10;
SET OutputRoot.MRM.int = InputBody.int * 10;
- Nel nodo ResetContentDescriptor, impostare Dominio messaggi su XMLNS
e selezionare la casella di controllo Reimposta dominio messaggi.
- Creare tre messaggi di istanza con le intestazioni RFH2 appropriate:
<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>
A questo punto distribuire la serie ed i flusso di messaggi.