CLISTの概要
CLISTは、一連のTSOコマンドを連続して実行するためのスクリプト言語です。MSPとVOS3では、コマンドプロシージャと呼ばれます。Windowsにおけるバッチファイルや、VBスクリプト同様に言語としての機能を持ち、変数を使用して複数のTSOコマンド処理を順番に実行したり、反復したりといった制御ができます。また、ISPF内のTSOコマンドシェルからCLISTを実行すれば、ISPFの様々な機能やサービスをCLISTから呼び出すこともできます。なお、CLISTの機能を利用するために、単一のTSOコマンドでも使用されることがあります。
今日、TSOはISPFをベースにしたパネル使用の対話操作が主流になり、READYプロンプトからTSOコマンドを使用する、ということは少なくなりました。しかしCLISTは、TSOコマンドだけでなくISPFのダイアログ・サービスやデータセット管理の機能も呼び出すことができます。ですからCLISTを理解し使いこなせるようになると、ISPFをより使いやすくしたり、ISPFを使った独自のツールなどを作ることもできるようになります。
CLISTの特徴と機能
- インタープリター型言語で中間コードも不要
- 変数が使用できる
- 数値を処理するさまざまな算術および論理演算子のセットを持つ
- 文字列を処理するストリング処理機能がある
- ファイル入出力ができる
- 端末ユーザーとの通信ができる
- エラーおよびアテンション割込みの処理ができる
簡単なCLIST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
****** ********************************* Top of Data *************************** 000001 /* */ 000002 /* CLIST FOR ISPF SERVICE CALL */ 000003 /* =========================== */ 000004 /* BROWSE CATALOG LIST */ 000005 /* */ 000006 PROC 0 LEVEL(&SYSUID) OPT(NAME) 000007 ALLOC DD(WORKOUT) NEW TRACKS SPACE(10 10) REUSE RECFM(V B) LRECL(125) 000008 LISTCAT LEVEL(&LEVEL) &OPT OFILE(WORKOUT) 000009 LISTDSI WORKOUT FILE 000010 ISPEXEC BROWSE DATASET('&SYSDSNAME') VOLUME(&SYSVOLUME) 000011 FREE DD(WORKOUT) 000012 END ****** ******************************** Bottom of Data ************************* |
TSOにLISTCATというコマンドがあります。IDCAMSのLISTCATです。コマンドを実行すると画面にカタログリストを表示できますが、一度スクロールしてしまうと前へ戻って再表示させることはできません。スクロールできるSDSFで見ようとJCLをサブミットしてバッチジョブで実行するのも1つの方法です。しかしサンプルのCLISTを使えばLISTCATコマンドの実行結果をISPFブラウザーで見ることができます。前後左右のスクロールやリスト中の文字列の検索など、ブラウザーの機能を活用できます。
CLISTの実行
CLISTの実行にはEXECコマンドを使います。
1 2 3 4 |
EXEC dsname(member) 'parameters' 例 ===> EXEC 'MY.WORK.CNTL(SHOWCAT)' 'LEVEL(USR1) OPT(ALL)' |
ログオン・プロシージャーのSYSPROC DD文に定義されたデータセット(プロシージャー・ライブラリー)に格納されているCLISTメンバーは、EXECコマンドを使わずに、メンバー名だけをREADYプロンプトに入力すれば実行することができます。頻繁に使用するCLISTはプロシージャー・ライブラリーに作ると便利です。
OSは入力された名前がコマンド・プログラムであると見なし、最初にSTEPLIBからLINKLIBを探します。その後でプロシージャー・ライブラリーを探します。メンバーの頭に%をつけて「%メンバー名」とすれば、最初からプロシージャー・ライブラリーだけを探します。最初からCLISTとして実行することがわかっているなら、%を付けて呼び出した方がCLISTメンバーの探索効率が良くなります。
- ログオン・プロシージャーに //SYSPROC DD DISP=SHR,DSN=MY.WORK.CNTL が定義されている場合、
1 |
===> %SHOWCAT LEVEL(USR1) OPT(ALL) |
- 最初からメンバーSHOWCATをMY.WORK.CNTLから探し出す。
代替CLISTライブラリー
ログオン・プロシージャーがシステム管理者によって管理されており、規定のプロシージャー・ライブラリー以外を自由に追加することができない場合は、代替のCLISTライブラリーをコマンドで追加することができます。追加したライブラリーはログオン中のTSOセッションあるいは実行中のISPFセッションでのみ有効ですが、CLISTのテストなどを行う場合にいちいちEXECコマンドを入力する手間が省けます。ALTLIBコマンドはTSOのREADYプロンプトもしくはISPFオプション6のコマンド・フィールドから入力できます。
- 代替のCLISTライブラリーを追加する。
1 |
ALTLIB ACTIVATE APPLICATION(CLIST) DATASET('your CLIST dataset name') |
- 代替のCLISTライブラリーをはずす。
1 |
ALTLIB RESET |