Dies ist der dritte Abschnitt des Szenarios zum Ausführen einer
Erweiterung einfacher Nachrichteninhalte. In diesem Abschnitt erfahren Sie, wie Sie einen Nachrichtenfluss entwickeln, um Zielfelder aus mehreren anderen Feldern zuzuordnen. Des Weiteren lernen Sie, entsprechende Nachrichtenmodelle und Instanzdokumente zu entwickeln.
- 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
- Erstellen Sie in der Nachrichtengruppe 'MAPPING3_COMPLEX_messages' eine neue Nachrichtendefinitionsdatei namens 'COMP2' mit dem Ziel-Namespace 'www.comp2.net' und dem Präfix 'c2'.
- 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
- Erstellen Sie den Nachrichtenfluss 'addev2' mit folgendem Zuordnungsinhalt: MQEmpfangsknoten -> Zuordnungsknoten -> MQSendeknoten.
- Öffnen Sie die Zuordnung, und wählen Sie 'addev2' als Quelle und 'addev2out' als Ziel aus.
- Verbinden Sie die Quelle mit dem Ziel wie folgt:
accountno --- accountdetails
balance --- balance
transvalue --- transvalue
- Erweitern Sie im Spreadsheetfenster die Eigenschaften, und richten Sie folgende Werte ein:
MessageType | 'addev2out'
- Setzen Sie das Ziel 'accountdetails' auf fn:concat($source/comp:addev2/accountno,
$source/comp:addev2/branch, $source/comp:addev2/lastname, $source/comp:addev2/firstname).
- Klicken Sie mit der rechten Maustaste auf das Ziel 'transvalue', und wählen Sie dann die Option If aus.
- Ändern Sie die Bedingung von 'fn:true()' in $source/comp:addev2/transvalue/@transdir
= 'DEBIT'.
- Wählen Sie 'transvalue' aus, und setzen Sie den zugehörigen Wert auf $source/comp:addev2/transvalue
* (-1).
- Klicken Sie mit der rechten Maustaste auf die Bedingung, und wählen Sie dann die Option Else aus.
- Klicken Sie mit der rechten Maustaste auf das Ziel 'balance', und wählen Sie dann die Option If aus.
- Ändern Sie die Bedingung von 'fn:true()' in $source/comp:addev2/transvalue/@transdir
= 'DEBIT'.
- Wählen Sie 'balance' aus, und setzen Sie den zugehörigen Wert auf $source/comp:addev2/balance
- $source/comp:addev2/transvalue.
- Klicken Sie mit der rechten Maustaste auf die Bedingung, und wählen Sie dann die Option Condition aus.
- Ändern Sie die Bedingung von 'fn:true()' in $source/comp:addev2/transvalue/@transdir
= 'CREDIT'.
- Wählen Sie 'balance' nach der zweiten Bedingung aus, und setzen Sie den Wert auf $source/comp:addev2/balance + $source/comp:addev2/transvalue.
- 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>
Sie haben folgende Ressourcen erstellt:
- eine Nachricht namens 'addev2' in der Nachrichtendefinition 'COMPLEX'
- eine Nachricht namens 'addev2out' in der Nachrichtendefinition 'COMP2'
- einen Nachrichtenfluss namens 'addev2' mit der Zuordnungsdatei 'addev2_Mapping.msgmap'
- Dateien mit Instanznachrichten zum Testen
Setzen Sie jetzt die Nachrichtengruppe und den Nachrichtenfluss ein.