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