INVOKE文はメソッドを呼び出す働きをする。
BY CONTENT指定およびBY VALUE指定を書ける。
一般的オブジェクト参照であるために、オブジェクト一意名-1は必須ではない。
オブジェクト記憶節、
局所記憶節、連絡節 のいずれかに定義されているデータ項目を参照しなければならない。
オブジェクト記憶節、
局所記憶節、連絡節 のいずれかに定義されていなければならない。
または一意名-1
はオブジェクト インスタンスを指す。オブジェクト一意名-1をクラス名として指定した場合は、そのクラス名のファクトリ オブジェクトを指す。定数-1、または一意名-2によって参照されるデータ項目の内容は、そのオブジェクト インスタンスに対して作用するそのオブジェクトのメソッドを指す。
オブジェクト インスタンスが一般的オブジェクト参照により定義されている場合、呼び出されたメソッド中の仮パラメーターと返却する項目のいずれも、ANY LENGTH句を使用して記述されてはならない。
注: COBOL言語では、データ項目の番地の桁寄せに制約はない。他方、COBOL以外の言語では、通常は番地について前提があり、桁寄せされていないデータ項目が参照されると何らかのエラーを起こす。桁寄せは下記の措置のうちのいくつかを用いて実現される。
INVOKE文にRETURNING指定を書いた場合、COBOL以外のメソッドは適切な形式の結果を返さなければならない。
パラメーターが指標名の場合は、そのような対応関係は確立されない。呼び出されたメソッドと呼び出すランタイム要素の指標名は常に別々の指標を参照する。
起動されたランタイム要素上のUSING指定の効果については、手続き部の章の手続き部の見出し手続き部の見出し節の一般規則に記述されている。
最初のパラメーターの前にBY CONTENT、BY REFERENCE、BY VALUEのどの指定もないと、BY REFERENCE指定があるものとみなされる。
パラメーターに対してBY CONTENT指定を明示的または暗黙的に使用している場合、実行プログラムは、追加データ項目が宣言され、BY REFERENCE指定中で使用されたかのように動作する。一意名-5 を指定した場合は、追加項目の暗黙的なデータ記述とその内容が、一意名-5のものと同じとなる。定数-3を指定した場合は、追加項目の暗黙的なデータ記述が、定数-3 と同じサイズで、内容が定数-3の値に設定された英数字データ項目と同じとなる。LENGTH OF 一意名-6 を指定した場合は、追加項目のデータ記述が、PIC S9(n) USAGE COMP-5と同じとなる。ここで、 n の値は、9 以上で、COBOLシステムでのデータ項目の最大長を保持できるサイズのデータ項目を定義するものとする。追加データ項目の内容は、一意名-6に割り当てられた記憶用バイト数に設定される。
一意名-7 が指定され、BINARY、COMP-4、COMP-5、またはCOMP-Xである場合、追加データ項目のデータ記述は一意名-7のものと同じとなる。ただし、その用途はCOMP-5である。追加データ項目の内容は、COMP-5 で表示される 一意名-7の内容と同じとする。この変換と形式により、COBOL以外のプログラムの呼び出しが容易となる。
これ以外の場合で一意名-7が指定された場合は、追加データ項目の暗黙的なデータ記述および内容は、一意名-7のものと同じとなる。
整数-1 を指定すると、追加データ項目のデータ記述は、整数-2が指定されていれば、その値で示された記憶用バイト数を占める符号付き数字項目 USAGE COMP-5と同じとなる。整数-2が指定されていない場合は、システム領域のサイズ(典型的な例は、システム上のPOINTERのサイズ)と同じとなる。
「LENGTH OF 一意名-8」を指定すると、追加データ項目のデータ記述は、PIC S9(n) USAGE COMP-5と同じとなる。ここで n の値は 9 以上で、COBOLシステムでのデータ項目の最大長を保持できるサイズのデータ項目を定義するものとする。追加データ項目の内容は、一意名-8に割り当てられた記憶用バイト数に設定される。
呼び出されるメソッドがCOBOLメソッドの場合、INVOKE文のBY VALUE指定中の各パラメーターには、対応するパラメーターが、手続き部見出しのUSING指定中で宣言されなければならない。このパラメーターにも、明示的または暗黙的にBY VALUE指定を使用しているものとする。
上記のようにINVOKE文の結果として生成された追加データ項目と、呼び出されるメソッド中のこの対応するパラメーターの関係は、以下のようになる。
呼び出されるメソッドがCOBOLメソッドでない場合、 BY VALUE指定を使用しなければならない場合の詳細は、関連するドメインにより異なる。