Aufbereitung komplexer Nachrichten

Übersicht

Die Namen und Werte, die für Nachrichtenflüsse, Nachrichtengruppen, Elemente und Attribute verwendet werden, und die Ausdrücke und Codebeispiele dienen der Veranschaulichung.
In diesem Szenario werden komplexe Nachrichten bearbeitet und folgende Zuordnungsfunktionen verwendet:
  • MRM in, MRM out (Namensbereich)
  • Andere Knoten, die erforderlich sind, um Nachricht zu vervollständigen
  • Bedingte Zuordnung
  • Fallzuordnung (beide Syntaxformate)
  • If/Bedingung
  • Mehrere Quellenfelder zu einem einzelnen Zielfeld kombinieren (namensbereichsübergreifend)
  • Verschachtelte, sich wiederholende komplexe und einfache Elemente
  • Aus einer Datenbank abgerufene Zieldaten
  • Zeichenfolgefunktionen, numerische Funktionen, Datums-/Zeitfunktionen
  • Benutzerdefinierte ESQL-Prozeduren und Funktionen
  • Benutzerdefinierte Java-Routinen

Verwenden Sie die Nachrichtenbroker-Tools zum Erstellen von Nachrichtenflüssen und Nachrichtengruppen und zum Erstellen und Implementieren von Brokerarchivdateien (BAR-Dateien). Außerdem müssen Sie einen Konfigurationsmanager und einen Broker erstellen. Erstellen Sie in den Nachrichtenbroker-Tools eine Domänenverbindung zum Konfigurationsmanager, und erstellen Sie einen Broker in der Domäne. Außerdem ist eine Methode zur Eingabe von Instanzennachrichten erforderlich, die (optional) MQRFH2-Header enthalten können, z. B. argoput, rfhutil.

Schritt 1. Fluss mit anderen Knoten (z. B. Filterknoten) erstellen und Zuordnungen mit Bedingungen verwenden, entsprechende Nachrichtenmodelle (unter Verwendung aller wichtigen Datentypen) und Instanznachrichten entwickeln

  1. Erstellen Sie in der Perspektive 'Anwendungsentwicklung' ein Nachrichtengruppenprojekt und die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' (für Namensbereiche aktiviert, mit physischem XML-Format) und eine Nachrichtendefinitionsdatei namens 'COMPLEX' mit Zielnamensbereich 'www.complex.net', Präfix 'comp'.
  2. Erstellen Sie die Nachrichten 'addev1', 'addev1s' und 'addev1n' mit folgenden Strukturen:
    addev1
       bool      (xsd:boolean) lokales Element
       bin        (xsd:hexBinary) lokales Element
       dat        (xsd:dateTime) lokales Element
       dec       (xsd:decimal) lokales Element
       dur        (xsd:duration) lokales Element
       flt          (xsd:float) lokales Element
       int         (xsd:int) lokales Element
       str         (xsd:string) lokales Element   
    addev1s
       bin        (xsd:hexBinary) lokales Element
       dat        (xsd:dateTime) lokales Element
       dur        (xsd:duration) lokales Element
       str         (xsd:string) lokales Element
    addev1n
       dec       (xsd:decimal) lokales Element
       flt          (xsd:float) lokales Element
       int         (xsd:int) lokales Element
  3. Erstellen Sie das Nachrichtenflussprojekt 'MAPPING3_COMPLEX_flows'.
  4. Erstellen Sie den Nachrichtenfluss 'addev1' mit:
    MQEmpfangsknoten ->Filterknoten -> Zuordnungsknoten -> Rechenknoten
                         \                       \ --> RCD -> MQOutput
                          \-> Mapping1-----------/ 
  5. Codieren Sie im Filterknoten folgende ESQL:
    IF Body.bool THEN
                                        RETURN TRUE;
            ELSE
                	RETURN FALSE;
            END IF;
  6. Öffnen Sie im Zuordnungsknoten, der mit dem True-Terminal des Filterknotens (Mapping1) verbunden ist, die Zuordnung, und wählen Sie 'addev1' als Quelle und 'addev1s' als Ziel aus.
  7. Verbinden Sie die Quelle mit dem Ziel wie folgt:
    bin --- bin
    dat --- dat
    dur --- dur
    str --- str
  8. Erweitern Sie in der Spreadsheetansicht die Eigenschaften, und definieren Sie Folgendes:
    MessageType   |     'addev1s'
  9. Wählen Sie das Ziel 'dat' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'If' aus.
  10. Ersetzen Sie die Bedingung fn:true() durch $source/comp:addev1/str = 'dat'.
  11. Setzen Sie den Wert für 'dat' auf $source/comp:addev1/dat + xs:duration("P3M").
  12. Wählen Sie 'condition' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'Else' aus.
  13. Wählen Sie das Ziel 'dur' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'If' aus.
  14. Ersetzen Sie die Bedingung fn:true() durch $source/comp:addev1/str = 'dur'.
  15. Setzen Sie den Wert für 'dur' auf $source/comp:addev1/dur + xs:duration("P1Y").
  16. Wählen Sie 'condition' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'Else' aus.
  17. Öffnen Sie die Zuordnung für den Knoten, der mit dem False-Terminal des Filterknotens (Mapping) verbunden ist, und wählen Sie 'addev1' als Quelle und 'addev1n' als Ziel aus.
  18. Verbinden Sie die Quelle mit dem Ziel wie folgt:
    dec --- dec
    flt --- flt
    int --- int
  19. Erweitern Sie in der Spreadsheetansicht die Eigenschaften, und definieren Sie Folgendes:
    MessageType     |     'addev1n'
  20. Setzen Sie die ESQL im Rechenknoten auf:
    CALL CopyMessageHeaders();
            SET OutputRoot.MRM.dec = InputBody.dec * 10;
            SET OutputRoot.MRM.flt = InputBody.flt * 10;
            SET OutputRoot.MRM.int = InputBody.int * 10;
  21. Setzen Sie im Knoten 'Deskriptor_für_Neuanalyse' die Nachrichtendomäne auf XMLNS, und aktivieren Sie das Kästchen Nachrichtendomäne zurücksetzen.
  22. Erstellen Sie drei Instanznachrichten mit den entsprechenden RFH2-Headern:
    <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>
Ergebnisse von Schritt 1: Nachrichtengruppe 'MAPPING3_COMPLEX_messages' erstellt und mit Nachrichten 'addev1', 'addev1s' und 'addev1n' gefüllt. Nachrichtenfluss 'addev1' im Projekt 'MAPPING3_COMPLEX_flows' mit Zuordnungsdateien 'addev1_Mapping.msgmap' und 'addev1._Mapping1.msgmap' erstellt. Dateien enthalten Instanznachrichten zum Testen.

