Dieser Mustercode baut auf der Musternachricht CSV_1 auf und fügt einen Headersatz in die CSV-Nachricht ein. Die Eingabenachricht enthält einen einzelnen Headersatz, gefolgt von einem einzelnen, sich wiederholenden CSV-Datensatz. Statt die Nachricht von CSV in XML zu konvertieren, verwendet der Rechenknoten nur die DFDL-Domäne und verändert die logische Nachricht unter Verwendung von ESQL.
In diesem Abschnitt finden Sie Anweisungen zum Ausführen des Mustercodes. Darüber hinaus werden als Beispiel eine Eingabetestnachricht und eine entsprechende erwartete Ausgabenachricht angegeben, damit Sie überprüfen können, ob der Mustercode erfolgreich war.
Eine ausführliche Erläuterung des in diesem Mustercode verwendeten Nachrichtenmodells finden Sie im Abschnitt Mustercode 'Comma Separated Value (CSV)' testen.
Sollten bei der Ausführung des Mustercodes Probleme auftreten, beachten Sie die Informationen in der Dokumentation für WebSphere Message Broker im Abschnitt Probleme bei der Ausführung von Mustercodes beheben.
Sie können die Mustereingabedaten anhand der DFDL-Schemadatei mithilfe des Message Broker Toolkits testen.
So testen Sie die DFDL-Schemadatei:
Möglicherweise werden Sie in einem Fenster gefragt, ob die DFDL-Testperspektive geöffnet werden soll. Klicken Sie auf Yes (Ja). Daraufhin wird die DFDL-Testperspektive geöffnet und die Ergebnisse Ihrer Testanalyse werden in der Ansicht 'DFDL Test - Parse' (DFDL-Test - Syntaxanalyse) angezeigt. Verläuft die Testanalyse erfolgreich, wird die Nachricht "Parsing completed successfully" (Syntaxanalyse erfolgreich abgeschlossen) angezeigt.
In der Ansicht 'Logical Instance' (Logische Instanz) werden die Ergebnisse Ihrer Testanalyse angezeigt. Die Daten werden dort in einer logische Baumstrukturansicht dargestellt. Zeigen Sie mithilfe des Parserprotokolls in der Ansicht 'DFDL - Trace' alle Fehler an, die während der Syntaxanalyse aufgetreten sind.
Die Testnachricht, die zur Ausführung dieses Mustercodes verwendet wird, basiert auf folgendem Format:
2011-11-11,X12334,customerdetails<CRLF> Bob,Dyson,true,23,23456,0,1543543.36<CRLF> Jimmy,Pace,false,1002,10001,-4.32423,654654.99<CRLF> Ralf,McCartney,false,67,89125,4324307.35,986545.12<CRLF> Elvis,John,true,3,60699,-0.343242356675,99999999999999.99<CRLF> Rick,Clayton,true,461,33101,0.000000000000001,100.01
Dabei steht '<CRLF>' für die Zeichen mit den hexadezimalen ASCII-Codepunkten x'0D' und x'0A'.
Dieser Mustercode verwendet den Nachrichtenfluss CSV2CSV. Dieser Nachrichtenfluss enthält einen einzelnen MQInput-Knoten, der an die Warteschlange CSV2CSV.IN1 angehängt ist. Der ESQL Rechenknoten ändert das Feld balance abhängig davon, ob das Feld goldmember auf 'true' gesetzt ist. Die CSV-Ausgabenachricht zeigt die physische Struktur der Nachricht an, die analysiert, bei der Zuordnung umgewandelt und dann für die Ausgabewarteschlange serialisiert wurde.
Gehen Sie folgendermaßen vor, um den Mustercode auszuführen:
Der Nachrichtenfluss führt eine Syntaxanalyse der CSV-Nachricht durch, ändert sie und serialisiert sie wieder in CSV. Die Ausgabenachricht wird in die Warteschlange CSV2CSV.OUT1 eingereiht.
Eine Erläuterung dieses Nachrichtenmodells finden Sie im Abschnitt Mustercode 'Comma Separated Values (CSV)' testen.
Die erwartete Ausgabenachricht lautet:
2011-11-11,X12334,customerdetails Bob,Dyson,true,23,"23,456",0,"1,929,429.2" Jimmy,Pace,false,"1,002","10,001",-4.324,"654,654.99" Ralf,McCartney,false,67,"89,125","4,324,307.5","986,545.12" Elvis,John,true,3,"60,699",-0.343,"99,999,999,999,999.99" Rick,Clayton,true,461,"33,101",0,100.01