RPG

214. RPGソースをIFSテキスト・ファイルでコンパイル (1)

RPGコンパイラー・コマンドでストリーム・ファイルをソースに指定する
SRCSTMF キー・ワードが以前から提供されていることにお気づきの人も多いと思う。

私たちはこれまで RPGソースと言えばライブラリー・システムの
*SRCPF (物理ソース・ファイル) として保管したものをコンパイルしてきた。
しかし、ここではIFS に保存したソース・ファイルからのコンパイルについて
考察してみたいと思う。

最初に SEU を使ってライブラリー・システムに次のような簡単なソースを作成した。

  H DFTNAME(TESTRPG3) DATEDIT(*YMD/)                                     
  F********** RPG  ストリーム・ソースのテスト ***************************
  F*                                                                     
  F**********************************************************************
  C     'TESTRPG3'    DSPLY                   ANS               1        
  C                   SETON                                        LR    
  C                   RETURN                                             

次に、ライブラリー・システムに保管してある、この RPGソースを
次のようにして IFS のストリーム・ファイルにコピーしてみる。

  CPYTOIMPF FROMFILE(MYSRCLIB/QRPGLESRC TESTRPG3) TOSTMF('/TEST/TESTRPG3.RPG')    	
    MBROPT(*REPLACE) STMFCCSID(5035) RCDDLM(*CR)

【 解説 】

TOSTMFキー・ワードには出力先のストリーム・ファイル名に実存するフォルダー名を
つけて指定する。

ここでは /TEST という名前のフォルダーにコピーを指定している。
拡張子は何でも構わないがここでは単に「*.RPG」としておく。
改行を示すコードは省略値の *EOR のままでは CPF2845 のエラーによって
CPYTOIMPF は異常終了してしまうため、*CR または *LF を指定しておく。

次に WRKLNK '/TEST' によって IFS をオープンしてTESTRPG3.RPG をオープンすると

となる。

左端に不要な「"」の文字が挿入されてしまっているので Delete キーを使って
" の文字を削除しておく。

これでコンパイルの準備は整った。
コマンド入力画面より次のようにストリーム・ファイルを指定してコンパイルする。

  CRTBNDRPG PGM(TEST.COM/TESTRPG3) SRCSTMF('/TEST/TESTRPG3.RPG') AUT(*ALL)

もちろん実行してみると問題なく通常のRPG と同じ実行結果となる。