zOs/JCL/WI101
$#@
$=sys = 0 $** Act System
$=sysC = 4 $** Anzahl Systeme
$=joTi = 17 $** Maximal Laufzeit in Minuten pro Job
$=joAc = 999 $** kumulierte laufzeit für aktuellen job
$=f1= WI10101T
$=f2= WI101PK
$;
$>.fEdit() $<#[
(PARTITION 1 ENDING AT ('BM85', 53), 3
PARTITION 2 ENDING AT ('BW8F', 53), 3
PARTITION 3 ENDING AT ('B0YK', 53), 1
PARTITION 4 ENDING AT ('B2H1', 53), 1
PARTITION 5 ENDING AT ('B4VG', 53), 1
PARTITION 6 ENDING AT ('CUBD', 53), 6
PARTITION 7 ENDING AT ('CUBE', 11), 16
PARTITION 8 ENDING AT ('CUBE', 22), 17
PARTITION 9 ENDING AT ('CUBE', 32), 16
PARTITION 10 ENDING AT ('CUBE', 43), 16
PARTITION 11 ENDING AT ('C0ED', 53), 17
PARTITION 12 ENDING AT ('C32W', 53), 4
PARTITION 13 ENDING AT ('C62Y', 53), 3
PARTITION 14 ENDING AT ('FFF5', 53), 4
PARTITION 15 ENDING AT ('F00E', 53), 2
PARTITION 16 ENDING AT ('F031', 53), 3
PARTITION 17 ENDING AT ('F032', 11), 12
PARTITION 18 ENDING AT ('F032', 22), 11
PARTITION 19 ENDING AT ('F032', 32), 12
PARTITION 20 ENDING AT ('F032', 43), 12
PARTITION 21 ENDING AT ('F033', 53), 14
PARTITION 22 ENDING AT ('F048', 53), 2
PARTITION 23 ENDING AT ('F054', 53), 3
PARTITION 24 ENDING AT ('F063', 53), 1
PARTITION 25 ENDING AT ('F108', 53), 3
PARTITION 26 ENDING AT ('F136', 53), 1
PARTITION 27 ENDING AT ('F471', 53), 5
PARTITION 28 ENDING AT ('F504', 53), 4
PARTITION 29 ENDING AT ('F520', 23), 4
PARTITION 30 ENDING AT ('F520', 53), 4
PARTITION 31 ENDING AT ('F806', 53), 4
PARTITION 32 ENDING AT ('F811', 53), 3
PARTITION 33 ENDING AT ('F814', 27), 4
PARTITION 34 ENDING AT ('F814', 53), 4
PARTITION 35 ENDING AT ('F824', 53), 4
PARTITION 36 ENDING AT ('F830', 27), 12
PARTITION 37 ENDING AT ('F830', 53), 11
PARTITION 38 ENDING AT ('MFSS', 53), 3
PARTITION 39 ENDING AT ('NPM1', 27), 4
PARTITION 40 ENDING AT ('NPM5', 53), 3
PARTITION 41 ENDING AT ('NPM6', 27), 2
PARTITION 42 ENDING AT ('NPM9', 53), 3
PARTITION 43 ENDING AT ('9999', 53), 3
$] $@for l $@[
parse value $l with 'PARTITION' p "ENDING AT (" k1 "," k2 '),' lz .
$=p=- strip(p)
$=p3 =- right($p, 3, 0)
$=k1=- strip(k1)
$=k2=- strip(k2)
$=joAc =- $joAc + lz
$** say 'pa' $p 'k1' $k1 'k2' $k2 'li' strip($l)
if $joAc > $joTi then $@=[
$=joAc =- lz
$=joNa = Y4WI${p3}U
$=sys =- ($sys // $sysC) + 1
//$joNa JOB (CP00,KE50),'DB2 WI101 UNL',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=DBOF,SYSTEM=S2$sys
$]
$@=[
//************ part $p ending at $k1 $k2 cumTime $joAc min
//S$p3 EXEC PGM=IKJEFT01,DYNAMNBR=200
//SYSTSIN DD *
DSN SYSTEM(DBOF)
RUN PROGRAM(DSNTIAUL) PARMS('SQL')
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*,RECFM=FB,LRECL=80
//SYSREC00 DD DISP=(NEW,CATLG),DSN=A540769.TMP.WI101.P$p3.UNL,
// DATACLAS=ENN35,DSNTYPE=LARGE,
// SPACE=(CYL,(1000,5000)),MGMTCLAS=COM#A069
//DDCARD DD SYSOUT=*,RECFM=FB,LRECL=80
//SYSIN DD *
select *
from $'OA1P$.vwi101a1$$pk'
$]
if $p=1 then $@=[
where $f1 <= $k1
and ($f1 < $k1
or ($f1 = $k1 and $f2 <= $k2))
$] else if $k1 = $o1 then $@=[
where $f1 = $k1
and $f2 > $o2 and $f2 <= $k2
$] else if $o2 >= 53 then $@=[
where $f1 > $o1 and $f1 <= $k1
and ($f1 < $k1
or ($f1 = $k1 and $f2 <= $k2))
$] else $@=[
where $f1 between $o1 and $k1
and (($f1 > $o1 and $f1 < $k1)
or ($f1 = $o1 and $f2 > $o2)
or ($f1 = $k1 and $f2 <= $k2))
$]
$@=[
order by WI10101T, WI10101D, WI10101L, WI10112 desc
, WI10101I desc, WI10108 , WI10101G, WI10101V
, WI10101B, WI10102A, WI10102S, WI10104
with ur
;
$]
$= o1 = $k1
$= o2 = $k2
$]
$#out 20110824 22:01:43
$#out 20110824 22:01:13
$#out 20110824 22:00:52
$#out 20110824 21:59:21
$#out 20110824 21:56:30
$#out 20110824 21:55:25
$#out 20110824 21:37:42
$#out 20110824 21:34:15