サポートチーム便り2018.05.10
RPGでF仕様書のUCを使い、プログラムでオープンクローズをコントロールする
Question
伝票発行のプログラムを作成しました。
一つの処理が終わる毎に伝票を発行したいのですが、該当のプログラムを終了させないと印刷が開始されません。都度、終了させてメニューに戻らずに印刷を行う事は可能でしょうか。
Answer
RPGのF仕様書でプリンターファイルを指定しますが、通常何も指定しないと、「ファイル条件」はブランクです。
ここの「ファイル条件」に「UC」と指定することで、プログラム内でオープンとクローズをコントロールすることができるようになります。
処理の前に該当のプリントファイルをオープンさせ、処理の後にクローズをします。
そうすることで、プリンターファイルで出来上がるスプールファイルがOPNから、RDYとなり、プログラムを終了しなくても、印刷することができます。
RPGで使用するファイルをコピーで置き換えるような時も、RPGでUCを使ってコントロールしていないと、
CPF3130
メッセージ . . : メンバー XXXXXX は既に使用中である。
と、エラーになってしまいます。
その場合は、RPG内で使用するファイルの置換えを無くす等、全体のロジックを見直して回避することも可能ですし、「ファイル条件」で「UC」を入れてコントロールするのも一つの手法と考えます。
大切なのはテクニックを駆使するよりも、後々の若い後輩達にも解り易く、メンテナンスが容易なロジックでコーデイングをすることだと思います。
by けやきのじぃじ