Der Mustercode 'Coordinated Request Reply WebSphere MQ' enthält die MQ-Anwendung 'Coordinated Request Reply'. Diese Anwendung enthält eine Bibliotheksreferenz auf die Bibliothek 'Coordinated Request Reply'.
Der Mustercode 'Coordinated Request Reply WebSphere MQ' veranschaulicht die Verwendung eines MQGet-Knotens. Die Nachrichtenflüsse und die von ihnen ausgeführte Verarbeitung werden in den folgenden Abschnitten näher erläutert.
Der Nachrichtenfluss 'Request' führt die folgenden Verarbeitungsschritte aus:
Der Nachrichtenfluss 'Request' enthält die folgenden Knoten:
Der MQInput-Knoten 'GetRequestMsg' liest die XML-Nachricht. Da die eingehende Nachricht ein selbstdefinierendes XML-Format hat, ist es nicht erforderlich, einen Nachrichtensatz oder ein Nachrichtenformat anzugeben, damit sie erfolgreich syntaktisch analysiert werden kann.
Der untergeordnete Nachrichtenfluss 'StoreOriginalMQMD_Sub' bindet das Speichern der Werte 'ReplyToQ' und 'ReplyToQMgr' in eine WebSphere MQ-Nachricht ein. Diese Einbindung ermöglicht Folgendes:
Der untergeordnete Nachrichtenfluss 'TransformXMLtoMRM_Sub' kopiert die Nachrichtenheader von der Eingabenachricht in die Baumstruktur der Ausgabenachricht und konvertiert die Eingabenachricht vom XML-Format in CWF, indem er die Nachrichtengruppe, den Typ und das Format für die Ausgabenachricht festlegt.
Der Rechenknoten 'SetReplyTo' führt folgende Aktionen aus:
Der MQReply-Knoten 'OutputRequestMsg' schreibt die WebSphere MQ-Ausgabenachricht.
Der Nachrichtenfluss 'Backend Reply' führt die folgenden Verarbeitungsschritte aus:
Der Nachrichtenfluss 'Backend Reply' enthält die folgenden Knoten:
Der MQInput-Knoten 'GetRequestMsg' liest die CWF-Nachricht. Der Nachrichtensatz, das Format und die Domäne, die zur syntaktischen Analyse der eingehenden Nachricht benötigt werden, sind im MQInput-Knoten angegeben.
Der Rechenknoten 'Modify_CompletionTime' führt folgende Aktionen aus:
Der MQOutput-Knoten 'PutReplyMsg' schreibt die WebSphere MQ-Ausgabenachricht.
Der Nachrichtenfluss 'Reply' führt die folgenden Verarbeitungsschritte aus:
Der Nachrichtenfluss 'Reply' enthält die folgenden Knoten:
Der MQInput-Knoten 'GetBackendReply' liest die CWF-Nachricht. Der Nachrichtensatz, das Format und die Domäne, die zur syntaktischen Analyse der eingehenden Nachricht benötigt werden, sind im MQInput-Knoten angegeben.
Der untergeordnete Nachrichtenfluss 'TransformMRMtoXML_Sub' kopiert die Nachrichtenheader von der Eingabenachricht in die Baumstruktur der Ausgabenachricht und konvertiert die Eingabenachricht vom CWF-Format in XML.
Der untergeordneter Nachrichtenfluss 'RestoreOriginalMQMD_Sub' bindet die Abfrage der Werte 'ReplyToQ' und 'ReplyToQMgr' ein. Er liest die WebSphere MQ-Nachricht, die die ReplyToQ- und ReplyToQMgr-Werte enthält, die in der ursprünglichen Anforderungsnachricht angegeben wurden, und kopiert diese in die Antwortnachricht. Zur Ausführung des Lesevorgangs verwendet er den MQGet-Knoten. Der MQGet-Knoten ist konfiguriert, um die entsprechende Nachricht über die Korrelations-ID (CorrelId) auszuwählen und um die ursprüngliche Anforderungs-MQMD in die MQMD der Nachricht zu kopieren, die verarbeitet wird. Dies dient der Übertragung der Antwortnachricht von der etablierten Anwendung zur korrekten Anforderungsanwendung. Der MQGet-Knoten ruft außerdem die Nutzdaten der WebSphere MQ-Nachricht ab, die zum Speichern der ursprünglichen Werte 'ReplyToQ' und 'ReplyToQMgr' verwendet wurde.
Der MQReply-Knoten 'PutOriginalReply' schreibt die WebSphere MQ-Ausgabenachricht.
Bei der Testnachricht, die im Mustercode 'Coordinated Request Reply' verwendet wird, handelt es sich um eine einfache XML-Nachricht, die Rechnungsdetails für einen Kunden enthält. Dieser Mustercode konvertiert die XML-Nachricht in das CWF-Format. Der Feldwert für CompletionTime (Beendigungszeit) ist der einzige Wert, der vom Mustercode geändert wird. Im folgenden Beispiel ist die Nachricht dargestellt:
<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Microscope</Description>
<Category>Miscellaneous</Category>
<Price>36</Price>
<Quantity>01</Quantity>
</Item>
<Balance>80</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>