変更の始まり

PGMINFO(*YES | *NO)

PGMINFO キーワードを使用すれば、モジュールの作成時にプロシージャーへのインターフェースをプログラム・インターフェース情報に組み込むかどうかを制御することができます。

どのプロシージャーのプロシージャー仕様書でも PGMINFO キーワードを指定しなかった場合は、モジュールの作成時に、メイン・プロシージャーと、Java ネイティブ・メソッド以外のすべてのエクスポートされるサブプロシージャーに対して、プログラム・インターフェース情報が生成されます。

*YES
モジュール内の 1 つ以上のプロシージャーに対して PGMINFO(*YES) が指定されると、PGMINFO(*YES) が指定されていないプロシージャーに対してはプログラム・インターフェース情報は生成されません。 モジュール内にサイクル・メイン・プロシージャーがある場合は、メイン・プロシージャーに対してはプログラム・インターフェース情報は生成されません。
*NO
モジュール内の 1 つ以上のプロシージャーに対して PGMINFO(*NO) が指定されると、PGMINFO キーワードを持っていないプロシージャーに対してのみプログラム・インターフェース情報が生成されます。 モジュール内にサイクル・メイン・プロシージャーがある場合は、メイン・プロシージャーに対してプログラム・インターフェース情報が生成されます。
注:
  1. PGMINFO キーワードは、モジュールが作成されるときのみ有効です。 プログラムが作成されるときは、メイン・プロシージャーに対してのみプログラム・インターフェース情報が生成されます。 プログラムの作成時にメイン・プロシージャーに対してプログラム・インターフェース情報が生成されないようにしたい場合は、制御ステートメント内で PGMINFO(*NO) キーワードを使用すると、プログラム・インターフェース情報が生成されなくなります。 下記のを参照してください。
  2. モジュール内のすべての PGMINFO キーワードは同じ値 (*YES または *NO のいずれか) を持っていなければなりません。
  3. モジュール内にサイクル・メイン・プロシージャーがある場合は、エクスポートされるサブプロシージャーの 1 つ以上で PGMINFO(*YES) を指定することによって、モジュールの作成時にメイン・プロシージャーに対してプログラム・インターフェース情報が生成されないようにすることができます。
  4. コマンドの PGMINFO パラメーターでも、モジュールの制御ステートメント内の PGMINFO キーワードでも、プログラム・インターフェース情報を要求しない場合は、PGMINFO キーワードは無視されます。
  5. PGMINFO(*NO) を使用して、一部のプロシージャーに対してプログラム・インターフェース情報を指定できないようにする場合、プログラム・インターフェース情報が生成されないプロシージャー (Java ネイティブ・メソッドやエクスポートされないプロシージャーなど) に対しては PGMINFO(*NO) を指定する必要はありません。

  1. 次の例では、PROC2 には PGMINFO(*YES) キーワードが指定されていないので、プログラム・インターフェース情報はプロシージャー PROC1 と PROC3 に対してのみ生成されます。
       CTL-OPT PGMINFO(*PCML : *MODULE);
       CTL-OPT NOMAIN;
    
       DCL-PROC PROC1 EXPORT PGMINFO(*YES);
       END-PROC;
    
       DCL-PROC PROC2 EXPORT;
       END-PROC;
    
       DCL-PROC PROC3 EXPORT PGMINFO(*YES);
       END-PROC;
  2. 次の例では、PROC2 には PGMINFO(*NO) キーワードが指定されているので、プログラム・インターフェース情報はプロシージャー PROC1 と PROC3 に対してのみ生成されます。
       CTL-OPT PGMINFO(*PCML : *MODULE);
       CTL-OPT NOMAIN;
    
       DCL-PROC PROC1 EXPORT;
       END-PROC;
    
       DCL-PROC PROC2 EXPORT PGMINFO(*NO);
       END-PROC;
    
       DCL-PROC PROC3 EXPORT;
       END-PROC;
  3. 次の例では、コマンドによって PGMINFO(*NO) が指定されると、プロシージャー PROC1 および PROC3 に対して PGMINFO(*YES) が指定されても、プログラム・インターフェース情報は生成されません。
       CTL-OPT NOMAIN;
    
       DCL-PROC PROC1 EXPORT PGMINFO(*YES);
       END-PROC;
    
       DCL-PROC PROC2 EXPORT;
       END-PROC;
    
       DCL-PROC PROC3 EXPORT PGMINFO(*YES);
       END-PROC;
  4. 次の例は、メイン・プロシージャーに対してプログラム・インターフェース情報が生成されないようにする方法を示しています。
    1. 制御仕様書キーワード PGMINFO(*NO) は、プログラムの作成時にプログラム・インターフェース情報が作成されないようにします。
    2. プロシージャー仕様書キーワード PGMINFO(*NO) は、モジュールの作成時にメイン・プロシージャー myPgm に対してプログラム・インターフェース情報が生成されないようにします。
       CTL-OPT MAIN(myPgm);
       /IF DEFINED(*CRTBNDRPG)   1 
          CTL-OPT PGMINFO(*NO);
       /ENDIF
    
       DCL-PROC myPgm PGMINFO(*NO);  2 
       END-PROC;
    
       DCL-PROC PROC1 EXPORT PGMINFO(*NO);
       END-PROC;
    
       DCL-PROC PROC2 EXPORT;
       END-PROC;
  5. 次の例では、サブプロシージャーの 1 つに対して PGMINFO(*YES) が指定されているので、サイクル・メイン・プロシージャーに対してはプログラム・インターフェース情報が生成されません。
       CTL-OPT PGMINFO(*PCML : *MODULE);
    
       // Cycle main procedure
       RETURN:
    
       // Subprocedures
       DCL-PROC PROC1 EXPORT PGMINFO(*YES);
       END-PROC;
変更の終わり