目次

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トランスフォーメーション

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

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

手順2.C++ファイルの生成

手順2.C++ファイルの生成

エクスターナルプロシージャトランスフォーメーションを作成したあとは、コードを生成します。Designerはファイル名を小文字で生成します。これは、UNIXマッピングのドライブで作成するファイルは常に小文字のファイル名を持つからです。生成されるファイルには以下の規則が適用されます。
  • ファイル名。
    TXモジュールファイルの名前の先頭には「tx」が付きます。
  • モジュールクラス名。
    生成コードには、TXプロシージャを含むモジュールについてのクラス宣言が含まれます。 TXモジュールクラスの名前の先頭には「
    Tx
    」が付きます。たとえばエクスターナルプロシージャトランスフォーメーションのモジュール名がMymodである場合、そのクラス名はTxMymodとなります。
エクスターナルプロシージャのコードを生成するには:
  1. トランスフォーメーションを選択し、[トランスフォーメーション]-[外部プロシージャコードの生成]を選択します。
  2. 作成した手続きの名前の横にあるチェックボックスにチェックマークを付けます。
    BankSoftの例では、[
    INF_BankSoft.FV
    ]を選択します。
  3. ファイルの生成先ディレクトリを指定し、[生成]をクリックします。
    Designerは、指定したディレクトリの下にINF_BankSoftというサブディレクトリを作成します。
    Designerで作成した各エクスターナルプロシージャトランスフォーメーションでは、モジュールと手続き名を指定する必要があります。Designerは共通のモジュール名を共有するすべてのトランスフォーメーションについて、単一のディレクトリにコードを生成します。1つのディレクトリにコードを作成すると、単一の共有ライブラリが作成されます。
    Designerは以下のファイルを生成します。
    • tx<モジュール名>.h。
      エクスターナルプロシージャモジュールクラスを定義します。 このクラスは、ベースクラスTINFExternalModule60から派生したクラスです。このクラスのデータメンバは生成したコードに定義されません。しかし、新しいデータメンバおよびメソッドを追加することができます。
    • tx<モジュール名>.cpp。
      エクスターナルプロシージャモジュールクラスを実装します。 InitDerived()メソッドを拡張して、追加した新規データメンバの初期設定をインクルードすることができます。Integration Serviceが派生クラスのInitDerived()メソッドを呼び出すのは、ベースクラスのInit()メソッドが正しく完了したときだけです。
    このファイルは、モジュール内のすべてのエクスターナルプロシージャトランスフォーメーションの宣言を定義します。これらの宣言を変更すると、Designerで定義したエクスターナルプロシージャトランスフォーメーション間に不整合が生じます。したがって、宣言を変更してはなりません。
    このファイルにはまた、C関数のCreateExternalModuleObjectが含まれ、このファイルで定義したコンストラクタを用いて、エクスターナルプロシージャモジュールのオブジェクトを作成します。Integration Serviceは、コンストラクタを直接呼び出すのではなく、CreateExternalModuleObjectを呼び出します。
    • <プロシージャ名>.cpp。
      Designerはこのモジュール内の各エクスターナルプロシージャについて、このファイルを作成します。 このファイルに含まれるコードにより、データのクレンジングやフィルタリングといった手続きロジックが実現されます。データのクレンジングでは、コードを作成して入力ポートから値を読み込み、出力ポートの値を生成します。フィルタリングでは、コードを作成して、INF_NO_OUTPUT_ROWを返すことにより、出力行の生成を抑止します。
    • stdafx.h。
      UNIXシステムでの構築に使用されるスタブファイル。 各*.cppファイルで、このファイルがインクルードされます。Windowsシステムでは、Designerが生成したファイルの代わりに、Visual Studioが生成するstdafx.hファイルを使用する必要があります。
    • version.cpp。
      この実装のバージョン番号が入っている小さなファイルです。 以前のリリースでは、エクスターナルプロシージャの実装は別の方法で行われていました。このファイルを使用すると、Integration Serviceでエクスターナルプロシージャモジュールのバージョンの判別が可能になります。
    • makefile.aix、makefile.aix64、makefile.hp、makefile.hp64、makefile.hpparisc64、makefile.linux、makefile.sol。
      UNIXプラットフォーム用のメイクファイル。 32ビットプラットフォームの場合は、makefile.aix、makefile.hp、makefile.linux、makefile.solを使用します。64ビットAIXプラットフォームにはmakefile.aix64を使用し、64ビットHP-UX(Itanium)プラットフォームにはmakefile.hp64を使用します。