Schritt 2. Nachrichtengruppe und Fluss implementieren und Instanznachrichten über Broker ausführen

  1. Erstellen Sie eine BAR-Datei (addev1).
  2. Fügen Sie die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' und den Nachrichtenfluss 'addev1' zur BAR-Datei hinzu.
  3. Setzen Sie die BAR-Datei für den Broker ein.
  4. Stellen Sie die Instanzdokumente in die Eingabewarteschlange.
Ergebnisse von Schritt 2: Die Ausgabenachrichten sollten folgendes Format haben:
<comp:addev1s xmlns:comp="http://www.complex.net">
<bin><![CDATA[010203]]></bin>
<dat>2005-08-06T00:00:00-01:00</dat>
<dur>P2Y4M</dur>
<str>dat</str>
</comp:addev1s>

Schritt 3. Fluss entwickeln, um Zielfelder aus mehreren anderen Feldern zuzuordnen, entsprechende Nachrichtenmodelle und Instanzdokumente entwickeln

  1. Erstellen Sie in der Nachrichtendefinition 'COMPLEX' im Namensbereich 'www.complex.net' die Nachricht 'addev2' mit folgender Struktur:
    addev2
       firstname             (xsd:string) lokales Element
       lastname              (xsd:string) lokales Element
       branch                 (xsd:string) lokales Element
       accountno            (xsd:string) lokales Element
       balance                (xsd:decimal) lokales Element
       transvalue             lokales komplexes Element, Basistyp xsd:decimal
          transdir             (xsd:string) lokales Attribut
  2. Erstellen Sie in der Nachrichtengruppe 'MAPPING3_COMPLEX_messages' die neue Nachrichtendefinitionsdatei 'COMP2' mit Zielnamensbereich 'www.comp2.net', Präfix 'c2'.
  3. Erstellen Sie in der Nachrichtendefinition 'COMP2' die Nachricht 'addev2out' mit folgender Struktur:
    addev2out
        accountdetails      (xsd:string) lokales Element
        transvalue            (xsd:decimal) lokales Element
        balance                (xsd:decimal) lokales Element
  4. Erstellen Sie den Nachrichtenfluss 'addev2' mit: MQEmpfangsknoten -> Zuordnungsknoten -> MQSendeknoten.
  5. Öffnen Sie die Zuordnung, und wählen Sie 'addev2' als Quelle und 'addev2out' als Ziel aus.
  6. Verbinden Sie die Quelle mit dem Ziel wie folgt:
    accountno --- accountdetails
    balance --- balance
    transvalue --- transvalue
  7. Erweitern Sie in der Spreadsheetansicht die Eigenschaften, und definieren Sie Folgendes:
    MessageType   |     'addev2out'
  8. Setzen Sie das Ziel 'accountdetails' auf fn:concat($source/comp:addev2/accountno, $source/comp:addev2/branch, $source/comp:addev2/lastname, $source/comp:addev2/firstname).
  9. Wählen Sie das Ziel 'transvalue' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'If' aus.
  10. Ändern Sie die Bedingung von fn:true() in $source/comp:addev2/transvalue/@transdir = 'DEBIT'.
  11. Wählen Sie 'transvalue' aus, und setzen Sie den zugehörigen Wert auf $source/comp:addev2/transvalue * (-1).
  12. Wählen Sie 'condition' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'Else' aus.
  13. Wählen Sie das Ziel 'balance' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'If' aus.
  14. Ändern Sie die Bedingung von fn:true() in $source/comp:addev2/transvalue/@transdir = 'DEBIT'.
  15. Wählen Sie 'balance' aus, und setzen Sie den zugehörigen Wert auf $source/comp:addev2/balance - $source/comp:addev2/transvalue.
  16. Wählen Sie 'condition' aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü 'Condition' aus.
  17. Ändern Sie die Bedingung von fn:true() in $source/comp:addev2/transvalue/@transdir = 'CREDIT'.
  18. Wählen Sie 'balance' nach der zweiten Bedingung aus, und setzen Sie den Wert auf $source/comp:addev2/balance + $source/comp:addev2/transvalue.
  19. Erstellen Sie zwei Instanznachrichten mit den entsprechenden RFH2-Headern:
    <comp:addev2 xmlns:comp="http://www.complex.net">
    <firstname>Brian</firstname>
    <lastname>Benn</lastname>
    <branch>52-84-02</branch>
    <accountno>567432876543</accountno>
    <balance>1543.56</balance>
    <transvalue transdir="DEBIT">25.28</transvalue>
    </comp:addev2>
    <comp:addev2 xmlns:comp="http://www.complex.net">
    <firstname>Brian</firstname>
    <lastname>Benn</lastname>
    <branch>52-84-02</branch>
    <accountno>567432876543</accountno>
    <balance>1543.56</balance>
    <transvalue transdir="CREDIT">25.28</transvalue>
    </comp:addev2>
Ergebnisse von Schritt 3: Nachricht 'addev2' in Nachrichtendefinition 'COMPLEX' erstellt und Nachricht 'addev2out' in Nachrichtendefinition 'COMP2' erstellt. Nachrichtenfluss 'addev2' mit Zuordnungsdatei 'addev2_Mapping.msgmap' erstellt. Dateien mit Instanznachrichten zum Testen.

Schritt 4. Nachrichtengruppe und Fluss implementieren und Instanznachrichten über Broker ausführen

  1. Erstellen Sie eine BAR-Datei (addev2).
  2. Fügen Sie die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' und den Nachrichtenfluss 'addev2' zur BAR-Datei hinzu.
  3. Setzen Sie die BAR-Datei für den Broker ein.
  4. Reihen Sie die Instanzdokumente in die Eingabewarteschlange ein.
Ergebnisse von Schritt 4: Die Ausgabenachrichten sollten folgendes Format haben:
<c2:addev2out xmlns:c2="http://www.comp2.net"  xmlns:comp="http://www.complex.net">
<accountdetails>567432876543 52-84-02 Benn Brian</accountdetails>
<transvalue>-25.28</transvalue>
<balance>1518.28</balance>
</c2:addev2out>

