ページの先頭行へ戻る
Interstage Data Effector V9.3.x リファレンス集
FUJITSU Software

7.4 ユーザー定義関数の呼出し例

連結機能のshunreplaceコマンドを使って、ユーザー定義関数を呼び出す場合の例を示します。

ここでは、以下の文書例を使用して説明します。

文書A
"氏名","性別","生年月日","住所","職業"
"井上 一郎","男","19590101","静岡県・・・","会社員"
"高島 一郎","男","19550708","静岡県・・・","医者"
"田中 刑事","男","19800805","静岡県・・・","公務員"
処理の要件

文書Aに対して、個人情報を保護するため、氏名と住所を暗号化します。


  1. C言語関数の作成

    暗号化処理を行うC言語関数(Defunc)を作成します。

    int Defunc( oper, **handle, **data ){
          ・・・
        switch( oper ){
        case DE_USER_FUNCTION_THREAD_OPEN:     /* 環境開設 */
          ・・・
           return 0;
        case DE_USER_FUNCTION_EXEC:            /* 変換処理 */
         /* 住所と氏名を暗号化する */
    ~~~~~
           return 0;
        case DE_USER_FUNCTION_FREE:            /* 領域解放 */
         /* 暗号化した文字列の領域を解放する */
    return 0; case DE_USER_THREAD CLOSE: /* 環境閉鎖 */ ~~~~~ return 0;
  2. 動作環境ファイルの定義

    replace用動作環境ファイル(Replace.cfg)に、Functionパラメタを定義します。

    • ライブラリパス:C:\lib\defunc.dll

    • ユーザー定義関数名:defunc

    • C言語関数名:Defunc

      ・・・
      # ユーザー定義関数の指定
      Function {
         library( "C:\lib\defunc.dll" ) {
             "defunc" "Defunc"
         }
      }
      ・・・
  3. 処理条件の記述

    連結条件ファイル(例:JoinCond.cfg)のリターン式にユーザー定義関数を指定します.

    • ユーザー定義関数名:defunc

      ・・・
      #リターン式でユーザー定義関数を呼び出す
      OutputDef { call( "defunc", $住所;$氏名 ) 暗号化処理, $性別, $職業 }
      ・・・
      
  4. コマンドの実行

    shunreplaceコマンドを実行します。

    WindowsWindowsの場合

    shunreplace -s D:\Shunsaku\cfg\Replace.cfg
                -j D:\Shunsaku\cfg\JoinCond.cfg

    SolarisLinuxLinux/Solarisの場合

    shunreplace -s /home/shunsaku/cfg/Replace.cfg
                -j /home/shunsaku/cfg/JoinCond.cfg
  5. 処理結果

    以下のようなデータが出力されます。

    暗号化処理,性別,職業
    XXXXXXXXXX,"男","会社員"
    YYYYYYYYYY,"男","医者"
    ZZZZZZZZZZ,"男","公務員"