XML_FlightQueryReply メッセージ・フローを作成するには、次のようにします。 詳細な指示については、各ステップの終わりにあるリンクをクリックしてください。
XML_FlightQueryReply メッセージ・フローを作成するためには、まず、XML_FlightQueryOut メッセージ・フローを作成する必要があります。 その方法については、XML_FlightQueryOut メッセージ・フローの作成を参照してください。
XML_FlightQueryReply メッセージ・フローを作成および構成するには、次のようにします。
パレット・ドロワー | ノード・タイプ | ノード名 |
---|---|---|
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 | Compute | GetFlightDetails |
Transformation | Compute | GetPassengerDetails |
ノード名 | ターミナル | 接続先 |
---|---|---|
XML_FLIGHTQUERY_FLIGHT | Out | GetFlightDetails |
Catch | XML_FLIGHTQUERY_FAIL_1 | |
XML_FLIGHTQUERY_PASSENGERS | Out | GetPassengerDetails |
Catch | XML_FLIGHTQUERY_FAIL_2 | |
GetFlightDetails | Out | MQMD_ReplyToQ |
GetPassengerDetails | Out | MQMD_ReplyToQ |
ノード名 | ページ | プロパティー | 値 |
---|---|---|---|
XML_FLIGHTQUERY_FLIGHT | 基本 | キュー名 | XML_FLIGHTQUERY_FLIGHT (この値は、メッセージ・フローがメッセージを取り出すローカル・キューです。) |
入力メッセージ構文解析 | メッセージ・ドメイン | XMLNSC : XML メッセージの場合 (ネームスペースが有効、妥当性検査、メモリー使用量が少ない) (この値は、汎用 XML パーサーを使用するようにブローカーに指示します。) |
|
XML_FLIGHTQUERY_PASSENGERS | 基本 | キュー名 | XML_FLIGHTQUERY_PASSENGERS (この値は、メッセージ・フローがメッセージを取り出すローカル・キューです。) |
入力メッセージ構文解析 | メッセージ・ドメイン | XMLNSC : XML メッセージの場合 (ネームスペースが有効、妥当性検査、メモリー使用量が少ない) (この値は、汎用 XML パーサーを使用するようにブローカーに指示します。) |
|
GetFlightDetails | 基本 | データ・ソース | RESERVDB (この値は、このノードで使用されるデータベースです。) |
基本 | ESQL モジュール | GetFlightDetails (この値は、処理中にこのノードによって使用される ESQL モジュールの名前です。この名前は、ESQL ファイル中の CREATE COMPUTE MODULE ステートメント中の名前と一致していなければなりません。) |
|
GetPassengerDetails | 基本 | データ・ソース | RESERVDB (この値は、このノードで使用されるデータベースです。) |
基本 | ESQL モジュール | GetPassengerDetails (この値は、処理中にこのノードによって使用される ESQL モジュールの名前です。この名前は、ESQL ファイル中の CREATE COMPUTE MODULE ステートメント中の名前と一致していなければなりません。) |
|
XML_FLIGHTQUERY_FAIL_1 | 基本 | キュー名 (キューはブローカーと同じキュー・マネージャーで定義されるので、キュー・マネージャーの名前を指定する必要はありません。) |
XML_FLIGHTQUERY_FAIL (この値は、処理が失敗した場合にメッセージ・フローがメッセージを書き込む場所です。) |
XML_FLIGHTQUERY_FAIL_2 | 基本 | キュー名 (キューはブローカーと同じキュー・マネージャーで定義されるので、キュー・マネージャーの名前を指定する必要はありません。) |
XML_FLIGHTQUERY_FAIL (この値は、処理が失敗した場合にメッセージ・フローがメッセージを書き込む場所です。) |
MQMD_ReplyToQ | このノードには、プロパティーを設定する必要はありません。 このノードは、メッセージ中の MQMD ヘッダーの ReplyToQ および ReplyToQMgr フィールドを使用します。 |
-- ************************************************ -- * 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; -- populate the output message with flight info from the database 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; -- populate the output message with passenger info from the database 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;