このトピックで示す Compute ノード用のサンプル ESQL コードは、 入力メッセージに基づく新しい出力メッセージを作成し、 追加のフィールドをそれに多数追加します。
メッセージ・フロー内の Compute ノードによって受信される入力メッセージは、 以下のような内容の XML メッセージです。
<TestCase description="This is my TestCase"> <Identifier>ES03B305_T1</Identifier> <Sport>Football</Sport> <Date>01/02/2000</Date> <Type>LEAGUE</Type> </TestCase>
Compute ノードが構成され、 以下のような ESQL を含む ESQL モジュールが作成されます。 以下に示すコードは、 入力メッセージのヘッダーを新しい出力メッセージにコピーした後、 出力メッセージ本文の内容全体を作成します。
-- copy headers DECLARE i INTEGER 1; DECLARE numHeaders INTEGER CARDINALITY(InputRoot.*[]); WHILE i < numHeaders DO SET OutputRoot.*[i] = InputRoot.*[i]; SET i = i + 1; END WHILE; CREATE FIELD OutputRoot.XML.TestCase.description TYPE NameValue VALUE 'This is my TestCase' ; CREATE FIRSTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Identifier' VALUE InputRoot.XML.TestCase.Identifier; CREATE LASTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Sport' VALUE InputRoot.XML.TestCase.Sport; CREATE LASTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Date' VALUE InputRoot.XML.TestCase.Date; CREATE LASTCHILD OF OutputRoot.XML.TestCase Domain('XML') NAME 'Type' VALUE InputRoot.XML.TestCase.Type; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Number TYPE NameValue VALUE 'Premiership'; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[1].Number TYPE NameValue VALUE '1' ; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[1].Home TYPE Name; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Home NAME 'Team' VALUE 'Liverpool' ; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Home NAME 'Score' VALUE '4'; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[1].Away TYPE Name; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Away NAME 'Team' VALUE 'Everton'; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[1].Away NAME 'Score' VALUE '0'; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[2].Number TYPE NameValue VALUE '2'; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[2].Home TYPE Name; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Home NAME 'Team' VALUE 'Manchester United'; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Home NAME 'Score' VALUE '2'; CREATE FIELD OutputRoot.XML.TestCase.Division[1].Result[2].Away TYPE Name; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Away NAME 'Team' VALUE 'Arsenal'; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[1].Result[2].Away NAME 'Score' VALUE '3'; CREATE FIELD OutputRoot.XML.TestCase.Division[2].Number TYPE NameValue VALUE '2'; CREATE FIELD OutputRoot.XML.TestCase.Division[2].Result[1].Number TYPE NameValue VALUE '1'; CREATE FIELD OutputRoot.XML.TestCase.Division[2].Result[1].Home TYPE Name; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Home NAME 'Team' VALUE 'Port Vale'; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Home NAME 'Score' VALUE '9' ; CREATE FIELD OutputRoot.XML.TestCase.Division[2].Result[1].Away TYPE Name; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Away NAME 'Team' VALUE 'Brentford'; CREATE LASTCHILD OF OutputRoot.XML.TestCase.Division[2].Result[1].Away NAME 'Score' VALUE '5';
上記の ESQL によって生成される出力メッセージは、 次のような構造および内容になります。
<TestCase description="This is my TestCase"> <Identifier>ES03B305_T1</Identifier> <Sport>Football</Sport> <Date>01/02/2000</Date> <Type>LEAGUE</Type> <Division Number="Premiership"> <Result Number="1"> <Home> <Team>Liverpool</Team> <Score>4</Score> </Home> <Away> <Team>Everton</Team> <Score>0</Score> </Away> </Result> <Result Number="2"> <Home> <Team>Manchester United</Team> <Score>2</Score> </Home> <Away> <Team>Arsenal</Team> <Score>3</Score> </Away> </Result> </Division> <Division Number="2"> <Result Number="1"> <Home> <Team>Port Vale</Team> <Score>9</Score> </Home> <Away> <Team>Brentford</Team> <Score>5</Score> </Away> </Result> </Division> </TestCase>
関連概念
メッセージ・フロー
ESQL
メッセージのモデル化
関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
ESQL ファイルの管理
関連資料
Compute ノード
Database ノード
Filter ノード
ESQL
DECLARE ステートメント
CREATE ステートメント
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ac16800_ |