メッセージでのデータの変換

データをある形式から別の形式へ変換することができます。

データ変換が必要とされる典型例としては、あるメッセージでは項目が名前によって示されており、別のメッセージでは番号によって示されているという場合です。 以下に例を示します。

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.XMLNS.Result.Items.Item[] = 
   (SELECT M.Cat, M.Description, T.Number As Type
     FROM
       InputRoot.XMLNS.Data.Items.Item[]               As M,
       InputRoot.XMLNS.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 ステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:06

ak05790_