ディクファイルのディアロケートJS生成方法

4:Re: ディクファイルのディアロケートJS生成方法
 05/20 12:38
3000以上あるとなればJSですね。
長文になりますが、ご勘弁を。


概要
JS11/JS12:置換機能&0を使用してのJS
JS2:削除するファイル名を羅列するJS

装置名MSD001/カンパニ"TT"等は現状にそって変更してください。

JS11:
/RUN #ABC,DEV=MSD;
MN1=01_MN2=01_MN3=02_PA1=MSD001_PA2=&0_O02=YES_CID=TT_O03=YES_EXP=NO_
MN1=99_
/> ;

JS12:
/RUN #ABC,DEV=MSD;
MN1=01_MN2=01_MN3=02_PA1=MSD001_PA2=&0_O02=YES_CID=TT_O03=YES_EXP=NO_
UOD=ALL_
MN1=99_
/> ;

JS11/JS12の使い分けはUOD=ALLが必要か否かですが、
エリアのアロケート時に使用した、ユーティリティによります。
JS11:#ABC等でアロケートか?
JS12:表定義よりアロケートか?
JS11/JS12の違いについては、自信がありません。

JS2:
/RUN JS11,FIL=SYS@JSL,DEV=MSD,(FILENAME1);
/RUN JS11,FIL=SYS@JSL,DEV=MSD,(FILENAME2);
/RUN JS11,FIL=SYS@JSL,DEV=MSD,(FILENAME3);

JS11/JS12とJS2を作成し、JS2を実行すればファイルがデアロケートされるとおもいます。

そこで、
JS11/JS12は#ABCのパラメータ登録機能で作成し、
ファイル名を&0に加工

JS2は下記の要領で作成

前提:
F80:レコード長=80のORG=SEQのファイル

#FLCNV;
IDE=MSD001
IFI=SYS@FDF
ODE=MSD
OFI=F80
OUT=(@***@),(9,17),(@+++@)
SEL=(7,2,C,EQ,@TT@)A(26,2,C,NE,@I0@) ←アイオーではなくアイゼロです
上記を実行すると、下記のような内容のファイルができます
***FILENAME1 +++
***FILENAME2 +++
***FILENAME3 +++

次に、
TYP=JCL
で#TEDITを起動し
R MSD F80
とし、上記ファイルを読み込む

置換機能を利用し
S ALL S"***","/RUN JS11,FIL=SYS@JSL,DEV=MSD,("

再度、置換機能を利用し
S ALL S"+++","); "

すると、下記のようになります
/RUN JS11,FIL=SYS@JSL,DEV=MSD,(FILENAME1 );
/RUN JS11,FIL=SYS@JSL,DEV=MSD,(FILENAME2 );
/RUN JS11,FIL=SYS@JSL,DEV=MSD,(FILENAME3 );

名前をJS2にして、登録します。

(注)複数索引ファイルの場合、キーファイルから削除しないといけないのですが、
面倒なので、JS2を2回実行し、「ファイルなし」、「キーファイルがある」的なエラーは
リセットで読み飛ばすようにすれば、全ファイル削除できるとおもいます。



1-

BluesBB ©Sting_Band