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 と同じ実行結果となる。