call関数は、項目参照で指定されるデータをユーザー定義関数で処理して、文字列型のデータを1つ返却します。
call関数の書式を以下の図に示します。
図4.33 ユーザー定義関数の書式
以下のパラメタで定義したユーザー定義関数名を指定します。
基本コマンド利用時は、各動作環境ファイルのFunctionパラメタ
C API利用時は、AsisLoadFunctionのFunctionパラメタ
統合コマンド利用時は、統合定義ファイルのFunctionタグ
注意
項目参照は、すべて文字列型としてユーザー定義関数に渡されます。
返却された文字列にエスケープが必要な文字が含まれる場合には、エスケープして返却します。
引数にリテラル(文字コードの“EUC”など)を指定する場合は、仮想項目に固定値を設定し、その仮想項目を上記の「項目参照」に指定してください。
連結条件式では、結合関係式で文字列型の場合だけ、ユーザー定義関数が指定できます。
仮想項目定義では、関係式で文字列型の場合だけ、ユーザー定義関数が指定できます。
Data Effectorでは処理を最適化しています。式や仮想項目に指定したcall関数は、指定した順序や条件通りに呼び出されるとは限りません。必要に応じて呼出しの有無の判断や呼出し順序の変更を行います。
ユーザー定義関数は参照透過性があるものとみなされ、call関数に同じ引数を与えた場合は、同じ結果が返却されると判断されます。その結果、最適化によりユーザー定義関数の呼び出しが省略されることがあります。
ユーザー定義関数内でファイルやデータベースへ出力するなどの副作用のある処理は行わないでください。また、call関数の呼出し順序に依存した処理を行わないでください。
ユーザー定義関数内で行うデータ加工処理は、call関数の引数として渡される項目参照だけを使用するようにしてください。
参照
項目参照については、“3.1.9 項目参照”を参照してください。
変換が正常に動作した場合は、文字列型を返します。
ユーザー定義関数“defunc”で、$住所および$氏名を加工する場合
call( "defunc", $住所 ; $氏名 )