CREATE MISSING GDG in JCL
ADDRESS ISREDIT
"MACRO"
/*--------------------------------------------------------------------*/
/*--------------------- FIND JOB REGION ---------------------------*/
/*--------------------------------------------------------------------*/
"f all ' HL1='"
"ISREDIT (currlin3) = LINE .ZCSR"
parse var currlin3 some ' HL1=' reg " " rest2
if substr(reg,3,1) \= '2' then
"f next ' HL1='"
"ISREDIT (currlin3) = LINE .ZCSR"
parse var currlin3 some ' HL1=' reg " " rest2
if reg \= 'XP2' then
do
"f all '//' 1"
address ispexec
ZEDLMSG = '*** This macro only applicable for PROD jobs!!! ***'
'SETMSG MSG(ISRZ001)';
exit
end
"X all"
"f all '4 DSS20091W'"
"f all ''x'"
"del all x"
"x all"
"f all 'gdg base'"
"f all ' ' 1"
"del all x"
"x all"
"f all ''x'"
"del all x"
"ISREDIT (lastline) = LINENUM .ZLAST"
If lastline \= 0 then
Do
DO Curr=1 TO lastline
"ISREDIT (dataline) = LINE" Curr
if index(dataline,'DDNAME') \= 0 then
do
parse var dataline some ','some1"'"gdg"'"
end
else
do
parse var dataline some "'"gdg"'"
end
parse var gdg gdg ' '
InStem.curr = gdg
end
end
J = 1
DO I = 1 TO lastline
IF I = 1 THEN
do
OutStem.I = InStem.I
say OutStem.I
end
ELSE
DO K = 1 TO J
IF (InStem.I \= OutStem.K) & (K = J) THEN
DO
J = J + 1
OutStem.J = InStem.I
say OutStem.J
END
ELSE
DO
IF (InStem.I == OutStem.K) THEN
ITERATE I
END
END
END
say J
GdgBases=J
if lastline=0 then
do
address ispexec
ZEDLMSG = '*** There are no Prod GDG bases to be created!!! ***'
'SETMSG MSG(ISRZ001)';
exit
end
m=1
jobid= "XP2XSKM2"
p.m = "//"jobid "JOB (N0HRXT000000),'GDG',CLASS=D,"
m=m+1
p.m = "// MSGLEVEL=(1,1),MSGCLASS=X"
m=m+1
do n=1 to GdgBases
p.m = "//PSTEP0"n" EXEC PGM=IDCAMS"
m=m+1
p.m = "//SYSIN DD *"
m=m+1
p.m = " DEFINE GDG( -"
m=m+1
p.m = " NAME("OutStem.n") -"
m=m+1
p.m = " LIMIT(60) -"
m=m+1
p.m = " NOEMPTY -"
m=m+1
p.m = " SCRATCH)"
m=m+1
p.m = "/*"
m=m+1
p.m = "//SYSPRINT DD SYSOUT=*"
m=m+1
p.m = "//***********************************************************"
m=m+1
end
ADDRESS ISREDIT
"x all"
"del all x"
do x=1 to m-1
q.x=strip(p.x)
w=x-1
ln.x='"LINE_AFTER '³³w³³' ="'
address "ISREDIT" "LINE_AFTER "w"= " '"'p.x'"'
end
/*
address ispexec
ZEDSMSG = ''
ZEDLMSG = '*** All GDG Base(s) has been created Successfully!!! ***'
'SETMSG MSG(ISRZ001)';
*/
exit
"MACRO"
/*--------------------------------------------------------------------*/
/*--------------------- FIND JOB REGION ---------------------------*/
/*--------------------------------------------------------------------*/
"f all ' HL1='"
"ISREDIT (currlin3) = LINE .ZCSR"
parse var currlin3 some ' HL1=' reg " " rest2
if substr(reg,3,1) \= '2' then
"f next ' HL1='"
"ISREDIT (currlin3) = LINE .ZCSR"
parse var currlin3 some ' HL1=' reg " " rest2
if reg \= 'XP2' then
do
"f all '//' 1"
address ispexec
ZEDLMSG = '*** This macro only applicable for PROD jobs!!! ***'
'SETMSG MSG(ISRZ001)';
exit
end
"X all"
"f all '4 DSS20091W'"
"f all ''x'"
"del all x"
"x all"
"f all 'gdg base'"
"f all ' ' 1"
"del all x"
"x all"
"f all ''x'"
"del all x"
"ISREDIT (lastline) = LINENUM .ZLAST"
If lastline \= 0 then
Do
DO Curr=1 TO lastline
"ISREDIT (dataline) = LINE" Curr
if index(dataline,'DDNAME') \= 0 then
do
parse var dataline some ','some1"'"gdg"'"
end
else
do
parse var dataline some "'"gdg"'"
end
parse var gdg gdg ' '
InStem.curr = gdg
end
end
J = 1
DO I = 1 TO lastline
IF I = 1 THEN
do
OutStem.I = InStem.I
say OutStem.I
end
ELSE
DO K = 1 TO J
IF (InStem.I \= OutStem.K) & (K = J) THEN
DO
J = J + 1
OutStem.J = InStem.I
say OutStem.J
END
ELSE
DO
IF (InStem.I == OutStem.K) THEN
ITERATE I
END
END
END
say J
GdgBases=J
if lastline=0 then
do
address ispexec
ZEDLMSG = '*** There are no Prod GDG bases to be created!!! ***'
'SETMSG MSG(ISRZ001)';
exit
end
m=1
jobid= "XP2XSKM2"
p.m = "//"jobid "JOB (N0HRXT000000),'GDG',CLASS=D,"
m=m+1
p.m = "// MSGLEVEL=(1,1),MSGCLASS=X"
m=m+1
do n=1 to GdgBases
p.m = "//PSTEP0"n" EXEC PGM=IDCAMS"
m=m+1
p.m = "//SYSIN DD *"
m=m+1
p.m = " DEFINE GDG( -"
m=m+1
p.m = " NAME("OutStem.n") -"
m=m+1
p.m = " LIMIT(60) -"
m=m+1
p.m = " NOEMPTY -"
m=m+1
p.m = " SCRATCH)"
m=m+1
p.m = "/*"
m=m+1
p.m = "//SYSPRINT DD SYSOUT=*"
m=m+1
p.m = "//***********************************************************"
m=m+1
end
ADDRESS ISREDIT
"x all"
"del all x"
do x=1 to m-1
q.x=strip(p.x)
w=x-1
ln.x='"LINE_AFTER '³³w³³' ="'
address "ISREDIT" "LINE_AFTER "w"= " '"'p.x'"'
end
/*
address ispexec
ZEDSMSG = ''
ZEDLMSG = '*** All GDG Base(s) has been created Successfully!!! ***'
'SETMSG MSG(ISRZ001)';
*/
exit
Vnaluibha Dennis Steele https://wakelet.com/wake/euz1opwRehTAcjYbD8rLF
ReplyDeletepalourere
Apiaclassimp_go Monica Castro Adobe Lightroom
ReplyDeleteDesignCAD 3D Max
Eset NOD 32
gloucanepan