- Desde la Perspectiva de Desarrollo de aplicaciones de
intermediario, cree los
recursos siguientes:
- un proyecto de conjunto de mensajes y un conjunto de mensajes
denominado MAPPING3_COMPLEX_messages, asegurándose de que el conjunto de
mensajes está habilitado para espacio de nombres, con formato físico XML
- un archivo de definición de mensaje denominado COMPLEX, que tenga
un espacio de nombres de destino www.complex.net, con el prefijo comp
- Cree los mensajes addev1, addev1s y addev1n con las estructuras
siguientes:
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
- Cree un proyecto de flujo de mensajes denominado
MAPPING3_COMPLEX_flows.
- Cree un flujo de mensajes denominado addev1 que contenga:
MQInput ->Filter -> Mapping -> Compute
\ \ --> RCD -> MQOutput
\-> Mapping1-----------/
- En el nodo Filter, establezca el siguiente ESQL:
IF Body.bool THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
- En el nodo Mapping que está conectado al terminal verdadero de
Filter (Mapping1), abra la correlación y seleccione addev1 como origen y
addev1s como destino.
- Enlace el origen con el destino tal como se muestra:
bin --- bin
dat --- dat
dur --- dur
str --- str
- En el panel de hoja de cálculo, expanda Propiedades y
establezca los valores siguientes:
MessageType | 'addev1s'
- Pulse el botón derecho del ratón en dat de destino y pulse
Si.
- Sustituya la condición fn:true() por $source/comp:addev1/str = 'dat'.
- Establezca el valor para dat en $source/comp:addev1/dat + xs:duration("P3M").
- Pulse el botón derecho del ratón en la condición y pulse
Si no.
- Pulse el botón derecho del ratón en dur de destino y pulse
Si.
- Sustituya la condición fn:true() por
$source/comp:addev1/str = 'dur'.
- Establezca el valor para dur en
$source/comp:addev1/dur + xs:duration("P1Y").
- Pulse el botón derecho del ratón en la condición y pulse
Si no.
- Abra la correlación para el nodo que está conectado al terminal falso
del nodo Filter (Mapping) y seleccione addev1 como origen y addev1n como
destino.
- Enlace el origen con el destino tal como se muestra:
dec --- dec
flt --- flt
int --- int
- En el panel de hoja de cálculo, expanda Propiedades y
establezca los valores siguientes:
MessageType | 'addev1n'
- Establezca el ESQL en el nodo Compute en:
CALL CopyMessageHeaders();
SET OutputRoot.MRM.dec = InputBody.dec * 10;
SET OutputRoot.MRM.flt = InputBody.flt * 10;
SET OutputRoot.MRM.int = InputBody.int * 10;
- En el nodo ResetContentDescriptor, establezca el Dominio de
mensajes en XMLNS y seleccione el recuadro Restablecer dominio de mensaje.
- Cree tres mensajes de instancia con las cabeceras RFH2 adecuadas:
<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>
Ahora despliegue el conjunto de mensajes y
el flujo de mensajes.