Befolgen Sie die nachfolgenden Anweisungen, um den Nachrichtenfluss 'XML_FlightQueryReply' zu erstellen. Ausführlichere Anweisungen erhalten Sie jeweils über die Links am Ende eines jeden Schritts.
Vor Erstellung des Nachrichtenflusses 'XML_FlightQueryReply' muss zunächst der Nachrichtenfluss 'XML_FlightQueryOut' erstellt werden. Eine Anleitung dazu finden Sie unter Nachrichtenfluss 'XML_FlightQueryOut' erstellen.
So erstellen und konfigurieren Sie den Nachrichtenfluss 'XML_FlightQueryReply':
Palettenfächer | Knotentyp | Knotenname |
---|---|---|
WebSphere MQ | MQInput | XML_FLIGHTQUERY_FLIGHT |
WebSphere MQ | MQInput | XML_FLIGHTQUERY_PASSENGERS |
WebSphere MQ | MQOutput | XML_FLIGHTQUERY_FAIL_1 |
WebSphere MQ | MQOutput | XML_FLIGHTQUERY_FAIL_2 |
WebSphere MQ | MQReply | MQMD_ReplyToQ |
Transformation | Rechnen | GetFlightDetails |
Transformation | Rechnen | GetPassengerDetails |
Knotenname | Terminal | Verbinden mit |
---|---|---|
XML_FLIGHTQUERY_FLIGHT | Ausgangsterminal | GetFlightDetails |
Abfangterminal | XML_FLIGHTQUERY_FAIL_1 | |
XML_FLIGHTQUERY_PASSENGERS | Ausgangsterminal | GetPassengerDetails |
Abfangterminal | XML_FLIGHTQUERY_FAIL_2 | |
GetFlightDetails | Ausgangsterminal | MQMD_ReplyToQ |
GetPassengerDetails | Ausgangsterminal | MQMD_ReplyToQ |
Knotenname | Seite | Eigenschaft | Wert |
---|---|---|---|
XML_FLIGHTQUERY_FLIGHT | Grundeinstellung | Name der Warteschlange | XML_FLIGHTQUERY_FLIGHT (Dieser Wert bezeichnet die lokale Warteschlange, aus der der Nachrichtenfluss die Nachricht abruft.) |
Syntaxanalyse der Eingabenachricht | Nachrichtendomäne | XMLNSC: Für XML-Nachrichten (Berücksichtigung von Namensbereichen, Überprüfung, geringe Speicherbelegung) (Mit diesem Wert wird der Broker angewiesen, den generischen XML-Parser zu verwenden.) |
|
XML_FLIGHTQUERY_PASSENGERS | Grundeinstellung | Name der Warteschlange | XML_FLIGHTQUERY_PASSENGERS (Dieser Wert bezeichnet die lokale Warteschlange, aus der der Nachrichtenfluss die Nachricht abruft.) |
Syntaxanalyse der Eingabenachricht | Nachrichtendomäne | XMLNSC: Für XML-Nachrichten (Berücksichtigung von Namensbereichen, Überprüfung, geringe Speicherbelegung) (Mit diesem Wert wird der Broker angewiesen, den generischen XML-Parser zu verwenden.) |
|
GetFlightDetails | Grundeinstellung | Datenquelle | RESERVDB (Dieser Wert gibt die von diesem Knoten verwendete Datenbank an.) |
Grundeinstellung | ESQL-Modul | GetFlightDetails (Dieser Wert gibt den Namen des vom Knoten während der Verarbeitung verwendeten ESQL-Moduls an. Der Name muss dem Namen in der Anweisung CREATE COMPUTE MODULE in der ESQL-Datei entsprechen.) |
|
GetPassengerDetails | Grundeinstellung | Datenquelle | RESERVDB (Dieser Wert gibt die von diesem Knoten verwendete Datenbank an.) |
Grundeinstellung | ESQL-Modul | GetPassengerDetails (Dieser Wert gibt den Namen des vom Knoten während der Verarbeitung verwendeten ESQL-Moduls an. Der Name muss dem Namen in der Anweisung CREATE COMPUTE MODULE in der ESQL-Datei entsprechen.) |
|
XML_FLIGHTQUERY_FAIL_1 | Grundeinstellung | Name der Warteschlange (Die Angabe des WS-Managernamens ist nicht erforderlich, da die Warteschlange in demselben WS-Manager wie der Broker definiert ist.) |
XML_FLIGHTQUERY_FAIL (Dieser Wert gibt die Warteschlange an, in die der Nachrichtenfluss die Nachricht einreiht, wenn die Verarbeitung fehlschlägt.) |
XML_FLIGHTQUERY_FAIL_2 | Grundeinstellung | Name der Warteschlange (Die Angabe des WS-Managernamens ist nicht erforderlich, da die Warteschlange in demselben WS-Manager wie der Broker definiert ist.) |
XML_FLIGHTQUERY_FAIL (Dieser Wert gibt die Warteschlange an, in die der Nachrichtenfluss die Nachricht einreiht, wenn die Verarbeitung fehlschlägt.) |
MQMD_ReplyToQ | Für diesen Knoten müssen keine Eigenschaften festgelegt werden. Der Knoten verwendet die Felder ReplyToQ und ReplyToQMgr im MQMD-Header der Nachricht. |
-- ************************************************ -- * ESQL for the XML_FlightQuery message flows -- ************************************************ CREATE COMPUTE MODULE GetFlightDetails CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XMLNSC.FlightQuery = NULL; CREATE FIELD OutputRoot.XMLNSC.Flight; DECLARE outflight REFERENCE TO OutputRoot.XMLNSC.Flight; DECLARE query REFERENCE TO InputRoot.XMLNSC.FlightQuery; -- Ausgabenachricht mit Fluginformationen aus der Datenbank füllen SET OutputRoot.XMLNSC.Flight[] = (SELECT T.* FROM Database.XMLFLIGHTTB AS T WHERE T.FLIGHTNO = query.FlightNumber AND T.FLIGHTDATE = query.FlightDate); SET outflight.STARTPOINT = TRIM(outflight.STARTPOINT); SET outflight.ENDPOINT = TRIM(outflight.ENDPOINT); RETURN TRUE; END; END MODULE; CREATE COMPUTE MODULE GetPassengerDetails CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; SET OutputRoot.XMLNSC.FlightQuery = NULL; CREATE FIELD OutputRoot.XMLNSC.ListOfPassengers; DECLARE outpass REFERENCE TO OutputRoot.XMLNSC.ListOfPassengers; DECLARE query REFERENCE TO InputRoot.XMLNSC.FlightQuery; -- Ausgabenachricht mit Passagierangaben aus der Datenbank füllen SET outpass.PassengerDetails[] = (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.FLIGHTNO = query.FlightNumber AND T.FLIGHTDATE = query.FlightDate); DECLARE I INTEGER 1; DECLARE J INTEGER CARDINALITY(outpass.*[]); WHILE I <= J DO SET outpass.PassengerDetails[I].LASTNAME = TRIM(outpass.PassengerDetails[I].LASTNAME); SET outpass.PassengerDetails[I].FIRSTNAME = TRIM(outpass.PassengerDetails[I].FIRSTNAME); SET I = I + 1; END WHILE; RETURN TRUE; END; END MODULE;
Zurück zur Erstellung des Mustercodes 'Airline Reservations'