CRTRPGPGM
, CRTBNDRPG
, CRTRPGMOD
, ... コンパイルのためのコマンドはたくさんあるが
いずれの場合でも
権限 ............. *ALL
に変更してからコンパイルすることをお勧めする。
AUTパラメータの省略時は *LIBCRTAUT
であるが、弊社では数十年前よりコンパイルは
すべて 権限(AUT) を *ALL
に変更してコンパイルしている。
あまりにも当たり前になっているのでテクニックとは思えなかったほどである。
これは製品である以上、ユーザーの制限を行わないことはもちろんのことであるが
何故だか S/38 のころより *ALL
でコンパイルするように、あるIBM SE から
強く勧められていたせいもある。
最近、非常に影響のあることが判明したのでここに紹介する。
それはシステム値
である。
ある海外輸入ソフトウェア製品は、この値を *ALL
に変更してから導入するようにガイドがあった。
自分のソフトウェアを導入させるのにシステム値の変更が必要だとは、
けしからん製品であると感じたのだが、その QALWOBJRST
は *ALL
以外に設定しておくと
AUT: *ALL
以外でコンパイルしたプログラムはオブジェクトの復元(RSTLIB
, RSTOBJ
, ...) からは
除去されてしまうようである。
それは確かに大問題になってしまう。
AUT : *ALL
でコンパイルしていれば、このような問題は発生しない。
逆にシステム値を変更してくれ、という海外製品は開発グループがこのことを知らないということになる。
となれば危うい製品である。
このような不用意なトラブルを避けるためにも