さらに置換機能を付けたJS
-
前章で作ったJSに置換機能を付け加えてみます。
さきほど作ったJSは、常にフロッピーディスクがフロッピーディスク装置が0番に入っていることが前提になっています。
A−VXは最大4台のフロッピーディスク装置がつながります。装置の1番や2番にフロッピーディスクを入れた場合、このJSは使えません。フロッピーディスク1番用のJS、2番用のJSと、ちょっとだけ違うJSをたくさん作らなければならないのでしょうか?
置換機能を使うことによって、この問題は解決します。
置換機能を使って、JS実行時にフロッピーディスク装置を選択できるようにしましょう。
置換機能を追加したJS(FDCP02)
1箇所だけではつまらないので、フロッピーディスクに作成するファイルの名前も変更できるようにします。
******* FD FORMAT & DATA01 ALLOCATE & COPY ***************** // フロッピーディスクを初期化して、; // MSD002のTESTDATAをコピーするジョブです。; // フロッピーディスクを装置に入れてください。; /PAUSE 準備ができたら「CTRL」と「F5」を押してください。; /RUN #VOLPR; ACT=PREPARE_NOV=01_VOL=ABCDEF_DEV=&0FDU000_NAM=_ SSZ=256_FIL=NON_CMP=NO_PRD=NO_ ACT=END_ /> ; /: ABORT JUMP=ENDJOB; * /RUN #ALLOC; ACT=ALLOCATE_VOL=ABCDEF_DEV=&0FDU000_NAM=_FIL=&1DATA01_ TYP=DATA_ORG=SEQ_LOC=_UOA=SECTOR_REC=0256_BLF=001_SIZ=50_ VFY=NO_VSN=00_EXP=000000_CLR=NO_PRD=PRN999_LST=NO_ ACT=END_ /> ; /: ABORT JUMP=ENDJOB; * /RUN #FLCNV; IDE=MSD002_ICI=_IFI=TESTDATA_IGN=_IFO=PROTECT_ODE=&0FDU000_ OFI=&1DATA01_LST=NO_ERR=ABORT_MOD=CREATE_AMD=LOGICAL_GTR=_ DEL=NO_CLR=NO_OUT=_RNG=_SEL=_SAV=_NXT=_ /> ;
文字が太くなっている部分が、置換機能を使用した部分です。
0番目の置換パラメータがフロッピーディスク装置、1番目の置換パラメータがファイル名を指定できるようになっています。
7行目が「DEV=&0FDU000_」となっていますが、ここはどの装置のフロッピーディスクを初期化するかを指定する部分です。何も指定しないでJSを実行すると「FDU000」が選ばれるようになっています。
どの装置にどんな名前のファイルを作るかを指定する部分が、14行目の「DEV=&0FDU000_」「FIL=&1DATA01_」です。何も指定しないでJSを実行すると「FDU000」上に「DATA01」という名前でファイルを作るようになっています。
22行から23行目にある「ODE=&0FDU000_」「OFI=&1DATA01」がデータのコピー先をあらわします。当然、#ALLOCで作ったファイルと同じファイルを指定する必要があります。
JSを実行してみましょう。
RUNコマンド文は、「JS名,(&0に対応する値、&1に対応する値);」の形式で入力します。
例えば、フロッピーディスク1番(FDU001)に入っているフロッピーディスクを初期化し、作成するファイルをOLDDATA01という名前にするときには、以下のように「FDCP02,(FDU001,OLDDATA01);」と入力します。
JSが終了したら、きちんとフロッピーディスクが初期化されてファイルが作成されたか確認してみましょう。きちんとファイル名はOLDDATA01になっていますか?
置換パラメータは&0から&9までの10個まで使えますから、例えば作成するファイルのサイズを変更できるようにしたり、コピー元のファイル名を可変にしてみたりといったこともできます。