RPG

75. ライブラリー・リストを必要としない実行とは?

RPGの外部記述ファイルでは一般にライブラリー・リストに従って外部ファイルが検索されて、
実行が行われる。
しかし外部記述ファイルのライブラリー名を明示的に指定したい場合がなかったであろうか?
例えば CGI は、どのスレッドで実行されるか不明であるのでライブラリー・リストに依存する
ことはできない。
そこでCGI 内部で OVRDBF によってライブラリーを指定してからユーザー・オープンでファイル
をオープンする手法がとられてきた。
使用後にはクローズしてから DLTOVR を実行する必要もあった。
このような冗長な処理を避けることができる「EXTFILE」というキー・ワードがV5R1M0 から
追加されている。

【例】ライブラリー QTRFIL のファイル SHOHIN を指定する。

ファイル仕様書で EXTFILE を指定して、パラメータの内容をD仕様書で記述する。

0001.00 H DFTNAME(RPG005) DATEDIT(*YMD/)                                       
0002.00 F********** EXTFILE サンプル *************************************     
0003.00 FSHOHIN    IF   E           K DISK    EXTFILE(SHOHIN_LIB)              
0004.00 F*****************************************************************     
0005.00 D SHOHIN_LIB      S             21A   INZ('QTRFIL/SHOHIN')             
0006.00 C     *LOVAL        SETLL     SHOHIN                                   
0007.00 C                   DO        *HIVAL                                   
0008.00 C                   SETOFF                                       50    
0009.00 C                   READ      SHOHIN                                 50
0010.00 C   50              LEAVE                                              
0011.00 C                   END                                                
0012.00 C                   SETON                                        LR    
0013.00 C                   RETURN                                             
0014.00 C     END           TAG
【 解説 】

SHOHIN_LIB というフィールドは固定情報でなくてもよい。
EXTFILE キーワードを使用すれば CGI では効果的である。
ただしコンパイル時にはライブラリー・リストは従来どおり必要である。