呼び出し先のプログラムとプロシージャーのリンケージ・タイプの識別
呼び出し側プログラムとは異なるモジュール・オブジェクトにある他の ILE COBOL プログラムを呼び出す場合に、CALL リテラル のステートメントによって呼び出しを行うのであれば、
呼び出し先プログラムが、ILE プログラムであるかまたは ILE プロシージャーであるかを指定する必要があります。
呼び出しのリンケージ・タイプを指定することによって、
呼び出しているのがプログラム・オブジェクトかプロシージャーかを識別します。
呼び出しの LINKAGE タイプは明示的に指定したり、
特定のリンケージに関連する句を指定することによって強制したりできます。
たとえば、LIBRARY 句では、呼び出しが LINKAGE プログラムになるように強制されます。
リンケージを強制する句がないインスタンスでは、明示的にリンケージを指定する次の 3 つの方法があります。
優先度の高いもの順になっています。
- CALL、CANCEL、または SET...ENTRY ステートメントの LINKAGE 句
- プログラム・オブジェクトの呼び出しまたは取り消しを行うには、CALL、CANCEL、または SET...ENTRY ステートメントで、LINKAGE TYPE IS PROGRAM を指定します。
PROCEDURE DIVISION.
·
·
·
CALL LINKAGE TYPE IS PROGRAM literal-1
·
·
·
CALL LINKAGE PROGRAM literal-2 IN LIBRARY literal-3
·
·
·
CANCEL LINKAGE PROGRAM literal-2 IN LIBRARY literal-3
·
·
·
CANCEL LINKAGE TYPE IS PROGRAM literal-1
- プロシージャーの呼び出しまたは取り消しを行うには、CALL、CANCEL ステートメントまたは SET...ENTRY ステートメントで、LINKAGE TYPE IS PROCEDURE を指定します。
IN LIBRARY 句は、LINKAGE TYPE IS PROCEDURE 句を指定した CALL、CANCEL、または SET ステートメントには指定できません。
IN LIBRARY 句は、プログラム・オブジェクト (*PGM) の i5/OS ライブラリー名を指定するのに使用します。
PROCEDURE DIVISION.
·
·
·
CALL LINKAGE TYPE IS PROCEDURE literal-1
·
·
·
CANCEL LINKAGE TYPE IS PROCEDURE literal-1
- SPECIAL-NAMES 段落の LINKAGE TYPE 文節
- プログラム・オブジェクトの呼び出しまたは取り消しを行うには、SPECIAL-NAMES 段落で LINKAGE TYPE IS PROGRAM FOR リテラル-1 を指定します (リテラル-1 は、
呼び出し先プログラム・オブジェクトの名前)。
SPECIAL-NAMES 段落でリンケージがすでに定義されている場合は、CALL、CANCEL、
または SET...ENTRY ステートメントで LINKAGE TYPE キーワードを指定する必要はありません。
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
·
·
·
SPECIAL-NAMES.
LINKAGE TYPE IS PROGRAM FOR literal-1.
·
·
·
PROCEDURE DIVISION.
·
·
·
CALL literal-1.
·
·
·
CANCEL literal-1.
- プロシージャーの呼び出しまたは取り消しを行うには、SPECIAL-NAMES 段落で LINKAGE TYPE IS PROCEDURE FOR リテラル-1 を指定します (リテラル-1 は、
呼び出し先プロシージャーの名前)。
SPECIAL-NAMES 段落でリンケージがすでに定義されている場合は、CALL、CANCEL、または SET...ENTRY ステートメントで LINKAGE TYPE 句を指定する必要はありません。
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
·
·
·
SPECIAL-NAMES.
LINKAGE TYPE IS PROCEDURE FOR literal-1.
·
·
·
PROCEDURE DIVISION.
·
·
·
CALL literal-1.
·
·
·
CANCEL literal-1.
- CRTCBLMOD および CRTBNDCBL コマンドの LINKLIT パラメーター、または関連する PROCESS ステートメントのオプション。
- CRTCBLMOD および CRTBNDCBL コマンドの LINKLIT パラメーターを使用すると、ILE COBOL プログラムの中のすべての外部 CALL リテラル-1、CANCEL リテラル-1、
または SET プロシージャー・ポインター・データ項目 TO
ENTRY リテラル-1 に対して、
コンパイル時にリンケージ・タイプを指定することができます。
CRTCBLMOD または CRTBNDCBL の LINKLIT パラメーターでリンケージがすでに定義されている場合は、SPECIAL-NAMES 段落の LINKAGE TYPE 文節や、CALL、CANCEL、
または SET...ENTRY ステートメントの LINKAGE TYPE 句を指定する必要はありません。
- プログラム・オブジェクトを呼び出すモジュールを作成するには、次のように入力します。
CRTCBLMOD MODULE(MYLIB/XMPLE1)
SRCFILE(MYLIB/QCBLLESRC) SRCMBR(XMPLE1)
LINKLIT(*PGM)
- プロシージャーを呼び出すモジュールを作成するには、次のように入力します。
CRTCBLMOD MODULE(MYLIB/XMPLE1)
SRCFILE(MYLIB/QCBLLESRC) SRCMBR(XMPLE1)
LINKLIT(*PRC)
- CRTCBLMOD の LINKLIT パラメーターを使用してリンケージ・タイプを指定する場合、CALL および CANCEL ステートメントは次のようにコーディングします。
PROCEDURE DIVISION.
·
·
·
CALL literal-1.
·
·
·
CANCEL literal-1.
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.