PGMINFO(*YES | *NO)
PGMINFO キーワードを使用すれば、モジュールの作成時にプロシージャーへのインターフェースをプログラム・インターフェース情報に組み込むかどうかを制御することができます。
どのプロシージャーのプロシージャー仕様書でも PGMINFO キーワードを指定しなかった場合は、モジュールの作成時に、メイン・プロシージャーと、Java ネイティブ・メソッド以外のすべてのエクスポートされるサブプロシージャーに対して、プログラム・インターフェース情報が生成されます。
- *YES
- モジュール内の 1 つ以上のプロシージャーに対して PGMINFO(*YES) が指定されると、PGMINFO(*YES) が指定されていないプロシージャーに対してはプログラム・インターフェース情報は生成されません。 モジュール内にサイクル・メイン・プロシージャーがある場合は、メイン・プロシージャーに対してはプログラム・インターフェース情報は生成されません。
- *NO
- モジュール内の 1 つ以上のプロシージャーに対して PGMINFO(*NO) が指定されると、PGMINFO キーワードを持っていないプロシージャーに対してのみプログラム・インターフェース情報が生成されます。 モジュール内にサイクル・メイン・プロシージャーがある場合は、メイン・プロシージャーに対してプログラム・インターフェース情報が生成されます。
注:
- PGMINFO キーワードは、モジュールが作成されるときのみ有効です。 プログラムが作成されるときは、メイン・プロシージャーに対してのみプログラム・インターフェース情報が生成されます。 プログラムの作成時にメイン・プロシージャーに対してプログラム・インターフェース情報が生成されないようにしたい場合は、制御ステートメント内で PGMINFO(*NO) キーワードを使用すると、プログラム・インターフェース情報が生成されなくなります。 下記の例を参照してください。
- モジュール内のすべての PGMINFO キーワードは同じ値 (*YES または *NO のいずれか) を持っていなければなりません。
- モジュール内にサイクル・メイン・プロシージャーがある場合は、エクスポートされるサブプロシージャーの 1 つ以上で PGMINFO(*YES) を指定することによって、モジュールの作成時にメイン・プロシージャーに対してプログラム・インターフェース情報が生成されないようにすることができます。
- コマンドの PGMINFO パラメーターでも、モジュールの制御ステートメント内の PGMINFO キーワードでも、プログラム・インターフェース情報を要求しない場合は、PGMINFO キーワードは無視されます。
- PGMINFO(*NO) を使用して、一部のプロシージャーに対してプログラム・インターフェース情報を指定できないようにする場合、プログラム・インターフェース情報が生成されないプロシージャー (Java ネイティブ・メソッドやエクスポートされないプロシージャーなど) に対しては PGMINFO(*NO) を指定する必要はありません。
例
- 次の例では、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; - 次の例では、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; - 次の例では、コマンドによって 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; - 次の例は、メイン・プロシージャーに対してプログラム・インターフェース情報が生成されないようにする方法を示しています。
- 制御仕様書キーワード PGMINFO(*NO) は、プログラムの作成時にプログラム・インターフェース情報が作成されないようにします。
- プロシージャー仕様書キーワード 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; - 次の例では、サブプロシージャーの 1 つに対して PGMINFO(*YES) が指定されているので、サイクル・メイン・プロシージャーに対してはプログラム・インターフェース情報が生成されません。
CTL-OPT PGMINFO(*PCML : *MODULE); // Cycle main procedure RETURN: // Subprocedures DCL-PROC PROC1 EXPORT PGMINFO(*YES); END-PROC;
