目次

Search

  1. はじめに
  2. コンポーネント
  3. APIコレクション
  4. ビジネスサービス
  5. ファイルリスナ
  6. 固定長ファイル形式
  7. 階層マッパー
  8. 階層スキーマ
  9. 業種別データサービスカスタマイザ
  10. インテリジェント構造モデル
  11. インテリジェント構造モデルの改良
  12. マップレット
  13. 保存済みクエリ
  14. 共有シーケンス
  15. ユーザー定義関数

コンポーネント

コンポーネント

ユーザー定義関数のパラメータ化

ユーザー定義関数のパラメータ化

式変数として設定された入出力パラメータを使用して、式内のユーザー定義関数の全部または一部をパラメータ化できます。
ユーザー定義関数をパラメータ化するには、文字列の入出力パラメータを作成し、
[式の変数です]
を有効にします。ユーザー定義関数全体をパラメータ化するには、ユーザー定義関数全体の代わりにパラメータを使用します。ユーザー定義関数の一部をパラメータ化するには、ユーザー定義関数の引数の代わりに入出力パラメータを使用します。実行時に、マッピングタスクまたはパラメータファイル内のパラメータを解決します。
入出力パラメータの詳細については、「
マッピング
」を参照してください。

すべてパラメータ化

式でユーザー定義関数をパラメータ化する場合は、[すべてパラメータ化]を使用します。ユーザー定義関数の代わりに入出力パラメータを使用する場合、パラメータ名では大文字と小文字が区別されます。パラメータを解決するときは、:UDFプレフィックスを含めます。
例えば、入出力パラメータ$$UDFparameterがあり、それを使用してユーザー定義関数をすべてパラメータ化するとします。パラメータファイルでは、次の関数を使用してパラメータを解決します。
$$UDFparameter=:UDF.RemoveSpaces(names)

部分的にパラメータ化

引数のフィールド名をパラメータ化する場合、またはネストになったユーザー定義関数をパラメータ化する場合は、[部分的にパラメータ化]を使用します。ネストになったユーザー定義関数をパラメータ化する場合、関数の引数のパラメータは大文字でなければなりません。ユーザー定義関数を1つネストすることができます。
たとえば、入出力パラメータ$$UDFを作成し、式変数として設定します。式では、次の関数を設定します。
:UDF.RemoveSpaces($$UDF)
パラメータファイルでは、次の関数を使用してパラメータを解決します。
$$UDF=:UDF.Replace_Chars_special(Name)

すべてまたは部分的にパラメータ化

同じ関数内で、[すべてパラメーター化]と[部分的にパラメーター化]の両方を使用できます。ユーザー定義関数と関数の引数をパラメータ化する場合は、[すべてパラメータ化]と[部分的にパラメータ化]の両方を使用します。
例えば、入出力パラメータ$$UDFがあり、それを式で使用して、ユーザー定義関数をすべてパラメータ化するとします。パラメータファイルでは、次の値を使用してパラメータを解決します。
$$UDF=:UDF.Replace_Chars_special($$Field) $$Field=Name
すべてパラメータ化したユーザー定義関数で、CurrentTaskName、CurrentRunId、またはSESSSTARTTIMEシステム変数を引数として渡す場合は、別の入出力パラメータを使用してシステム変数を渡す必要があります。
例えば、パラメータ化したユーザー定義関数でCurrentTaskNameを使用するとします。入出力パラメータ$$UDFを使用して、関数をすべてパラメータ化します。パラメータファイルでは、次の値を使用してパラメータを解決します。
$$UDF=:UDF.udf_InitcapLtrim($$tasknameparam) $$tasknameparam='$CurrentTaskName'