diff --git a/endevor/Field-Developed-Programs/Table-Tool-Examples.bat b/endevor/Field-Developed-Programs/Table-Tool-Examples.bat index 6986205..7d5154b 100644 --- a/endevor/Field-Developed-Programs/Table-Tool-Examples.bat +++ b/endevor/Field-Developed-Programs/Table-Tool-Examples.bat @@ -1,100 +1,105 @@ REM In Windows, execute this command file to collect all Package @ECHO OFF ECHO ./ ADD NAME=@README > TableToolExamples.moveout -ECHO These items come from the Endevor GitHub at >> TableToolExamples.moveout -ECHO https://github.com/BroadcomMFD/broadcom-product-scripts >> TableToolExamples.moveout -ECHO ------------------------------------------------------- >> TableToolExamples.moveout -ECHO These are jcl/JCL : CLEANOVR CSVALENV CSVALTYP EXAMPL#1 EXAMPL#2 EXAMPL#3 EXAMPL#4 EXAMPL#5 EXAMPL#6 EXAMPL#7 EXAMPL#8 EXAMPL1A EXAMPL1B EXAMPL2$ EXAMPL2A EXAMPL2B EXAMPL2P EXAMPL2R LISTDSNS PKGEMNTR >> TableToolExamples.moveout -ECHO These are txt/TXT : DAVE#J01 DAVE#J03 DAVE#J04 DAVE#J05 REX1LINE REXMERGE DAVE#J06 DAVE#J07 DB2MASK$ >> TableToolExamples.moveout -ECHO These are TXT : DAVE#J02 >> TableToolExamples.moveout +These items come from the Endevor GitHub at + https://github.com/BroadcomMFD/broadcom-product-scripts +ECHO These are jcl : CLEANOVR EMAILEXM PROCGRPS ELEMCNTS PRGRPUSE CSVALENV CSVALTYP EXAMPL#1 EXAMPL#2 EXAMPL#3 EXAMPL#4 EXAMPL#5 EXAMPL#6 EXAMPL#7 EXAMPL#8 EXAMPL1A EXAMPL1B EXAMPL2$ EXAMPL2A EXAMPL2B EXAMPL2P EXAMPL2R EXAMPLEG LISTDSNS PKGEMNTR DB2BIND DB2YAML TBLJSORT >> TableToolExamples.moveout +ECHO These are REX : DB2MASK$ >> TableToolExamples.moveout +ECHO These are rex/CSIQCLS0 : REX1LINE REXMERGE TBL#SORT >> TableToolExamples.moveout ECHO ./ ADD NAME=CLEANOVR >> TableToolExamples.moveout -TYPE Table-Tool-Examples\CLEANOVR.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\CLEANOVR.jcl >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=EMAILEXM >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"CSV and TableTool emails element list to a distribution.txt" >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=PROCGRPS >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"CSV and TableTool finds and deletes unused processor groups.txt" >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=ELEMCNTS >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"CSV and TableTool showing element counts for each inventory area.txt" >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=PRGRPUSE >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"CSV and TableTool shows processor group usage.txt" >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=CSVALENV >> TableToolExamples.moveout -TYPE Table-Tool-Examples\CSVALENV.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\CSVALENV.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=CSVALTYP >> TableToolExamples.moveout -TYPE Table-Tool-Examples\CSVALTYP.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\CSVALTYP.jcl >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=DB2MASK$ >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"DB2MASK$ rexx to build DB2 bindcards.txt" >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#1 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#1.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#1.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#2 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#2.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#2.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#3 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#3.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#3.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#4 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#4.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#4.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#5 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#5.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#5.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#6 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#6.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#6.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#7 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#7.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#7.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL#8 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL#8.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL#8.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL1A >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL1A.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL1A.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL1B >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL1B.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL1B.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL2$ >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL2$.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL2$.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL2A >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL2A.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL2A.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL2B >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL2B.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL2B.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL2P >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL2P.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL2P.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=EXAMPL2R >> TableToolExamples.moveout -TYPE Table-Tool-Examples\EXAMPL2R.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPL2R.jcl >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=EXAMPLEG >> TableToolExamples.moveout +TYPE Table-Tool-Examples\EXAMPLEG.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=LISTDSNS >> TableToolExamples.moveout -TYPE Table-Tool-Examples\LISTDSNS.jcl >> TableToolExamples.moveout +TYPE Table-Tool-Examples\LISTDSNS.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=PKGEMNTR >> TableToolExamples.moveout -TYPE Table-Tool-Examples\PKGEMNTR.jcl >> TableToolExamples.moveout -ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J01 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"CSV and TableTool emails element list to a distribution.txt" >> TableToolExamples.moveout -ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J02 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"CSV and TableTool examples in IEBUPDTE format.TXT" >> TableToolExamples.moveout -ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J03 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"CSV and TableTool finds and deletes unused processor groups.txt" >> TableToolExamples.moveout -ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J04 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"CSV and TableTool showing element counts for each inventory area.txt" >> TableToolExamples.moveout -ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J05 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"CSV and TableTool shows processor group usage.txt" >> TableToolExamples.moveout +TYPE Table-Tool-Examples\PKGEMNTR.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=REX1LINE >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"REX1LINE rexx to put processor group CSV data on one line.txt" >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"REX1LINE rexx to put processor group CSV data on one line.txt" >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout ECHO ./ ADD NAME=REXMERGE >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"REXMERGE rexx to merge CSV list element with CSV list processor group.txt" >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"REXMERGE rexx to merge CSV list element with CSV list processor group.txt" >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J06 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"TableTool builds a DB2 bindcard based on inventory area.txt" >> TableToolExamples.moveout +ECHO ./ ADD NAME=DB2BIND >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"TableTool builds a DB2 bindcard based on inventory area.txt" >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DAVE#J07 >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"TableTool builds a DB2 bindcard based on YAML control table.txt" >> TableToolExamples.moveout +ECHO ./ ADD NAME=DB2YAML >> TableToolExamples.moveout +TYPE Table-Tool-Examples\"TableTool builds a DB2 bindcard based on YAML control table.txt" >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout -ECHO ./ ADD NAME=DB2MASK$ >> TableToolExamples.moveout -TYPE Table-Tool-Examples\"DB2MASK$ rexx to build DB2 bindcards.txt" >> TableToolExamples.moveout +ECHO ./ ADD NAME=TBL#SORT >> TableToolExamples.moveout +TYPE Table-Tool-Examples\Table-Tool-CSV-Sorting\TBL#SORT.rex >> TableToolExamples.moveout +ECHO. >> TableToolExamples.moveout +ECHO ./ ADD NAME=TBLJSORT >> TableToolExamples.moveout +TYPE Table-Tool-Examples\Table-Tool-CSV-Sorting\TBLJSORT.jcl >> TableToolExamples.moveout ECHO. >> TableToolExamples.moveout REM diff --git a/endevor/Field-Developed-Programs/Table-Tool-Examples/EXAMPLEG.jcl b/endevor/Field-Developed-Programs/Table-Tool-Examples/EXAMPLEG.jcl index 3165c10..1dffb3d 100644 --- a/endevor/Field-Developed-Programs/Table-Tool-Examples/EXAMPLEG.jcl +++ b/endevor/Field-Developed-Programs/Table-Tool-Examples/EXAMPLEG.jcl @@ -1,21 +1,60 @@ -//WALJO11G JOB (301000000),'EXAMPLEG',CLASS=B,PRTY=6, +//IBMUSERG JOB (0000),'EXAMPLEG',CLASS=B,PRTY=6, // MSGCLASS=3,REGION=0M,NOTIFY=&SYSUID /*JOBPARM SYSAFF=* //*------------------------------------------------------------------- //*- Build a report showing a count of each processor group referenced //*------------------------------------------------------------------- -// JCLLIB ORDER=(SYSDE32.NDVR.TEAM.JCL) +// JCLLIB ORDER=(YOURSITE.NDVR.TEAM.JCL) // EXPORT SYMLIST=(*) //********************************************************************* -// SET ENVIRON=DEV +//* SET ENVIRON=DEV // SET SYSTEM='FINANCE' //*------------------------------------------------------------------- -//* Report processor usage counts +//**Report processor usage counts ** +//*-------------------------------------------------------------------- +//*------------------------------------------------------------------- +//* Convert Environment info into Rexx Stem array data +//*------------------------------------------------------------------- +//* STEP 1 -- EXECUTE CSV UTILITY +//*------------------------------------------------------------------- +//STEP1 EXEC PGM=NDVRC1,REGION=4M, +// PARM='BC1PCSV0' +// INCLUDE MEMBER=STEPLIB +//BSTIPT01 DD * + LIST ENVIRONMENT '*' TO DDNAME 'EXTRACTS' OPTIONS RETURN ALL. +//EXTRACTS DD DSN=&&EXTRACTS, +// DCB=(RECFM=FB,LRECL=1800,BLKSIZE=9000,DSORG=PS), +// DISP=(NEW,PASS),UNIT=VIO, +// SPACE=(TRK,(5,1),RLSE) +//C1MSGS1 DD SYSOUT=* +//BSTERR DD SYSOUT=* +//*-------------------------------------------------------------------- +//STEP2 EXEC PGM=IRXJCL,PARM='ENBPIU00 A' +//TABLE DD DSN=&&EXTRACTS,DISP=(OLD,DELETE) +//OPTIONS DD * + $Table_Type = 'CSV' +//MODEL DD *,SYMBOLS=JCLONLY + LIST ELEMENT '*' + FROM ENVIRONMENT '&ENV_NAME' '&SYSTEM' + SUBSYSTEM '*' TYPE '*' STAGE NUMBER '*' + TO DDNAME 'LISTELMS' + OPTIONS NOSEARCH RETURN ALL . +//SYSTSPRT DD SYSOUT=* +// INCLUDE MEMBER=CSIQCLS0 +//TBLOUT DD SYSOUT=* DSN=&&COUNTS,DISP=(NEW,PASS), +//*-------------------------------------------------------------------- +// +//SHOWME EXEC PGM=IEBGENER,REGION=1024K +//SYSPRINT DD SYSOUT=* MESSAGES +//SYSUT1 DD DSN=&&EXTRACTS,DISP=(OLD,PASS) +//SYSUT2 DD SYSOUT=* OUTPUT FILE +//SYSIN DD DUMMY CONTROL STATEMENTS +//SYSUDUMP DD SYSOUT=* //*-------------------------------------------------------------------- //*------------------------------------------------------------------- //* STEP 1 -- EXECUTE CSV UTILITY to collect processor group info //*------------------------------------------------------------------- -//STEP1 EXEC PGM=NDVRC1, +//STEP3 EXEC PGM=NDVRC1, // PARM='BC1PCSV0' //*-- // INCLUDE MEMBER=STEPLIB diff --git a/endevor/Field-Developed-Programs/Table-Tool-Examples/PKGEMNTR.jcl b/endevor/Field-Developed-Programs/Table-Tool-Examples/PKGEMNTR.jcl index 65c748f..de2fd8f 100644 --- a/endevor/Field-Developed-Programs/Table-Tool-Examples/PKGEMNTR.jcl +++ b/endevor/Field-Developed-Programs/Table-Tool-Examples/PKGEMNTR.jcl @@ -1,175 +1,174 @@ -//IBMUSERT JOB (0000), -// CLASS=A,MSGCLASS=X,REGION=4M,NOTIFY=&SYSUID -//*==================================================================* -//*- To run the Package Monitory report ------- -//*-------------------------------------------------------------- -// JCLLIB ORDER=(YOURSITE.NDVR.TEAM.JCL.CSV) -//*==================================================================* -// EXPORT SYMLIST=(*) <- make JCL symbols available -//*** STEP 1 -- EXECUTE CSV UTILITY to find APPROVED and EXEC packages -//STEP1 EXEC PGM=NDVRC1,REGION=4M, -// PARM='CONCALL,DDN:CONLIB,BC1PCSV0' (EXEC FROM NON-AUTH LIB) -// INCLUDE MEMBER=STEPLIB -//CSVIPT01 DD * - LIST PACKAGE ID '*' - WHERE STATUS = (APPROVED, EXECUTED, INAPPROVAL) - OPTIONS QUALIFIER QUOTE - TO FILE APIEXTR . -//APIEXTR DD DSN=&&APIPKGE, -// DCB=(DSORG=PS,RECFM=VB,LRECL=4092), -// DISP=(MOD,PASS,DELETE),UNIT=3390, -// SPACE=(CYL,(5,5),RLSE) -//CSVMSGS1 DD SYSOUT=* -//DISPLAYS DD DUMMY -//C1MSGSA DD SYSOUT=* -//BSTERR DD SYSOUT=* -//SYMDUMP DD DUMMY -//SYSUDUMP DD SYSOUT=* -//*------------------------------------------------------------------- -//* Identify Packages to monitor -//* build additional package CSV utility commands for shipment rqsts -//*------------------------------------------------------------------- -//STEP3 EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST' -//TABLE DD DSN=&&APIPKGE,DISP=(OLD,PASS) -// INCLUDE MEMBER=CSIQCLS0 -//PARMLIST DD * - MODELHD TBLOUT1 SELECTS 1 - MODEL1 TBLOUT1 OPTIONS1 A - MODEL2 TBLOUT2 OPTIONS2 A -//MODELHD DD * -*Note----- Package--------- Date------ Time- Dest Env- Status----- -//SELECTS DD * - $Table_Type = "CSV" - $StripData = 'N' ; - DESTTABLusers='FCFE FCAE FCMA FCOG SWEF' - tday= DATE(S) - today = Substr(tday,1,4)'/'Substr(tday,5,2)'/'Substr(tday,7) - BaseDate = DATE('B') - NewBase = BaseDate - 1; - yester = DATE(S,NewBase,B) - yestrday = Substr(yester,1,4)'/'Substr(yester,5,2)'/'Substr(yester,7) - NewBase = BaseDate + 1; - tomorw = DATE(S,NewBase,B) - tomorrow = Substr(tomorw,1,4)'/'Substr(tomorw,5,2)'/'Substr(tomorw,7) - Say 'tomorrow='tomorrow -* for the second set of outputs - ShipCount = 0 - myOptions = ' ' - $my_rc = 4 -//OPTIONS1 DD * - if $row# < 1 then $SkipRow='Y' - keeper = 'n' - Dest = ' ' - PkgPrfx=Substr(PKG_ID,1,4) - If WordPos(PkgPrfx,DESTTABLusers)>0 then Dest = 'Dest' -*If PROM_TGT_STGID = 'P' then keeper='Prod' - date=WINDOW_START_DATE - time=WINDOW_START_TIME - If STATUS='EXECUTED' then date=EXEC_BEGIN_DATE - If STATUS='EXECUTED' then time=EXEC_BEGIN_TIME - If date = today then keeper='Today' - If date = yestrday then keeper='yesterday' - If date = tomorrow then keeper='tomorrow ' - If date > tomorrow then keeper='future ' - PROM_TGT_ENV = Left(PROM_TGT_ENV,4) -*If PROM_TGT_ENV=' ' then PROM_TGT_ENV=Substr(NOTE8,8,4) - If keeper = 'n' then $SkipRow = 'Y' - $my_rc = 0 - STATUS = Left(STATUS,14) - keeper = left(keeper,10) - MyKeeper.PKG_ID = keeper - PKG_ID = Left(PKG_ID,16) -//OPTIONS2 DD * - if $row# < 1 then $SkipRow='Y' - If MyKeeper.PKG_ID = 'n' then $SkipRow='Y' - ShipCount = ShipCount + 1 - PKG_ID = Left(PKG_ID,16) -//MODEL1 DD * - &keeper &PKG_ID &date &time &Dest &PROM_TGT_ENV &STATUS -//MODEL2 DD * - LIST PACKAGE SHIP - FROM PACKAGE '&PKG_ID' - OPTIONS &myOptions - TO FILE APISHIP . -//SYSPRINT DD SYSOUT=* -//NOTHING DD DUMMY -//SYSTSPRT DD SYSOUT=* -//TBLOUT1 DD DSN=&&LISTPKGS, -// DCB=(DSORG=PS,RECFM=FB,LRECL=80), -// DISP=(NEW,PASS),UNIT=3390, -// SPACE=(TRK,(5,5),RLSE) -//TBLOUT2 DD DSN=&&CSVALSHP, -// DCB=(DSORG=PS,RECFM=FB,LRECL=80), -// DISP=(NEW,PASS),UNIT=3390, -// SPACE=(TRK,(5,5),RLSE) -//*------------------------------------------------------------------- -//* EXECUTE CSV UTILITY to capture package Shipment data -//* for packages identified/selected in prev step -//*------------------------------------------------------------------- -//STEP4 EXEC PGM=NDVRC1,REGION=4M, -// COND=(0,NE,STEP3), -// PARM='CONCALL,DDN:CONLIB,BC1PCSV0' (EXEC FROM NON-AUTH LIB) -//CSVIPT01 DD DSN=&&CSVALSHP,DISP=(OLD,DELETE) -// INCLUDE MEMBER=STEPLIB -//APISHIP DD DSN=&&APISHIP, -// DCB=(DSORG=PS,RECFM=VB,LRECL=4092), -// DISP=(MOD,PASS,DELETE),UNIT=3390, -// SPACE=(CYL,(5,5),RLSE) -//* EXECUTION MESSAGES (CSV LOG MESSAGES) -//CSVMSGS1 DD SYSOUT=* -//* EXECUTION MESSAGES (API LOG MESSAGES) -//C1MSGSA DD SYSOUT=* -//* ERROR FILE -//BSTERR DD SYSOUT=* -//SYMDUMP DD DUMMY -//DISPLAYS DD DUMMY -//SYSUDUMP DD SYSOUT=* -//*--------------------------------------------------------------------- -//*-- Save Shipment info in a format for next step -//*--------------------------------------------------------------------- -//STEP6 EXEC PGM=IRXJCL,PARM='ENBPIU00 A', -// COND=(0,NE,STEP3) -//TABLE DD DSN=&&APISHIP,DISP=(OLD,DELETE) -// INCLUDE MEMBER=CSIQCLS0 -//OPTIONS DD * - $Table_Type = "CSV" -//MODEL DD * - Shipment.&PKG_ID = "&DEST_ID &RMT_MOVE_RC" -//SYSPRINT DD SYSOUT=* -//SYSTSPRT DD SYSOUT=* -//TBLOUT DD DSN=&&SHIPDATA, -// DCB=(DSORG=PS,RECFM=FB,LRECL=80), -// DISP=(NEW,PASS),UNIT=3390, -// SPACE=(TRK,(1,1),RLSE) -//*--------------------------------------------------------------------- -//*-- Write report from all collected data -//*--------------------------------------------------------------------- -//STEP7 EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST', -// COND=(0,NE,STEP3) -//TABLE DD DSN=&&LISTPKGS,DISP=(OLD,DELETE) -// INCLUDE MEMBER=CSIQCLS0 -//SYSTSPRT DD SYSOUT=* -//PARMLIST DD * - NOTHING NOTHING SELECTS 0 - MODEL REPORT SHIPDATA 0 - HEADINGS REPORT HEADINGS 1 - MODEL REPORT DETAILS A -//SELECTS DD * - Shipment. = ' ' -//SHIPDATA DD DSN=&&SHIPDATA,DISP=(OLD,DELETE) -//MODELSEL DD * -** Selection Date range &StrDte - &EndDte -//HEADINGS DD * -*Note----- Package--------- Date------ Time- Status----- Shipment -//DETAILS DD * - $StripData = 'N' ; -* - Dest = Left(Dest,4) - Env = Left(Env,4) - Shipment = Shipment.Package - Package = Left(Package,16) -//MODEL DD * - &Note &Package &Date &Time &Status &Shipment -//SYSPRINT DD SYSOUT=* -//REPORT DD SYSOUT=* - +//IBMUSERT JOB (0000), +// CLASS=A,MSGCLASS=X,REGION=4M,NOTIFY=&SYSUID +//*==================================================================* +//*- To run the Package Monitory report ------- +//*-------------------------------------------------------------- +// JCLLIB ORDER=(YOURSITE.NDVR.TEAM.JCL.CSV) +//*==================================================================* +// EXPORT SYMLIST=(*) <- make JCL symbols available +//*** STEP 1 -- EXECUTE CSV UTILITY to find APPROVED and EXEC packages +//STEP1 EXEC PGM=NDVRC1,REGION=4M, +// PARM='CONCALL,DDN:CONLIB,BC1PCSV0' (EXEC FROM NON-AUTH LIB) +// INCLUDE MEMBER=STEPLIB +//CSVIPT01 DD * + LIST PACKAGE ID '*' + WHERE STATUS = (APPROVED, EXECUTED, INAPPROVAL) + OPTIONS QUALIFIER QUOTE + TO FILE APIEXTR . +//APIEXTR DD DSN=&&APIPKGE, +// DCB=(DSORG=PS,RECFM=VB,LRECL=4092), +// DISP=(MOD,PASS,DELETE),UNIT=3390, +// SPACE=(CYL,(5,5),RLSE) +//CSVMSGS1 DD SYSOUT=* +//DISPLAYS DD DUMMY +//C1MSGSA DD SYSOUT=* +//BSTERR DD SYSOUT=* +//SYMDUMP DD DUMMY +//SYSUDUMP DD SYSOUT=* +//*------------------------------------------------------------------- +//* Identify Packages to monitor +//* build additional package CSV utility commands for shipment rqsts +//*------------------------------------------------------------------- +//STEP3 EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST' +//TABLE DD DSN=&&APIPKGE,DISP=(OLD,PASS) +// INCLUDE MEMBER=CSIQCLS0 +//PARMLIST DD * + MODELHD TBLOUT1 SELECTS 1 + MODEL1 TBLOUT1 OPTIONS1 A + MODEL2 TBLOUT2 OPTIONS2 A +//MODELHD DD * +*Note----- Package--------- Date------ Time- Dest Env- Status----- +//SELECTS DD * + $Table_Type = "CSV" + $StripData = 'N' ; + DESTTABLusers='APP1 APP2 APP3 APP4 TEST' + tday= DATE(S) + today = Substr(tday,1,4)'/'Substr(tday,5,2)'/'Substr(tday,7) + BaseDate = DATE('B') + NewBase = BaseDate - 1; + yester = DATE(S,NewBase,B) + yestrday = Substr(yester,1,4)'/'Substr(yester,5,2)'/'Substr(yester,7) + NewBase = BaseDate + 1; + tomorw = DATE(S,NewBase,B) + tomorrow = Substr(tomorw,1,4)'/'Substr(tomorw,5,2)'/'Substr(tomorw,7) + Say 'tomorrow='tomorrow +* for the second set of outputs + ShipCount = 0 + myOptions = ' ' + $my_rc = 4 +//OPTIONS1 DD * + if $row# < 1 then $SkipRow='Y' + keeper = 'n' + Dest = ' ' + PkgPrfx=Substr(PKG_ID,1,4) + If WordPos(PkgPrfx,DESTTABLusers)>0 then Dest = 'Dest' +*If PROM_TGT_STGID = 'P' then keeper='Prod' + date=WINDOW_START_DATE + time=WINDOW_START_TIME + If STATUS='EXECUTED' then date=EXEC_BEGIN_DATE + If STATUS='EXECUTED' then time=EXEC_BEGIN_TIME + If date = today then keeper='Today' + If date = yestrday then keeper='yesterday' + If date = tomorrow then keeper='tomorrow ' + If date > tomorrow then keeper='future ' + PROM_TGT_ENV = Left(PROM_TGT_ENV,4) +*If PROM_TGT_ENV=' ' then PROM_TGT_ENV=Substr(NOTE8,8,4) + If keeper = 'n' then $SkipRow = 'Y' + $my_rc = 0 + STATUS = Left(STATUS,14) + keeper = left(keeper,10) + MyKeeper.PKG_ID = keeper + PKG_ID = Left(PKG_ID,16) +//OPTIONS2 DD * + if $row# < 1 then $SkipRow='Y' + If MyKeeper.PKG_ID = 'n' then $SkipRow='Y' + ShipCount = ShipCount + 1 + PKG_ID = Left(PKG_ID,16) +//MODEL1 DD * + &keeper &PKG_ID &date &time &Dest &PROM_TGT_ENV &STATUS +//MODEL2 DD * + LIST PACKAGE SHIP + FROM PACKAGE '&PKG_ID' + OPTIONS &myOptions + TO FILE APISHIP . +//SYSPRINT DD SYSOUT=* +//NOTHING DD DUMMY +//SYSTSPRT DD SYSOUT=* +//TBLOUT1 DD DSN=&&LISTPKGS, +// DCB=(DSORG=PS,RECFM=FB,LRECL=80), +// DISP=(NEW,PASS),UNIT=3390, +// SPACE=(TRK,(5,5),RLSE) +//TBLOUT2 DD DSN=&&CSVALSHP, +// DCB=(DSORG=PS,RECFM=FB,LRECL=80), +// DISP=(NEW,PASS),UNIT=3390, +// SPACE=(TRK,(5,5),RLSE) +//*------------------------------------------------------------------- +//* EXECUTE CSV UTILITY to capture package Shipment data +//* for packages identified/selected in prev step +//*------------------------------------------------------------------- +//STEP4 EXEC PGM=NDVRC1,REGION=4M, +// COND=(0,NE,STEP3), +// PARM='CONCALL,DDN:CONLIB,BC1PCSV0' (EXEC FROM NON-AUTH LIB) +//CSVIPT01 DD DSN=&&CSVALSHP,DISP=(OLD,DELETE) +// INCLUDE MEMBER=STEPLIB +//APISHIP DD DSN=&&APISHIP, +// DCB=(DSORG=PS,RECFM=VB,LRECL=4092), +// DISP=(MOD,PASS,DELETE),UNIT=3390, +// SPACE=(CYL,(5,5),RLSE) +//* EXECUTION MESSAGES (CSV LOG MESSAGES) +//CSVMSGS1 DD SYSOUT=* +//* EXECUTION MESSAGES (API LOG MESSAGES) +//C1MSGSA DD SYSOUT=* +//* ERROR FILE +//BSTERR DD SYSOUT=* +//SYMDUMP DD DUMMY +//DISPLAYS DD DUMMY +//SYSUDUMP DD SYSOUT=* +//*--------------------------------------------------------------------- +//*-- Save Shipment info in a format for next step +//*--------------------------------------------------------------------- +//STEP6 EXEC PGM=IRXJCL,PARM='ENBPIU00 A', +// COND=(0,NE,STEP3) +//TABLE DD DSN=&&APISHIP,DISP=(OLD,DELETE) +// INCLUDE MEMBER=CSIQCLS0 +//OPTIONS DD * + $Table_Type = "CSV" +//MODEL DD * + Shipment.&PKG_ID = "&DEST_ID &RMT_MOVE_RC" +//SYSPRINT DD SYSOUT=* +//SYSTSPRT DD SYSOUT=* +//TBLOUT DD DSN=&&SHIPDATA, +// DCB=(DSORG=PS,RECFM=FB,LRECL=80), +// DISP=(NEW,PASS),UNIT=3390, +// SPACE=(TRK,(1,1),RLSE) +//*--------------------------------------------------------------------- +//*-- Write report from all collected data +//*--------------------------------------------------------------------- +//STEP7 EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST', +// COND=(0,NE,STEP3) +//TABLE DD DSN=&&LISTPKGS,DISP=(OLD,DELETE) +// INCLUDE MEMBER=CSIQCLS0 +//SYSTSPRT DD SYSOUT=* +//PARMLIST DD * + NOTHING NOTHING SELECTS 0 + MODEL REPORT SHIPDATA 0 + HEADINGS REPORT HEADINGS 1 + MODEL REPORT DETAILS A +//SELECTS DD * + Shipment. = ' ' +//SHIPDATA DD DSN=&&SHIPDATA,DISP=(OLD,DELETE) +//MODELSEL DD * +** Selection Date range &StrDte - &EndDte +//HEADINGS DD * +*Note----- Package--------- Date------ Time- Status----- Shipment +//DETAILS DD * + $StripData = 'N' ; +* + Dest = Left(Dest,4) + Env = Left(Env,4) + Shipment = Shipment.Package + Package = Left(Package,16) +//MODEL DD * + &Note &Package &Date &Time &Status &Shipment +//SYSPRINT DD SYSOUT=* +//REPORT DD SYSOUT=* diff --git a/endevor/Field-Developed-Programs/Table-Tool-Examples/Table-Tool-Processor-Examples README.md b/endevor/Field-Developed-Programs/Table-Tool-Examples/Table-Tool-Processor-Examples README.md new file mode 100644 index 0000000..d55cef2 --- /dev/null +++ b/endevor/Field-Developed-Programs/Table-Tool-Examples/Table-Tool-Processor-Examples README.md @@ -0,0 +1,168 @@ +# Table Tool Processor Examples + +Table Tool can run in your Endevor processors. This folder gives some things to consider, and some examples for the use of Table Tool in processors. + +**Caution** When allowing OPTIONS as input + +If developers have the ability to edit an OPTIONS element, you must take the following precautionary steps. Use a processor, such as [GOPTIONS](https://github.com/BroadcomMFD/broadcom-product-scripts/blob/main/endevor/Field-Developed-Programs/Processor-Tools-and-Processor-Snippets/GOPTIONS%20-%20Options%20syntax%20processor.jcl), to validate that the OPTIONS element only contains statements in one of these three acceptable formats: +- keyword = 'value' +- keyword = "value" +- keyword = number + + +In the Table Tool processor step that processes the options, you should reference them using IncludeQuotedOptions instead of including or appending them directly to the OPTIONS. + + x = 'IncludeQuotedOptions(UOPTIONS)'; + . . . + //UOPTIONS DD ... developer edited options* + +## Table Tool as a complement to CONPARMX +You can find details of the [CONPARMX](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-endevor-software-change-manager/19-0/administrating/processors/processor-utilities/conparmx-utility.html) processor utility here, and a description of the **VALUECHK** program [here](https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main/endevor/Field-Developed-Programs/Processor-Tools-and-Processor-Snippets). + +Here is an example step that tests user OPTIONS to determine whether MQSeries='Y' is specified: + + //MQSERIES EXEC PGM=IRXJCL,PARM='ENBPIU00 1 x' GCOBOL + //TABLE DD * + * MQSeries $my_rc + Y 1 + * 0 + //OPTIONS DD * + x = IncludeQuotedOptions(UOPTIONS) + //UOPTIONS DD * + MQSeries = 'N' + //SYSEXEC DD DISP=SHR,DSN=your.CSIQCLS0 + //MODEL DD DUMMY + //TBLOUT DD SYSOUT=* + //SYSTSPRT DD SYSOUT=* + +The VALUECHK program does the same kind of checking. + +## Leveraging the Component list and CONMOVE in a MOVE processor + + //********************************************************************* + //WRITE EXEC PGM=CONWRITE,MAXRC=4 DELBHIND + //CONWIN DD * + WRITE ELEMENT &C1ELEMENT + FROM ENV &C1SENVMNT SYSTEM &C1SYSTEM SUBSYSTEM &C1SSUBSYS + TYPE &C1ELTYPE STAGE &C1SSTGID + TO DDN PRNTFILE + OPTION COMPONENT. + //PRNTFILE DD DSN=&&PRNTFILE,DISP=(NEW,PASS), + // UNIT=&TUNIT,SPACE=(TRK,(5,5)), + // DCB=(RECFM=FB,LRECL=203,BLKSIZE=4060) + //********************************************************************** + //READCOMP EXEC PGM=IRXJCL,PARM='ENBPIU00 M O',MAXRC=4 + //TABLE DD DSN=&&PRNTFILE,DISP=(OLD,PASS) + //POSITION DD * + InOrOut 37 37 + DDNAME 49 56 + STEPNAME 29 36 + Member 39 46 + Dataset 57 100 + //OPTIONS DD * + $Table_Type = 'positions' + tempdsn = Translate(Dataset,' ','.'); + lastnode = Word(tempdsn,Words(tempdsn)) + If lastnode = 'LISTLIB' then $SkipRow = 'Y' + //MODEL DD * + +Using the example, you can build BSTCOPY statement + +## Working with YAML input + +When combined with the [YAML2REX](https://github.com/BroadcomMFD/broadcom-product-scripts/blob/main/endevor/Field-Developed-Programs/Processor-Tools-and-Processor-Snippets/YAML2REX.rex) program, Table Tool can let you use YAML to drive automated actions. For information on YAML, find the official link [here](https://yaml.org/) and more [here](https://www.redhat.com/en/topics/automation/what-is-yaml). + +YAML is easy to learn, and easy to use everywhere - from the ISPF panels in Quick-Edit to VSCode under CODE4Z. See examples of both in this section. + +### YAML for Dynamic SYSLIBS + +Items in the [Dynamic SYSLIB folder](https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main/endevor/Field-Developed-Programs/Processor-Tools-and-Processor-Snippets/Dynamic-Syslib) demonstrate how each project in Endevor (Sandbox or dynamic Environment) may elect to include input components from other projects. Here is Quick-Edit view of a YAML element that controls library concatenations for the ACTP0002 Sandbox. + +![alt text](image-3.png) + + +### YAML for Automating Processor DB2 Binds +Here is a VSCode view of an example YAML that provides DB2 Bind details to the Endevor processors for elements in the FINANCE system at various Endevor stages. + +![alt text](image.png) + +This example shows "Pattern" entries, which are masking values to be applied to production Bind statements using the [DB2MASK#](https://github.com/BroadcomMFD/broadcom-product-scripts/blob/main/endevor/Field-Developed-Programs/Processor-Tools-and-Processor-Snippets/DB2MASK%23.rex) tool. + + +Starting with these examples, you have a foundation for building your processors to leverage YAML to automate Endevor actions. + +## Leveraging Endevor's ALLOC=LMAP/PMAP feature + +In this example, the substitution of variables occurs during this processor step, with both Endevor and Table Tool performing the substitution, but only for variables they recognize. For instance, Endevor substitutes values for variables it is aware of (e.g., &C1 variables, processor variables, and Esymbols variables) while leaving others, including Table Tool variables, unchanged. + + + //*********INCLUDE (TZUNITST)**************************************** + //*--------------------------------------------------------------------* + //T4ZUNI#1 EXEC PGM=IKJEFT1B,PARM='ENBPIU00 A' TZUNITST + //*TABLE is dynamically built from the LISTALC output for LMAPPED + //TABLE DD DSN=&&TABLE,DISP=(NEW,PASS), + // UNIT=SYSDA,SPACE=(TRK,(5,5)), + // DCB=(RECFM=FB,LRECL=080,BLKSIZE=24000) + //*POSITION of data within the LISTALC output + //POSITION DD * + Dataset 1 44 + //OPTIONS DD * + $Table_Type = "positions" + If $row# = 0 then, + + Do; starthere = 0 ; stophere = 0 ; + + X = OUTTRAP(line.); + + ADDRESS TSO 'LISTALC STATUS HISTORY'; + + - - - - - - - - - - - - - - - - 20 Line(s) not Displayed + //MODEL DD DATA,DLM=QQ + // DD DISP=SHR,DSN=&Dataset + QQ + //SYSEXEC DD DISP=SHR,DSN=&SYSEXEC1 + // DD DISP=SHR,DSN=&SYSEXEC2 + //SYSIN DD DUMMY + // IF ('&C1PRGRP(1,4)' = 'CICS') THEN + //LMAPPED DD DISP=SHR,DSN=&CICSLOAD,ALLOC=LMAP + // DD DISP=SHR,DSN=&T4ZLOAD,ALLOC=LMAP + // ELSE + //LMAPPED DD DISP=SHR,DSN=&LOADLIB,ALLOC=LMAP + // DD DISP=SHR,DSN=&T4ZLOAD,ALLOC=LMAP + // ENDIF + //SYSTSPRT DD SYSOUT=* + //SYSTSIN DD DUMMY + //TBLOUT DD DSN=&&LOADLIBS,DISP=(NEW,PASS), + // UNIT=SYSDA,SPACE=(TRK,(1,1)), + // DCB=(RECFM=FB,LRECL=080,BLKSIZE=24000) + +The process on this step unfolds as follows: +Endevor's actions before processor execution: +- Endevor replaces its known variables with corresponding values. + - Endevor allocates files, including allocating TABLE as an initially empty dataset. + - The ALLOC=LMAP clause for the LMAPPED DDname is expanded by - Endevor into multiple actual dataset names. + - Endevor then initiates the execution of the processor and the T4ZUNI#1 step. +Table Tool execution: +- Table Tool begins execution while TABLE is still an empty file. + - Before attempting to open the Table, Table Tool executes the commands specified in OPTIONS. + - The LISTALC command within OPTIONS is executed, which lists all datasets currently allocated on the step. + - Subsequent OPTIONS statements write this list of allocated datasets to the Table Tool Table. + - Consequently, when Table Tool opens the Table, it contains the LISTALC data, including the datasets allocated by Endevor using the ALLOC=LMAP clause. + - Table Tool reads the dataset names allocated for LMAPPED, applies the MODEL to format the output, and writes the expanded result to TBLOUT. In this case, the MODEL is a single line of JCL. + - Upon completion of the step, the contents of TBLOUT will resemble the expanded JCL. + +When the step completes, the content of TBLOUT might look something like this: + + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.DEV1.LOADLIB + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.DEV2.LOADLIB + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.QAS2.LOADLIB + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.PRD.LOADLIB + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.DEV1.T4ZLOAD + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.DEV2.T4ZLOAD + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.QAS2.T4ZLOAD + // DD DISP=SHR,DSN=Myhlq.ENDEVOR.PRD.T4ZLOAD + + + +This method offers utility beyond automated test executions; for instance, it enables the inclusion of the expanded list of libraries within the processor output listings. + + +See the [T4ZUNIT.prc](https://github.com/BroadcomMFD/broadcom-product-scripts/blob/main/endevor/Automated-Test-Facility-Using-Test4Z/T4ZUNIT.prc) processor Include member for an example with this step. + +If you are unfamiliar with the use of processor includes, see an explanation [here](https://community.broadcom.com/HigherLogic/System/DownloadDocumentFile.ashx?DocumentFileKey=4e97b9d9-9a2e-6349-96e3-27c89ce5b00d). \ No newline at end of file diff --git a/endevor/Field-Developed-Programs/Table-Tool-Examples/image-3.png b/endevor/Field-Developed-Programs/Table-Tool-Examples/image-3.png new file mode 100644 index 0000000..b6ed353 Binary files /dev/null and b/endevor/Field-Developed-Programs/Table-Tool-Examples/image-3.png differ diff --git a/endevor/Field-Developed-Programs/Table-Tool-Examples/image.png b/endevor/Field-Developed-Programs/Table-Tool-Examples/image.png new file mode 100644 index 0000000..44b9e7d Binary files /dev/null and b/endevor/Field-Developed-Programs/Table-Tool-Examples/image.png differ