テクニックは何も高度な技術だけが必要であるのではない。
時には簡単な思い付きこそが功を奏する場合がある。
ここでは簡単な思いつきとも思えるヒントで解決する方法の一例を紹介しよう。
あるCLPを実行してエラーがない正常終了か、または操作員が F3=終了キーを
押して、その CLP を終了したとしよう。
ところがそのCLPの戻り先であるメニューCLP では、つねに実行した CLPの
最後のメッセージを検索して CLPの終了と同時に、実行した CLP の最後の
メッセージを表示するようになっている。
これはメニューCLP でよくある流れであるが ③ で検索されるメッセージは
① で実行したメッセージであるので ② で終了したのであるから
これ以上 ④ でメッセージを表示したくないのである。
しかし単純に ③ と ④ の処理をはずしてしまうと ① でエラーになったときの
エラー・メッセージを ④ として表示することができなくなってしまう。
正常に完了したのであれば ① で実行したメッセージは出したくないのである。
とすると正常に終了したときは ④ のメッセージを出したくないのであれば
② の終了時点でこれまでのジョブのメッセージをすべて除去してしまえばよいのだが
それでは後でジョブ・ログを追うことができなくなってしまう。
実行メニューのほうでは選択した実行CLPがエラーで終わったのか正常完了したのかを
判断できないことはないが、かなりの手間が必要となる。
さあ正常完了したときは親の実行メニューCLPにメッセージを出させないように
するにはどのようにすれば良いのだろうか ?
正常に完了したときはブランク・メッセージを送るようにすればよい。
SNDPGMMSG MSG(' ') MSGTYPE(*DIAG)
親の実行メニューCLPは、メッセージとしてブランクを受け取って表示するので
これは、あたかもメッセージが表示されていないのと同じである。
ジョブ・ログは残してメッセージは表示させない、ということが両立している。