EPM 言語の呼び出し

EPM C/400(R)、Pascal、 および FORTRAN などの EPM 言語で作成されたプログラムは、QPXXCALL への CALL を使用して、ILE COBOL プログラムから呼び出すことができます。

次の例では、ILE COBOL プログラムが QPXXCALL を使用して、Pascal のプロシージャーを呼び出しています。

図 76. ILE COBOL プログラムからの Pascal プロシージャーの呼び出し
 5722WDS V5R4M0  060210 LN  IBM ILE COBOL                 CBLGUIDE/COBTOPAS        ISERIES1   06/02/15 13:38:36        ページ    2
                                     ソ ー ス
  STMT PL SEQNO  -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S コピー名   変更日付
     1     000100 IDENTIFICATION DIVISION.
     2     000200 PROGRAM-ID. COBTOPAS.
     3     000300 ENVIRONMENT DIVISION.
     4     000400 CONFIGURATION SECTION.
     5     000500   SOURCE-COMPUTER. IBM-ISERIES.
     6     000600   OBJECT-COMPUTER. IBM-ISERIES.
     7     000700 DATA DIVISION.
     8     000800 WORKING-STORAGE SECTION.
     9     000900 01  PARAMETER-LIST.
    10     001000     05  ENTRY-NAME   PIC X(100)         VALUE "SQUARE".
    11     001100     05  ENTRY-ID     PIC X(10)          VALUE "*MAIN".
    12     001200     05  PROG-NAME    PIC X(20)          VALUE "MATH".
    13     001300     05  A-REAL       PIC S9(9)  COMP-4  VALUE 0.
    14     001400     05  CLEAN        PIC S9(9)  COMP-4  VALUE 0.
    15     001500     05  INPT         PIC S99            VALUE 0.
    16     001600 PROCEDURE DIVISION.
           001700 MAINLINE.
    17     001800     DISPLAY "ENTER AREA NUMBER:".
    18     001900     ACCEPT INPT.
    19     002000     MOVE INPT TO A-REAL.
    20     002100     CALL "QPXXCALL" USING ENTRY-NAME
           002200                           ENTRY-ID
           002300                           PROG-NAME
           002400                           A-REAL.
    21     002500     DISPLAY A-REAL.
    22     002600     CALL "QPXXDLTE" USING CLEAN.
    23     002700     STOP RUN.
           002800
                           * * * * *   ソ ー ス 仕 様 の 終 わ り   * * * * *
図 77. ILE COBOL プログラムから呼び出される Pascal 入り口点
    segment MATH;
    procedure SQUARE ( var X : integer) ; external ;
    procedure SQUARE;
       begin
       X := X * X
    end; .

Pascal を使用すると、ILE COBOL プログラムは、Pascal プロシージャーをサブプログラムとして呼び出すことができます。 そのためには、Pascal プロシージャーに EXTERNAL ディレクティブを指定します (図 77 を参照)。 上記の例では、QPXXCALLENTRY-ID パラメーターを最初に呼び出した時点で、Pascal メイン環境が確立されます。 QPXXDLTE を使用することにより、Pascal 再入可能 (リエントラント) およびメイン環境を消去することができます。 CLEAN パラメーターにゼロを指定して QPXXDLTE に渡すと、 現行の Pascal のメイン環境が削除されます。

EPM プログラムから ILE COBOL プログラムを呼び出すには、別の EPM プログラムを呼び出すときと同じ呼び出しのセマンティクスを使用して行うことができます。

EPM プログラムと ILE COBOL プログラムの間で外部データを共用することはできません。