EGL ソース・ファイルに関数を宣言することができます。詳細については、『EGL
ソース形式』に説明します。
以下の例では、2 つの組み込み関数を含むプログラム・パーツを、独立型の関数および独立型のレコード・パーツ
とともに示します。
Program myProgram(employeeNum INT)
{includeReferencedFunctions = yes}
// プログラム・グローバル変数
employees record_ws;
employeeName char(20);
// 必要組み込み関数
Function main()
// 従業員名の初期化
recd_init();
// 渡された employeeNum に基づいて
// 目的の従業員名を取得
employeeName = getEmployeeName(employeeNum);
end
// 別の組み込み関数
Function recd_init()
employees.name[1] = "Employee 1";
employees.name[2] = "Employee 2";
end
end
// 独立型の関数
Function getEmployeeName(employeeNum INT) returns (CHAR(20))
// ローカル変数
index BIN(4);
index = syslib.size(employees.name);
if (employeeNum > index)
return("Error");
else
return(employees.name[employeeNum]);
end
end
// 従業員の typeDef として機能するレコード・パーツ
Record record_ws type basicRecord
10 name CHAR(20)[2];
end
- Function functionPartName ... end
- パーツを関数として識別し、パーツ名を指定します。命名の規則については、『命名規則』を参照してください。
- parameter
- 関数全体で使用でき、呼び出し元の関数から値を受け取るメモリー領域となるパラメーター。
パラメーターを宣言するために使用する構文については、『関数パラメーター』を参照してください。
- returns (returnType)
- 関数が呼び出し側に戻すデータを記述します。戻りの型の特性は、呼び出し側関数内の値を受け取る変数と同じでなければなりません。
戻りの型はプリミティブ型である必要があります。
サービスにおいては、戻りの型が ANY、BLOB、または CLOB をとることはできません。
- { functionProperties }
- プロパティーとそのタイプは次のとおりで、どれもオプションです。
- @WSDL
- 関数が Service パーツにある場合のみ有効です。また、そのサービス・パーツに基づく変数が Web サービスにバインドされている場合のみ、意味を持ちます。
EGL が、Java™ JAX-RPC ランタイム・コードとの相互作用で使用するために、
Web サービス記述言語 (WSDL) 定義からのデータを抽出できるようにします。プロパティー・フィールドおよびその型は以下のとおりです。
- elementName STRING
- このプロパティー・フィールドがある場合は、値はその関数の WSDL 操作エレメント内の名前になります。
このプロパティー・フィールドがない場合は、関数名が使用されます。
データは大/小文字の区別をします。例えば、名前 myFunction は
MYFUNCTION とは異なります。
- nameSpace STRING
- このプロパティー・フィールドは関数のコンテキスト中で無視されます。
- isLastParamReturnValue BooleanKind
- このプロパティー・フィールドは関数のコンテキスト中で無視されます。
- alias STRING
- 関数が nativeLibrary 型のライブラリー内にある場合にのみ有効です。このコンテキストでは、値は DLL ベースの関数名で、EGL 関数名にデフォルト設定されます。DLL ベースの関数を使用して EGL 関数に名前を付ける際に検証エラーが発生した場合、alias プロパティーを明示的に設定してください。
- dataItemPartName
- 関数に可視であり、戻り値の typedef (形式のモデル) として機能する dataItem パーツ。
- primitiveType
- 呼び出し側に戻されるデータのプリミティブ型。
- length
- 呼び出し側に戻されるデータの長さ。length は、戻される値の文字数または桁数を表す整数です。
- decimals
- 一部の数値型には、decimals を指定できます。これは、小数点以下の桁数を表す整数です。
小数部の桁の最大数は、18 または length で宣言された桁数の小さいほうです。小数点は、データとともに保管されません。
- "dateTimeMask"
- TIMESTAMP 型および INTERVAL 型には、"dateTimeMask" を指定できます。これは、日時値の特定の位置に意味 (「年の桁」など) を割り当てるものです。
実行時にデータ付きのマスクが表示されます。
- statement
- EGL 文。詳細については『EGL 文』に説明します。ほとんどはセミコロンで終了します。
- variableDeclaration
- 『関数変数』で説明されている変数宣言。
- containerContextDependent
- 宣言されている関数によって呼び出される関数を解決するために使用される名前空間を拡張するかどうかの指示。
デフォルトは no です。
このインディケーターは、VisualAge® Generator からマイグレーションされたコードの中で使用します。
詳細については、『containerContextDependent』を参照してください。