Este ejemplo se basa en el ejemplo 2 para añadir un registro de cola al mensaje CSV. Analiza la cola usando un patrón de datos para distinguir entre la cola (que empieza por un dígito decimal) y el registro de repetición (que no empieza por un dígito decimal). En el mensaje de entrada hay un único registro de cabecera seguido de un solo registro de repetición separado por coma seguido de un solo registro de cola. Se analizará utilizando el conjunto de mensajes de ejemplo y escrito como mensaje XML.
Este apartado incluye instrucciones para ejecutar el ejemplo. Incluye también un ejemplo de un mensaje de prueba entrada y el mensaje de salida esperado correspondiente, de forma que podrá confirmar que el ejemplo ha funcionado.
Si desea ver una explicación más detallada sobre el modelo usado en este ejemplo, consulte el apartado Explorar el ejemplo de Valor separado por coma (CSV).
El mensaje de prueba usado para la ejecución de este ejemplo se basa en el siguiente formato:
2005-04-01,X123456IB7,customer details<CRLF>
Bob,Dyson,1 Desolation Row,Orlando,FL,32802,HYT-457-AX<CRLF>
Jimmy,Pace,1002 Misty Mountain Drive,New York,NY,10001,ADU-239-BX<CRLF>
Ralf,McCartney,67 Penny Lane,Las Vegas,NV,89125,JUI-854-CF<CRLF>
Elvis,John,3 Yellow Brick Road,Chicago,IL,60699,GGY-118-AS<CRLF>
Rick,Clayton,461 Ocean Boulevard,Miami,FL,33101,LOP-212-TY<CRLF>
5
<CRLF> representa los caracteres ASCII con puntos de código hexadecimales x'0D' y x'0A'.
Este ejemplo usa el flujo de mensajes CSV2XML. Contiene muchos nodos de entrada, pero para este ejemplo utiliza el nodo con la cola cola llamada CSV2XML.IN3. El flujo de mensajes pasa el mensaje a través de un nodo Compute que cambia el formato del mensaje por XML y efectúa la salida del mismo. Esto hace que el mensaje CSV se analice en un árbol lógico y después se grabe en formato XML. El mensaje XML de salida muestra la estructura lógica del mensaje que se ha analizado.
Para ejecutar el ejemplo:
El flujo de mensajes analiza el mensaje CSV y graba el mismo mensaje lógico en XML. En la cola CSV2XML.OUT debería aparecer un mensaje.
Intente ahora repetir los pasos 2-6, usando el archivo XML_msg3.enqueue (que contiene el mismo mensaje XML de salida del primer flujo) y XML2CSV.IN y XML2CSV.OUT como nombres de las dos colas. Esto pasará el mensaje XML a través del flujo inverso usado la primera etapa que dio como resultado un mensaje CSV como salida. Compárelo con el mensaje CSV original. Tendrían que ser idénticos.
Si todos los pasos anteriores han funcionado correctamente, el ejemplo ha terminado.
Vea ahora el proyecto de conjunto de mensajes y la explicación de esta definición de mensaje en el apartado Explorar el ejemplo de Valor separado por coma (CSV).
El mensaje XML de salida esperado es el siguiente:
<?xml version="1.0"?>
<CSV_3>
<header>
<requestDate>2005-04-01</requestDate>
<requestID>X123456IB7</requestID>
<requestType>customer details</requestType>
</header>
<customer>
<firstname>Bob</firstname>
<lastname>Dyson</lastname>
<streetaddress>1 Desolation Row</streetaddress>
<cityname>Orlando</cityname>
<statecode>FL</statecode>
<postcode>32802</postcode>
<referencecode>HYT-457-AX</referencecode>
</customer>
<customer>
<firstname>Jimmy</firstname>
<lastname>Pace</lastname>
<streetaddress>1002 Misty Mountain Drive</streetaddress>
<cityname>New York</cityname>
<statecode>NY</statecode>
<postcode>10001</postcode>
<referencecode>ADU-239-BX</referencecode>
</customer>
<customer>
<firstname>Ralf</firstname>
<lastname>McCartney</lastname>
<streetaddress>67 Penny Lane</streetaddress>
<cityname>Las Vegas</cityname>
<statecode>NV</statecode>
<postcode>89125</postcode>
<referencecode>JUI-854-CF</referencecode>
</customer>
<customer>
<firstname>Elvis</firstname>
<lastname>John</lastname>
<streetaddress>3 Yellow Brick Road</streetaddress>
<cityname>Chicago</cityname>
<statecode>IL</statecode>
<postcode>60699</postcode>
<referencecode>GGY-118-AS</referencecode>
</customer>
<customer>
<firstname>Rick</firstname>
<lastname>Clayton</lastname>
<streetaddress>461 Ocean Boulevard</streetaddress>
<cityname>Miami</cityname>
<statecode>FL</statecode>
<postcode>33101</postcode>
<referencecode>LOP-212-TY</referencecode>
</customer>
<trailer>
<totalRecords>5</totalRecords>
</trailer>
</CSV_3>