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    |
                       |____________|
 

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