Nachrichtenfluss 'XML_PassengerQuery' erstellen

Befolgen Sie die nachfolgenden Anweisungen, um den Nachrichtenfluss 'XML_PassengerQuery' zu erstellen. Ausführlichere Anweisungen erhalten Sie jeweils über die Links am Ende eines jeden Schritts.

So erstellen und konfigurieren Sie den Nachrichtenfluss 'XML_PassengerQuery':

  1. Erstellen Sie einen Nachrichtenfluss namens 'XML_PassengerQuery'.
    Anweisungen hierzu finden Sie unter Nachrichtenfluss erstellen.
  2. Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu, und benennen Sie diese um.
    Eine Anleitung hierfür finden Sie im Abschnitt Knoten hinzufügen.
    Knotentyp Knotenname
    MQEmpfang XML_PASSENGERQUERY_IN
    MQSenden XML_PASSENGERQUERY_OUT
    MQSenden XML_PASSENGERQUERY_FAIL_1
    MQSenden XML_PASSENGERQUERY_FAIL_2
    Rechnen DecideOnQuery
    Rechnen GetPassengerInformation
    Rechnen GetReservationsInformation
    Zieladressenknoten SinglePassenger
    Zieladressenknoten AllReservations
    Knoten 'Weiterleitung_an_Zieladresse' Knoten 'Weiterleitung_an_Zieladresse'

    Der Knoten 'Weiterleitung_an_Zieladresse' leitet Nachrichten dynamisch auf Grundlage der mit der Nachricht verknüpften Inhalte der LocalEnvironment-Baumstruktur (lokale Umgebung) weiter. Die LocalEnvironment-Baumstruktur (lokale Umgebung) enthält die Identität mindestens eines Zieladressenknotens, die über die Eigenschaft 'Label Name' (Zielbezeichnung), nicht über den Knotennamen identifiziert werden.

  3. Verbinden Sie die Knoten anhand der nachfolgenden Tabelle miteinander.
    Eine Anleitung hierfür finden Sie im Abschnitt Knoten verbinden.
    Überprüfen Sie anhand der Abbildung unter Informationen zum Nachrichtenfluss 'XML_PassengerQuery', ob Sie die Knoten richtig miteinander verbunden haben.
    Knotenname Terminal Verbinden mit
    XML_PASSENGERQUERY_IN Fehlerterminal XML_PASSENGERQUERY_FAIL_1
    Out DecideOnQuery
    Catch XML_PASSENGERQUERY_FAIL_2
    DecideOnQuery Out Knoten 'Weiterleitung_an_Zieladresse'
    SinglePassenger Out GetPassengerInformation
    AllReservations Out GetReservationsInformation
    GetPassengerInformation Out XML_PASSENGERQUERY_OUT
    GetReservationsInformation Out XML_PASSENGERQUERY_OUT
  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.
    Eine Anleitung hierfür finden Sie im Abschnitt Knoten konfigurieren.
    Knotenname Seite Eigenschaft Wert
    XML_PASSENGERQUERY_IN Grundeinstellung Name der Warteschlange XML_PASSENGERQUERY_IN
    (Die lokale Warteschlange, aus der der Nachrichtenfluss die Nachricht abruft.)
    Default Nachrichtendomäne XML
    (Weist den Broker an, den generischen XML-Parser zu verwenden.)
    XML_PASSENGERQUERY_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_PASSENGERQUERY_FAIL
    (In diese lokale Warteschlange reiht der Nachrichtenfluss die Nachricht ein, wenn die Verarbeitung fehlschlägt.)
    XML_PASSENGERQUERY_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_PASSENGERQUERY_FAIL
    (In diese lokale Warteschlange reiht der Nachrichtenfluss die Nachricht ein, wenn die Verarbeitung fehlschlägt.)
    DecideOnQuery Grundeinstellung ESQL-Modul DecideOnQuery
    (Der Name des vom Knoten während der Verarbeitung verwendeten ESQL-Moduls. Der Name muss dem Namen in der Anweisung CREATE COMPUTE MODULE in der ESQL-Datei entsprechen.)
    Grundeinstellung Rechenmodus 'LocalEnvironment' und 'Message'
    ('LocalEnvironment' (Lokale Umgebung) und Nachricht werden nach der Änderung an den Knoten 'Weiterleitung_an_Zieladresse' übergeben.)
    Knoten 'Weiterleitung_an_Zieladresse' Grundeinstellung Modus Route to First
    (Veranlasst den Knoten 'Weiterleitung_an_Zieladresse' dazu, die Zieladressenliste beginnend mit dem ersten Element zu verarbeiten.)
    SinglePassenger Grundeinstellung Zielbezeichnung SinglePassenger
    (Der Name des Zieladressenknotens, an den der Nachrichtenfluss die Nachricht übergibt. Dieser Name muss mit der im Knoten 'Decide On The Query' festgelegten Zielbezeichnung übereinstimmen. Siehe ESQL-Code im nachfolgenden Modul 'Decide_on_query'.)
    AllReservations Grundeinstellung Zielbezeichnung AllReservations
    (Der Name des Zieladressenknotens, an den der Nachrichtenfluss die Nachricht übergibt. Dieser Name muss mit der im Knoten 'Decide On The Query' festgelegten Zielbezeichnung übereinstimmen. Siehe ESQL-Code im nachfolgenden Modul 'Decide_on_query'.)
    GetPassengerInformation Grundeinstellung Datenquelle RESERVDB
    (Die von diesem Knoten verwendete Datenbank.)
    Grundeinstellung ESQL-Modul GetPassengerInformation
    (Der Name des vom Knoten während der Verarbeitung verwendeten ESQL-Moduls. Der Name muss dem Namen in der Anweisung CREATE COMPUTE MODULE in der ESQL-Datei entsprechen.)
    Grundeinstellung Rechenmodus 'LocalEnvironment' und 'Message'
    ('LocalEnvironment' (Lokale Umgebung) und Nachricht werden nach der Änderung an den Knoten 'XML_PASSENGERQUERY_OUT' übergeben.)
    GetReservationsInformation Grundeinstellung Datenquelle RESERVDB
    (Die von diesem Knoten verwendete Datenbank.)
    Grundeinstellung ESQL-Modul GetReservationsInformation
    (Der Name des vom Knoten während der Verarbeitung verwendeten ESQL-Moduls. Der Name muss dem Namen in der Anweisung CREATE COMPUTE MODULE in der ESQL-Datei entsprechen.)
    Grundeinstellung Rechenmodus 'LocalEnvironment' und 'Message'
    ('LocalEnvironment' (Lokale Umgebung) und Nachricht werden nach der Änderung an den Knoten 'XML_PASSENGERQUERY_OUT' übergeben.)
    XML_PASSENGERQUERY_OUT 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_PASSENGERQUERY_OUT
    (Die lokale Warteschlange, in die der Nachrichtenfluss die Nachricht einreiht.)
  5. Klicken Sie im Projekt 'XML-Nachrichtenflüsse für Airline' doppelt auf das ESQL-Dateiprojekt, um es im ESQL-Editor zu öffnen, und kopieren Sie folgende ESQL-Code-Module in die ESQL-Datei. Weitere Informationen hierzu finden Sie im Abschnitt ESQL entwickeln.
    -- ************************************************
    -- * ESQL for the XML_PassengerQuery message flow
    -- ************************************************
    
    CREATE COMPUTE MODULE DecideOnQuery
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		SET OutputRoot = InputRoot;
    		IF InputRoot.XML.PassengerQuery.ReservationNumber <> '' THEN
    			SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelname = 'SinglePassenger';
    		ELSE
    			SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelname = 'AllReservations';
    		END IF;
    		RETURN TRUE;
    	END;
    END MODULE;
    
    CREATE COMPUTE MODULE GetPassengerInformation
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		SET OutputRoot = InputRoot;
    		SET OutputRoot.XML.PassengerQuery = NULL;
    		-- populate the environment with passenger info from the database
    		SET Environment.Variables =
    			THE (SELECT T.* FROM Database.XMLPASSENGERTB AS T
    				WHERE T.RESERVATIONNO = InputRoot.XML.PassengerQuery.ReservationNumber);
    
    		-- populate the output message with info from the database query
    		CREATE FIELD OutputRoot.XML.PassengerInfoResponse.PassengerInfo;
    		DECLARE outpass REFERENCE TO OutputRoot.XML.PassengerInfoResponse.PassengerInfo;
    		SET outpass.ReservationNumber = Environment.Variables.RESERVATIONNO;
    		SET outpass.FirstName = Environment.Variables.FIRSTNAME;
    		SET outpass.LastName = Environment.Variables.LASTNAME;
    		SET outpass.FlightNumber = Environment.Variables.FLIGHTNO;
    		SET outpass.Date = Environment.Variables.FLIGHTDATE;
    		SET outpass.Class = Environment.Variables.CLASSTYPE;
    		RETURN TRUE;
    	END;
    END MODULE;
    
    CREATE COMPUTE MODULE GetReservationsInformation
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		SET OutputRoot = InputRoot;
    		SET OutputRoot.XML.PassengerQuery = NULL;
    		-- populate the environment with reservations info from the database
    		SET Environment.Variables.Reservation[] =
    			(SELECT T.* FROM Database.XMLPASSENGERTB AS T
    				WHERE T.FIRSTNAME = InputRoot.XML.PassengerQuery.FirstName 
    				AND T.LASTNAME = InputRoot.XML.PassengerQuery.LastName);
    
    		-- populate the output message with info from the database query
    		CREATE FIELD OutputRoot.XML.PassengerInfoResponse.ListOfReservations;
    		DECLARE outres REFERENCE TO OutputRoot.XML.PassengerInfoResponse.ListOfReservations;
    		DECLARE I INTEGER 1;
    		DECLARE J INTEGER CARDINALITY(Environment.Variables.*[]);
    		WHILE I <= J DO
    			SET outres.Reservation[I].FlightNumber = Environment.Variables.Reservation[I].FLIGHTNO;
    			SET outres.Reservation[I].Date = Environment.Variables.Reservation[I].FLIGHTDATE;
    			SET outres.Reservation[I].Class = Environment.Variables.Reservation[I].CLASSTYPE;
    			SET I = I + 1;
    		END WHILE;
    		RETURN TRUE;
    	END;
    END MODULE;

Nun haben Sie den Nachrichtenfluss 'XML_PassengerQuery' erstellt, der Informationen zu bestimmten Passagieren, die Sitzplätze auf einem Flug reserviert haben, abruft.

Symbol Hauptseite   Zurück zu "Das Beispielprogramm 'Airline Reservations' erstellen"