Schritt 5. Fluss- und Nachrichtenmodelle für die Zuordnung komplexer verschachtelter, sich wiederholender Nachrichten entwickeln und entsprechende Instanzdokumente entwickeln

  1. Erstellen Sie in der Nachrichtendefinition 'COMPLEX' im Namensbereich 'www.complex.net' die Nachricht 'addev3' mit folgender Struktur:
      addev3
       choice
          sstr                     (xsd:string) lokales Element
          intrep                  (xsd:int) lokales Element, minOcc=2, maxOcc=6
          dur                      (xsd:duration) lokales Element
       choice
          comp1                lokales komplexes Element
             dat1                 (xsd:date) lokales Element
             sval                  (xsd:string) lokales Element
          comp2                lokales komplexes Element
             bool1               (xsd:boolean) lokales Element
             dat2                 (xsd:date) lokales Element
          comprep             lokales komplexes Element, minOcc=1, maxOcc=4
             int1                  (xsd:int) lokales Element
             dec1                (xsd:decimal) lokales Element
       binel                       (xsd:hexBinary) lokales Element
       lelem                      lokales komplexes Element, Basistyp xsd:string
          latt                      (xsd:int) lokales Attribut
       lcomp                     lokales komplexes Element
          head                    (xsd:string) lokales Element
          incomp                lokales komplexes Element
             count                (xsd:int) lokales Element
             comp:gcompel   globales komplexes Element, minOcc=0, maxOcc=-1
                fstr                 (xsd:string) lokales Element
                multel             lokales komplexes Element
                   in1              (xsd:boolean) lokales Element
                   in2              (xsd:string) lokales Element
                   in3              (xsd:float) lokales Element
          footer                  (xsd:string) lokales Element
       repstr                      (xsd:string) lokales Element, minOcc=1, maxOcc=-1
  2. Erstellen Sie den Nachrichtenfluss 'addev3' mit: MQEmpfangsknoten > Zuordnungsknoten > MQSendeknoten.
  3. Öffnen Sie die Zuordnung, und wählen Sie 'addev3' als Quelle und Ziel aus.
  4. Ordnen Sie die Quellenelemente den jeweiligen Zielelementen zu.
    sstr --- sstr
    intrep --- intrep
    dur --- dur
    dat1 --- dat1
    sval --- sval
    bool1 --- bool1
    dat2 --- dat2
    int1 --- int1
    dec1 --- dec1
    binel --- binel
    lelem --- lelem
    latt --- latt
    head --- head
    count --- count
    fstr --- fstr
    multel --- multel
    footer --- footer
    repstr --- repstr
  5. Ändern Sie in der Spreadsheetansicht für die erste Bedingung fn:true() in fn:exists($source/comp:addev3/sstr).
  6. Ändern Sie für die zweite Bedingung fn:true() in fn:exists($source/comp:addev3/intrep).
  7. Ändern Sie für die dritte Bedingung fn:true() in fn:exists($source/comp:addev3/dur)
  8. Ändern Sie für die erste komplexe Auswahlbedingung fn:true() in fn:xists($source/comp:addev3/comp1).
  9. Ändern Sie für die zweite komplexe Auswahlbedingung fn:true() in fn:xists($source/comp:addev3/comp2).
  10. Ändern Sie für die dritte komplexe Auswahlbedingung fn:true() in fn:xists($source/comp:addev3/comprep).
  11. Erstellen Sie folgende Instanznachrichten (mit den entsprechenden RFH2-Headern):
    1. <comp:addev3 xmlns:comp="http://www.complex.net">
      <sstr>first</sstr>
      <comp1>
      <dat1>2005-06-24</dat1>
      <sval>date value</sval>
      </comp1>
      <binel><![CDATA[3132333435]]></binel>
      <lelem latt="24">twenty four</lelem>
      <lcomp>
      <head>nesting start</head>
      <incomp>
      <count>3</count>
      <comp:gcompel>
      <fstr>first</fstr>
      <multel>
      <in1>1</in1>
      <in2>C</in2>
      <in3>2.45E+1</in3>
      </multel>
      </comp:gcompel>
      <comp:gcompel>
      <fstr>second</fstr>
      <multel>
      <in1>1</in1>
      <in2>D</in2>
      <in3>7.625E+3</in3>
      </multel>
      </comp:gcompel>
      <comp:gcompel>
      <fstr>third</fstr>
      <multel>
      <in1>0</in1>
      <in2>C</in2>
      <in3>4.9E+0</in3>
      </multel>
      </comp:gcompel>
      </incomp>
      <footer>nesting end</footer>
      </lcomp>
      <repstr>abc</repstr>
      <repstr>def</repstr>
      <repstr>ghi</repstr>
      <repstr>jkl</repstr>
      <repstr>mno</repstr>
      </comp:addev3>
    2. <comp:addev3 xmlns:comp="http://www.complex.net">
      <intrep>45</intrep>
      <intrep>12</intrep>
      <intrep>920</intrep>
      <comp2>
      <bool1>1</bool1>
      <dat2>2005-06-24</dat2>
      </comp2>
      <binel><![CDATA[3132333435]]></binel>
      <lelem latt="24">twenty four</lelem>
      <lcomp>
      <head>nesting start</head>
      <incomp>
      <count>5</count>
      <comp:gcompel>
      <fstr>first</fstr>
      <multel>
      <in1>1</in1>
      <in2>C</in2>
      <in3>2.45E+1</in3>
      </multel>
      </comp:gcompel>
      <comp:gcompel>
      <fstr>second</fstr>
      <multel>
      <in1>1</in1>
      <in2>D</in2>
      <in3>7.625E+3</in3>
      </multel>
      </comp:gcompel>
      <comp:gcompel>
      <fstr>third</fstr>
      <multel>
      <in1>0</in1>
      <in2>C</in2>
      <in3>4.9E+0</in3>
      </multel>
      </comp:gcompel>
      <comp:gcompel>
      <fstr>fourth</fstr>
      <multel>
      <in1>1</in1>
      <in2>F</in2>
      <in3>2.98E+1</in3>
      </multel>
      </comp:gcompel>
      <comp:gcompel>
      <fstr>fifth</fstr>
      <multel>
      <in1>0</in1>
      <in2>D</in2>
      <in3>8.57E-2</in3>
      </multel>
      </comp:gcompel>
      </incomp>
      <footer>nesting end</footer>
      </lcomp>
      <repstr>abc</repstr>
      </comp:addev3>
    3. <comp:addev3 xmlns:comp="http://www.complex.net">
      <dur>P2Y2M</dur>
      <comp3>
      <int1>6</int1>
      <dec1>2821.54</dec1>
      </comp3>
      <comp3>
      <int1>41</int1>
      <dec1>0.02</dec1>
      </comp3>
      <binel><![CDATA[3132333435]]></binel>
      <lelem latt="24">twenty four</lelem>
      <lcomp>
      <head>nesting start</head>
      <incomp>
      <count>0</count>
      </incomp>
      <footer>nesting end</footer>
      </lcomp>
      <repstr>abc</repstr>
      <repstr>def</repstr>
      <repstr>ghi</repstr>
      <repstr>jkl</repstr>
      <repstr>mno</repstr>
      <repstr>pqr</repstr>
      <repstr>stu</repstr>
      <repstr>vwx</repstr>
      </comp:addev3>
