目次

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

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

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

エラーメッセージとトレースメッセージの生成

エラーメッセージとトレースメッセージの生成

手順4. モジュールの構築のInformaticaエクスターナルプロシージャTxINF_BankSoft::FVのインプリメンテーションには以下のコードが含まれています。
ostrstream ss; char* s; ... ss << "The calculated future value is: " << FV->GetDouble() << ends; s = ss.str(); (*m_pfnMessageCallback)(E_MSG_TYPE_LOG, 0, s); (*m_pfnMessageCallback)(E_MSG_TYPE_ERR, 0, s); delete [] s;
統合サービスがTx<MODNAME>型のオブジェクトを作成するときは、そのコンストラクタに対して、エラーやデバッグのメッセージをセッションログに書き込む際に使用できるコールバック関数へのポインタを渡します。(Tx<MODNAME>コンストラクタ用のコードは、Tx.cppファイルにあります。)このポインタはTx<MODNAME>メンバ変数m_pfnMessageCallbackに格納されています。このポインタの型は、$PMExtProcDir/include/infemmsg.hファイルのtypedefに定義されています。
typedef void (*PFN_MESSAGE_CALLBACK)(   enum E_MSG_TYPE eMsgType,   unsigned long Code,   char* Message );
また、このファイルには、列挙型E_MSG_TYPEが定義されています。
enum E_MSG_TYPE {   E_MSG_TYPE_LOG = 0,   E_MSG_TYPE_WARNING,   E_MSG_TYPE_ERR };
コールバック関数のeMsgTypeを「E_MSG_TYPE_LOG」と指定すると、このコールバック関数は
ログ
メッセージをセッションログに書き込みます。「E_MSG_TYPE_ERR」を指定すると、このコールバック関数は
エラー
メッセージをセッションログに書き込みます。「E_MSG_TYPE_WARNING」を指定すると、このコールバック関数は
警告
メッセージをセッションログに書き込みます。これらのメッセージを使用して、Informaticaエクスターナルプロシージャを容易にデバッグできます。
COMエクスターナルプロシージャのデバッグにあたっては、Visual BasicまたはC++クラス内から使用できる出力機能を利用できます。たとえばVisual Basicでは、MsgBoxを使用して、各行の計算結果を印刷できます。言うまでもなく、デバッグ中にこれを行うのは小さなサンプルデータについてです。実稼動に移る前に、必ずMsgBoxを削除してください。
Visual BasicまたはC++のクラス内から出力機能を使用する場合は、その前に以下の値を必ずレジストリに追加してください。
  1. Windowsレジストリに以下のエントリを追加します。
    \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PowerMart\Parameters\MiscInfo\RunInDebugMode=Yes
    このオプションは、統合サービスをサービスではなく通常のアプリケーションとして起動します。統合サービスのデバッグは、実行中の統合サービスサービスに対するデバッグ特権を変更することなく行えます。
  2. PMSERVER.EXEコマンドを使用して、統合サービスをコマンドラインから起動します。
    これで、統合サービスがデバッグモードで動作します。
デバッグが終了したら、必ずこのエントリをレジストリから削除するか、「RunInDebugMode」を「No」に設定してください。そうしないと、
PowerCenter
をサービスとして起動しようとしても、起動しません。
  1. 統合サービスを停止し、前に追加したレジストリエントリを以下の設定に変更します。
    \HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PowerMart\Parameters\MiscInfo\RunInDebugMode=No
  2. 統合サービスをWindowsサービスとして再起動します。