コマンド

38. コマンドで何ができるのか?

IBM提供のコマンドの目的はユーティリティである。
WRKOUTQ, WRKACTJOB, CRTRPGPGM ,… など開発者も日常的に
多く利用しているはずである。

しかしコマンドはユーザーでも開発することができる。
ユーザーが自分で開発して利用するコマンドと言えば
簡単な機能を実行する程度のものが多い。

・IBM提供のコマンドがユーティリティとして
  使われている

・コマンドは簡単な入力にしか利用できず検査が
必要な入力はRPG,CLPなどのプログラムが必要ではないか

・プログラムで開発できるのにコマンドを学習するのが面倒

との誤解があるのではないだろうか?

実はコマンドは多くのリッチな機能に富んでいて

・コマンドの習得は簡単。IBMマニュアルに説明や例が少ないので
学習する機会が少ないだけのことである。

・コマンドは必要となれば多くの機能があり検査や照会機能も
プログラムを書かなくても実現することができる。

・SFL型式ではない単票型式の入力ならコマンドだけで
ほとんどのことができる。

・特にバッチ処理の範囲指定やコード指定などは
コマンドを使うと短時間で十分なものを開発することができる。

・コマンドを使うと画面レイアウトを設計する必要がない。
さらに誰が作っても同じバランスのよい画面レイアウトとなる。

・IBMユーティリティと操作と画面バランスの統一を図ることができる。

・コマンドは対話式でもバッチでも使用することができる。
画面入力プログラムでは対話式環境でしか利用できない。

・自作する画面入力プログラムより初めから動作品質に優れたアプリとして
製作することができる。

[例: PGM106 :商品マスター一覧表 ]


                          商品マスター一覧表  (PGM106)         
                                                               
 選択項目を入力して,実行キーを押してください。                
                                                               
 品種コード  . . . . . . . . . .                  から         
                                   9999           まで         
 商品コード  . . . . . . . . . .                  から         
                                   9999999999     まで         
 出力  . . . . . . . . . . . . .   *PDF          *PRINT, *PDF  

[解説]
この「商品マスター一覧表」はコマンド・プロンプトの表示である。

 最初に表題として「商品マスター一覧表 (PGM106)」が示されているが
コマンド名: PGM106 も必ず同時に表示される。
これによって問題があってもどのプログラムであるか名前を簡単に
調べることができる。

次に


 品種コード  . . . . . . . . . .                  から         
                                   9999           まで

 のように範囲を入力することができるのだが「から」「まで」のように
パラメータの後に続く語句も指定することができる。


 出力  . . . . . . . . . . . . .   *PDF          *PRINT, *PDF 

 のようにパラメータの候補の値を *PRINT, *PDF のようにエンド・ユーザーに
示すことができる。
また


  名前、リストは F4

という説明を見たことがあると思う。これはF4キーを押して値を検索することが
できることを意味している。
もちろんエンド・ユーザーが入力した値を検査することができる。
検査の方法は *PRINT か *PDF 以外はエラーとする、というような
単純な VALUES検査だけでなくデータ・ベースに CHAINして見つからなければ
エラーとするようなプログラムでの検査も可能である。
複数のパラメータの組合せで検査することもできる。

おおよそ適用業務プログラムで行っている検査はコマンドでもできる。

 しかもコマンドなら画面設計が不要であるだけなく画面の表示はバランスよく
バグや障害がなく品質が優れている。
人手による開発のようにCF03の処理を入れるのを忘れたりすることがない。

 コマンドの開発に精通すると開発の幅は大きく向上する。
わずかな時間で品質に優れて見た目にもスマートな入力画面を
短時間のうちに開発することができるようになる。
コマンドを学習すれば今までDSPFで設計していたことがいかに
非効率的であったかわかるようになる。