Ergebnisse von Schritt 5: Nachricht 'addev3' erstellt in Nachrichtendefinition 'COMPLEX' und Nachrichtenfluss 'addev3' erstellt mit Zuordnungsdatei 'addev3_Mapping.msgmap'. Dateien mit Instanznachrichten zum Testen.

Schritt 6. Nachrichtengruppe und Fluss implementieren und Instanznachrichten über Broker ausführen

  1. Erstellen Sie eine BAR-Datei (addev3).
  2. Fügen Sie die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' und den Nachrichtenfluss 'addev3' zur BAR-Datei hinzu.
  3. Setzen Sie die BAR-Datei für den Broker ein.
  4. Reihen Sie die Instanzdokumente in die Eingabewarteschlange ein.
Ergebnisse von Schritt 6: Die Ausgabenachrichten sollten folgendes Format haben:
<comp:addev3 xmlns:comp="http://www.complex.net">
<sstr>first</sstr>
<comp1>
<dat1>2005-06-24</dat1>
<sval>date value</sval>
</comp1>
<binel><![CDATA[3132333435]]></binel>
<lelem latt="24">twenty four</lelem>
<lcomp>
<head>nesting start</head>
<incomp>
<count>3</count>
<comp:gcompel>
<fstr>first</fstr>
<multel>
<in1>1</in1>
<in2>C</in2>
<in3>2.45E+1</in3>
</multel>
</comp:gcompel>
<comp:gcompel>
<fstr>second</fstr>
<multel>
<in1>1</in1>
<in2>D</in2>
<in3>7.625E+3</in3>
</multel>
</comp:gcompel>
<comp:gcompel>
<fstr>third</fstr>
<multel>
<in1>0</in1>
<in2>C</in2>
<in3>4.9E+0</in3>
</multel>
</comp:gcompel>
</incomp>
<footer>nesting end</footer>
</lcomp>
<repstr>abc</repstr>
<repstr>def</repstr>
<repstr>ghi</repstr>
<repstr>jkl</repstr>
<repstr>mno</repstr>
</comp:addev3>
<comp:addev3 xmlns:comp="http://www.complex.net">
<intrep>45</intrep>
<intrep>12</intrep>
<intrep>920</intrep>
<comp2>
<bool1>1</bool1>
<dat2>2005-06-24</dat2>
</comp2>
<binel><![CDATA[3132333435]]></binel>
<lelem latt="24">twenty four</lelem>
<lcomp>
<head>nesting start</head>
<incomp>
<count>5</count>
<comp:gcompel>
<fstr>first</fstr>
<multel>
<in1>1</in1>
<in2>C</in2>
<in3>2.45E+1</in3>
</multel>
</comp:gcompel>
<comp:gcompel>
<fstr>second</fstr>
<multel>
<in1>1</in1>
<in2>D</in2>
<in3>7.625E+3</in3>
</multel>
</comp:gcompel>
<comp:gcompel>
<fstr>third</fstr>
<multel>
<in1>0</in1>
<in2>C</in2>
<in3>4.9E+0</in3>
</multel>
</comp:gcompel>
<comp:gcompel>
<fstr>fourth</fstr>
<multel>
<in1>1</in1>
<in2>F</in2>
<in3>2.98E+1</in3>
</multel>
</comp:gcompel>
<comp:gcompel>
<fstr>fifth</fstr>
<multel>
<in1>0</in1>
<in2>D</in2>
<in3>8.57E-2</in3>
</multel>
</comp:gcompel>
</incomp>
<footer>nesting end</footer>
</lcomp>
<repstr>abc</repstr>
</comp:addev3>
<comp:addev3 xmlns:comp="http://www.complex.net">
<dur>P2Y2M</dur>
<comp3>
<int1>6</int1>
<dec1>2821.54</dec1>
</comp3>
<comp3>
<int1>41</int1>
<dec1>0.02</dec1>
</comp3>
<binel><![CDATA[3132333435]]></binel>
<lelem latt="24">twenty four</lelem>
<lcomp>
<head>nesting start</head>
<incomp>
<count>0</count>
</incomp>
<footer>nesting end</footer>
</lcomp>
<repstr>abc</repstr>
<repstr>def</repstr>
<repstr>ghi</repstr>
<repstr>jkl</repstr>
<repstr>mno</repstr>
<repstr>pqr</repstr>
<repstr>stu</repstr>
<repstr>vwx</repstr>
</comp:addev3>

Schritt 7. Fluss zum Füllen eines Ziels mit Daten aus einer Datenbank entwickeln und entsprechendes Nachrichtenmodell und Instanzdokumente entwickeln

  1. Erstellen Sie eine Datenbank (z. B. MAPDB), und erstellen Sie die Tabelle 'TRANSACTION' mit folgenden Spalten:
    ACCOUNT        VARCHAR(12)
    TDATE                DATE
    VALUE               DECIMAL(8,2)
  2. Füllen Sie die Datenbank mit Werten:
    '12345678901', '2005-04-25', -14.25
    '12345678901', '2005-04-25', 100.00
    '12345678901','2005-05-15', 2891.30
    '12345678901','2005-06-11', -215.28
  3. Erstellen Sie einen Windows-ODBC-Datenquellennamen für die Datenbank, und registrieren Sie die Datenbank beim Konfigurationsmanager (klicken Sie auf Datei >Neu >RDB-Definitionsdatei).
  4. Erstellen Sie in der Nachrichtendefinition 'COMPLEX' im Namensbereich 'www.complex.net' die Nachricht 'addev4in' mit folgender Struktur:
    addev4in
       account             (xsd:string) lokales Element
       tdate                 (xsd:date) lokales Element
  5. Erstellen Sie in der Nachrichtendefinition 'COMP2' im Namensbereich 'www.comp2.net' die Nachricht 'addev4out' mit folgender Struktur:
    addev4out
       account             (xsd:string) lokales Element
       tdate                 (xsd:date) lokales Element
       value                 (xsd:decimal) lokales Element, minOcc=0, maxOcc=-1
  6. Erstellen Sie den Nachrichtenfluss 'addev4' mit: MQEmpfangsknoten > Zuordnungsknoten > MQSendeknoten.
  7. Öffnen Sie die Zuordnung, und wählen Sie 'addev4' als Quelle und 'addev4out' als Ziel aus.
  8. Ordnen Sie die Eingaben den Ausgaben wie folgt zu:
    account --- account
    tdate --- tdate
  9. Wählen Sie im Spreadsheet den Zielwert aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Menü Datenquelle auswählen aus. Wählen Sie im Dialog 'MAPDB' aus, und klicken Sie auf Fertig stellen.
  10. Erweitern Sie im oberen Fenster die MAPDB-Baumstruktur, und erstellen Sie folgende Verbindung:VALUE --- value.
  11. Wählen Sie in der Spreadsheetansicht das Ziel '$db:select', und ändern Sie fn:true() in: $db:select.MAPDB.SCHEMA.TRANSACTION.ACCOUNT=$source/comp:addev4in/account und $db:select.MAPDB.SCHEMA.TRANSACTION.TDATE=$source/comp:addev4in/tdate
  12. Erweitern Sie die Eigenschaftenbaumstruktur, und legen Sie Folgendes fest:MessageType | 'addev4out'
  13. Setzen Sie die Eigenschaft 'Datenquelle' des Zuordnungsknotens auf 'MAPDB'.
  14. Erstellen Sie folgende Instanznachrichten (mit den entsprechenden RFH2-Headern):
    <comp:addev4in xmlns:comp="http://www.complex.net">
    <account>12345678901</account>
    <tdate>2005-05-15</tdate>
    </comp:addev4in>
    <comp:addev4in xmlns:comp="http://www.complex.net">
    <account>12345678901</account>
    <tdate>2005-04-25</tdate>
    </comp:addev4in>
