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