データをある形式から別の形式へ変換しなければならないことがしばしばあります。 たとえば、1 つのメッセージでは、項目のタイプが名前によって示されており、 別のメッセージでは、項目が番号によって示されていることがあります。 以下に例を示します。
Type Name Type Code Confectionary 2000 Newspapers 3000 Hardware 4000
次の入力メッセージをご覧ください。
<Data> <Items> <Item> <Cat>1000</Cat> <Description>Milk Chocolate Bar</Description> <Type>Confectionary</Type> </Item> <Item> <Cat>1001</Cat> <Description>Daily Newspaper</Description> <Type>NewsPapers</Type> </Item> <Item> <Cat>1002</Cat> <Description>Kitchen Sink</Description> <Type>Hardware</Type> </Item> </Items> <TranslateTable> <Translate> <Name>Confectionary</Name> <Number>2000</Number> </Translate> <Translate> <Name>NewsPapers</Name> <Number>3000</Number> </Translate> <Translate> <Name>Hardware</Name> <Number>4000</Number> </Translate> </TranslateTable> </Data>
このメッセージには 2 つのセクションがあります。最初のものは項目のリストで、それぞれの項目には、 カタログ番号とタイプがあります。2 番目のものは、記述タイプ名と数値タイプ・コードとの間の変換テーブルです。 以下の変換で Compute ノードを組み込む場合、
SET OutputRoot.XML.Result.Items.Item[] = (SELECT M.Cat, M.Description, T.Number As Type FROM InputRoot.XML.Data.Items.Item[] As M, InputRoot.XML.Data.TranslateTable.Translate[] As T WHERE M.Type = T.Name );
次の出力メッセージが生成されます。
<Result> <Items> <Item> <Cat>1000</Cat> <Description>Milk Chocolate Bar</Description> <Type>2000</Type> </Item> <Item> <Cat>1001</Cat> <Description>Daily Newspaper</Description> <Type>3000</Type> </Item> <Item> <Cat>1002</Cat> <Description>Kitchen Sink</Description> <Type>4000</Type> </Item> </Items></Result>
結果では、それぞれのタイプ名が、それに対応するコードに変換されています。 この例では、データおよび変換テーブルの両方が、同じメッセージ・ツリーにありましたが、 必ずしもそうでなければならないわけではありません。 例えば、変換テーブルがデータベース内にコード化されたり、 前出の Compute ノードによりローカル環境でセットアップされたりする場合があります。
関連概念
メッセージ・フロー
ESQL
メッセージのモデル化
関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
ESQL ファイルの管理
関連資料
Compute ノード
Database ノード
Filter ノード
ESQL
SELECT 関数
SET ステートメント
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ak05790_ |