Ergebnisse von Schritt 7: Nachricht 'addev4in' in Nachrichtendefinition 'COMPLEX' erstellt und Nachricht 'addev4out' in Nachrichtendefinition 'COMP' erstellt. Nachrichtenfluss 'addev4' mit Zuordnungsdatei 'addev4_Mapping.msgmap' wurde erstellt. Dateien enthalten Instanznachrichten.

Schritt 8. Nachrichtengruppe und Fluss implementieren und Instanznachrichten über Broker ausführen

  1. Erstellen Sie eine BAR-Datei (addev4).
  2. Fügen Sie die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' und den Nachrichtenfluss 'addev4' zur BAR-Datei hinzu.
  3. Setzen Sie die BAR-Datei für den Broker ein.
  4. Stellen Sie die Instanzdokumente in die Eingabewarteschlange.
Ergebnisse von Schritt 8: Die Ausgabenachrichten sollten folgendes Format haben:
<c2:addev4out xmlns:c2="http://www.comp2.net" xmlns:comp="http://www.complex.net" >
<account>12345678901</account>
<tdate>2005-05-15</tdate>
<value>2891.3</value>
</c2:addev4out>

Schritt 9. Fluss unter Verwendung einer benutzerdefinierten ESQL-Funktion entwickeln, entsprechende Nachrichtenmodelle und Instanzdokumente entwickeln

  1. Erstellen Sie in der Nachrichtendefinition 'COMPLEX' im Namensbereich 'www.complex.net' die Nachrichten 'addev5in' und 'addev5out' mit folgenden Strukturen:
    addev5in
       value1                    (xsd:decimal) lokales Element
       operator                 (xsd:string) lokales Element
       value2                    (xsd:decimal) lokales Element
       rate                        (xsd:decimal) lokales Element
    addev5out
       grossvalue               (xsd:decimal) lokales Element
       netvalue                   (xsd:decimal) lokales Element
  2. Erstellen Sie den Nachrichtenfluss 'addev5' mit: MQEingabeknoten > Zuordnungsknoten > MQSendeknoten.
  3. Öffnen Sie die Zuordnung, und wählen Sie 'addev5' als Quelle und 'addev5out' als Ziel aus.
  4. Erstellen Sie im Projekt 'MAPPING3_COMPLEX_flows' eine ESQL-Datei namens 'addev5', und fügen Sie folgende Funktionen ein:
    CREATE FUNCTION calcGrossvalue(IN value1 DECIMAL, IN operator CHAR,
                                                                                          IN value2 DECIMAL) RETURNS DECIMAL
                           BEGIN
                  DECLARE outval DECIMAL;
                  CASE operator
                  WHEN 'PLUS' THEN
                      SET outval = value1 + value2;
                  WHEN 'MINUS' THEN
                      SET outval = value1 - value2;
                  WHEN 'MULTIPLY' THEN
                      SET outval = value1 * value2;
                  WHEN 'DIVIDE' THEN
                      SET outval = value1 / value2;
                  ELSE
                      THROW USER EXCEPTION MESSAGE 2949 VALUES('Ungültiger Operator', Operator);
                      SET outval = -999999;
                  END CASE;
                RETURN outval;
              END;
    CREATE FUNCTION calcNetvalue(IN value1 DECIMAL, IN operator CHAR, IN value2 DECIMAL,
                                                                                     IN rate DECIMAL) RETURNS DECIMAL
                     BEGIN
            DECLARE grossvalue DECIMAL;
            SET grossvalue=calcGrossvalue(value1, operator, value2);
            RETURN (grossvalue * rate );
        END;
  5. Erweitern Sie in der Spreadsheetansicht des Zuordnungseditors für Nachrichten die Nachricht, und wählen Sie 'grossvalue' aus.
  6. Geben Sie im Fenster 'Ausdruck' Folgendes ein: esql:calcGrossvalue($source/comp:addev5in/value1, $source/comp:addev5in/operator, $source/comp:addev5in/value2).
  7. Wählen Sie das Ziel 'netvalue' aus, und geben Sie im Fenster 'Ausdruck' Folgendes ein: esql:calcNetvalue($source/comp:addev5in/value1, $source/comp:addev5in/operator, $source/comp:addev5in/value2, $source/comp:addev5in/rate).
  8. Erweitern Sie die Eigenschaftenbaumstruktur, und legen Sie Folgendes fest:MessageType | 'addev5out'
  9. Erstellen Sie folgende Instanznachrichten (mit den entsprechenden RFH2-Headern):
    1. <comp:addev5in xmlns:comp="http://www.complex.net">
      <value1>125.32</value1>
      <operator>PLUS</operator>
      <value2>25.86</value2>
      <rate>0.60</rate>
      </comp:addev5in>
    2. <comp:addev5in xmlns:comp="http://www.complex.net">
      <value1>118.00</value1>
      <operator>MINUS</operator>
      <value2>245.01</value2>
      <rate>0.30</rate>
      </comp:addev5in>
    3. <comp:addev5in xmlns:comp="http://www.complex.net">
      <value1>254.02</value1>
      <operator>MULTIPLY</operator>
      <value2>3.21</value2>
      <rate>0.75</rate>
      </comp:addev5in>
    4. <comp:addev5in xmlns:comp="http://www.complex.net">
      <value1>1456.33</value1>
      <operator>DIVIDE</operator>
      <value2>18.58</value2>
      <rate>0.92</rate>
      </comp:addev5in>
    5. <comp:addev5in xmlns:comp="http://www.complex.net">
      <value1>254.02</value1>
      <operator>MOD</operator>
      <value2>3.21</value2>
      <rate>0.75</rate>
      </comp:addev5in>
