目次

Search

  1. はじめに
  2. トランスフォーメーションに関する作業
  3. アグリゲータトランスフォーメーション
  4. カスタムトランスフォーメーション
  5. カスタムトランスフォーメーション関数
  6. データマスキングトランスフォーメーション
  7. データマスキングの例
  8. 式トランスフォーメーション
  9. エクスターナルプロシージャトランスフォーメーション
  10. フィルタトランスフォーメーション
  11. HTTPトランスフォーメーション
  12. ID解決トランスフォーメーション
  13. Javaトランスフォーメーション
  14. JavaトランスフォーメーションAPIのリファレンス
  15. Java式
  16. Javaトランスフォーメーションの例
  17. ジョイナトランスフォーメーション
  18. ルックアップトランスフォーメーション
  19. ルックアップキャッシュ
  20. 動的ルックアップキャッシュ
  21. ノーマライザトランスフォーメーション
  22. ランクトランスフォーメーション
  23. ルータトランスフォーメーション
  24. シーケンスジェネレータトランスフォーメーション
  25. ソータトランスフォーメーション
  26. ソース修飾子トランスフォーメーション
  27. SQLトランスフォーメーション
  28. マッピングにおけるSQLトランスフォーメーションの使用
  29. ストアドプロシージャトランスフォーメーション
  30. トランザクション制御トランスフォーメーション
  31. 共有体トランスフォーメーション
  32. 構造化されていないデータのトランスフォーメーション
  33. アップデートストラテジトランスフォーメーション
  34. XMLトランスフォーメーション

トランスフォーメーションガイド

トランスフォーメーションガイド

VSAMノーマライザトランスフォーメーション

VSAMノーマライザトランスフォーメーション

VSAMノーマライザトランスフォーメーションは、COBOLソース定義のソース修飾子です。COBOLソースは、複数出現データおよび数種のレコードを同じファイル内に格納できるフラットファイルです。
VSAM(Virtual Storage Access Method)は、IBMメインフレームオペレーティングシステムのファイルアクセス方式です。VSAMファイルでは、インデックス付きまたはシーケンシャルのフラットファイルでレコードが編成されます。ただし、VSAMノーマライザトランスフォーメーションは、COBOLソース定義で定義されるどのようなフラットソースファイルにも使用することができます。
COBOLソース定義には、複数出現カラムを定義するOCCURS文を含めることができます。 また、COBOLのソース定義にREDEFINES文を含めることにより、1ファイル内に複数のレコードを定義することができます。
売上レコードを定義するCOBOLコピーブックは、次のとおりです。
01 SALES_RECORD.      03  HDR_DATA. 05 HDR_REC_TYPE            PIC X. 05 HDR_STORE               PIC X(02).      03 STORE_DATA. 05  STORE_NAME PIC X(30). 05  STORE_ADDR1 PIC X(30). 05  STORE_CITY PIC X(30).      03
DETAIL_DATA REDEFINES STORE_DATA.
05 DETAIL_ITEM PIC 9(9). 05 DETAIL_DESC PIC X(30). 05 DETAIL_PRICE PIC 9(4)V99. 05 DETAIL_QTY PIC 9(5). 05
SUPPLIER_INFO OCCURS 4 TIMES
. 10 SUPPLIER_CODE PIC XX. 10 SUPPLIER_NAME PIC X(8).
売上ファイルに格納できる売上レコードは、2種類あります。店舗はStore_Dataで定義され、店舗で販売されている商品はDetail_Dataで定義されます。REDEFINES句により、レコード内にStore_DataフィールドでなくDetail_Dataフィールドが出現するよう指示されます。
各売上レコードの先頭3文字は、ヘッダです。ヘッダには、レコードタイプおよび店舗IDが含まれています。残りのレコードの中に店舗情報または商品情報のどちらが格納されているかは、Hdr_Rec_Typeの値で定義されます。たとえば、Hdr_Rec_Typeが"S"なら、レコードに格納されているのは店舗データです。Hdr_Rec_Typeが"D"なら、レコードに格納されているのは詳細データです。
詳細データがレコードに格納されているときは、Supplier_Infoフィールドが含まれています。各Detail_Dataレコード内の4サプライヤは、OCCURS句で定義されます。
以下の図は、COBOLコピーブックから作成できるSales_File COBOLソース定義を示しています。
Sales_File COBOLソース定義は、[ポート名]、[レベル]、[発生数]、[データ型]、および[長さ]の各列を表示します。
Sales_Recカラム、Hdr_Dataカラム、Store_Dataカラム、Detail_Dataカラム、およびSupplier_Infoカラムは、下位レベルデータのグループを識別するグループレベルのカラムです。グループレベルのカラムはデータを含まないため、長さがゼロです。これらのカラムはいずれも、ソース定義内の出力ポートには該当しません。
Supplier_Infoグループには、Supplier_CodeカラムおよびSupplier_Nameカラムが含まれています。Supplier_Infoグループは、Detail_Dataレコード内に4回出現します。
Mapping DesignerでCOBOLソース定義からVSAMノーマライザトランスフォーメーションを作成すると、そのCOBOLソース定義に応じた入出力ポートがノーマライザトランスフォーメーション内に作成されます。ノーマライザトランスフォーメーションには、生成キーの出力ポートが少なくとも1つは含まれています。COBOLソースに複数出現カラムが含まれている場合、ノーマライザトランスフォーメーションは生成カラムIDの出力ポートを持ちます。
以下の図は、Mapping Designerでソース定義から作成されたノーマライザトランスフォーメーションポートを示しています。
 ノーマライザトランスフォーメーションポートは、HDR_REC_TYPE、HDR_STORE, BODY_STORE_NAME、BODY_STORE_ADDR1、BODY_STORE_CITY、DETAIL_ITEM、DETAIL_DESC、DETAIL_PRICE、DETAIL_QTY、SUPPLIER_CODE、およびSUPPLIER_NAMEです。
Supplier_Infoグループのカラムは、各COBOLソース行の中に4回出現します。
COBOLソース行には、次のようなデータが含まれています。
Item1 ItemDesc 100 25 A Supplier1 B Supplier2 C Supplier3 D Supplier4
ノーマライザトランスフォーメーションは、Supplier_CodeカラムおよびSupplier_Nameカラムのオカレンスごとに行を返します。各出力行に含まれる品目、説明、価格、および数量はそれぞれ同じ値です。
ノーマライザがCOBOLソース行から返す詳細データ行は、次のとおりです。
Item1 ItemDesc 100 25 A Supplier1 1 1 Item1 ItemDesc 100 25 B Supplier2 1 2 Item1 ItemDesc 100 25 C Supplier3 1 3 Item1 ItemDesc 100 25 D Supplier4 1 4
各出力行には、生成キーおよびカラムIDが含まれます。生成されたキー値は、新しいソース行の処理時に更新されます。詳細データ行の中の生成済みキー値は1です。
Supplier_Infoカラムのオカレンス番号は、カラムIDで定義されます。カラムIDは、Supplier_Infoカラムのオカレンス番号ごとに更新されます。詳細データ行の中のカラムID値は、1、2、3、4です。