「メインフレーム・コンピューター」で遊ぼうこんな時代に今さらメインフレーム・コンピューターに取り組むハメになったみんなが助けあうサイトです。RSSWordPress.orgコスパのいい社内システムの作り方メインフレームを扱っていると、軽い開発やメンテナンスにリソースを割けない、しかし、BPCも考えねば。解決策のひとつがクラウドにおくFileMakerです。Comment印刷用ページの表示CLIST入門(4):変数を使う他のスクリプト言語同様にCLISTでも変数を扱うことができます。変数を使うことで、同じコマンドをパラメーターを変えて反復したり、端末との会話によってパラメーターを生成したりするような処理が容易にコーディングできるようになります。記号変数はCLIST内で使用する任意の名前の変数です。パラメーターの受け渡しや中間の計算結果や処理結果などを保存することができます。&OPTこの例では「LVL」「OPT」が変数です。LVLとOPTは変数名で、&LVLと&OPTは変数の値を示します。SETステートメントは変数に値を設定します。この例では変数LVLに値USR1を、変数OPTに値VOLUMEをセットしています。設定された変数を実際に使っているのが2行目のLISTCATです。VOLUME」となります。CLISTでは記号変数の明示的な宣言はありません。必要になった時点でコーディングして使用できます。記号変数の初期値はヌルです。必要に応じてSETステートメントで初期値などを設定します。この書き方でも同じ最初のSETステートメントは変数CTRに初期値1を設定し、2番目のSETステートメントは変数CTRの現在の値に1を加算するものです。CLISTでは変数の型というのもあまり意識しません。文字を入れれば文字変数ですし、数字なら計算可能な数値変数となります。文字を設定した変数に加減乗除などの演算を行うことはできません。実行時にエラーとなります。DESETステートメントではカンマや空白などもそのまま記述すれば値として代入できます。先行ブランクや後続ブランクはカットされてしまいます。DE」の5文字が設定されます。)文字列の前後に空白を含めたい場合は&STR関数を使用します。」の8文字が設定されます。ABの前の2つの空白とDEの後ろの1つの空白も文字としてそのまま設定されます。&LASTCC最後に発行したTSOコマンドやCLISTステートメントの戻りコード。&MAXCCCLIST内での最大の戻りコード。&SYS4SDATE現在の日付(YYYY/MM/DD)&SYSTIME現在の時刻(HH:MM:SS)&SYSUIDTSOユーザーID&SYSNAMEシステムの名前&SYSMVSMVSのバージョン&SYSISPFISPFサービスが有効か否か制御変数は予め用意されているシステム変数です。システム変数を活用すれば1つのCLISTを複数のMVSシステムで共用したり、ユーザーによって異なる処理を行うなどが容易になります。&LASTCCはCLIST内で実行したTSOコマンドなどが正しく終了したかを判定するために使われる、よく知られた制御変数の1つです。多くの制御変数は読み出し専用ですが、&LASTCCや&MAXCCなど一部の制御変数はSETステートメントで値を変更することが可能です。パラメーターの受け取りCLISTを実行する際に指定したパラメーターも記号変数を介して受け取ります。DD(WORKOUT)ENDこれはキーワードパラメーターの受け取り例です。太字の箇所がパラメーターの受け取りに関する部分です。PROCステートメントでキーワードとその初期値を設定します。キーワードはそのまま記号変数になります。この例では省略値として変数LEVELにユーザーID、変数OPTにNAMEを設定しています。OPT(VOLUME)」と入力すれば、キーワードLEVELにUSR1、キーワードOPTにVOLUMEが入り、CLIST側ではそれぞれ&LEVELと&OPTでその値を参照することができます。