01.CLIST入門①

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

TSOにLISTCATというコマンドがあります。IDCAMSのLISTCATです。コマンドを実行すると画面にカタログリストを表示できますが、一度スクロールしてしまうと前へ戻って再表示させることはできません。スクロールできるSDSFで見ようとJCLをサブミットしてバッチジョブで実行するのも1つの方法です。しかしサンプルのCLISTを使えばLISTCATコマンドの実行結果をISPFブラウザーで見ることができます。前後左右のスクロールやリスト中の文字列の検索など、ブラウザーの機能を活用できます。

CLISTの実行

CLISTの実行にはEXECコマンドを使います。

ログオン・プロシージャーのSYSPROC DD文に定義されたデータセット(プロシージャー・ライブラリー)に格納されているCLISTメンバーは、EXECコマンドを使わずに、メンバー名だけをREADYプロンプトに入力すれば実行することができます。頻繁に使用するCLISTはプロシージャー・ライブラリーに作ると便利です。
OSは入力された名前がコマンド・プログラムであると見なし、最初にSTEPLIBからLINKLIBを探します。その後でプロシージャー・ライブラリーを探します。メンバーの頭に%をつけて「%メンバー名」とすれば、最初からプロシージャー・ライブラリーだけを探します。最初からCLISTとして実行することがわかっているなら、%を付けて呼び出した方がCLISTメンバーの探索効率が良くなります。

  • ログオン・プロシージャーに //SYSPROC DD DISP=SHR,DSN=MY.WORK.CNTL が定義されている場合、

  • 最初からメンバーSHOWCATをMY.WORK.CNTLから探し出す。

代替CLISTライブラリー

ログオン・プロシージャーがシステム管理者によって管理されており、規定のプロシージャー・ライブラリー以外を自由に追加することができない場合は、代替のCLISTライブラリーをコマンドで追加することができます。追加したライブラリーはログオン中のTSOセッションあるいは実行中のISPFセッションでのみ有効ですが、CLISTのテストなどを行う場合にいちいちEXECコマンドを入力する手間が省けます。ALTLIBコマンドはTSOのREADYプロンプトもしくはISPFオプション6のコマンド・フィールドから入力できます。

  • 代替のCLISTライブラリーを追加する。

  • 代替のCLISTライブラリーをはずす。