メニューボタン
IBMi海外記事2021.09.08

省エネタイピングのためにQCMDEXCは良いコマンド処理プログラムになる

Ted Holt 著

私はタイピングがそこそこ上手な方だと思います。おそらく読者の皆さんもそうなのではないでしょうか。何十年間もキーボードに向かっていれば上達するものです。とは言え、タイピングすることでお金をもらっているわけではないので、職務を果たす上で必要なキーストロークの回数を減らすためには、できる限りのことを行うようにしています。

皆さんそうだと思いますが、ふと気が付けば、相変わらずの長いコマンドを何度も繰り返し入力しているようであれば、1つ、ヒントをご紹介しましょう。長いコマンドを、ほんの数回のキーストロークに減らす簡単な方法があります。おそらく、指の疲労が減り、手根管症候群になる可能性も低くなることでしょう。

以下のコマンドを見てみましょう。私が仕事でよく使用しているコマンドです。

RCLACTGRP ACTGRP(*ELIGIBLE)

キーストロークは30回です(コマンド実行のためのEnterキーを含めて)。キーワードを省略することで、キーストロークを減らすことができます。

RCLACTGRP *ELIGIBLE

これで21回のキーストロークになります。それでも、1日の間に繰り返し何度もこのコマンドをタイプするとしたら、かなり多い回数になりそうです。

幸いなことに、これを5回のキーストロークに減らすことができます。以下がその方法です。

ソース メンバーを作成し(通常はQGPL/QCMDSRCで)、1つのCMDコマンドおよび2つのPARMでそれをロードします(これまでにコマンドを作成したことがない方も、慌てることはありません。CLを入力する要領です)。以下が、ここで作成するRAGEコマンドのソース コードです。

/* RAGE - Run command RCLACTGRP ACTGRP(*ELIGIBLE) */
/* CPP is QCMDEXC */
CMD        PROMPT('RCLACTGRP ACTGRP(*ELIGIBLE)')
PARM       KWD(CMD) TYPE(*CHAR) LEN(27) +
              CONSTANT('RCLACTGRP ACTGRP(*ELIGIBLE)')
PARM       KWD(CMDLEN) TYPE(*DEC) LEN(15 5) CONSTANT(27)

CMDコマンドで、PROMPTパラメーターにテキストを入力することもできますが、必須ではありません。ここでは、コマンドをプロンプトすることはないためです。

1つ目のPARMコマンドで、CONSTANTパラメーターには先程の長いコマンド文字列を、LENパラメーターにはコマンド文字列の長さを入力します。

2つ目のPARMを15,5パック10進数として定義し、CONSTANTパラメーターにコマンド文字列の長さを入力します。

ここで、コマンドを作成します。コマンド処理プログラムにQCMDEXCを使用します。

CRTCMD CMD(xxx/RAGE)
       PGM(QCMDEXC)
       SRCFILE(xxx/QCMDSRC)
       SRCMBR(RAGE)

いよいよここで、「RAGE」とタイプして、Enterを押します。キーストロークは5回です。テストの際、活動化グループを破棄する必要が生じたときに、いつでもキーストローク5回で済むようになりました。

もうひとつ、例を示します。WJ4(「ジョブ処理(WRKJOB)」コマンド、オプション4)は、5250セッションで作成されたスプール ファイルを表示します。これは、「スプール・ファイル処理(WRKSPLF)」パネルでスプール ファイルのページに目を通す手間を省いてくれます。

/* WJ4 - Work with this job's spool files */
/* CPP is QCMDEXC */
CMD        PROMPT('Work with job''s spool files')
PARM       KWD(CMD) TYPE(*CHAR) LEN(20) +
            CONSTANT('WRKJOB OPTION(*SPLF)')
PARM       KWD(LENGTH) TYPE(*DEC) LEN(15 5) CONSTANT(20)

私は、このようなコマンドを一日中、使用しています。

あと少しコメントして、終わりにしようと思います。

  • パラメーターの入力をプロンプトするようにしたい場合は、コマンド文字列の先頭に疑問符を付けることができます。
/* WSJ - Prompt and run WRKSBMJOB */
/* CPP is QCMDEXC */

CMD
PARM       KWD(CMD) TYPE(*CHAR) LEN(20) +
            CONSTANT('?WRKSBMJOB')
PARM       KWD(LENGTH) TYPE(*DEC) LEN(15 5) CONSTANT(10)

コマンドをCALLにすることもできることを忘れないでください。プログラムを同じパラメーターで頻繁に呼び出す場合、コマンドを作成することで、キーストロークの大幅な節約になることがあります。たとえ、そのコマンドが、ある1日にのみ使用するものだとしてもです。

  • このプロセスは、PDMオプションを作成するときに行うことと非常によく似ています。違いは、これらのコマンドは5250コマンド ラインから実行し、PDMオプションは「WRKxxxPDM」パネルから実行する点です。最初にコマンドを作成してから、同じ名前のPDMオプションにそれを入れてもよいでしょう。
  • 私は、これらのコマンドを本番コードでは使用しません。そうする必要はありませんが、その必要が生じた場合は、私は本番コードで「純正の」IBM提供のコマンドを入力するでしょう。

皆さんは、他の人々が仕事をしやすくなるように、多くの素晴らしいことを行っていることと思います。時には、自分のために素晴らしいことを行ってみるのも良いのではないでしょうか。

あわせて読みたい記事

PAGE TOP