7.9.2 CALL についてのコメント/警告

プロセスまたはファンクションの呼び出し

     CALL PROCESS(TEST) FUNCTION(FUNCB)


 この場合、実際には以下の処理が行われます。

 
                      ______________
                     |              | 
                     |ファンクション|
                     |   FUNCA      |
                     |______________| 
                           |
                         呼び出し
                           |
                      _____|________
                     |              | 
                     |   プロセス   |
                     | コントローラ |
                     |   TEST       |
                     |______________|
                           |
                         呼び出し
                           |
                      _____|________
                     |              | 
                     |ファンクション|
                     |   FUNCB      |
                     |______________|
  1. FUNCB (FUNCBであることに注意) にコマンド FUNCTION OPTIONS(*DIRECT) を組み込み、再コンパイルします。これにより、FUNCB でダイレクト・モードの呼び出しが可能になり、いかなる形でもFUNCBに影響しなくなります。
  2. 以下のように、FUNCA 内のCALLコマンドを変更します。
     CALL PROCESS(*DIRECT) FUNCTION(FUNCB)


次に、FUNCA を再コンパイルします。これにより、ファンクションFUNCBを、TESTというプロセス・コントローラからではなく、ダイレクト・モードで呼び出すよう指定されます。      

これらの変更を行うと、CALL は以下のように動作します。

 
                        ______________
                       |              |  
                       |ファンクション|
                       |   FUNCA      |
                       |______________|
                             |
                           呼び出し
                             |
                        _____|________
                       |              |
                       |ファンクション|
                       |   FUNCB      |
                       |______________|

ユーザー・プログラムの呼び出し