「メインフレーム・コンピューター」で遊ぼうこんな時代に今さらメインフレーム・コンピューターに取り組むハメになったみんなが助けあうサイトです。RSSWordPress.orgコスパのいい社内システムの作り方メインフレームを扱っていると、軽い開発やメンテナンスにリソースを割けない、しかし、BPCも考えねば。解決策のひとつがクラウドにおくFileMakerです。Comment印刷用ページの表示CLIST:コマンド・リスト(コマンド・プロシージャー)CLISTはTSOにおけるコマンド・スクリプトです。同じコマンドを繰り返し実行する時、決まったパターンで複数のコマンドを連続して実行する時など、繰り返し入力の手間を省いたり、定型的な処理を自動化させるために用いられます。処理を自動化すると言う意味ではJCLにも似ていますが、目的や機能はUNIXやWindowsにおける、シェルスクリプトやバッチファイルと同じと考えていいでしょう。JCLにはできない、ループの制御や端末入出力など、プログラム的な要素も組み込まれています。処理の対象となるデータセットやメンバー名などを入力させJCLを生成してサブミットしたり、コマンド操作の記録を残すためにCLIST化したり、などさまざまな用途で利用されます。次に示すCLISTは、VSAMデータセットのレコード内容をISPFブラウザーで表示するためのサンプルです。12&#9312コメント文です。/*と*/で囲んだ部分はコメントと見なされます。行末までコメントとする場合、*/で閉じる必要はありません。&#9313CLISTが受け取るパラメーターを定義します。パラメーターがなければ必ずしも記述する必要はありません。&#9314ラベルです。ラベル名:の形式で、ジャンプ命令などで参照されます。+はステートメントが次の行に続くことを示します。&#9315端末にメッセージを表示します。ENTER以降が表示されるメッセージ・テキストです。WRITEとWRITENRの2種類あり、NR付きはメッセージを出力した後に、改行しません。&#9316端末から入力データを読み込みます。読み込んだ文字列は、READ命令の後に指定した変数に格納されます。CLISTでは変数は事前定義しません。処理に先立って、予め特定の値を設定しておきたい場合は、SET命令を利用できます。&#9317IF...THEN...ELSEです。説明するまでもないでしょう。サンプルでは変数INDSNがヌル値ならCLISTから抜けると言う意味で使っています。要は入力されたDSNが空エンターなら、終了させるために使っています。&#9318呼び出すプログラム(ユーティリティー)が使用するデータセットを割り振っています。JCLのDD文に相当します。JCLと異なりEXECよりDDを先に書くことを知っておいて下さい。&#9319プログラムを呼び出します。サンプルではICEGENERユーティリティーを呼び出して実行します。&#9320LISTDSIはDD名で割り振られているデータセットに関する情報を取得します。情報はシステム変数に格納されます。DSNは&SYSDSNAME、ボリューム名は&SYSVOLUMEです。&#9321ICEGENERによって出力されたデータセット(VSAMのアンロード・ファイル)をISPFブラウザー・サービスで表示します。ブラウザーを終了させると、ISPEXEC命令は終了します。&#9322割り振ったデータセットを解放します。&#9323次のデータセットの表示のために、DSN入力の処理に戻ります。作成したCLISTは区分データセットのメンバーとして登録し、TSOのコマンド・プロンプトもしくはISPFのコマンドシェル・パネルからEXECコマンドによって実行します。'dsname(member)'なお’userid.CLIST’の名前のデータセットに作成すれば、EXECコマンド自体も省略して、メンバー名のみの入力でCLISTを実行させることができます。時間が掛かる大量のデータ処理にはバッチジョブが向いていますが、TSOコマンドやISPFサービスを組み合わせることで、面倒なプログラムを作ることなく、処理を自動化させたり、繰り返したりすることができます。JCLによるバッチ処理だけでなくCLISTも使いこなせるようになれば、MVSの利用方法の幅は大きく拡がります。