zOs/REXX/XBCOPY

$#@
$= dN =- f('%t J')
$<>
$<DSN.ABUB.XDOC.RZ2.DVBP.D16.xList(QK17L1ML)
spc = 9e99
$= jNo  = 0
$for li $@[
    parse value $li with db ts pa fu .
    if fu \== 'redoCopy' then
        iterate
    if spc > 2e11 then $@[
        if $jNo > 0 then $@[
            $@jobEnd
            say $dsn cnt 'parts' f('%kb', spc)
            $]
        $@jobBegin
        spc = 0
        cnt = 0
        $]
    spc = spc + funit2i('b', word($li, words($li) - 1))
    cnt = cnt + 1
    call jWrite $fi, '    INCLUDE TABLESPACE' db'.'ts 'PARTLEVEL' pa ,
                    '--' f('%kb', spc)
$]
$@jobEnd
say $dsn cnt 'parts' f('%kb', spc)
$*(
    say q date('s', q, 'B') '>' f('%tJS', q)
$*)
$proc $@/jobBegin/
    $=jNo  =- $jNo + 1
    $=dN   =- $dN + 1 + ($dN // 7 = 5)
    $= dsn =- 'A540769.tst.day(D'f('%tJd', $dN)')'
    $= dsn =- 'RZ2/DSN.BESENWAG.DVBP.day(D'f('%tJd', $dN)')'
    $=fi =- jOpen(file($dsn '::f'), '>')
    $<>
    $>.fi $@=[
//QCSBDAYP JOB (ADM27506,0241,,3628),'DB2 tecSv besenXDoc',
//             MSGCLASS=E,CLASS=P2,TIME=1440,SCHENV=DB2ALL
//COPY     EXEC  PGM=DSNUTILB,REGION=0000M,COND=(8,LT),
//             DYNAMNBR=99,PARM=(DVBP,'QCSBDAYP.COPY')
//SYSPRINT   DD SYSOUT=*
//SYSOUT     DD SYSOUT=*
//UTPRINT    DD SYSOUT=*
//*YSTEMPL   DD DISP=SHR,DSN=DVBP.DBAA.LISTDEF(TEMPL)
//SYSIN      DD *
OPTIONS EVENT(ITEMERROR, SKIP)

TEMPLATE TCOPYD    -- COPYDDN fuer copy etc. (1 Tag/Woche auf Disk)
    DSN('&SSID..&DB..&SN..P&PART..&UNIQ.')
    $'DATACLAS(ENN35) MGMTCLAS(SUB#ADB1) STORCLAS(FAR$N)'
    SPACE (1500,10000) TRK

LISTDEF LST
    $]
$/jobBegin/
$proc $@=/jobEnd/
$>.fi

COPY LIST LST COPYDDN(TCOPYD)
    FULL YES PARALLEL
    SHRLEVEL CHANGE
$<>
$@  call jClose $fi
$/jobEnd/