セミナーでの質問で
「CLPでOVRDBF
を使って使用ファイルのライブラリーを指定しているが、
これをWeb適用業務で使用できるのか?」
という質問があった。
答えは2つあるのだが1つしか答えていなかったので、ここで補足しよう。
方法は2つある。
OVRDBF
を使って CGIを呼び出すURL で通常では
「http://218.44..../cgi-bin/MYPGM?SHCODE= ...」
のようにしてCGI を呼び出すのであるが
CGI : MYPGM
の代わりに CLP : MYCLP
を
PGM OVRDBF SHOHIN TOFILE(QTRFIL/SHOHIN) SECURE(*YES) OVRSCOPE(*JOB) CALL CGIBIN.MYPGM DLTOVR SHOHIN LVL(*JOB) ENDPGM
のようにして呼び出す MYCLP
を作成するURL は
「http://218.44. ... /cgi-bin/MYCLP?SHCODE= ...」
のようにしてMYCLP
を指定する。
ここで SECURE(*YES)
とは他の OVRDBF
に左右されないで、
このOVRDBF
を最優先することを意味する。
以前のCLP でのOVRDBF
の影響を受けないようにするためである。
また OVRSCOPE(*JOB)
と DLTOVR
の LVL(*JOB)
は
ILEでは必須であるので忘れないように。
MYCLP
は ILEである必要はないし、特殊なコンパイルも必要ない。
これまでと同様のCRTCLPGM
で十分である。
EXTFILE
を使用する。OS400 V5R1M0 からは実行時のファイル/ライブラリーの名前を指定することができる
EXTFILE
パラメータが追加された。
0003.00 FSHOHIN IF E K DISK EXTFILE(SHOHIN_LIB) : 0052.00 D SHOHIN_LIB S 21 INZ('QTRFIL/SHOHIN')
と RPG の中で指定すると実行時にはライブラリー QTRFIL のファイル SHOHIN が
選択されて使用されるのである。
ライブラリー・リストにはライブラリー QTRFIL が存在している必要はない。
(ただしコンパイル時には存在している必要がある。)
CLP が必要な理由が OVRDBF
であるだけならば、
この EXTFILE
を使用することによって CLP は必要でなくなる。