Ergebnisse von Schritt 9: Nachrichten 'addev5in' und 'addev5out' in Nachrichtendefinition 'COMPLEX' erstellt. Nachrichtenfluss 'addev5' erstellt mit Zuordnungsdatei 'addev5_Mapping.msgmap' und ESQL-Datei 'addev5.esql'. Dateien enthalten Instanznachrichten.

Schritt 10. Nachrichtengruppe und Fluss implementieren und Instanznachrichten über Broker ausführen

  1. Erstellen Sie eine BAR-Datei (addev5).
  2. Fügen Sie die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' und den Nachrichtenfluss 'addev5' zur BAR-Datei hinzu.
  3. Setzen Sie die BAR-Datei für den Broker ein.
  4. Stellen Sie die Instanzdokumente in die Eingabewarteschlange.
Ergebnisse von Schritt 10: Die Ausgabenachrichten sollten folgendes Format haben:
<comp:addev5out xmlns:comp="http://www.complex.net">
<grossvalue>151.18</grossvalue>
<netvalue>90.708</netvalue>
</comp:addev5out>
<comp:addev5out xmlns:comp="http://www.complex.net">
<grossvalue>-127.01</grossvalue>
<netvalue>-38.103</netvalue>
</comp:addev5out>
<comp:addev5out xmlns:comp="http://www.complex.net">
<grossvalue>815.4042</grossvalue>
<netvalue>611.55315</netvalue>
</comp:addev5out>
<comp:addev5out xmlns:comp="http://www.complex.net">
<grossvalue>78.38159311087190527448869752421959</grossvalue>
<netvalue>72.11106566200215285252960172228202</netvalue>
</comp:addev5out>
Keine Nachrichtenausgabe, jedoch sollte im Ereignisprotokoll ein Eintrag vorhanden sein:
BIP2949 ( BRK.default ) Eine benutzergenerierte ESQL-Ausnahmebedingung wurde ausgegeben. Weitere Informatonen, die mit dieser Ausnahmebedingung bereitgestellt werden: ''Ungültiger Operator'' ''MOD'' 'addev5.Mapping.ComIbmCompute' '%5' '%6' '%7' '%8' '%9' '%10' '%11' 
Diese Ausnahmebedingung wurde von der Anweisung THROW EXCEPTION generiert.Dies ist das Standardverhalten der TRHOW-Anweisung. Da dies eine benutzergenerierte Ausnahmebedingung ist, ist die Benutzeraktion vom Nachrichtenfluss und vom Ausnahmetyp abhängig.

Schritt 11. Fluss unter Verwendung einer benutzerdefinierten Java-Prozedur entwickeln, entsprechende Nachrichtenmodelle und Instanzdokumente entwickeln

  1. Erstellen Sie in der Nachrichtendefinition 'COMPLEX' im Namensbereich 'www.complex.net' die Nachrichten 'addev6in' und 'addev6out' mit folgenden Strukturen:
    addev6in
        hexdata                (xsd:hexBinary) lokales Element
    addev6out
        decval                  (xsd:decimal) lokales Element
        fltval                     (xsd:float) lokales Element
        intval                    (xsd:int) lokales Element
  2. Erstellen Sie den Nachrichtenfluss 'addev6' mit: MQEmpfangsknoten > Zuordnungsknoten > MQSendeknoten.
  3. Öffnen Sie die Zuordnung, und wählen Sie 'addev6in' als Quelle und 'addev6out' als Ziel aus.
  4. Erstellen Sie im Projekt 'MAPPING3_COMPLEX_flows' eine ESQL-Datei namens 'addev6', und fügen Sie folgende Funktionen ein:
    CREATE PROCEDURE decFromBinary( IN hexval BLOB )
     RETURNS DECIMAL
     LANGUAGE JAVA 
     EXTERNAL NAME "addev6.decFromBinary";
    CREATE PROCEDURE fltFromBinary( IN hexval BLOB )
     RETURNS DECIMAL
     LANGUAGE JAVA 
     EXTERNAL NAME "addev6.fltFromBinary";
    CREATE PROCEDURE intFromBinary( IN hexval BLOB )
     RETURNS DECIMAL
     LANGUAGE JAVA 
     EXTERNAL NAME "addev6.intFromBinary";
  5. Erstellen Sie eine Java-Quellendatei (addev6.java) mit folgenden Inhalten:
    import java.lang.*;
    import java.math.*;
    
    public class addev6 {
        //
        // Dezimales Element aus Binärzeichenfolge zurückgeben
        //
        public static BigDecimal decFromBinary( byte[] hexval) {
        // Nach Element namens 'decval' suchen
        String search = "decval";
        String snval = findElement(hexval ,search );
        // Wert in Dezimaltyp konvertieren
        BigDecimal numval = new BigDecimal(snval);
        return numval;
        }
        //
        // FLOAT-Element aus Binärzeichenfolge zurückgeben
        //
        public static Double fltFromBinary( byte[] hexval) {
        // Nach Element namens 'fltval' suchen
        String search = "fltval";
        String snval = findElement(hexval ,search );
        // Wert in Datentyp FLOAT konvertieren
        Double numval = new Double(snval);
        return numval;
        }
        //
        // Element des Typs INTEGER aus Binärzeichenfolge zurückgeben     //
        public static Long intFromBinary( byte[] hexval) {
        // Nach Element namens 'intval' suchen
        String search = "intval";
        String snval = findElement(hexval ,search );
        // Wert in ganzzahligen Typ konvertieren
        Long numval = new Long(snval);
        return numval;
        }
        //
        // Das benannte Element und den zugehörigen Wert in den binären Daten suchen
        //
        private static String findElement( byte[] hexval, String search ) {
        // Byte in Zeichenfolge konvertieren
        String hexstr = new String(hexval);
        // Kennung/Wertpaare mit fester Länge (Länge=14)
        int nvals = hexstr.length() / 14;
        String numval = "";
        String[] label = new String[nvals];
        String[] value = new String[nvals];
        // Schleife über Anzahl der Kennung/Wert-Paare
        for ( int i=0; i < nvals; i ++ ) {
            // Anfangsposition abrufen
            int st = i * 14;
            // Kennung hat Länge 6
            int endl = st + 6;
            // Wert hat Länge 8
            int endv = endl + 8;
            // Kennung und Wert aus Zeichenfolge extrahieren
            label[i] = hexstr.substring( st, endl);
            value[i] = hexstr.substring( (endl+1), endv);
            // Prüfen, ob das aktuelle Paar über die erforderliche Kennung verfügt
            if ( label[i].compareTo( search) == 0 ) {
            // Auffüllzeichen aus Wert entfernen
            numval = value[i].trim();
            }
        }
        return numval;
        }
    }
  6. Kompilieren Sie die Java-Datei, und fügen Sie die Adresse der Klassendatei zum Klassenpfad des Systems hinzu (möglicherweise muss Windows neu gestartet werden, wenn Sie die Variable CLASSPATH bearbeiten).
  7. Erweitern Sie in der Spreadsheetansicht des Zuordnungseditors für Nachrichten die Zielnachricht, und setzen Sie das Ziel 'decval' auf folgenden Wert: esql:decFromBinary($source/comp:addev6in/bval).
  8. Setzen Sie das Ziel 'fltval' auf: esql:fltFromBinary($source/comp:addev6in/bval).
  9. Setzen Sie das Ziel 'intval' auf: esql:intFromBinary($source/comp:addev6in/bval).
  10. Erweitern Sie das Ziel 'Properties', und legen Sie Folgendes fest:MessageType | 'addev6out
  11. Erstellen Sie folgende Instanznachricht (mit den entsprechenden RFH2-Headern):
    <comp:addev6in xmlns:comp="http://www.complex.net">
    <bval>
    <![CDATA[64656376616c20202031342e3238666c7476616c2020312e34452b32696e7476616c2020202020313230]]>
    </bval>
    </comp:addev6in>
