EGL ソース形式の関数パーツ

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 操作エレメント内の名前になります。 このプロパティー・フィールドがない場合は、関数名が使用されます。 データは大/小文字の区別をします。例えば、名前 myFunctionMYFUNCTION とは異なります。
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』を参照してください。

関連概念
EGL プロジェクト、パッケージ、およびファイル
関数パーツ
インポート
basicLibrary 型のライブラリー・パーツ
nativeLibrary 型のライブラリー・パーツ
パーツ
パーツの参照
EGL での変数の参照
EGL 文およびコマンドの構文図
Typedef

関連リファレンス
配列
containerContextDependent
EGL 文
関数呼び出し
関数パラメーター
関数変数
INTERVAL
入出力エラー値
命名規則
プリミティブ型
TIMESTAMP

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.