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':
Palettenfächer | Knotentyp | Knotenname |
---|---|---|
WebSphere MQ | MQInput | XML_PASSENGERQUERY_IN |
WebSphere MQ | MQOutput | XML_PASSENGERQUERY_OUT |
WebSphere MQ | MQOutput | XML_PASSENGERQUERY_FAIL_1 |
WebSphere MQ | MQOutput | XML_PASSENGERQUERY_FAIL_2 |
Transformation | Rechnen | DecideOnQuery |
Transformation | Rechnen | GetPassengerInformation |
Transformation | Rechnen | GetReservationsInformation |
Routing | Label | SinglePassenger |
Routing | Label | AllReservations |
Routing | RouteToLabel | RouteToLabel |
Der RouteToLabel-Knoten leitet die Nachricht basierend auf den Inhalten der ihr zugeordneten lokalen Umgebung dynamisch weiter. In der lokalen Umgebung ist die Identität mindestens eines Label-Zielknotens enthalten. Diese Knoten werden über ihre Eigenschaft 'Label Name' (Zielbezeichnung), nicht über den Knotennamen identifiziert.
Knotenname | Terminal | Verbinden mit |
---|---|---|
XML_PASSENGERQUERY_IN | Fehlerterminal | XML_PASSENGERQUERY_FAIL_1 |
Ausgangsterminal | DecideOnQuery | |
Abfangterminal | XML_PASSENGERQUERY_FAIL_2 | |
DecideOnQuery | Ausgangsterminal | RouteToLabel |
SinglePassenger | Ausgangsterminal | GetPassengerInformation |
AllReservations | Ausgangsterminal | GetReservationsInformation |
GetPassengerInformation | Ausgangsterminal | XML_PASSENGERQUERY_OUT |
GetReservationsInformation | Ausgangsterminal | XML_PASSENGERQUERY_OUT |
Knotenname | Seite | Eigenschaft | Wert |
---|---|---|---|
XML_PASSENGERQUERY_IN | Grundeinstellung | Name der Warteschlange | XML_PASSENGERQUERY_IN (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_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 (Dieser Wert gibt die lokale Warteschlange an, in die der Nachrichtenfluss die Nachricht einreiht, 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 (Dieser Wert gibt die lokale Warteschlange an, in die der Nachrichtenfluss die Nachricht einreiht, wenn die Verarbeitung fehlschlägt.) |
DecideOnQuery | Grundeinstellung | ESQL-Modul | DecideOnQuery (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.) |
Grundeinstellung | Rechenmodus | 'LocalEnvironment' und 'Message'
(Dieser Wert sorgt dafür, dass 'LocalEnvironment' (Lokale Umgebung) und die Nachricht nach der Änderung an den RouteToLabel-Knoten übergeben werden.) |
|
RouteToLabel | Grundeinstellung | Modus | Route to First (Veranlasst den RouteToLabel-Knoten dazu, die Zieladressenliste beginnend mit dem ersten Element zu verarbeiten.) |
SinglePassenger | Grundeinstellung | Zielbezeichnung | SinglePassenger (Dieser Wert gibt den Namen des Label-Knotens an, an den der Nachrichtenfluss die Nachricht übergibt. Der Name muss mit der im Knoten 'Decide On The Query' festgelegten Zielbezeichnung übereinstimmen. Siehe ESQL im Modul 'Decide_on_query'.) |
AllReservations | Grundeinstellung | Zielbezeichnung | AllReservations (Dieser Wert gibt den Namen des Label-Knotens an, an den der Nachrichtenfluss die Nachricht übergibt. Der Name muss mit der im Knoten 'Decide On The Query' festgelegten Zielbezeichnung übereinstimmen. Siehe ESQL im Modul 'Decide_on_query'.) |
GetPassengerInformation | Grundeinstellung | Datenquelle | RESERVDB (Dieser Wert gibt die von diesem Knoten verwendete Datenbank an.) |
Grundeinstellung | ESQL-Modul | GetPassengerInformation (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.) |
|
Grundeinstellung | Rechenmodus | 'LocalEnvironment' und 'Message'
(Dieser Wert sorgt dafür, dass 'LocalEnvironment' (Lokale Umgebung) und die Nachricht nach der Änderung an den Knoten 'XML_PASSENGERQUERY_OUT' übergeben werden.) |
|
GetReservationsInformation | Grundeinstellung | Datenquelle | RESERVDB (Dieser Wert gibt die von diesem Knoten verwendete Datenbank an.) |
Grundeinstellung | ESQL-Modul | GetReservationsInformation (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.) |
|
Grundeinstellung | Rechenmodus | 'LocalEnvironment' und 'Message'
(Dieser Wert sorgt dafür, dass 'LocalEnvironment' (Lokale Umgebung) und die Nachricht nach der Änderung an den Knoten 'XML_PASSENGERQUERY_OUT' übergeben werden.) |
|
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 (Dieser Wert gibt die lokale Warteschlange an, in die der Nachrichtenfluss die Nachricht einreiht.) |
-- ************************************************ -- * ESQL for the XML_PassengerQuery message flow -- ************************************************ CREATE COMPUTE MODULE DecideOnQuery CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN SET OutputRoot = InputRoot; IF InputRoot.XMLNSC.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.XMLNSC.PassengerQuery = NULL; -- Umgebung mit Passagierangaben aus der Datenbank füllen SET Environment.Variables = THE (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.RESERVATIONNO = InputRoot.XMLNSC.PassengerQuery.ReservationNumber); -- Ausgabenachricht mit Informationen aus der Datenbankabfrage füllen CREATE FIELD OutputRoot.XMLNSC.PassengerInfoResponse.PassengerInfo; DECLARE outpass REFERENCE TO OutputRoot.XMLNSC.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.XMLNSC.PassengerQuery = NULL; -- Umgebung mit Reservierungsangaben aus der Datenbank füllen SET Environment.Variables.Reservation[] = (SELECT T.* FROM Database.XMLPASSENGERTB AS T WHERE T.FIRSTNAME = InputRoot.XMLNSC.PassengerQuery.FirstName AND T.LASTNAME = InputRoot.XMLNSC.PassengerQuery.LastName); -- Ausgabenachricht mit Informationen aus der Datenbankabfrage füllen CREATE FIELD OutputRoot.XMLNSC.PassengerInfoResponse.ListOfReservations; DECLARE outres REFERENCE TO OutputRoot.XMLNSC.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;
Zurück zur Erstellung des Mustercodes 'Airline Reservations'