Ergebnisse von Schritt 11: Nachrichten 'addev6in' und 'addev6out' in Nachrichtendefinition 'COMPLEX' erstellt. Nachrichtenfluss 'addev6' erstellt mit Zuordnungsdatei 'addev6_Mapping.msgmap' und ESQL-Datei 'addev6.esql'. Java-Quelle 'addev6.java' und kompilierte Klassendatei 'addev6.class' in einem Verzeichnis, in dem sie von der Systemvariablen CLASSPATH gefunden werden. Dateien mit Instanznachrichten.

Schritt 12. Nachrichtengruppe und Fluss implementieren und Instanznachrichten über Broker ausführen

  1. Erstellen Sie eine BAR-Datei (addev6).
  2. Fügen Sie die Nachrichtengruppe 'MAPPING3_COMPLEX_messages' und den Nachrichtenfluss 'addev6' zur BAR-Datei hinzu.
  3. Setzen Sie die BAR-Datei für den Broker ein.
  4. Stellen Sie die Instanzdokumente in die Eingabewarteschlange.
Ergebnisse von Schritt 12: Die Ausgabenachricht sollte folgendes Format haben:
<comp:addev6out xmlns:comp="http://www.complex.net">
<decval>14.28</decval>
<fltval>1.4E+2</fltval>
<intval>120</intval>
</comp:addev6out>

