Nachrichtenfluss 'XML_FlightQueryReply' erstellen

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':

  1. Erstellen Sie einen Nachrichtenfluss namens 'XML_FlightQueryReply'.
    Anweisungen hierzu finden Sie in der Dokumentation zu WebSphere Message Broker im Abschnitt Nachrichtenfluss erstellen.
  2. Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu und benennen Sie diese um.
    Die entsprechenden Anweisungen finden Sie in der WebSphere Message Broker-Dokumentation unter Nachrichtenflussknoten hinzufügen.
    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
  3. Verbinden Sie die Knoten anhand der nachfolgenden Tabelle miteinander.
    Anweisungen hierzu finden Sie in der Dokumentation zu WebSphere Message Broker im Abschnitt Nachrichtenflussknoten verbinden.
    Überprüfen Sie anhand des Diagramms unter Informationen zum Nachrichtenfluss 'XML_FlightQueryReply', ob Sie die Knoten richtig miteinander verbunden haben.
    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
  4. Konfigurieren Sie die Knoteneigenschaften anhand der nachfolgenden Tabelle. Übernehmen Sie die Standardwerte für die Eigenschaften, sofern die Tabelle keinen davon abweichenden Wert enthält.
    Anweisungen hierzu finden Sie in der Dokumentation von WebSphere Message Broker im Abschnitt Nachrichtenflussknoten konfigurieren.
    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.
  5. Klicken Sie im Projekt 'XML Airline Message Flows' doppelt auf die ESQL-Datei, um sie im ESQL-Editor zu öffnen. Kopieren Sie die im Folgenden wiedergegebenen ESQL-Code-Module in die ESQL-Datei und speichern Sie dann die Datei. Weitere Informationen hierzu finden Sie in der WebSphere Message Broker-Dokumentation unter ESQL erstellen.
    -- ************************************************
    -- * 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;
    
  6. Speichern Sie den Nachrichtenfluss.
Sie haben den Nachrichtenfluss 'XML_FlightQueryReply' erstellt, der innerhalb des Mustercodes 'Aggregation' die Antwortrolle im Nachrichtenfluss 'XML_FlightQuery' übernimmt. Der Nachrichtenfluss 'XML_FlightQueryReply' fordert in Verbindung mit den Nachrichtenflüssen 'XML_FlightQueryOut' und 'XML_FlightQueryIn' Informationen zu einem bestimmten Flug und zu den Passagieren, die für diesen Flug Sitzplätze reserviert haben, an.

Zurück zur Erstellung des Mustercodes 'Airline Reservations'