zOs/REXX/REOTSTG
$#@
$*( test Generator for checkrts, je nach fun
fun
a = allocate test libraries
d = delete test libraries
pre = preview ==> generate list to ....sysprint
old = checkRts for old version
new = checkRts for new version
all = checkRts for new and old version for ix and ts
rmSy = remove sysPrint Member without listdef member
$*)
$=dbSub = DBTF
$=fun=pre
$=ty=IX
$=steps =- if($fun='all', 50, 200)
pref = dsn2jcl('~REOTST')
tsPref = pref'.OLITS'
ixPref = pref'.OLIIX'
$=FUN =- translate($fun)
$=rZz=- overlay('Z', sysvar('sysnode'), 2)
$=jx=0
if $fun = 'a' | $fun = 'd' then $@[
lst = ixPref'NEW' 'F' ,
ixPref'OLD' 'F' ,
tsPref'NEW' 'F' ,
tsPref'OLD' 'F' ,
pref'.OPRIXNEW' 'V' ,
pref'.OPRIXOLD' 'V' ,
pref'.OPRTSNEW' 'V' ,
pref'.OPRTSOLD' 'V' ,
pref'.SYSPRINT' 'V124'
do while lst \= ''
parse var lst dsn ii lst
if $fun = 'd' then
call adrTso "delete '"dsn"'", '*'
else do
ff = dsnAlloc(dsn'(A) dd(x) ::'ii)
interpret subword(ff, 2)
end
end
$] else if $fun = 'rmSy' then $@[
lDf = lmmBegin($dbSub'.DBAA.LISTDEF(QR*)')
l = lmmNext(lDf)
sDsn = pref'.sysprint'
sPr = lmmBegin(sDsn)
s = lmmNext(sPr)
cEq = 0
cL = 0
cS = 0
do while l \== '' & s \== ''
if l << s then do
say 'add lDef' l
l = lmmNext(lDf)
cL = cL + 1
end
else if l >> s then do
del = "delete '"sDsn"("s")'"
say del
call adrTso del
s = lmmNext(sPr)
cS = cS + 1
end
else do
cEq = cEq + 1
s = lmmNext(sPr)
l = lmmNext(lDf)
end
end
do while s \== ''
say '+++ sysP' s
s = lmmNext(sPr)
cS = cS + 1
end
do while l \== ''
say '+++ lDef' l
cL = cL + 1
l = lmmNext(lDf)
end
call lmmEnd lDf
call lmmEnd sPr
say 'equal' cEq', +sysPrint' cS', +listDef' cL
$] else $@[
$>.fSub() $*(
$<=[ $** dbof member
QR002011
QR003081
QR003161
QR044121
QR087011
QR208011
QR208031
QR304031
QR387061
QR387071
QR498031
QR573031
QR610011
$]
$<=[ $** dbaf member
QR208031
QR208011
QR002011
QR546A11
QR588A11
QR588A21
QR588A31
QR588A41
QR588A51
$]
$<=[ $** dbtf member
QR003011
QRTTTTT1
QR208011
$]
if $fun = 'pre' then
call lmm $dbSub'.DBAA.LISTDEF(QR*)'
else
call lmm 'A540769.REOTST.SYSPRINT(QR*)'
$|
$*)
$<=[ $** dbtf member
QR003011
QRTTTTT1
QR208011
$]
$@[
$=sx=0
$@for mbr $@[
$=sx=-right($sx+1, 4, 0)
$=mbr=-strip($mbr)
if $sx // $steps = 1 then $@=[
$@{say $sx $mbr'|'}
$= jx =- ($jx+1) // 10
$= jc =- left($ty, 1) || $jx
//YRT$FUN$jc JOB (CP00,KE50),
// MSGCLASS=T,TIME=1440,LINES=(999999,WARNING),
// NOTIFY=&SYSUID
//*MAIN CLASS=LOG
$]
$@step()
$]
$]
$;
$@proc step $@[
if $fun == 'pre' then $@=[
//* OBJEKTE AUS LISTDEF AUFLÖSEN für $mbr
//PRE$sx EXEC PGM=DSNUTILB,
// PARM='$dbSub,YRT$FUN$jc.PREVIEW'
//SYSPRINT DD DISP=SHR,DSN=A540769.REOTST.SYSPRINT($mbr)
//UTPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTEMPL DD DSN=$dbSub.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD DSN=$dbSub.DBAA.LISTDEF(OPTPREV),DISP=SHR
// DD DISP=SHR,DSN=$dbSub.DBAA.LISTDEF($mbr)
$]
else if $fun = 'all' then $@[
$@doRts-{'new', TS}
$@doRts-{'old', TS}
$@doRts-{'new', IX}
$@doRts-{'old', IX}
$]
else $@[
$@doRts{$fun, $ty}
$]
$]
$]
$@proc doRts $@[
parse arg ., fun, type
$=t2=-type
$=f3=-fun
$=F3=-translate($f3)
$=F1=-left($F3, 1)
$=rexxLib=TSO.$rZz.P0.USER.EXEC
$=rexxMbr= REOCHECK
$=rexxMbr= CHECKRTS
if $f3 == 'new???' then $@[
$=rexxLib=A540769.WK.REXX
$]
else $@[
$** $=rexxMbr= CHECKRT0
$]
$@=[
//* rts für $t2 nach $f3
//$F1$t2$sx EXEC PGM=IKJEFT01,
// DYNAMNBR=20
//SYSEXEC DD DISP=SHR,DSN=$rexxLib
//DDIN1 DD DISP=SHR,DSN=A540769.REOTST.SYSPRINT($mbr)
//DDIN2 DD DISP=SHR,DSN=$dbSub.DBAA.LISTDEF($mbr)
//DDOUT1 DD DISP=SHR,DSN=A540769.REOTST.OLI$t2$F3($mbr)
//SYSTSIN DD *
%$rexxMbr $dbSub $t2
//SYSIN DD DUMMY
//SYSTSPRT DD DISP=SHR,DSN=A540769.REOTST.OPR$t2$F3($mbr)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//PLIDUMP DD SYSOUT=*
$]
$]
$#out 20120213 15:33:33
$#out 20110924 16:48:27
$#out 20110924 16:33:30
$#out 20110924 13:48:21
$#out 20110924 13:48:08
$#out 20110924 13:42:55