Zusammenfassung der Schritte 1 bis 12

  1. Nachrichtengruppe 'MAPPING3_COMPLEX_messages' erstellt und mit Nachrichten 'addev1', 'addev1s' und 'addev1n' gefüllt. Nachrichtenfluss 'addev1' im Projekt 'MAPPING3_COMPLEX_flows' mit Zuordnungsdateien 'addev1_Mapping.msgmap' und 'addev1._Mapping1.msgmap' erstellt. Dateien enthalten Instanznachrichten zum Testen.
  2. Die Ausgabenachrichten sollten folgendes Format haben:
    <comp:addev1s xmlns:comp="http://www.complex.net">
    <bin><![CDATA[010203]]></bin>
    <dat>2005-08-06T00:00:00-01:00</dat>
    <dur>P2Y4M</dur>
    <str>dat</str>
    </comp:addev1s>
    lt;comp:addev1s xmlns:comp="http://www.complex.net">
    <bin><![CDATA[010203]]></bin>
    <dat>2005-05-06T00:00:00-01:00</dat>
    <dur>P3Y4M</dur>
    <str>dur</str>
    </comp:addev1s>
    &<comp:addev1n xmlns:comp="http://www.complex.net">
    <dec>193.4</dec>
    <flt>3.245E+3</flt>
    <int>21040</int>
    </comp:addev1n>
  3. Nachricht 'addev2' in Nachrichtendefinition 'COMPLEX' erstellt und Nachricht 'addev2out' in Nachrichtendefinition 'COMP2' erstellt. Nachrichtenfluss 'addev2' mit Zuordnungsdatei 'addev2_Mapping.msgmap' erstellt. Dateien mit Instanznachrichten zum Testen.
  4. Die Ausgabenachrichten sollten folgendes Format haben:
    <c2:addev2out xmlns:c2="http://www.comp2.net"  xmlns:comp="http://www.complex.net">
    <accountdetails>567432876543 52-84-02 Benn Brian</accountdetails>
    <transvalue>-25.28</transvalue>
    <balance>1518.28</balance>
    </c2:addev2out>
    <c2:addev2out xmlns:c2="http://www.comp2.net" xmlns:comp="http://www.complex.net">
    <accountdetails>567432876543 52-84-02 Benn Brian</accountdetails>
    <transvalue>25.28</transvalue>
    <balance>1568.84</balance>
    </c2:addev2out>
  5. Nachricht 'addev3' erstellt in Nachrichtendefinition 'COMPLEX' und Nachrichtenfluss 'addev3' erstellt mit Zuordnungsdatei 'addev3_Mapping.msgmap'. Dateien mit Instanznachrichten zum Testen.
  6. Die Ausgabenachrichten sollten folgendes Format haben:
    <comp:addev3 xmlns:comp="http://www.complex.net">
    <sstr>first</sstr>
    <comp1>
    <dat1>2005-06-24</dat1>
    <sval>date value</sval>
    </comp1>
    <binel><![CDATA[3132333435]]></binel>
    <lelem latt="24">twenty four</lelem>
    <lcomp>
    <head>nesting start</head>
    <incomp>
    <count>3</count>
    <comp:gcompel>
    <fstr>first</fstr>
    <multel>
    <in1>1</in1>
    <in2>C</in2>
    <in3>2.45E+1</in3>
    </multel>
    </comp:gcompel>
    <comp:gcompel>
    <fstr>second</fstr>
    <multel>
    <in1>1</in1>
    <in2>D</in2>
    <in3>7.625E+3</in3>
    </multel>
    </comp:gcompel>
    <comp:gcompel>
    <fstr>third</fstr>
    <multel>
    <in1>0</in1>
    <in2>C</in2>
    <in3>4.9E+0</in3>
    </multel>
    </comp:gcompel>
    </incomp>
    <footer>nesting end</footer>
    </lcomp>
    <repstr>abc</repstr>
    <repstr>def</repstr>
    <repstr>ghi</repstr>
    <repstr>jkl</repstr>
    <repstr>mno</repstr>
    </comp:addev3>
    <comp:addev3 xmlns:comp="http://www.complex.net">
    <intrep>45</intrep>
    <intrep>12</intrep>
    <intrep>920</intrep>
    <comp2>
    <bool1>1</bool1>
    <dat2>2005-06-24</dat2>
    </comp2>
    <binel><![CDATA[3132333435]]></binel>
    <lelem latt="24">twenty four</lelem>
    <lcomp>
    <head>nesting start</head>
    <incomp>
    <count>5</count>
    <comp:gcompel>
    <fstr>first</fstr>
    <multel>
    <in1>1</in1>
    <in2>C</in2>
    <in3>2.45E+1</in3>
    </multel>
    </comp:gcompel>
    <comp:gcompel>
    <fstr>second</fstr>
    <multel>
    <in1>1</in1>
    <in2>D</in2>
    <in3>7.625E+3</in3>
    </multel>
    </comp:gcompel>
    <comp:gcompel>
    <fstr>third</fstr>
    <multel>
    <in1>0</in1>
    <in2>C</in2>
    <in3>4.9E+0</in3>
    </multel>
    </comp:gcompel>
    <comp:gcompel>
    <fstr>fourth</fstr>
    <multel>
    <in1>1</in1>
    <in2>F</in2>
    <in3>2.98E+1</in3>
    </multel>
    </comp:gcompel>
    <comp:gcompel>
    <fstr>fifth</fstr>
    <multel>
    <in1>0</in1>
    <in2>D</in2>
    <in3>8.57E-2</in3>
    </multel>
    </comp:gcompel>
    </incomp>
    <footer>nesting end</footer>
    </lcomp>
    <repstr>abc</repstr>
    </comp:addev3>
    <comp:addev3 xmlns:comp="http://www.complex.net">
    <dur>P2Y2M</dur>
    <comp3>
    <int1>6</int1>
    <dec1>2821.54</dec1>
    </comp3>
    <comp3>
    <int1>41</int1>
    <dec1>0.02</dec1>
    </comp3>
    <binel><![CDATA[3132333435]]></binel>
    <lelem latt="24">twenty four</lelem>
    <lcomp>
    <head>nesting start</head>
    <incomp>
    <count>0</count>
    </incomp>
    <footer>nesting end</footer>
    </lcomp>
    <repstr>abc</repstr>
    <repstr>def</repstr>
    <repstr>ghi</repstr>
    <repstr>jkl</repstr>
    <repstr>mno</repstr>
    <repstr>pqr</repstr>
    <repstr>stu</repstr>
    <repstr>vwx</repstr>
    </comp:addev3>
  7. Nachricht 'addev4in' in Nachrichtendefinition 'COMPLEX' erstellt und Nachricht 'addev4out' in Nachrichtendefinition 'COMP' erstellt. Nachrichtenfluss 'addev4' mit Zuordnungsdatei 'addev4_Mapping.msgmap' wurde erstellt. Dateien enthalten Instanznachrichten.
  8. Die Ausgabenachrichten sollten folgendes Format haben:
    <c2:addev4out xmlns:c2="http://www.comp2.net" xmlns:comp="http://www.complex.net" >
    <account>12345678901</account>
    <tdate>2005-05-15</tdate>
    <value>2891.3</value>
    </c2:addev4out>
    <c2:addev4out xmlns:c2="http://www.comp2.net" xmlns:comp="http://www.complex.net" >
    <account>12345678901</account>
    <tdate>2005-04-25</tdate>
    <value>-14.25</value>
    <value>100</value>
    </c2:addev4out>
  9. Nachrichten 'addev5in' und 'addev5out' in Nachrichtendefinition 'COMPLEX' erstellt. Nachrichtenfluss 'addev5' erstellt mit Zuordnungsdatei 'addev5_Mapping.msgmap' und ESQL-Datei 'addev5.esql'. Dateien enthalten Instanznachrichten.
  10. Die Ausgabenachrichten sollten folgendes Format haben:
    <comp:addev5out xmlns:comp="http://www.complex.net">
    <grossvalue>151.18</grossvalue>
    <netvalue>90.708</netvalue>
    </comp:addev5out>
    <comp:addev5out xmlns:comp="http://www.complex.net">
    <grossvalue>-127.01</grossvalue>
    <netvalue>-38.103</netvalue>
    </comp:addev5out>
    <comp:addev5out xmlns:comp="http://www.complex.net">
    <grossvalue>815.4042</grossvalue>
    <netvalue>611.55315</netvalue>
    </comp:addev5out>
    <comp:addev5out xmlns:comp="http://www.complex.net">
    <grossvalue>78.38159311087190527448869752421959</grossvalue>
    <netvalue>72.11106566200215285252960172228202</netvalue>
    </comp:addev5out>
    Keine Nachrichtenausgabe, jedoch sollte im Ereignisprotokoll ein Eintrag vorhanden sein:
    BIP2949 ( BRK.default ) Eine benutzergenerierte ESQL-Ausnahmebedingung wurde ausgegeben. Weitere Informationen, die mit dieser Ausnahmebedingung bereitgestellt werden: ''Ungültiger Operator'' ''MOD'' 'addev5.Mapping.ComIbmCompute' '%5' '%6' '%7' '%8' '%9' '%10' '%11' 
    Diese Ausnahmebedingung wurde von der Anweisung THROW EXCEPTION generiert. Dies ist das Standardverhalten der TRHOW-Anweisung. Da dies eine benutzergenerierte Ausnahmebedingung ist, ist die Benutzeraktion vom Nachrichtenfluss und vom Ausnahmetyp abhängig.
  11. Nachrichten 'addev6in' und 'addev6out' in Nachrichtendefinition 'COMPLEX' erstellt. Nachrichtenfluss 'addev6' erstellt mit Zuordnungsdatei 'addev6_Mapping.msgmap' und ESQL-Datei 'addev6.esql'. Java-Quelle 'addev6.java' und kompilierte Klassendatei 'addev6.class' in einem Verzeichnis, in dem sie von der Systemvariablen CLASSPATH gefunden werden. Dateien mit Instanznachrichten.
  12. Die Ausgabenachricht sollte folgendes Format haben:
    <comp:addev6out xmlns:comp="http://www.complex.net">
    <decval>14.28</decval>
    <fltval>1.4E+2</fltval>
    <intval>120</intval>
    </comp:addev6out>
Zugehörige Tasks
Beispiel: Nachrichtenzuordnung erstellen, konfigurieren und implementieren
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2005 Letzte Aktualisierung: Nov 17, 2005
ar25251_