diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#COPY.jcl b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#COPY.jcl new file mode 100644 index 0000000..196b774 --- /dev/null +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#COPY.jcl @@ -0,0 +1,122 @@ +//IBMUSERC JOB (0000), +// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, +// NOTIFY=&SYSUID +//**=================================================================** +//** Find unused COPYbooks from the MERGED data =================** +//**=================================================================** +//* Input: &HLQ..*.MERGED +//* Output: &HLQ..COMBINED.MERGED +//* Input: &HLQ..COMBINED.MERGED +//* Input: &HLQ..ACM#LOAD.COMPONTS +//* Output: Find suspected unused input components in SORTOF01 +//**=================================================================** +// SET HLQ=IBMUSER.ACM#BILD Intermediate files HLQ +// SET MODELLIB=&SYSUID..ACM#BILD.WORK <- WorkLib +// SET CSIQCLS0=YOUR.NDVR.CSIQCLS0 <-Where is ENBPIU00 +//**=================================================================** +//*-------------------------------------------------------------------* +//*-- Use LISTCAT to list all **.MERGED datasets (1 of 2) ------------* +//* Output: IBMUSER.ACM#BILD.COMBINED.MERGED +//*-------------------------------------------------------------------* +//LISTCAT1 EXEC PGM=IRXJCL, ACM#COPY +// PARM='ENBPIU00 M &HLQ' +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//* List element types that might be input components +//TABLE DD * / +* HighLevelQual---------------------------------- + * +//OPTIONS DD * + $nomessages = 'Y' +//MODEL DD * + LISTCAT LEVEL('&HighLevelQual.*.MERGED') NAME +//SYSTSIN DD DUMMY +//SYSTSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//TBLOUT DD DSN=&&SYSIN,DISP=(NEW,PASS), +// UNIT=SYSDA,SPACE=(TRK,(1,1)), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000) +//*-------------------------------------------------------------------* +//*-- Use LISTCAT to list all **.MERGED datasets (2 of 2) ------------* +//* Output: IBMUSER.ACM#BILD.COMBINED.MERGED +//*-------------------------------------------------------------------* +//LISTCAT2 EXEC PGM=IDCAMS ACM#COPY +//SYSIN DD DSN=&&SYSIN,DISP=(OLD,DELETE) +//SYSPRINT DD DSN=&&LISTCAT,DISP=(,PASS), +// SPACE=(TRK,(5,10)), +// RECFM=FB,LRECL=150,BLKSIZE=30000 +//**=================================================================** +//* Combine the MERGED files into one. +//**=================================================================** +//* +//ALLOC1 EXEC PGM=IKJEFT1B,PARM='ENBPIU00 M NONVSAM' ACM#COPY +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//TABLE DD DSN=&&LISTCAT,DISP=(OLD,DELETE) +//POSITION DD * + literal 02 08 + Dataset 18 61 +//MODEL DD * + CONCATENATING &Dataset +//OPTIONS DD * + $QuietMessages = 'Y' /* Bypass messages Y/N */ +* Say Dataset $row# $tbl + If Pos('.GRP',Dataset) = 0 then $SkipRow = 'Y' +* If $row# < 1 then $SkipRow = 'Y' +* If $tbl < 1 then $SkipRow = 'Y' + Dataset = Strip(Dataset) + alloc = 'ALLOC F(SYSUT1) DA('''Dataset''') SHR REUS' + Say alloc + alloc + ADDRESS LINK 'IEBGENER' + alloc = 'FREE F(SYSUT1)' + alloc +//SYSPRINT DD SYSOUT=* +//SYSTSPRT DD SYSOUT=* +//SYSTSIN DD DUMMY +//SYSIN DD DUMMY CONTROL STATEMENTS +//SYSUDUMP DD SYSOUT=* +//TBLOUT DD SYSOUT=* +//SYSUT2 DD DSN=&&MERGED,DISP=(MOD,PASS), +// SPACE=(CYL,(5,25)), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//*------------------------------------------------------------------- +//* Delete old file if it exists * +//********************************************************************* +//DELETOLD EXEC PGM=IEFBR14 ACM#COPY +//SORTOUT DD DSN=&HLQ..COMBINED.MERGED, +// DISP=(MOD,DELETE,DELETE), +// UNIT=SYSALLDA,SPACE=(CYL,(1,2),RLSE), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//*------------------------------------------------------------------- +//* SORT COMBINED LIST - keep unique values only * +//********************************************************************* +//SORTACMQ EXEC PGM=SORT,COND=(4,LT) ACM#COPY +//SORTIN DD DSN=&&MERGED,DISP=(OLD,DELETE) +//SYSIN DD * + SORT FIELDS=(1,120,CH,A) + SUM FIELDS=NONE +//SYSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//SYSOUT DD SYSOUT=* +//SORTOUT DD DSN=&HLQ..COMBINED.MERGED, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(10,25),RLSE), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//********************************************************************* +//**=================================================================** +//* Input: IBMUSER.ACM#BILD.*.MERGED +//* Output: IBMUSER.ACM#BILD.COMBINED.MERGED +//* Input: IBMUSER.ACM#BILD.ACM#LOAD.COMPONTS +//* Output: Find suspected unused items in SORTOF01 +//REPORT EXEC PGM=SORT ACM#COPY +//SORTJNF1 DD DISP=SHR,DSN=IBMUSER.ACM#BILD.ACM#LOAD.COMPONTS +//SORTJNF2 DD DISP=SHR,DSN=IBMUSER.ACM#BILD.COMBINED.MERGED +//SYSIN DD * + JOINKEYS FILE=F1,FIELDS=(2,11,A) + JOINKEYS FILE=F2,FIELDS=(2,11,A) +* Keep the records in F1 that do not have a match in F2 + JOIN UNPAIRED,F1,ONLY + REFORMAT FIELDS=(F1:1,40) + SORT FIELDS=COPY + OUTFIL FILES=01,SAVE,BUILD=(1,40) +//SYSOUT DD SYSOUT=* +//SORTOF01 DD SYSOUT=* Unmatched.Records diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD1.jcl b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD1.jcl index 281da48..dae7f93 100644 --- a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD1.jcl +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD1.jcl @@ -1,326 +1,327 @@ //IBMUSERA JOB (0000), JOB01236 -// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, -// NOTIFY=&SYSUID -//*-------------------------------------------------------------------* -//* Setup job. ---------------------------------------* -//*- Modify the SET statements ----------------------------------* -//*- Modify the TABLE of input components in BILDACM3 step ------* -//*- Modify the TABLE of input users in BILDACM9 step ------* -//*-------------------------------------------------------------------* -// JCLLIB ORDER=(SYSMD32.NDVR.TEAM.JCL) <-Where is STEPLIB incl -//*==================================================================* -// EXPORT SYMLIST=(*) -//*-------------------------------------------------------------------* -// SET HLQ=&SYSUID..ACM#BILD Intermediate files HLQ -// SET ENVMNT='PRD ' Environment to scan (8) -// SET STAGE='2' last stage in environment -// SET MODELLIB=&SYSUID..ACM#BILD.WORK <-Where are ACM#* -// SET CSIQCLS0=CARSMINI.NDVR.R1801.CSIQCLS0 <-Where is ENBPIU00 -//*-------------------------------------------------------------------* -//*---- Remove files from last run -----------------------------------* -//*-------------------------------------------------------------------* -//CLEANUP EXEC PGM=IEFBR14 ACM#LOD1 -//SYSUT2 DD DSN=&HLQ..ACMTABLE, -// DISP=(MOD,DELETE,DELETE), -// UNIT=SYSALLDA,SPACE=(TRK,(01,01),RLSE), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS) -//SORTOUT DD DSN=&HLQ..ACM#LOAD.ELEMLIST, -// DISP=(MOD,DELETE,DELETE), -// UNIT=SYSDA,SPACE=(CYL,(5,5)), -// DCB=(RECFM=FB,LRECL=2000,BLKSIZE=24000) -//COMPONTS DD DSN=&HLQ..ACM#LOAD.COMPONTS, -// DISP=(MOD,DELETE,DELETE), -// UNIT=SYSALLDA,SPACE=(CYL,(01,01),RLSE), -// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) -//*-------------------------------------------------------------------* -//*---- Format and Save JCL variables --------------------------------* -//*-------------------------------------------------------------------* -//ENV@STG EXEC PGM=IRXJCL, ACM#LOD1 -// PARM='ENBPIU00 M &ENVMNT &STAGE' -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//TABLE DD * -* ENVMNT-- STAGE - * * -//OPTIONS DD * - ENVMNT_8 = Left(ENVMNT,8) -//MODEL DD * - ENVMNT = '&ENVMNT_8' - STAGE = '&STAGE' -//SYSTSPRT DD DUMMY -//TBLOUT DD DISP=SHR,DSN=&MODELLIB(ENV@STG) -//*-------------------------------------------------------------------* -//*---- Create a Header for the output Table--------------------------* -//*-------------------------------------------------------------------* -//HEADER EXEC PGM=IEBGENER ACM#LOD1 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD * -* Group Start Stop JobChar -//SYSUT2 DD DSN=&HLQ..ACMTABLE, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(TRK,(01,01),RLSE), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS) -//*-------------------------------------------------------------------* -//* -//*-This job must be tailored so that all element types which can ----* -//*-be considered as 'input components' in Endevor are listed in ----* -//*-the API program data. Element information for each type is ----* -//*-captured into these outputs: -//*- &HLQ..ACM#LOAD.COMPONTS a list of input components ----* -//*- &HLQ..ACM#LOAD.ELEMLIST is an temporary work dataset). ----* -//*- &HLQ..ENDEVOR.NOTES(ACMQLIST) a list of element groups ----* -//* Addition tailoring must be done for component users.--------------* -//*-------------------------------------------------------------------* -//*---- List elements of input-component Types 1/2 ------------------* -//*-------------------------------------------------------------------* -//BILDACM3 EXEC PGM=IRXJCL,PARM='ENBPIU00 A ' ' ACM#LOD1 -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//* List element types that might be input components -//TABLE DD * / -* TYPE---- - ASMMAC - COBCOPY - COPY - MACRO - PROC -//OPTIONS DD *,SYMBOLS=JCLONLY - $nomessages = 'Y' - ENVMNT = Left('&ENVMNT',8) - STAGE="&STAGE" -//MODEL DD * -AACTL MSGFILE ELEMLIST -ALELM AA &ENVMNT * * &TYPE -RUN -//SYSTSIN DD DUMMY -//SYSTSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//TBLOUT DD DSN=&&INTYPES,DISP=(NEW,PASS), -// UNIT=SYSDA,SPACE=(TRK,(1,1)), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000) -//*-------------------------------------------------------------------* -//*-------------------------------------------------------------------* -//*---- List elements of input-component Types 2/2 ------------------* -//*-------------------------------------------------------------------* -//BILDACM4 EXEC PGM=NDVRC1,PARM='ENTBJAPI',REGION=4096K ACM#LOD1 -// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc -//MSGFILE DD SYSOUT=* -//ELEMLIST DD DSN=&HLQ..ACM#LOAD.ELEMLIST, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSDA,SPACE=(CYL,(20,20)), -// DCB=(RECFM=FB,LRECL=2000,BLKSIZE=24000) -//SYSINX DD * -***** ALELM = LIST ELEMENT STRUCTURE INFORMATION -* V - COLUMN 6 = PATH SETTING -* V - COLUMN 7 = RETURN SETTING -* V - COLUMN 8 = SEARCH SETTING -* V - COLUMN 9 = UNUSED -* VVVVVVVV - COLUMN 10-17 ENVIRONMENT NAME -* V - COLUMN 18 = STAGE ID -* VVVVVVVV - COLUMN 19-26 SYSTEM NAME -* VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME -* COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV -* COLUMN 45-52 = TYPE NAME VVVVVVVV -* COLUMN 53-60 = TO-ENV NAME VVVVVVVV -* COLUMN 61 = TO-STAGE ID V -* COLUMN 62-71 = THRU-ELEMENT NAME VVVVVVVVVV -*---+----1----+----2----+----3----+----4----+----5----+----6----+----7-- -//SYSIN DD DSN=&&INTYPES,DISP=(OLD,DELETE) -// DD * -AACTLY -RUN -QUIT -//SYSOUT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//BSTERR DD SYSOUT=* -//BSTAPI DD SYSOUT=* -//SYMDUMP DD DUMMY -//SYSUDUMP DD SYSOUT=* -//* -//* PRINT EXTRACTED ELEMENT -//SHOWME EXEC PGM=IEBGENER ACM#LOD1 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR -//SYSUT2 DD SYSOUT=* -//* -//*-------------------------------------------------------------------* -//*---- Write list of input-component elements into COMPONTS ----* -//*-------------------------------------------------------------------* -//BILDACM6 EXEC PGM=IRXJCL,PARM='ENBPIU00 A ' ACM#LOD1 -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//OPTIONS DD * - $nomessages = 'Y' - MODEL = "MODELC" - TBLOUT= "COMPONTS" - COMPLINE = COPIES(" ",80) - COMPLINE = OVERLAY(ELEMENT,COMPLINE,01); - COMPLINE = OVERLAY(SYSTEM,COMPLINE,12); - COMPLINE = OVERLAY(SUBSYS,COMPLINE,22); - COMPLINE = OVERLAY(TYPE,COMPLINE,32); - COMPLINE = OVERLAY(EDLT_DATE,COMPLINE,42); - COMPLINE = OVERLAY(GEN_DATE,COMPLINE,52); - COMPLINE = OVERLAY(GEN_TIME,COMPLINE,62); - COMPLINE = OVERLAY(ENV,COMPLINE,73); - COMPLINE = OVERLAY(STG_NUM,COMPLINE,83); -//MODELC DD * - &COMPLINE -//POSITION DD * - ALELM_RS_EDLT_CCID 333 344 - ALELM_RS_LACT_CCID 156 167 - ELEMENT 39 48 - ENV 15 22 - STG_NUM 66 66 - SYSTEM 23 30 - SUBSYS 31 38 - TYPE 49 56 - EDLT_DATE 301 308 - GEN_DATE 578 585 - GEN_TIME 586 593 -//SYSTSIN DD DUMMY -//TABLE DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=(OLD,DELETE) -//NOTHING DD SYSOUT=* -//SKIPPING DD DUMMY -//COMPONTS DD DSN=&HLQ..ACM#LOAD.COMPONTS, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(CYL,(01,01),RLSE), -// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) -//* -//SYSTSPRT DD SYSOUT=* -//*------------------------------------------------------------------- -//* SORT COMPONENT LIST * -//*------------------------------------------------------------------- -//BILDACM7 EXEC PGM=SORT,COND=(4,LT) ACM#LOD1 -//SYSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//SYSOUT DD SYSOUT=* -//SORTIN DD DISP=SHR,DSN=&HLQ..ACM#LOAD.COMPONTS -//SORTOUT DD DISP=SHR,DSN=&HLQ..ACM#LOAD.COMPONTS -//SYSIN DD * - SORT FIELDS=(002,10,CH,A,32,9,CH,A) -//* -//*-------------------------------------------------------------------* -//* IDENTIFY component user elements 1/2 * -//*-------------------------------------------------------------------* -//BILDACM9 EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST' ACM#LOD1 -//PARMLIST DD * - MODEL1 TBLOUT1 OPTIONS A - MODEL2 TBLOUT2 OPTIONS A -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//* List element types that might use input components -//TABLE DD * / -* TYPE---- - COBOL - COBPGM - ASM - ASMPGM - JCL -//OPTIONS DD *,SYMBOLS=JCLONLY - $nomessages = 'Y' - ENVMNT = Left('&ENVMNT',8) - STAGE="&STAGE" -//MODEL1 DD * -AACTL MSGFILE ELEMLIST -ALELM AA &ENVMNT * * &TYPE -RUN -//MODEL2 DD * - UserType.&TYPE = 'Y' -//SYSTSIN DD DUMMY -//SYSTSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//TBLOUT2 DD DSN=&HLQ..ACM#LOAD.USERTYPS, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(CYL,(01,01),RLSE), -// DCB=(RECFM=FB,LRECL=080,BLKSIZE=0,DSORG=PS) -//* -//TBLOUT1 DD DSN=&&TYPES,DISP=(NEW,PASS), -// UNIT=SYSDA,SPACE=(TRK,(1,1)), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000) -//*-------------------------------------------------------------------* -//* IDENTIFY component user elements 2/2 * -//*-------------------------------------------------------------------* -//BILDACMA EXEC PGM=NDVRC1,PARM='ENTBJAPI',REGION=4096K ACM#LOD1 -// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc -//MSGFILE DD SYSOUT=* -//ELEMLIST DD DSN=&HLQ..ACM#LOAD.ELEMLIST, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSDA,SPACE=(CYL,(5,5)), -// DCB=(RECFM=FB,LRECL=2000,BLKSIZE=24000) -//SYSINX DD * -***** ALELM = LIST ELEMENT STRUCTURE INFORMATION -* V - COLUMN 6 = PATH SETTING -* V - COLUMN 7 = RETURN SETTING -* V - COLUMN 8 = SEARCH SETTING -* V - COLUMN 9 = UNUSED -* VVVVVVVV - COLUMN 10-17 ENVIRONMENT NAME -* V - COLUMN 18 = STAGE ID -* VVVVVVVV - COLUMN 19-26 SYSTEM NAME -* VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME -* COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV -* COLUMN 45-52 = TYPE NAME VVVVVVVV -* COLUMN 53-60 = TO-ENV NAME VVVVVVVV -* COLUMN 61 = TO-STAGE ID V -* COLUMN 62-71 = THRU-ELEMENT NAME VVVVVVVVVV -//SYSIN DD DSN=&&TYPES,DISP=(OLD,DELETE) -// DD * -AACTLY -RUN -QUIT -//SYSOUT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//BSTERR DD SYSOUT=* -//BSTAPI DD SYSOUT=* -//SYMDUMP DD DUMMY -//SYSUDUMP DD SYSOUT=* -//* -//* PRINT EXTRACTED ELEMENT -//SHOWA2 EXEC PGM=IEBGENER ACM#LOD1 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR -//SYSUT2 DD SYSOUT=* -//* -//*------------------------------------------------------------------- -//* SORT element user list * -//********************************************************************* -//BILDACMB EXEC PGM=SORT,COND=(4,LT) ACM#LOD1 -//SYSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//SYSOUT DD SYSOUT=* -//SORTIN DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR -//SORTOUT DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR -//SYSIN DD * - SORT FIELDS=(039,10,CH,A) -//* -//*-------------------------------------------------------------------* -//* Create Table of element Groups in &HLQ..ACMTABLE -//*-------------------------------------------------------------------* -//BILDACMC EXEC PGM=IRXJCL,PARM='ENBPIU00 A ' ACM#LOD1 -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//TABLE DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR -//MODEL DD * - &GROUP &START &STOP &JobChar -//POSITION DD * - ELEMENT 39 48 -//SYSTSIN DD DUMMY -//NOTHING DD DUMMY -//OPTIONS DD * - $nomessages = 'Y' - TBLOUT= "NOTHING" - showlast = $tablerec.0 - Break = 30 - Stoppoint = Break - 1; - if $row# = 0 then #count = 0; - if $row# = 0 then #Grp = 1; - #count = #count + 1 ; - if #count = 1 then START = ELEMENT - if #count = 1 then #Grp = #Grp + 1; - if #count // Break = 1 then START = ELEMENT - if #count // Break = 0 then STOP = ELEMENT - if #count // Break = 0 then TBLOUT= "TBLOUT" - if $tbl >= $tablerec.0 then STOP = ELEMENT - if $tbl >= $tablerec.0 then TBLOUT= "TBLOUT" - if $tbl >= $tablerec.0 then #count = #count + Break ; - GROUP = "GRP"#count % Break - JobChar = Substr(GROUP,Length(GROUP),1) -//TBLOUT DD DISP=MOD,DSN=&HLQ..ACMTABLE -//SYSTSPRT DD SYSOUT=* +// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, +// NOTIFY=&SYSUID +//*-------------------------------------------------------------------* +//* Setup job. --* +//* https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main/* +//* To run a PRINT and Scan on all your inventory would be too --* +//* much to expect. This job identifies inventory to scan and --* +//* breaks up the complete list into "groups" . --* +//*-------------------------------------------------------------------* +//*- Modify the SET statements ----------------------------------* +//*- Modify the TABLE of input components in BILDACM3 step ------* +//*- Modify the TABLE of input users in BILDACM9 step ------* +//*-------------------------------------------------------------------* +// JCLLIB ORDER=(YOURSITE.NDVR.TEAM.JCL) <-Where is STEPLIB incl +//*==================================================================* +// EXPORT SYMLIST=(*) +//*-------------------------------------------------------------------* +// SET HLQ=&SYSUID..ACM#BILD Intermediate files HLQ +// SET ENVMNT='PRD ' Environment to scan (8) +// SET STAGE='2' last stage in environment +// SET MODELLIB=&SYSUID..ACM#BILD.WORK <- WorkLib +// SET CSIQCLS0=YOUR.NDVR.CSIQCLS0 <-Where is ENBPIU00 +//*-------------------------------------------------------------------* +//*---- Remove files from last run -----------------------------------* +//*-------------------------------------------------------------------* +//CLEANUP EXEC PGM=IEFBR14 ACM#LOD1 +//SYSUT2 DD DSN=&HLQ..ACMTABLE, +// DISP=(MOD,DELETE,DELETE), +// UNIT=SYSALLDA,SPACE=(TRK,(01,01),RLSE), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS) +//SORTOUT DD DSN=&HLQ..ACM#LOAD.ELEMLIST, +// DISP=(MOD,DELETE,DELETE), +// UNIT=SYSDA,SPACE=(CYL,(5,5)), +// DCB=(RECFM=FB,LRECL=2000,BLKSIZE=24000) +//COMPONTS DD DSN=&HLQ..ACM#LOAD.COMPONTS, +// DISP=(MOD,DELETE,DELETE), +// UNIT=SYSALLDA,SPACE=(CYL,(01,01),RLSE), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//*-------------------------------------------------------------------* +//*---- Format and Save JCL variables --------------------------------* +//*-------------------------------------------------------------------* +//ENV@STG EXEC PGM=IRXJCL, ACM#LOD1 +// PARM='ENBPIU00 M &ENVMNT &STAGE' +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//TABLE DD * +* ENVMNT-- STAGE + * * +//OPTIONS DD * + ENVMNT_8 = Left(ENVMNT,8) +//MODEL DD * + ENVMNT = '&ENVMNT_8' + STAGE = '&STAGE' +//SYSTSPRT DD DUMMY +//TBLOUT DD DISP=SHR,DSN=&MODELLIB(ENV@STG) +//*-------------------------------------------------------------------* +//*---- Create a Header for the output Table--------------------------* +//*-------------------------------------------------------------------* +//HEADER EXEC PGM=IEBGENER ACM#LOD1 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD * +* Group Start Stop JobChar +//SYSUT2 DD DSN=&HLQ..ACMTABLE, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(TRK,(01,01),RLSE), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS) +//*-------------------------------------------------------------------* +//* +//*-This job must be tailored so that all element types which can ----* +//*-be considered as 'input components' in Endevor are listed in ----* +//*-the API program data. Element information for each type is ----* +//*-captured into these outputs: +//*- &HLQ..ACM#LOAD.COMPONTS a list of input components ----* +//*- &HLQ..ACM#LOAD.ELEMLIST is an temporary work dataset). ----* +//*- &HLQ..ENDEVOR.NOTES(ACMQLIST) a list of element groups ----* +//* Addition tailoring must be done for component users.--------------* +//*-------------------------------------------------------------------* +//*---- List elements of input-component Types 1/2 ------------------* +//*-------------------------------------------------------------------* +//BILDACM3 EXEC PGM=IRXJCL,PARM='ENBPIU00 A ' ' ACM#LOD1 +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//* List element types that might be input components +//TABLE DD * / +* TYPE---- + ASMMAC + COPYBOOK + COPY + MACRO + PROC +//OPTIONS DD *,SYMBOLS=JCLONLY + $nomessages = 'Y' + ENVMNT = Left('&ENVMNT',8) + STAGE="&STAGE" +//MODEL DD * +AACTL MSGFILE ELEMLIST +ALELM AA &ENVMNT * * &TYPE +RUN +//SYSTSIN DD DUMMY +//SYSTSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//TBLOUT DD DSN=&&INTYPES,DISP=(NEW,PASS), +// UNIT=SYSDA,SPACE=(TRK,(1,1)), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000) +//*-------------------------------------------------------------------* +//*-------------------------------------------------------------------* +//*---- List elements of input-component Types 2/2 ------------------* +//*-------------------------------------------------------------------* +//BILDACM4 EXEC PGM=NDVRC1,PARM='ENTBJAPI',REGION=4096K ACM#LOD1 +// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc +//MSGFILE DD SYSOUT=* +//ELEMLIST DD DSN=&HLQ..ACM#LOAD.ELEMLIST, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSDA,SPACE=(CYL,(20,20)), +// DCB=(RECFM=FB,LRECL=2000,BLKSIZE=24000) +//SYSINX DD * +***** ALELM = LIST ELEMENT STRUCTURE INFORMATION +* V - COLUMN 6 = PATH SETTING +* V - COLUMN 7 = RETURN SETTING +* V - COLUMN 8 = SEARCH SETTING +* V - COLUMN 9 = UNUSED +* VVVVVVVV - COLUMN 10-17 ENVIRONMENT NAME +* V - COLUMN 18 = STAGE ID +* VVVVVVVV - COLUMN 19-26 SYSTEM NAME +* VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME +* COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV +* COLUMN 45-52 = TYPE NAME VVVVVVVV +* COLUMN 53-60 = TO-ENV NAME VVVVVVVV +* COLUMN 61 = TO-STAGE ID V +* COLUMN 62-71 = THRU-ELEMENT NAME VVVVVVVVVV +*---+----1----+----2----+----3----+----4----+----5----+----6----+----7-- +//SYSIN DD DSN=&&INTYPES,DISP=(OLD,DELETE) +// DD * +AACTLY +RUN +QUIT +//SYSOUT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//BSTERR DD SYSOUT=* +//BSTAPI DD SYSOUT=* +//SYMDUMP DD DUMMY +//SYSUDUMP DD SYSOUT=* +//* +//* PRINT EXTRACTED ELEMENT +//SHOWME EXEC PGM=IEBGENER ACM#LOD1 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR +//SYSUT2 DD SYSOUT=* +//* +//*-------------------------------------------------------------------* +//*---- Write list of input-component elements into COMPONTS ----* +//*-------------------------------------------------------------------* +//BILDACM6 EXEC PGM=IRXJCL,PARM='ENBPIU00 A ' ACM#LOD1 +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//OPTIONS DD * + $nomessages = 'Y' + MODEL = "MODELC" + TBLOUT= "COMPONTS" + COMPLINE = COPIES(" ",80) + COMPLINE = OVERLAY(ELEMENT,COMPLINE,01); + COMPLINE = OVERLAY(SYSTEM,COMPLINE,12); + COMPLINE = OVERLAY(SUBSYS,COMPLINE,22); + COMPLINE = OVERLAY(TYPE,COMPLINE,32); + COMPLINE = OVERLAY(EDLT_DATE,COMPLINE,42); + COMPLINE = OVERLAY(GEN_DATE,COMPLINE,52); + COMPLINE = OVERLAY(GEN_TIME,COMPLINE,62); + COMPLINE = OVERLAY(ENV,COMPLINE,73); + COMPLINE = OVERLAY(STG_NUM,COMPLINE,83); +//MODELC DD * + &COMPLINE +//POSITION DD * + ALELM_RS_EDLT_CCID 333 344 + ALELM_RS_LACT_CCID 156 167 + ELEMENT 39 48 + ENV 15 22 + STG_NUM 66 66 + SYSTEM 23 30 + SUBSYS 31 38 + TYPE 49 56 + EDLT_DATE 301 308 + GEN_DATE 578 585 + GEN_TIME 586 593 +//SYSTSIN DD DUMMY +//TABLE DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=(OLD,DELETE) +//NOTHING DD SYSOUT=* +//SKIPPING DD DUMMY +//COMPONTS DD DSN=&HLQ..ACM#LOAD.COMPONTS, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(01,01),RLSE), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//* +//SYSTSPRT DD SYSOUT=* +//*------------------------------------------------------------------- +//* SORT COMPONENT LIST * +//*------------------------------------------------------------------- +//BILDACM7 EXEC PGM=SORT,COND=(4,LT) ACM#LOD1 +//SYSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//SYSOUT DD SYSOUT=* +//SORTIN DD DISP=SHR,DSN=&HLQ..ACM#LOAD.COMPONTS +//SORTOUT DD DISP=SHR,DSN=&HLQ..ACM#LOAD.COMPONTS +//SYSIN DD * + SORT FIELDS=(002,10,CH,A,32,9,CH,A) +//* +//*-------------------------------------------------------------------* +//* IDENTIFY component user elements 1/2 * +//*-------------------------------------------------------------------* +//BILDACM9 EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST' ACM#LOD1 +//PARMLIST DD * + MODEL1 TBLOUT1 OPTIONS A + MODEL2 TBLOUT2 OPTIONS A +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//* List element types that might use input components +//TABLE DD * / +* TYPE---- + COBOL + COBPGM + ASM + ASMPGM + JCL +//OPTIONS DD *,SYMBOLS=JCLONLY + $nomessages = 'Y' + ENVMNT = Left('&ENVMNT',8) + STAGE="&STAGE" +//MODEL1 DD * +AACTL MSGFILE ELEMLIST +ALELM AA &ENVMNT * * &TYPE +RUN +//MODEL2 DD * + UserType.&TYPE = 'Y' +//SYSTSIN DD DUMMY +//SYSTSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//TBLOUT2 DD DSN=&HLQ..ACM#LOAD.USERTYPS, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(01,01),RLSE), +// DCB=(RECFM=FB,LRECL=080,BLKSIZE=0,DSORG=PS) +//* +//TBLOUT1 DD DSN=&&TYPES,DISP=(NEW,PASS), +// UNIT=SYSDA,SPACE=(TRK,(1,1)), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000) +//*-------------------------------------------------------------------* +//* IDENTIFY component user elements 2/2 * +//*-------------------------------------------------------------------* +//BILDACMA EXEC PGM=NDVRC1,PARM='ENTBJAPI',REGION=4096K ACM#LOD1 +// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc +//MSGFILE DD SYSOUT=* +//ELEMLIST DD DSN=&HLQ..ACM#LOAD.ELEMLIST, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSDA,SPACE=(CYL,(5,5)), +// DCB=(RECFM=FB,LRECL=2000,BLKSIZE=24000) +//SYSINX DD * +***** ALELM = LIST ELEMENT STRUCTURE INFORMATION +* V - COLUMN 6 = PATH SETTING +* V - COLUMN 7 = RETURN SETTING +* V - COLUMN 8 = SEARCH SETTING +* V - COLUMN 9 = UNUSED +* VVVVVVVV - COLUMN 10-17 ENVIRONMENT NAME +* V - COLUMN 18 = STAGE ID +* VVVVVVVV - COLUMN 19-26 SYSTEM NAME +* VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME +* COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV +* COLUMN 45-52 = TYPE NAME VVVVVVVV +* COLUMN 53-60 = TO-ENV NAME VVVVVVVV +* COLUMN 61 = TO-STAGE ID V +* COLUMN 62-71 = THRU-ELEMENT NAME VVVVVVVVVV +//SYSIN DD DSN=&&TYPES,DISP=(OLD,DELETE) +// DD * +AACTLY +RUN +QUIT +//SYSOUT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//BSTERR DD SYSOUT=* +//BSTAPI DD SYSOUT=* +//SYMDUMP DD DUMMY +//SYSUDUMP DD SYSOUT=* +//* +//* PRINT EXTRACTED ELEMENT +//SHOWA2 EXEC PGM=IEBGENER ACM#LOD1 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR +//SYSUT2 DD SYSOUT=* +//* +//*------------------------------------------------------------------- +//* SORT element user list * +//********************************************************************* +//BILDACMB EXEC PGM=SORT,COND=(4,LT) ACM#LOD1 +//SYSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//SYSOUT DD SYSOUT=* +//SORTIN DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR +//SORTOUT DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR +//SYSIN DD * + SORT FIELDS=(039,10,CH,A) +//* +//*-------------------------------------------------------------------* +//* Create Table of element Groups in &HLQ..ACMTABLE +//*-------------------------------------------------------------------* +//BILDACMC EXEC PGM=IRXJCL,PARM='ENBPIU00 A ' ACM#LOD1 +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//TABLE DD DSN=&HLQ..ACM#LOAD.ELEMLIST,DISP=SHR +//MODEL DD * + &GROUP &START &STOP &JobChar +//POSITION DD * + ELEMENT 39 48 +//SYSTSIN DD DUMMY +//NOTHING DD DUMMY +//OPTIONS DD * + $nomessages = 'Y' + lastrecord = $tablerec.0 + Break = 30 + if $row# = 0 then $SkipRow='Y'; + BreakTime = $row# // Break + if BreakTime = 1 then START = ELEMENT + if $row# >= lastrecord then BreakTime = 0 + Say '&row#='$row# '$row#//Break='BreakTime 'lastrecord='lastrecord + if BreakTime > 0 then $SkipRow='Y' + STOP = ELEMENT; + GROUP = "GRP" || ($row# % Break) + if $row# >= lastrecord then, + + GROUP = "GRP" || ($row# + Break) % Break + JobChar = Substr(GROUP,Length(GROUP),1) +//TBLOUT DD DISP=MOD,DSN=&HLQ..ACMTABLE +//SYSTSPRT DD SYSOUT=* diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD2.jcl b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD2.jcl index 739327c..1795f06 100644 --- a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD2.jcl +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD2.jcl @@ -1,39 +1,45 @@ //IBMUSERB JOB (0000), JOB01236 -// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, -// NOTIFY=&SYSUID -//*-------------------------------------------------------------------* -//* Submit ACM collection in 'Group's of Inventory ranges ------------* -//*- Modify the SET statements ----------------------------------* -//*-------------------------------------------------------------------* -// SET HLQ=&SYSUID..ACM#BILD Intermediate files HLQ -// SET MODELLIB=&SYSUID..ACM#BILD.WORK <-Where are ACM#* -// SET CSIQCLS0=CARSMINI.NDVR.R1801.CSIQCLS0 <-Where is ENBPIU00 -//*----------- example values for SELECT.... -// SET SELECT='10 ' <- Submit 10 groups -// SET SELECT='A ' <- Submit all groups -// SET SELECT='M GRP10' <- Submit only GRP10 -//*-------------------------------------------------------------------* -//* COLLECT ACMQ RELATIONSHIPS FOR NON-GENERATED ELEMENTS IN PROD -//*-------------------------------------------------------------------* -//*- &HLQ..ACM#LOAD.COMPONTS a list of input components ----* -//*- &HLQ..ACM#LOAD.ELEMLIST is CSV data of component users ----* -//*-------------------------------------------------------------------* -//*--------Set parameter --------->>>>>>>> <<<<<<<----------------* -//BILDACM2 EXEC PGM=IRXJCL,PARM='ENBPIU00 &SELECT ' ACM#LOD2 -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//MODEL DD DISP=SHR,DSN=&MODELLIB(ACM#LOD3) -//*--Table is created by ACM#LOD1 -//TABLE DD DISP=SHR,DSN=&HLQ..ACMTABLE -//OPTIONS DD DISP=SHR,DSN=&MODELLIB(ENV@STG) -// DD * - $nomessages = 'Y' - $delimiter = '\' - CCID = '*' - Start010 = Left(Start,9) - Userid = USERID() ; -//SYSTSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//DISPLAYS DD SYSOUT=* -//SYSTSIN DD DUMMY -//TBLOUTX DD SYSOUT=* -//TBLOUT DD SYSOUT=(A,INTRDR),LRECL=80,BLKSIZE=80 +// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, +// NOTIFY=&SYSUID +//*-------------------------------------------------------------------* +//* https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main/* +//* Submit the PRINT and scan actions on one or more groups. --------* +//* The value of SELECT specifies groups to run. See examples.--------* +//*- Modify the SET statements ----------------------------------* +//* For each selected group, ACM#LOD3 is used as the MODEL --------* +//* for a submitted job. --------* +//*-------------------------------------------------------------------* +//*-------------------------------------------------------------------* +//*-------------------------------------------------------------------* +// SET HLQ=&SYSUID..ACM#BILD Intermediate files HLQ +// SET MODELLIB=&SYSUID..ACM#BILD.WORK <- WorkLib +// SET CSIQCLS0=YOUR.NDVR.CSIQCLS0 <-Where is ENBPIU00 +//*----------- example values for SELECT.... +// SET SELECT='10 ' <- Submit 10 groups +// SET SELECT='A ' <- Submit all groups +// SET SELECT='M GRP4' <- Submit only GRP4 +//*-------------------------------------------------------------------* +//* COLLECT ACMQ RELATIONSHIPS FOR NON-GENERATED ELEMENTS IN PROD +//*-------------------------------------------------------------------* +//*- &HLQ..ACM#LOAD.COMPONTS a list of input components ----* +//*- &HLQ..ACM#LOAD.ELEMLIST is CSV data of component users ----* +//*-------------------------------------------------------------------* +//*--------Set parameter --------->>>>>>>> <<<<<<<----------------* +//BILDACM2 EXEC PGM=IRXJCL,PARM='ENBPIU00 &SELECT ' ACM#LOD2 +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//MODEL DD DISP=SHR,DSN=&MODELLIB(ACM#LOD3) +//*--Table is created by ACM#LOD1 +//TABLE DD DISP=SHR,DSN=&HLQ..ACMTABLE +//OPTIONS DD DISP=SHR,DSN=&MODELLIB(ENV@STG) +// DD * + $nomessages = 'Y' + $delimiter = '\' + CCID = '*' + Start010 = Left(Start,9) + Userid = USERID() ; +//SYSTSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//DISPLAYS DD SYSOUT=* +//SYSTSIN DD DUMMY +//TBLOUTX DD SYSOUT=* +//TBLOUT DD SYSOUT=(A,INTRDR),LRECL=80,BLKSIZE=80 diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD3.skl b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD3.skl index bbd41c7..4e107b2 100644 --- a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD3.skl +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#LOD3.skl @@ -1,308 +1,312 @@ -//IBMUSER&JobChar JOB (0000), -// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, -// NOTIFY=&SYSUID -//*-------------------------------------------------------------------* -//* Submit ACM collection for one 'Group' of Inventory range ---------* -//*- Modify the SET statements ----------------------------------* -//*- Submitted by ACM#LOD2 ----------------------------------* -//*-------------------------------------------------------------------* -// JCLLIB ORDER=(SYSMD32.NDVR.TEAM.JCL) <-Where is STEPLIB incl -//*==================================================================* -// EXPORT SYMLIST=(*) -//*-------------------------------------------------------------------* -// SET HLQ=&SYSUID..ACM#BILD Intermediate files HLQ -// SET MODELLIB=&SYSUID..ACM#BILD.WORK <-Where are ACM#* -// SET CSIQCLS0=CARSMINI.NDVR.R1801.CSIQCLS0 <-Where is ENBPIU00 -//*----------- -// SET ACMROOT=SYSMD32.NDVR.ACMROOT <-Name of ACMROOT -// SET ACMXREF=SYSMD32.NDVR.ACMXREF <-Name of ACMXREF -// SET GROUP=&Group. -//*-------------------------------------------------------------------* -//*-------------------------------------------------------------------* -//* SET START=&Start -//* SET STOP=&Stop -//*-------------------------------------------------------------------* -//* COLLECT ACMQ RELATIONSHIPS FOR NON-GENERATED ELEMENTS IN PROD -//*-------------------------------------------------------------------* -//STEP0 EXEC PGM=IEFBR14 ACM#LOD3 -//ACMQLIST DD DISP=(MOD,DELETE,DELETE), -// DSN=&HLQ..&GROUP.ACMQLIST, -// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), -// DCB=(RECFM=FB,LRECL=90,BLKSIZE=0,DSORG=PS) -//ACMQOUT DD DISP=(MOD,DELETE,DELETE), -// DSN=&HLQ..&GROUP.ACMQOUT, -// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), -// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0,DSORG=PS) -//MERGED DD DISP=(MOD,DELETE,DELETE), -// DSN=&HLQ..&GROUP.MERGED, -// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), -// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) -//SAVEPDS DD DISP=(MOD,DELETE,DELETE), -// DSN=&HLQ..&GROUP.SAVEPDS, -// UNIT=SYSALLDA,SPACE=(CYL,(30,30,900),RLSE), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PO) -//*-------------------------------------------------------------------* -//********************************************************************* -//* IDENTIFY WHICH ELEMENTS HAVE NO GENERATE DATE * -//********************************************************************* -//*-------------------------------------------------------------------* -//STEP1 EXEC PGM=NDVRC1,PARM='ENTBJAPI',REGION=4096K ACM#LOD3 -// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc -//SYSPRINT DD SYSOUT=* -//BSTERR DD SYSOUT=* -//BSTAPI DD SYSOUT=* -//SYMDUMP DD DUMMY -//SYSUDUMP DD SYSOUT=* -//MSGFILE DD SYSOUT=* -//ELEMLIST DD DSN=&&EXTRACT,DISP=(NEW,PASS), -// UNIT=SYSDA,SPACE=(CYL,(5,5)), -// DCB=(RECFM=VB,LRECL=2048,BLKSIZE=22800) -//SYSIN DD * -*---+----1----+----2----+----3----+----4----+----5----+----6----+----7-- -***** ALELM = LIST ELEMENT STRUCTURE INFORMATION -* V - COLUMN 6 = PATH SETTING -* V - COLUMN 7 = RETURN SETTING -* V - COLUMN 8 = SEARCH SETTING -* = ' ' FOR FIRST -* = 'A' FOR ALL -* = 'B' FOR BETWEEN -* = 'E' FOR NEXT -* = 'N' FOR NO -* = 'R' FOR RANGE -* V - COLUMN 9 = UNUSED -* VVVVVVVV - COLUMN 10-17 ENVIRONMENT NAME -* V - COLUMN 18 = STAGE ID -* VVVVVVVV - COLUMN 19-26 SYSTEM NAME -* VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME -* COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV -* COLUMN 45-52 = TYPE NAME VVVVVVVV -* COLUMN 53-60 = TO-ENV NAME VVVVVVVV -* COLUMN 61 = TO-STAGE ID V -* COLUMN 62-71 = THRU-ELEMENT NAME VVVVVVVVVV -* NOTE: IF BETWEEN/RANGE SETTINGS ARE USED, YOU NEED TO SPECIFY -* TO-ENV AND TO-STAGE, OTHERWISE LEAVE BLANK. -*---+----1----+----2----+----3----+----4----+----5----+----6----+----7-- -AACTL MSGFILE ELEMLIST -ALELM AR &ENVMNT\** * &Start010 * &ENVMNT\&STAGE\&Stop -RUN -AACTLY -RUN -QUIT -//* -//* PRINT EXTRACTED ELEMENT -//SHOW2 EXEC PGM=IEBGENER,COND=(0,LE) ACM#LOD3 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DSN=&&EXTRACT,DISP=(OLD,PASS) -//SYSUT2 DD SYSOUT=* -//* -//****************************************************************** -//NOTGEND EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST' ACM#LOD3 -//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 -//PARMLIST DD * - NOTHING SKIPPING USERTYPS 0 - MODEL TBLOUT OPTIONS A -//USERTYPS DD DSN=&HLQ..ACM#LOAD.USERTYPS,DISP=SHR -//OPTIONS DD * - IF $row# = 0 then $my_rc = 5 ; - $nomessages = 'Y' - MODEL = "SHOWME" - TBLOUT= "NOTHING" - IF UserType.TYPE = 'Y' THEN TBLOUT= "COMPUSER" - IF UserType.TYPE = 'Y' THEN MODEL = "MODELU" - IF ELEMENT < "&Start" THEN MODEL = "SKIPPING" - IF ELEMENT > "&Stop" THEN MODEL = "SKIPPING" - COMPLINE = COPIES(" ",80) - COMPLINE = OVERLAY(ELEMENT,COMPLINE,01); - COMPLINE = OVERLAY(SYSTEM,COMPLINE,12); - COMPLINE = OVERLAY(SUBSYS,COMPLINE,22); - COMPLINE = OVERLAY(TYPE,COMPLINE,32); - COMPLINE = OVERLAY(EDLT_DATE,COMPLINE,42); - COMPLINE = OVERLAY(GEN_DATE,COMPLINE,52); - COMPLINE = OVERLAY(GEN_TIME,COMPLINE,62); - COMPLINE = OVERLAY(ENV,COMPLINE,73); - COMPLINE = OVERLAY(STG_NUM,COMPLINE,83); - IF MODEL="MODELU" & GEN_DATE>'00000000' then $SkipRow='Y' - IF MODEL = "MODELU" THEN $my_rc = 1 ; -//MODELU DD * - PRINT ELEMENT &ELEMENT - FROM ENVIRONMENT &ENV STAGE NUMBER &STG_NUM - SYSTEM &SYSTEM SUBSYSTEM &SUBSYS TYPE &TYPE - TO FILE ACMCOMP -**** WHERE CCID = '&ALELM_RS_EDLT_CCID' &GEN_DATE - OPTIONS NOCC BROWSE . -//SHOWME DD * - PRINT ELEMENT &ELEMENT - FROM ENVIRONMENT &ENV STAGE NUMBER &STG_NUM - SYSTEM &SYSTEM SUBSYSTEM &SUBSYS TYPE &TYPE . -//POSITION DD * - ALELM_RS_EDLT_CCID 333 344 - ALELM_RS_LACT_CCID 156 167 - ELEMENT 39 48 - ENV 15 22 - STG_NUM 66 66 - SYSTEM 23 30 - SUBSYS 31 38 - TYPE 49 56 - EDLT_DATE 301 308 - GEN_DATE 578 585 - GEN_TIME 586 593 -//SYSTSIN DD DUMMY -//TABLE DD DSN=&&EXTRACT,DISP=(OLD,DELETE) -//NOTHING DD DUMMY -//SKIPPING DD DUMMY -//SYSEXEC DD DISP=SHR,DSN=&MODELLIB -//* -//COMPUSER DD DSN=&&COMPUSER,DISP=(MOD,PASS), -// UNIT=SYSDA,SPACE=(TRK,(5,5)), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=24000) -//SYSTSPRT DD SYSOUT=* -//* -//********************************************************************* -//* PRINT SCL -//SHOWSCL EXEC PGM=IEBGENER,COND=(4,LT) ACM#LOD3 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DSN=&&COMPUSER,DISP=(OLD,PASS) -//SYSUT2 DD SYSOUT=* -//* -//********************************************************************* -//** EXTRACT ACM COMPONENT INFORMATION FROM ENDEVOR ** -//********************************************************************* -//NDVRACMQ EXEC PGM=NDVRC1,DYNAMNBR=1500,PARM='C1BM3000', ACM#LOD3 -// COND=(4,LT), -// REGION=4096K -// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc -//* -//C1MSGS1 DD SYSOUT=* MESSAGE OUTPUT -//C1PRINT DD SYSOUT=* PRINT ACTION FILE -//SYSOUT DD SYSOUT=* -//ACMCOMPX DD SYSOUT=* -//ACMCOMP DD DSN=&&ACMCOMP, -// DISP=(NEW,PASS), -// UNIT=SYSALLDA,SPACE=(CYL,(100,50),RLSE), -// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0,DSORG=PS) -//BSTIPT01 DD * -SET TO FILE ACMCOMP . -SET OPTIONS NOCC BROWSE . -SET FROM ENVIRONMENT PROD STAGE P . -// DD DSN=&&COMPUSER,DISP=(OLD,DELETE) -//* -//********************************************************************* -//********************************************************************* -//SAVEPDS EXEC PGM=IEFBR14, ACM#LOD3 -// COND=(4,LT) -//PDS DD DSN=&HLQ..&GROUP.SAVEPDS, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(CYL,(30,30,900),RLSE), -// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PO) -//********************************************************************* -//* PRINT ENDEVOR OUTPUT -//SHOW1 EXEC PGM=IEBGENER,COND=(0,LE) ACM#LOD3 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DSN=&&ACMCOMP,DISP=(OLD,PASS) -//SYSUT2 DD SYSOUT=* -//* -//********************************************************************* -//ACM#PREP EXEC PGM=IKJEFT1B,COND=(4,LT),REGION=40M, ACM#LOD3 -// PARM='ACM#REX1 &HLQ..&GROUP.SAVEPDS' -//* IBMUSER.REXX(ACM#REX1) -//SYSPRINT DD SYSOUT=* -//SYSTSIN DD DUMMY -//SYSTSPRT DD SYSOUT=* -//SYSEXEC DD DISP=SHR,DSN=&MODELLIB -//ACMCOMP DD DSN=&&ACMCOMP,DISP=(OLD,DELETE) -//ACMCOMP2 DD SYSOUT=* -//ACMQLIST DD DSN=&HLQ..&GROUP.ACMQLIST, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), -// DCB=(RECFM=FB,LRECL=90,BLKSIZE=0,DSORG=PS) -//*------------------------------------------------------------------- -//* SORT ACMQLIST LIST * -//********************************************************************* -//* -//SORTACMQ EXEC PGM=SORT,COND=(4,LT) ACM#LOD3 -//SYSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//SYSOUT DD SYSOUT=* -//SORTIN DD DISP=SHR,DSN=&HLQ..&GROUP.ACMQLIST -//SORTOUT DD DISP=SHR,DSN=&HLQ..&GROUP.ACMQLIST -//SYSIN DD * - SORT FIELDS=(015,10,CH,A,30,9,CH,A) -//* -//********************************************************************* -//* PRINT ACMQLIST -//SHOW1 EXEC PGM=IEBGENER,COND=(4,LT) ACM#LOD3 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DISP=SHR,DSN=&HLQ..&GROUP.ACMQLIST -//SYSUT2 DD SYSOUT=* -//* -//********************************************************************* -//* MERGE ACMQLIST WITH COMPONTS (FROM A PREVIOUS STEP) -//********************************************************************* -//**** IBMUSER.REXX(ACM#MERG) -//MERGE EXEC PGM=IRXJCL,PARM='ACM#MERG',COND=(4,LT) ACM#LOD3 -//ACMQLIST DD DSN=&HLQ..&GROUP.ACMQLIST,DISP=SHR -//COMPONTS DD DSN=&HLQ..ACM#LOAD.COMPONTS,DISP=SHR -//SYSEXEC DD DISP=SHR,DSN=&MODELLIB -//SYSTSPRT DD SYSOUT=* -//MERGED DD DSN=&HLQ..&GROUP.MERGED, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), -// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) -//*------------------------------------------------------------------- -//* SORT MERGED LIST * -//********************************************************************* -//SORTACMQ EXEC PGM=SORT,COND=(4,LT) ACM#LOD3 -//SYSPRT DD SYSOUT=* -//SYSPRINT DD SYSOUT=* -//SYSOUT DD SYSOUT=* -//SORTIN DD DISP=SHR,DSN=&HLQ..&GROUP.MERGED -//SORTOUT DD DISP=SHR,DSN=&HLQ..&GROUP.MERGED -//SYSIN DD * - SORT FIELDS=(085,10,CH,A,01,10,CH,A) -//********************************************************************* -//* Show relationships found -//SHOWRSLT EXEC PGM=IEBGENER,COND=(0,LE) ACM#LOD3 -//SYSPRINT DD DUMMY -//SYSIN DD DUMMY -//SYSUT1 DD DISP=SHR,DSN=&HLQ..&GROUP.MERGED -//SYSUT2 DD SYSOUT=* -//********************************************************************* -//ACM#OUT EXEC PGM=IKJEFT1B,COND=(4,LT), ACM#LOD3 -// PARM='ACM#REX2 &HLQ..&GROUP.SAVEPDS' -//**** IBMUSER.REXX(ACM#REX2) -//SYSPRINT DD SYSOUT=* -//SYSTSIN DD DUMMY -//SYSTSPRT DD SYSOUT=* -//SYSEXEC DD DISP=SHR,DSN=&MODELLIB -//*ERGED DD DSN=&&MERGED,DISP=(OLD,DELETE) -//MERGED DD DSN=&HLQ..&GROUP.MERGED,DISP=SHR -//ACMQOUT DD DSN=&HLQ..&GROUP.ACMQOUT, -// DISP=(MOD,CATLG,KEEP), -// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), -// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0,DSORG=PS) -//********************************************************************* -//** POPULATE THE ACM EXTENDED QUERY ROOT AND INDEX DATA SETS ** -//********************************************************************* -//LOAD EXEC PGM=NDVRC1,PARM='BC1PACMOMODE=OPT', ACM#LOD3 -// COND=(4,LT) -// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc -//* -//SYSPRINT DD SYSOUT=* -//ACMMSGS1 DD SYSOUT=* -//SYSOUT DD SYSOUT=* -//ACMCOMP DD DSN=&HLQ..&GROUP.ACMQOUT,DISP=SHR -//ROOT DD DISP=SHR,DSN=&ACMROOT -//XREF DD DISP=SHR,DSN=&ACMXREF -//********************************************************************* -//*--and remove work files -* -//********************************************************************* -//DELETE EXEC PGM=IEFBR14,COND=(0,LE) / COND=(5,LT) ACM#LOD3 -//ACMQLIST DD DSN=&HLQ..&GROUP.ACMQLIST,DISP=(OLD,DELETE) -//ACMQOUT DD DSN=&HLQ..&GROUP.ACMQOUT,DISP=(OLD,DELETE) -//*MERGED DD DSN=&HLQ..&GROUP.MERGED,DISP=(OLD,DELETE) -//SAVEPDS DD DSN=&HLQ..&GROUP.SAVEPDS,DISP=(OLD,DELETE) -//********************************************************************* +//IBMUSER&JobChar JOB (0000), +// 'ENDEVOR JOB',MSGLEVEL=(1,1),CLASS=B,REGION=0M,MSGCLASS=A, +// NOTIFY=&SYSUID +//*-------------------------------------------------------------------* +//* https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main/* +//* Submit ACM collection for one 'Group' of Inventory range ---------* +//* This memeber is the "MODEL" JCL that PRINTS and scans ---------* +//* Endevor inventory to create ACM information. ---------* +//*- Modify the SET statements ----------------------------------* +//*- Submitted by ACM#LOD2 ----------------------------------* +//*-------------------------------------------------------------------* +// JCLLIB ORDER=(YOURSITE.NDVR.TEAM.JCL) <-Where is STEPLIB incl +//*==================================================================* +// EXPORT SYMLIST=(*) +//*-------------------------------------------------------------------* +// SET HLQ=&SYSUID..ACM#BILD Intermediate files HLQ +// SET MODELLIB=&SYSUID..ACM#BILD.WORK <- WorkLib +// SET CSIQCLS0=YOUR.NDVR.CSIQCLS0 <-Where is ENBPIU00 +//*----------- +// SET ACMROOT=YOURSITE.NDVR.ACMROOT <-Name of ACMROOT +// SET ACMXREF=YOURSITE.NDVR.ACMXREF <-Name of ACMXREF +// SET GROUP=&Group. +//*-------------------------------------------------------------------* +//*-------------------------------------------------------------------* +//* SET START=&Start +//* SET STOP=&Stop +//*-------------------------------------------------------------------* +//* COLLECT ACMQ RELATIONSHIPS FOR NON-GENERATED ELEMENTS IN PROD +//*-------------------------------------------------------------------* +//STEP0 EXEC PGM=IEFBR14 ACM#LOD3 +//ACMQLIST DD DISP=(MOD,DELETE,DELETE), +// DSN=&HLQ..&GROUP.ACMQLIST, +// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), +// DCB=(RECFM=FB,LRECL=90,BLKSIZE=0,DSORG=PS) +//ACMQOUT DD DISP=(MOD,DELETE,DELETE), +// DSN=&HLQ..&GROUP.ACMQOUT, +// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), +// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0,DSORG=PS) +//MERGED DD DISP=(MOD,DELETE,DELETE), +// DSN=&HLQ..&GROUP.MERGED, +// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//SAVEPDS DD DISP=(MOD,DELETE,DELETE), +// DSN=&HLQ..&GROUP.SAVEPDS, +// UNIT=SYSALLDA,SPACE=(CYL,(30,30,900),RLSE), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PO) +//*-------------------------------------------------------------------* +//********************************************************************* +//* IDENTIFY WHICH ELEMENTS HAVE NO GENERATE DATE * +//********************************************************************* +//*-------------------------------------------------------------------* +//STEP1 EXEC PGM=NDVRC1,PARM='ENTBJAPI',REGION=4096K ACM#LOD3 +// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc +//SYSPRINT DD SYSOUT=* +//BSTERR DD SYSOUT=* +//BSTAPI DD SYSOUT=* +//SYMDUMP DD DUMMY +//SYSUDUMP DD SYSOUT=* +//MSGFILE DD SYSOUT=* +//ELEMLIST DD DSN=&&EXTRACT,DISP=(NEW,PASS), +// UNIT=SYSDA,SPACE=(CYL,(5,5)), +// DCB=(RECFM=VB,LRECL=2048,BLKSIZE=22800) +//SYSIN DD * +*---+----1----+----2----+----3----+----4----+----5----+----6----+----7-- +***** ALELM = LIST ELEMENT STRUCTURE INFORMATION +* V - COLUMN 6 = PATH SETTING +* V - COLUMN 7 = RETURN SETTING +* V - COLUMN 8 = SEARCH SETTING +* = ' ' FOR FIRST +* = 'A' FOR ALL +* = 'B' FOR BETWEEN +* = 'E' FOR NEXT +* = 'N' FOR NO +* = 'R' FOR RANGE +* V - COLUMN 9 = UNUSED +* VVVVVVVV - COLUMN 10-17 ENVIRONMENT NAME +* V - COLUMN 18 = STAGE ID +* VVVVVVVV - COLUMN 19-26 SYSTEM NAME +* VVVVVVVV - COLUMN 27-34 SUBSYSTEM NAME +* COLUMN 35-44 = ELEMENT NAME VVVVVVVVVV +* COLUMN 45-52 = TYPE NAME VVVVVVVV +* COLUMN 53-60 = TO-ENV NAME VVVVVVVV +* COLUMN 61 = TO-STAGE ID V +* COLUMN 62-71 = THRU-ELEMENT NAME VVVVVVVVVV +* NOTE: IF BETWEEN/RANGE SETTINGS ARE USED, YOU NEED TO SPECIFY +* TO-ENV AND TO-STAGE, OTHERWISE LEAVE BLANK. +*---+----1----+----2----+----3----+----4----+----5----+----6----+----7-- +AACTL MSGFILE ELEMLIST +ALELM AA &ENVMNT\** * &Start010 * &ENVMNT\&STAGE\&Stop +RUN +AACTLY +RUN +QUIT +//* +//* PRINT EXTRACTED ELEMENT +//SHOW2 EXEC PGM=IEBGENER COND=(0,LE) ACM#LOD3 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DSN=&&EXTRACT,DISP=(OLD,PASS) +//SYSUT2 DD SYSOUT=* +//* +//****************************************************************** +//NOTGEND EXEC PGM=IRXJCL,PARM='ENBPIU00 PARMLIST' ACM#LOD3 +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 +//PARMLIST DD * + NOTHING SKIPPING USERTYPS 0 + MODEL TBLOUT OPTIONS A +//USERTYPS DD DSN=&HLQ..ACM#LOAD.USERTYPS,DISP=SHR +//OPTIONS DD * + IF $row# = 0 then $my_rc = 5 ; + $nomessages = 'Y' + MODEL = "SHOWME" + TBLOUT= "NOTHING" + IF UserType.TYPE = 'Y' THEN TBLOUT= "COMPUSER" + IF UserType.TYPE = 'Y' THEN MODEL = "MODELU" + IF ELEMENT < "&Start" THEN MODEL = "SKIPPING" + IF ELEMENT > "&Stop" THEN MODEL = "SKIPPING" + COMPLINE = COPIES(" ",80) + COMPLINE = OVERLAY(ELEMENT,COMPLINE,01); + COMPLINE = OVERLAY(SYSTEM,COMPLINE,12); + COMPLINE = OVERLAY(SUBSYS,COMPLINE,22); + COMPLINE = OVERLAY(TYPE,COMPLINE,32); + COMPLINE = OVERLAY(EDLT_DATE,COMPLINE,42); + COMPLINE = OVERLAY(GEN_DATE,COMPLINE,52); + COMPLINE = OVERLAY(GEN_TIME,COMPLINE,62); + COMPLINE = OVERLAY(ENV,COMPLINE,73); + COMPLINE = OVERLAY(STG_NUM,COMPLINE,83); + IF MODEL="MODELU" & GEN_DATE>'00000000' then $SkipRow='Y' +* IF MODEL="MODELU" & GEN_DATE>'00000000' then $SkipRow='Y' + IF MODEL = "MODELU" THEN $my_rc = 1 ; +//MODELU DD * + PRINT ELEMENT &ELEMENT + FROM ENVIRONMENT &ENV STAGE NUMBER &STG_NUM + SYSTEM &SYSTEM SUBSYSTEM &SUBSYS TYPE &TYPE + TO FILE ACMCOMP +**** WHERE CCID = '&ALELM_RS_EDLT_CCID' &GEN_DATE + OPTIONS NOCC BROWSE . +//SHOWME DD * + PRINT ELEMENT &ELEMENT + FROM ENVIRONMENT &ENV STAGE NUMBER &STG_NUM + SYSTEM &SYSTEM SUBSYSTEM &SUBSYS TYPE &TYPE . +//POSITION DD * + ALELM_RS_EDLT_CCID 333 344 + ALELM_RS_LACT_CCID 156 167 + ELEMENT 39 48 + ENV 15 22 + STG_NUM 66 66 + SYSTEM 23 30 + SUBSYS 31 38 + TYPE 49 56 + EDLT_DATE 301 308 + GEN_DATE 578 585 + GEN_TIME 586 593 +//SYSTSIN DD DUMMY +//TABLE DD DSN=&&EXTRACT,DISP=(OLD,DELETE) +//NOTHING DD DUMMY +//SKIPPING DD DUMMY +//SYSEXEC DD DISP=SHR,DSN=&MODELLIB +//* +//COMPUSER DD DSN=&&COMPUSER,DISP=(MOD,PASS), +// UNIT=SYSDA,SPACE=(TRK,(5,5)), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=24000) +//SYSTSPRT DD SYSOUT=* +//* +//********************************************************************* +//* PRINT SCL +//SHOWSCL EXEC PGM=IEBGENER,COND=(4,LT) ACM#LOD3 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DSN=&&COMPUSER,DISP=(OLD,PASS) +//SYSUT2 DD SYSOUT=* +//* +//********************************************************************* +//** EXTRACT ACM COMPONENT INFORMATION FROM ENDEVOR ** +//********************************************************************* +//NDVRACMQ EXEC PGM=NDVRC1,DYNAMNBR=1500,PARM='C1BM3000', ACM#LOD3 +// COND=(4,LT), +// REGION=4096K +// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc +//* +//C1MSGS1 DD SYSOUT=* MESSAGE OUTPUT +//C1PRINT DD SYSOUT=* PRINT ACTION FILE +//SYSOUT DD SYSOUT=* +//ACMCOMPX DD SYSOUT=* +//ACMCOMP DD DSN=&&ACMCOMP, +// DISP=(NEW,PASS), +// UNIT=SYSALLDA,SPACE=(CYL,(100,50),RLSE), +// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0,DSORG=PS) +//BSTIPT01 DD * +SET TO FILE ACMCOMP . +SET OPTIONS NOCC BROWSE . +SET FROM ENVIRONMENT PROD STAGE P . +// DD DSN=&&COMPUSER,DISP=(OLD,DELETE) +//* +//********************************************************************* +//********************************************************************* +//SAVEPDS EXEC PGM=IEFBR14, ACM#LOD3 +// COND=(4,LT) +//PDS DD DSN=&HLQ..&GROUP.SAVEPDS, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(30,30,900),RLSE), +// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PO) +//********************************************************************* +//* PRINT ENDEVOR OUTPUT +//SHOW1 EXEC PGM=IEBGENER,COND=(0,LE) ACM#LOD3 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DSN=&&ACMCOMP,DISP=(OLD,PASS) +//SYSUT2 DD SYSOUT=* +//* +//********************************************************************* +//ACM#PREP EXEC PGM=IKJEFT1B,COND=(4,LT),REGION=40M, ACM#LOD3 +// PARM='ACM#REX1 &HLQ..&GROUP.SAVEPDS' +//* IBMUSER.REXX(ACM#REX1) +//SYSPRINT DD SYSOUT=* +//SYSTSIN DD DUMMY +//SYSTSPRT DD SYSOUT=* +//SYSEXEC DD DISP=SHR,DSN=&MODELLIB +//ACMCOMP DD DSN=&&ACMCOMP,DISP=(OLD,DELETE) +//ACMCOMP2 DD SYSOUT=* +//ACMQLIST DD DSN=&HLQ..&GROUP.ACMQLIST, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), +// DCB=(RECFM=FB,LRECL=90,BLKSIZE=0,DSORG=PS) +//*------------------------------------------------------------------- +//* SORT ACMQLIST LIST * +//********************************************************************* +//* +//SORTACMQ EXEC PGM=SORT,COND=(4,LT) ACM#LOD3 +//SYSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//SYSOUT DD SYSOUT=* +//SORTIN DD DISP=SHR,DSN=&HLQ..&GROUP.ACMQLIST +//SORTOUT DD DISP=SHR,DSN=&HLQ..&GROUP.ACMQLIST +//SYSIN DD * + SORT FIELDS=(015,10,CH,A,30,9,CH,A) +//* +//********************************************************************* +//* PRINT ACMQLIST +//SHOW1 EXEC PGM=IEBGENER,COND=(4,LT) ACM#LOD3 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DISP=SHR,DSN=&HLQ..&GROUP.ACMQLIST +//SYSUT2 DD SYSOUT=* +//* +//********************************************************************* +//* MERGE ACMQLIST WITH COMPONTS (FROM A PREVIOUS STEP) +//********************************************************************* +//**** IBMUSER.REXX(ACM#MERG) +//MERGE EXEC PGM=IRXJCL,PARM='ACM#MERG',COND=(4,LT) ACM#LOD3 +//ACMQLIST DD DSN=&HLQ..&GROUP.ACMQLIST,DISP=SHR +//COMPONTS DD DSN=&HLQ..ACM#LOAD.COMPONTS,DISP=SHR +//SYSEXEC DD DISP=SHR,DSN=&MODELLIB +//SYSTSPRT DD SYSOUT=* +//MERGED DD DSN=&HLQ..&GROUP.MERGED, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), +// DCB=(RECFM=FB,LRECL=120,BLKSIZE=0,DSORG=PS) +//*------------------------------------------------------------------- +//* SORT MERGED LIST * +//********************************************************************* +//SORTACMQ EXEC PGM=SORT,COND=(4,LT) ACM#LOD3 +//SYSPRT DD SYSOUT=* +//SYSPRINT DD SYSOUT=* +//SYSOUT DD SYSOUT=* +//SORTIN DD DISP=SHR,DSN=&HLQ..&GROUP.MERGED +//SORTOUT DD DISP=SHR,DSN=&HLQ..&GROUP.MERGED +//SYSIN DD * + SORT FIELDS=(085,10,CH,A,01,10,CH,A) +//********************************************************************* +//* Show relationships found +//SHOWRSLT EXEC PGM=IEBGENER,COND=(0,LE) ACM#LOD3 +//SYSPRINT DD DUMMY +//SYSIN DD DUMMY +//SYSUT1 DD DISP=SHR,DSN=&HLQ..&GROUP.MERGED +//SYSUT2 DD SYSOUT=* +//********************************************************************* +//ACM#OUT EXEC PGM=IKJEFT1B,COND=(4,LT), ACM#LOD3 +// PARM='ACM#REX2 &HLQ..&GROUP.SAVEPDS' +//**** IBMUSER.REXX(ACM#REX2) +//SYSPRINT DD SYSOUT=* +//SYSTSIN DD DUMMY +//SYSTSPRT DD SYSOUT=* +//SYSEXEC DD DISP=SHR,DSN=&MODELLIB +//*ERGED DD DSN=&&MERGED,DISP=(OLD,DELETE) +//MERGED DD DSN=&HLQ..&GROUP.MERGED,DISP=SHR +//ACMQOUT DD DSN=&HLQ..&GROUP.ACMQOUT, +// DISP=(MOD,CATLG,KEEP), +// UNIT=SYSALLDA,SPACE=(CYL,(05,05),RLSE), +// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0,DSORG=PS) +//********************************************************************* +//** POPULATE THE ACM EXTENDED QUERY ROOT AND INDEX DATA SETS ** +//********************************************************************* +//LOAD EXEC PGM=NDVRC1,PARM='BC1PACMOMODE=OPT', ACM#LOD3 +// COND=(4,LT) / COND=(4,LT) / COND=(0,LE) +// INCLUDE MEMBER=STEPLIB <-Endevor STEPLIB,CONLIB etc +//* +//SYSPRINT DD SYSOUT=* +//ACMMSGS1 DD SYSOUT=* +//SYSOUT DD SYSOUT=* +//ACMCOMP DD DSN=&HLQ..&GROUP.ACMQOUT,DISP=SHR +//ROOT DD DISP=SHR,DSN=&ACMROOT +//XREF DD DISP=SHR,DSN=&ACMXREF +//********************************************************************* +//*--and remove work files -* +//********************************************************************* +//DELETE EXEC PGM=IEFBR14,COND=(0,LE) / COND=(5,LT) ACM#LOD3 +//ACMQLIST DD DSN=&HLQ..&GROUP.ACMQLIST,DISP=(OLD,DELETE) +//ACMQOUT DD DSN=&HLQ..&GROUP.ACMQOUT,DISP=(OLD,DELETE) +//*MERGED DD DSN=&HLQ..&GROUP.MERGED,DISP=(OLD,DELETE) +//SAVEPDS DD DSN=&HLQ..&GROUP.SAVEPDS,DISP=(OLD,DELETE) +//********************************************************************* diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#MERG.rex b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#MERG.rex index 5f0a959..e29435b 100644 --- a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#MERG.rex +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#MERG.rex @@ -3,6 +3,7 @@ NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS MADE FOR THEM. 00010200 COMPUTER ASSOCIATES CANNOT GUARANTEE THAT THE ROUTINES ARE 00010300 ERROR FREE, OR THAT IF ERRORS ARE FOUND, THEY WILL BE CORRECTED. */ 00010400 +/* https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main */ 00010500 TRACE o; 00030000 My_rc = 0 ; 00040000 /* */ 00050000 diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX1.rex b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX1.rex index 11ce6c4..fc6ad68 100644 --- a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX1.rex +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX1.rex @@ -1,272 +1,277 @@ -/* REXX */ 00000100 -/* THESE ROUTINES ARE DISTRIBUTED BY THE CA STAFF "AS IS". 00000200 - NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS MADE FOR THEM. 00000300 - COMPUTER ASSOCIATES CANNOT GUARANTEE THAT THE ROUTINES ARE 00000400 - ERROR FREE, OR THAT IF ERRORS ARE FOUND, THEY WILL BE CORRECTED. */ 00000500 - /* WRITTEN BY DAN WALTHER */ 00000600 - ARG SAVEPDS ; 00000700 - TRACE Off 00000800 - output = "SAVEMBMR" ; 00000900 -/* */ 00001000 - "EXECIO * DISKR ACMCOMP (STEM DATA. FINIS " ; 00001100 -/* */ 00001200 - Assembler_OP_Codes =, 00001300 - "A AD ADB ADBR ADR ADTR AE AEB AEBR AER AFI AG AGF AGFI ", 00001400 - "AGFR AGHI AGR AGSI AH AHI AHY AL ALC ALCG ALCGR ALCR ", 00001500 - "ALFI ALG ALGF ALGFI ALGFR ALGR ALGSI ALR ALSI ALY AP AR ", 00001600 - "ASI AU AUR AW AWR AXBR AXR AXTR AY B BAKR BAL BALR BAS ", 00001700 - "BASR BASSM BC BCR BCT BCTG BCTGR BCTR BRAS BRASL BRC ", 00001800 - "BRCL BRCT BRCTG BRXH BRXHG BRXLE BRXLG BSA BSG BSM BXH ", 00001900 - "BXHG BXLE BXLEG C CD CDB CDBR CDFBR CDFR CDGBR CDGR ", 00002000 - "CDGTR CDR CDS CDSG CDSTR CDSY CDTR CDUTR CE CEB CEBR ", 00002100 - "CEDTR CEFBR CEFR CEGBR CEGR CER CEXTR CFC CFDBR CFDR ", 00002200 - "CFEBR CFER CFI CFXBR CFXR CG CGDBR CGDR CGDTR CGEBR ", 00002300 - "CGER CGF CGFI CGFR CGFRL CGH CGHI CGHRL CGHSI CGIB CGIJ ", 00002400 - "CGIT CGR CGRB CGRJ CGRL CGRT CGXBR CGXR CGXTR CH CHHSI ", 00002500 - "CHI CHRL CHSI CHY CIB CIJ CIT CKSM CL CLC CLCL CLCLE ", 00002600 - "CLCLU CLFHSI CLFI CLFIT CLG CLGF CLGFI CLGFR CLGFRL ", 00002700 - "CLGHRL CLGHSI CLGIB CLGIJ CLGIT CLGR CLGRB CLGRJ CLGRL ", 00002800 - "CLGRT CLHHSI CLHRL CLI CLIB CLIJ CLIY CLM CLMH CLMY CLR ", 00002900 - "CLRB CLRJ CLRL CLRT CLST CLY CMPSC CP CPSDR CPYA CR CRB ", 00003000 - "CRJ CRL CRT CS CSCH CSDTR CSG CSP CSPG CSST CSXTR CSY ", 00003100 - "CU12 CU14 CU21 CU24 CU41 CU42 CUDTR CUSE CUTFU CUUTF ", 00003200 - "CUXTR CVB CVBG CVBY CVD CVDG CVDY CXBR CXFBR CXFR CXGBR ", 00003300 - "CXGR CXGTR CXR CXSTR CXTR CXUTR CY D DD DDB DDBR DDR ", 00003400 - "DDTR DE DEB DEBR DER DIDBR DIEBR DL DLG DLGR DLR DP DR ", 00003500 - "DSG DSGF DSGFR DSGR DXBR DXR DXTR EAR ECAG ECTG ED EDMK ", 00003600 - "EEDTR EEXTR EFPC EPAIR EPAR EPSW EREG EREGG ESAIR ESAR ", 00003700 - "ESDTR ESEA ESTA ESXTR EX EXRL FIDBR FIDR FIDTR FIEBR ", 00003800 - "FIER FIXBR FIXR FIXTR FLOGR HDR HER HSCH IAC IC ICM ", 00003900 - "ICMH ICMY ICY IDTE IEDTR IEXTR IIHF IIHH IIHL IILF IILH ", 00004000 - "IILL IPK IPM IPTE ISKE IVSK KDB KDBR KDTR KEB KEBR KIMD ", 00004100 - "KLMD KM KMAC KMC KXBR KXTR L LA LAE LAEY LAM LAMY LARL ", 00004200 - "LASP LAY LB LBR LCDBR LCDFR LCDR LCEBR LCER LCGFR LCGR ", 00004300 - "LCR LCTL LCTLG LCXBR LCXR LD LDE LDEB LDEBR LDER LDETR ", 00004400 - "LDGR LDR LDXBR LDXR LDXTR LDY LE LEDBR LEDR LEDTR LER ", 00004500 - "LEXBR LEXR LEY LFAS LFPC LG LGB LGBR LGDR LGF LGFI LGFR ", 00004600 - "LGFRL LGH LGHI LGHR LGHRL LGR LGRL LH LHI LHR LHRL LHY ", 00004700 - "LLC LLCR LLGC LLGCR LLGF LLGFR LLGFRL LLGH LLGHR LLGHRL ", 00004800 - "LLGT LLGTR LLH LLHR LLHRL LLIHF LLIHH LLIHL LLILF LLILH ", 00004900 - "LLILL LM LMD LMG LMH LMY LNDBR LNDFR LNDR LNEBR LNER ", 00005000 - "LNGFR LNGR LNR LNXBR LNXR LPDBR LPDFR LPDR LPEBR LPER ", 00005100 - "LPGFR LPGR LPQ LPR LPSW LPSWE LPTEA LPXBR LPXR LR LRA ", 00005200 - "LRAG LRAY LRDR LRER LRL LRV LRVG LRVGR LRVH LRVR LT ", 00005300 - "LTDBR LTDR LTDTR LTEBR LTER LTG LTGF LTGFR LTGR LTR ", 00005400 - "LTXBR LTXR LTXTR LURA LURAG LXD LXDB LXDBR LXDR LXDTR ", 00005500 - "LXE LXEB LXEBR LXER LXR LY LZDR LZER LZXR M MAD MADB ", 00005600 - "MADBR MADR MAE MAEB MAEBR MAER MAY MAYH MAYHR MAYL ", 00005700 - "MAYLR MAYR MC MD MDB MDBR MDE MDEB MDEBR MDER MDR MDTR ", 00005800 - "ME MEE MEEB MEEBR MEER MER MFY MGHI MH MHI MHY ML MLG ", 00005900 - "MLGR MLR MP MR MS MSCH MSD MSDB MSDBR MSDR MSE MSEB ", 00006000 - "MSEBR MSER MSFI MSG MSGF MSGFI MSGFR MSGR MSR MSTA MSY ", 00006100 - "MVC MVCDK MVCIN MVCK MVCL MVCLE MVCLU MVCOS MVCP MVCS ", 00006200 - "MVCSK MVGHI MVHHI MVHI MVI MVIY MVN MVO MVPG MVST MVZ ", 00006300 - "MXBR MXD MXDB MXDBR MXDR MXR MXTR MY MYH MYHR MYL MYLR ", 00006400 - "MYR N NC NG NGR NI NIHF NIHH NIHL NILF NILH NILL NIY NR ", 00006500 - "NY O OC OG OGR OI OIHF OIHH OIHL OILF OILH OILL OIY OR ", 00006600 - "OY PACK PALB PC PFD PFDRL PFMF PFPO PGIN PGOUT PKA PKU ", 00006700 - "PLO PR PT PTF PTFF PTI PTLB QADTR QAXTR RCHP RISBG RLL ", 00006800 - "RLLG RNSBG ROSBG RP RRBE RRDTR RRXTR RSCH RXSBG S SAC ", 00006900 - "SACF SAL SAM24 SAM31 SAM64 SAR SCHM SCK SCKC SCKPF SD ", 00007000 - "SDB SDBR SDR SDTR SE SEB SEBR SER SFASR SFPC SG SGF ", 00007100 - "SGFR SGR SH SHY SIE SIGP SL SLA SLAG SLB SLBG SLBGR ", 00007200 - "SLBR SLDA SLDL SLDT SLFI SLG SLGF SLGFI SLGFR SLGR SLL ", 00007300 - "SLLG SLR SLXT SLY SP SPKA SPM SPT SPX SQD SQDB SQDBR ", 00007400 - "SQDR SQE SQEB SQEBR SQER SQXBR SQXR SR SRA SRAG SRDA ", 00007500 - "SRDL SRDT SRL SRLG SRNM SRNMT SRP SRST SRSTU SRXT SSAIR ", 00007600 - "SSAR SSCH SSKE SSM ST STAM STAMY STAP STC STCK STCKC ", 00007700 - "STCKE STCKF STCM STCMH STCMY STCPS STCRW STCTG STCTL ", 00007800 - "STCY STD STDY STE STEY STFL STFLE STFPC STG STGRL STH ", 00007900 - "STHRL STHY STIDP STM STMG STMH STMY STNSM STOSM STPQ ", 00008000 - "STPT STPX STRAG STRL STRV STRVG STRVH STSCH STSI STURA ", 00008100 - "STURG STY SU SUR SVC SW SWR SXBR SXR SXTR SY TAM TAR TB ", 00008200 - "TBDR TBEDR TCDB TCEB TCXB TDCDT TDCET TDCXT TDGDT TDGET ", 00008300 - "TDGXT THDER THDR TM TMH TMHH TMHL TML TMLH TMLL TMY TP ", 00008400 - "TPI TPROT TR TRACE TRACG TRAP2 TRAP4 TRE TROO TROT TRT ", 00008500 - "TRTE TRTO TRTR TRTRE TRTT TS TSCH UNPK UNPKA UNPKU UPT ", 00008600 - "X XC XG XGR XI XIHF XILF XIY XR XSCH XY ZAP " ; 00008700 -/* */ 00008800 - Do ln = 1 to data.0 00008900 - LINE = substr(DATA.ln,2) ; 00009000 - SA= LINE ; 00009100 - IF WORD(LINE,2) = 'ELEMENT' &, 00009200 - WORD(LINE,3) = 'BROWSE' THEN, 00009300 - DO 00009400 - pos =wordindex(DATA.ln,2) ; 00009500 - DATA.ln = Overlay("COMPONENT BROWSE",DATA.ln,pos) ; 00009600 - END; 00009700 - IF WORD(LINE,4) = 'TYPE:' THEN, 00009800 - DO 00009900 - TYPE = STRIP(WORD(LINE,5)) ; 00010000 - SA= 'TYPE=' TYPE ; 00010100 - ATTOP = 'Y' ; 00010200 - END; 00010300 - 00010400 - IF WORD(LINE,2) = 'TYPE:' &, 00010500 - WORD(LINE,1) = '**' then, 00010600 - DO 00010700 - TYPE = WORD(LINE,3) ; 00010800 - SA= 'TYPE=' TYPE ; 00010900 - ATTOP = 'Y' ; 00011000 - END; 00011100 - 00011200 - IF WORD(LINE,2) = 'ELEMENT:' &, 00011300 - (WORD(LINE,4) = 'TYPE:' | WORD(LINE,4) = '**') then, 00011400 - do 00011500 - element = word(line,3) ; 00011600 - write_line = ln - 6 ; 00011700 - Save_place = SAVEPDS"("element")" ; 00011800 - say "Building" Save_place ; 00011900 - ADDRESS TSO, 00012000 - "ALLOC F(SAVEMBMR) DA('"Save_place"') SHR REUSE " ; 00012100 - do forever 00012200 - test = word(data.write_line,1) ; 00012300 - if substr(test,1,1) = "+" then, 00012400 - leave ; 00012500 - if test = 'DATA.'write_line then, 00012600 - leave ; 00012700 - LINE = data.write_line ; 00012800 - IF substr(LINE,29,24) = 'SOURCE LEVEL INFORMATION' then, 00012900 - DO 00013000 - new_lit = " COMPONENT LEVEL INFORMATION" 00013100 - data.write_line = Overlay(new_lit,data.write_line,25) ; 00013200 - END; 00013300 - IF WORD(LINE,1) = 'THIS' &, 00013400 - WORD(LINE,2) = 'ELEMENT' THEN, 00013500 - do 00013600 - write_line = write_line + 1 ; 00013700 - ITERATE ; 00013800 - end; 00013900 - push data.write_line; 00014000 - "EXECIO 1 DISKW " output ; 00014100 - write_line = write_line + 1 ; 00014200 - end; /* do forever */ 00014300 - "EXECIO 0 DISKW "output "(finis" ; 00014400 - ln = write_line ; 00014500 - end; /* IF Word... */ 00014600 - 00014700 - IF SUBSTR(WORD(LINE,1),1,1) = '+' |, 00014800 - SUBSTR(WORD(LINE,1),1,1) = '%' THEN, 00014900 - CALL SCANLINE ; 00015000 - END; /* Do ln = 1 to data.0 */ 00015100 - 00015200 - EXIT(RC) ; 00015300 - 00015400 -SCANLINE: 00015500 - 00015600 - IF substr(TYPE,1,2) = 'CO' then CALL SCAN_COBOL; 00015700 - IF substr(TYPE,1,2) = 'AS' then CALL SCAN_Assembler; 00015800 - 00015900 - IF substr(TYPE,1,3) = 'COB' then CALL SCAN_COBOL; 00016000 - IF substr(TYPE,1,3) = 'CBL' then CALL SCAN_COBOL; 00016100 - IF substr(TYPE,4,3) = 'ASM' then CALL SCAN_Assembler; 00016200 - IF substr(TYPE,1,3) = 'DYL' then CALL SCAN_DYL; 00016300 - IF substr(TYPE,1,2) = 'JC' then CALL SCAN_JCL; 00016400 - 00016500 - RETURN; 00016600 - 00016700 -SCAN_Assembler: 00016800 - 00016900 - LINE = Translate(LINE,' ',"'.(:"); 00016901 - assembler = Substr(LINE,13) 00016902 - If Substr(assembler,1,1) = '*' then Return; 00016903 - If Substr(assembler,1,1) = ' ' then Name = Word(assembler,1) 00016904 - Else Name = Word(assembler,2) 00016905 - COMPONENT_Invocation = "COPY" ; 00016906 - If Name = "COPY" then, 00016908 - Name = Word(assembler,3) 00016909 - 00016910 - if WordPos(Name,Assembler_OP_Codes) > 0 then return; 00016911 - Else, 00016912 - COMPONENT = Name ; 00016913 - 00016914 - prx = Substr(COMPONENT,1,1); 00018100 - If DATATYPE(prx,'s') /= 1 then return; 00018200 - Call WRite_Component_Item; 00018300 - RETURN; 00018400 - 00018500 -SCAN_DYL: 00018600 - IF SUBSTR(LINE,10,1) = '*' THEN RETURN; 00018700 - COMPONENT_Invocation = "COPY" ; 00018800 - PLACE = WORDPOS('COPY',LINE) ; 00018900 - IF PLACE = 0 THEN return; 00019000 - COMPONENT = WORD(LINE,PLACE + 1); 00019100 - COMPONENT = STRIP(COMPONENT,'T','.') ; 00019200 - Call WRite_Component_Item; 00019300 - RETURN; 00019400 - 00019500 -SCAN_COBOL: 00019600 - IF SUBSTR(LINE,16,1) = '*' THEN RETURN; 00019800 - COMPONENT_Invocation = "COPY" ; 00019900 - PLACE = WORDPOS('COPY',LINE) ; 00020000 - IF PLACE = WORDS(LINE) THEN RETURN ; 00020100 - IF PLACE = 0 THEN, 00020200 - PLACE = WORDPOS('++INCLUDE',LINE) ; 00020300 - IF PLACE = 0 THEN, 00020400 - PLACE = WORDPOS('INCLUDE',LINE) ; 00020500 - 00020600 - IF PLACE = 0 THEN, 00020700 - DO 00020800 - COMPONENT_Invocation = "CALL" ; 00020900 - PLACE = WORDPOS('CALL',LINE) ; 00021000 - IF PLACE = 0 THEN RETURN; 00021100 - IF PLACE = WORDS(LINE) THEN RETURN ; 00021200 - temp = WORD(LINE,PLACE + 1) 00021300 - IF SUBSTR(temp,1,1) /= "'" THEN RETURN ; 00021400 - END; /* IF PLACE = 0 */ 00021500 - 00021600 - COMPONENT = WORD(LINE,PLACE + 1); 00021700 - COMPONENT = STRIP(COMPONENT,'B',"'") ; 00021800 - COMPONENT = STRIP(COMPONENT,'T','.') ; 00021900 - COMPONENT = STRIP(COMPONENT,'B',"'") ; 00022000 - Call WRite_Component_Item; 00022100 - RETURN; 00022200 - 00022400 -WRite_Component_Item: 00022500 - COMPONENT = STRIP(COMPONENT,B,"'") ; 00022600 - COMPONENT = STRIP(COMPONENT,B,'"') ; 00022700 - COMPONENT = STRIP(COMPONENT,T,'.') ; 00022800 - COMPONENT = STRIP(COMPONENT) ; 00022900 - 00023000 - TEMP = COPIES(" ",80) ; 00023100 - TEMP = OVERLAY(ELEMENT,TEMP,1) ; 00023200 - TEMP = OVERLAY(COMPONENT,TEMP,15); 00023300 - TEMP = OVERLAY(COMPONENT_Invocation,TEMP,30); 00023400 - Push TEMP; 00023500 - "EXECIO 1 DISKW ACMQLIST" 00023600 - RETURN; 00023700 - 00023800 -Scan_JCL: 00023900 - 00024000 - 00024100 - IF TYPE = 'JCL' & SUBSTR(LINE,12,1) = '*' THEN RETURN; 00024200 - 00024300 - PLACE = WORDPOS('INCLUDE',LINE) ; 00024400 - IF PLACE > 0 THEN, 00024500 - DO 00024600 - pos = index(LINE,'MEMBER=') ; 00024700 - IF pos > 0 then, 00024800 - Do 00024900 - COMPONENT = WORD(Substr(LINE,(pos+7)),1) 00025000 - Call WRite_Component_Item; 00025100 - End 00025200 - END ; /* IF PLACE > 0 THEN */ 00025300 - 00025400 - PLACE = WORDPOS('EXEC',LINE) ; 00025500 - IF PLACE = 0 THEN RETURN ; 00025600 - IF PLACE = WORDS(LINE) THEN RETURN ; 00025700 - 00025800 - COMPONENT_Invocation = "PROC" ; 00025900 - 00026000 - testit = WORD(LINE,PLACE + 1); 00026100 - testit = Translate(testit," ","=,'"); 00026200 - if Word(testit,1) = "PROC" then COMPONENT = Word(testit,2); 00026300 - else, 00026400 - if Word(testit,1) = "PGM" then RETURN ; 00026500 - else, 00026600 - COMPONENT = Word(testit,1); 00026700 - 00026800 - Call WRite_Component_Item; 00026900 - 00027000 - RETURN; 00027100 - 00027200 +/* REXX */ +/* THESE ROUTINES ARE DISTRIBUTED BY THE CA STAFF "AS IS". + NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS MADE FOR THEM. + COMPUTER ASSOCIATES CANNOT GUARANTEE THAT THE ROUTINES ARE + ERROR FREE, OR THAT IF ERRORS ARE FOUND, THEY WILL BE CORRECTED. */ + ARG SAVEPDS ; + TRACE Off +/* https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main*/ +/* This is the REXX program that scans Printed element outputs. */ +/* It uses the element type to determine what kind of scan to run. */ +/* See the SCANLINE: section, and adjust to your types as needed. */ +/* You may update the ones included, or code your own as you see */ +/* fit. */ + output = "SAVEMBMR" ; +/* */ + "EXECIO * DISKR ACMCOMP (STEM DATA. FINIS " ; +/* */ + Assembler_OP_Codes =, + "A AD ADB ADBR ADR ADTR AE AEB AEBR AER AFI AG AGF AGFI ", + "AGFR AGHI AGR AGSI AH AHI AHY AL ALC ALCG ALCGR ALCR ", + "ALFI ALG ALGF ALGFI ALGFR ALGR ALGSI ALR ALSI ALY AP AR ", + "ASI AU AUR AW AWR AXBR AXR AXTR AY B BAKR BAL BALR BAS ", + "BASR BASSM BC BCR BCT BCTG BCTGR BCTR BRAS BRASL BRC ", + "BRCL BRCT BRCTG BRXH BRXHG BRXLE BRXLG BSA BSG BSM BXH ", + "BXHG BXLE BXLEG C CD CDB CDBR CDFBR CDFR CDGBR CDGR ", + "CDGTR CDR CDS CDSG CDSTR CDSY CDTR CDUTR CE CEB CEBR ", + "CEDTR CEFBR CEFR CEGBR CEGR CER CEXTR CFC CFDBR CFDR ", + "CFEBR CFER CFI CFXBR CFXR CG CGDBR CGDR CGDTR CGEBR ", + "CGER CGF CGFI CGFR CGFRL CGH CGHI CGHRL CGHSI CGIB CGIJ ", + "CGIT CGR CGRB CGRJ CGRL CGRT CGXBR CGXR CGXTR CH CHHSI ", + "CHI CHRL CHSI CHY CIB CIJ CIT CKSM CL CLC CLCL CLCLE ", + "CLCLU CLFHSI CLFI CLFIT CLG CLGF CLGFI CLGFR CLGFRL ", + "CLGHRL CLGHSI CLGIB CLGIJ CLGIT CLGR CLGRB CLGRJ CLGRL ", + "CLGRT CLHHSI CLHRL CLI CLIB CLIJ CLIY CLM CLMH CLMY CLR ", + "CLRB CLRJ CLRL CLRT CLST CLY CMPSC CP CPSDR CPYA CR CRB ", + "CRJ CRL CRT CS CSCH CSDTR CSG CSP CSPG CSST CSXTR CSY ", + "CU12 CU14 CU21 CU24 CU41 CU42 CUDTR CUSE CUTFU CUUTF ", + "CUXTR CVB CVBG CVBY CVD CVDG CVDY CXBR CXFBR CXFR CXGBR ", + "CXGR CXGTR CXR CXSTR CXTR CXUTR CY D DD DDB DDBR DDR ", + "DDTR DE DEB DEBR DER DIDBR DIEBR DL DLG DLGR DLR DP DR ", + "DSG DSGF DSGFR DSGR DXBR DXR DXTR EAR ECAG ECTG ED EDMK ", + "EEDTR EEXTR EFPC EPAIR EPAR EPSW EREG EREGG ESAIR ESAR ", + "ESDTR ESEA ESTA ESXTR EX EXRL FIDBR FIDR FIDTR FIEBR ", + "FIER FIXBR FIXR FIXTR FLOGR HDR HER HSCH IAC IC ICM ", + "ICMH ICMY ICY IDTE IEDTR IEXTR IIHF IIHH IIHL IILF IILH ", + "IILL IPK IPM IPTE ISKE IVSK KDB KDBR KDTR KEB KEBR KIMD ", + "KLMD KM KMAC KMC KXBR KXTR L LA LAE LAEY LAM LAMY LARL ", + "LASP LAY LB LBR LCDBR LCDFR LCDR LCEBR LCER LCGFR LCGR ", + "LCR LCTL LCTLG LCXBR LCXR LD LDE LDEB LDEBR LDER LDETR ", + "LDGR LDR LDXBR LDXR LDXTR LDY LE LEDBR LEDR LEDTR LER ", + "LEXBR LEXR LEY LFAS LFPC LG LGB LGBR LGDR LGF LGFI LGFR ", + "LGFRL LGH LGHI LGHR LGHRL LGR LGRL LH LHI LHR LHRL LHY ", + "LLC LLCR LLGC LLGCR LLGF LLGFR LLGFRL LLGH LLGHR LLGHRL ", + "LLGT LLGTR LLH LLHR LLHRL LLIHF LLIHH LLIHL LLILF LLILH ", + "LLILL LM LMD LMG LMH LMY LNDBR LNDFR LNDR LNEBR LNER ", + "LNGFR LNGR LNR LNXBR LNXR LPDBR LPDFR LPDR LPEBR LPER ", + "LPGFR LPGR LPQ LPR LPSW LPSWE LPTEA LPXBR LPXR LR LRA ", + "LRAG LRAY LRDR LRER LRL LRV LRVG LRVGR LRVH LRVR LT ", + "LTDBR LTDR LTDTR LTEBR LTER LTG LTGF LTGFR LTGR LTR ", + "LTXBR LTXR LTXTR LURA LURAG LXD LXDB LXDBR LXDR LXDTR ", + "LXE LXEB LXEBR LXER LXR LY LZDR LZER LZXR M MAD MADB ", + "MADBR MADR MAE MAEB MAEBR MAER MAY MAYH MAYHR MAYL ", + "MAYLR MAYR MC MD MDB MDBR MDE MDEB MDEBR MDER MDR MDTR ", + "ME MEE MEEB MEEBR MEER MER MFY MGHI MH MHI MHY ML MLG ", + "MLGR MLR MP MR MS MSCH MSD MSDB MSDBR MSDR MSE MSEB ", + "MSEBR MSER MSFI MSG MSGF MSGFI MSGFR MSGR MSR MSTA MSY ", + "MVC MVCDK MVCIN MVCK MVCL MVCLE MVCLU MVCOS MVCP MVCS ", + "MVCSK MVGHI MVHHI MVHI MVI MVIY MVN MVO MVPG MVST MVZ ", + "MXBR MXD MXDB MXDBR MXDR MXR MXTR MY MYH MYHR MYL MYLR ", + "MYR N NC NG NGR NI NIHF NIHH NIHL NILF NILH NILL NIY NR ", + "NY O OC OG OGR OI OIHF OIHH OIHL OILF OILH OILL OIY OR ", + "OY PACK PALB PC PFD PFDRL PFMF PFPO PGIN PGOUT PKA PKU ", + "PLO PR PT PTF PTFF PTI PTLB QADTR QAXTR RCHP RISBG RLL ", + "RLLG RNSBG ROSBG RP RRBE RRDTR RRXTR RSCH RXSBG S SAC ", + "SACF SAL SAM24 SAM31 SAM64 SAR SCHM SCK SCKC SCKPF SD ", + "SDB SDBR SDR SDTR SE SEB SEBR SER SFASR SFPC SG SGF ", + "SGFR SGR SH SHY SIE SIGP SL SLA SLAG SLB SLBG SLBGR ", + "SLBR SLDA SLDL SLDT SLFI SLG SLGF SLGFI SLGFR SLGR SLL ", + "SLLG SLR SLXT SLY SP SPKA SPM SPT SPX SQD SQDB SQDBR ", + "SQDR SQE SQEB SQEBR SQER SQXBR SQXR SR SRA SRAG SRDA ", + "SRDL SRDT SRL SRLG SRNM SRNMT SRP SRST SRSTU SRXT SSAIR ", + "SSAR SSCH SSKE SSM ST STAM STAMY STAP STC STCK STCKC ", + "STCKE STCKF STCM STCMH STCMY STCPS STCRW STCTG STCTL ", + "STCY STD STDY STE STEY STFL STFLE STFPC STG STGRL STH ", + "STHRL STHY STIDP STM STMG STMH STMY STNSM STOSM STPQ ", + "STPT STPX STRAG STRL STRV STRVG STRVH STSCH STSI STURA ", + "STURG STY SU SUR SVC SW SWR SXBR SXR SXTR SY TAM TAR TB ", + "TBDR TBEDR TCDB TCEB TCXB TDCDT TDCET TDCXT TDGDT TDGET ", + "TDGXT THDER THDR TM TMH TMHH TMHL TML TMLH TMLL TMY TP ", + "TPI TPROT TR TRACE TRACG TRAP2 TRAP4 TRE TROO TROT TRT ", + "TRTE TRTO TRTR TRTRE TRTT TS TSCH UNPK UNPKA UNPKU UPT ", + "X XC XG XGR XI XIHF XILF XIY XR XSCH XY ZAP " ; +/* */ + Do ln = 1 to data.0 + LINE = substr(DATA.ln,2) ; + SA= LINE ; + IF WORD(LINE,2) = 'ELEMENT' &, + WORD(LINE,3) = 'BROWSE' THEN, + DO + pos =wordindex(DATA.ln,2) ; + DATA.ln = Overlay("COMPONENT BROWSE",DATA.ln,pos) ; + END; + IF WORD(LINE,4) = 'TYPE:' THEN, + DO + TYPE = STRIP(WORD(LINE,5)) ; + SA= 'TYPE=' TYPE ; + ATTOP = 'Y' ; + END; + + IF WORD(LINE,2) = 'TYPE:' &, + WORD(LINE,1) = '**' then, + DO + TYPE = WORD(LINE,3) ; + SA= 'TYPE=' TYPE ; + ATTOP = 'Y' ; + END; + + IF WORD(LINE,2) = 'ELEMENT:' &, + (WORD(LINE,4) = 'TYPE:' | WORD(LINE,4) = '**') then, + do + element = word(line,3) ; + write_line = ln - 6 ; + Save_place = SAVEPDS"("element")" ; + say "Building" Save_place ; + ADDRESS TSO, + "ALLOC F(SAVEMBMR) DA('"Save_place"') SHR REUSE " ; + do forever + test = word(data.write_line,1) ; + if substr(test,1,1) = "+" then, + leave ; + if test = 'DATA.'write_line then, + leave ; + LINE = data.write_line ; + IF substr(LINE,29,24) = 'SOURCE LEVEL INFORMATION' then, + DO + new_lit = " COMPONENT LEVEL INFORMATION" + data.write_line = Overlay(new_lit,data.write_line,25) ; + END; + IF WORD(LINE,1) = 'THIS' &, + WORD(LINE,2) = 'ELEMENT' THEN, + do + write_line = write_line + 1 ; + ITERATE ; + end; + push data.write_line; + "EXECIO 1 DISKW " output ; + write_line = write_line + 1 ; + end; /* do forever */ + "EXECIO 0 DISKW "output "(finis" ; + ln = write_line ; + end; /* IF Word... */ + + IF SUBSTR(WORD(LINE,1),1,1) = '+' |, + SUBSTR(WORD(LINE,1),1,1) = '%' THEN, + CALL SCANLINE ; + END; /* Do ln = 1 to data.0 */ + + EXIT(RC) ; + +SCANLINE: + + IF substr(TYPE,1,2) = 'SR' then CALL SCAN_COBOL; + IF substr(TYPE,1,2) = 'SR' then CALL SCAN_Assembler; + + IF substr(TYPE,1,3) = 'COB' then CALL SCAN_COBOL; + IF substr(TYPE,1,3) = 'CBL' then CALL SCAN_COBOL; + IF substr(TYPE,4,3) = 'ASM' then CALL SCAN_Assembler; + IF substr(TYPE,1,3) = 'DYL' then CALL SCAN_DYL; + IF substr(TYPE,1,2) = 'JC' then CALL SCAN_JCL; + + RETURN; + +SCAN_Assembler: + + LINE = Translate(LINE,' ',"'.(:"); + assembler = Substr(LINE,13) + If Substr(assembler,1,1) = '*' then Return; + If Substr(assembler,1,1) = ' ' then Name = Word(assembler,1) + Else Name = Word(assembler,2) + COMPONENT_Invocation = "COPY" ; + If Name = "COPY" then, + Name = Word(assembler,3) + + if WordPos(Name,Assembler_OP_Codes) > 0 then return; + Else, + COMPONENT = Name ; + + prx = Substr(COMPONENT,1,1); + If DATATYPE(prx,'s') /= 1 then return; + Call WRite_Component_Item; + RETURN; + +SCAN_DYL: + IF SUBSTR(LINE,10,1) = '*' THEN RETURN; + COMPONENT_Invocation = "COPY" ; + PLACE = WORDPOS('COPY',LINE) ; + IF PLACE = 0 THEN return; + COMPONENT = WORD(LINE,PLACE + 1); + COMPONENT = STRIP(COMPONENT,'T','.') ; + Call WRite_Component_Item; + RETURN; + +SCAN_COBOL: + IF SUBSTR(LINE,16,1) = '*' THEN RETURN; + COMPONENT_Invocation = "COPY" ; + PLACE = WORDPOS('COPY',LINE) ; + IF PLACE = WORDS(LINE) THEN RETURN ; + IF PLACE = 0 THEN, + PLACE = WORDPOS('++INCLUDE',LINE) ; + IF PLACE = 0 THEN, + PLACE = WORDPOS('INCLUDE',LINE) ; + + IF PLACE = 0 THEN, + DO + COMPONENT_Invocation = "CALL" ; + PLACE = WORDPOS('CALL',LINE) ; + IF PLACE = 0 THEN RETURN; + IF PLACE = WORDS(LINE) THEN RETURN ; + temp = WORD(LINE,PLACE + 1) + IF SUBSTR(temp,1,1) /= "'" THEN RETURN ; + END; /* IF PLACE = 0 */ + + COMPONENT = WORD(LINE,PLACE + 1); + COMPONENT = STRIP(COMPONENT,'B',"'") ; + COMPONENT = STRIP(COMPONENT,'T','.') ; + COMPONENT = STRIP(COMPONENT,'B',"'") ; + Call WRite_Component_Item; + RETURN; + +WRite_Component_Item: + COMPONENT = STRIP(COMPONENT,B,"'") ; + COMPONENT = STRIP(COMPONENT,B,'"') ; + COMPONENT = STRIP(COMPONENT,T,'.') ; + COMPONENT = STRIP(COMPONENT) ; + + TEMP = COPIES(" ",80) ; + TEMP = OVERLAY(ELEMENT,TEMP,1) ; + TEMP = OVERLAY(COMPONENT,TEMP,15); + TEMP = OVERLAY(COMPONENT_Invocation,TEMP,30); + Push TEMP; + "EXECIO 1 DISKW ACMQLIST" + RETURN; + +Scan_JCL: + + + IF TYPE = 'JCL' & SUBSTR(LINE,12,1) = '*' THEN RETURN; + + PLACE = WORDPOS('INCLUDE',LINE) ; + IF PLACE > 0 THEN, + DO + pos = index(LINE,'MEMBER=') ; + IF pos > 0 then, + Do + COMPONENT = WORD(Substr(LINE,(pos+7)),1) + Call WRite_Component_Item; + End + END ; /* IF PLACE > 0 THEN */ + + PLACE = WORDPOS('EXEC',LINE) ; + IF PLACE = 0 THEN RETURN ; + IF PLACE = WORDS(LINE) THEN RETURN ; + + COMPONENT_Invocation = "PROC" ; + + testit = WORD(LINE,PLACE + 1); + testit = Translate(testit," ","=,'"); + if Word(testit,1) = "PROC" then COMPONENT = Word(testit,2); + else, + if Word(testit,1) = "PGM" then RETURN ; + else, + COMPONENT = Word(testit,1); + + Call WRite_Component_Item; + + RETURN; + diff --git a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX2.rex b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX2.rex index d33ad76..3f76695 100644 --- a/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX2.rex +++ b/endevor/Field-Developed-Programs/ACM-build-without-Generates/ACM#REX2.rex @@ -1,129 +1,129 @@ -/* REXX */ -/* THESE ROUTINES ARE DISTRIBUTED BY THE CA STAFF "AS IS". - NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS MADE FOR THEM. - COMPUTER ASSOCIATES CANNOT GUARANTEE THAT THE ROUTINES ARE - ERROR FREE, OR THAT IF ERRORS ARE FOUND, THEY WILL BE CORRECTED. */ - /* WRITTEN BY DAN WALTHER */ - ARG SAVEPDS ; - TRACE O; - output = "SAVEMBMR" ; -/* */ - "EXECIO * DISKR MERGED (STEM DATA. FINIS " ; -/* */ - Last_Element = " " ; -/* */ - Do ln = 1 to data.0 - COMPONENT = WORD(DATA.ln,01) ; - SYSTEM = WORD(DATA.ln,02) ; - SUBSYSTEM = WORD(DATA.ln,03) ; - TYPE = WORD(DATA.ln,04) ; - CUR_DATE = WORD(DATA.ln,05) ; - CUR_TIME = WORD(DATA.ln,07) ; -/* VERS_LEVL = WORD(DATA.ln,08) ; */ - Environ = WORD(DATA.ln,08) ; - STG_NUM = WORD(DATA.ln,09) ; - element = WORD(DATA.ln,10) ; - if ELEMENT /= Last_Element then, - DO - call Write_Element_Header ; - Last_element = ELEMENT ; - end; - call Reformat_fields ; - call Write_component_info ; - END; /* Do ln = 1 to data.0 */ - - "EXECIO 0 DISKW ACMQOUT (FINIS " - - EXIT(RC) ; - -Write_Element_Header: - - IF Last_Element /= " " then, - do - Comp_line = " " ; - push Comp_line ; - push Comp_line ; - "EXECIO 2 DISKW ACMQOUT " ; - end; - - Save_place = SAVEPDS"("element")" ; - Say "Writing" Save_place ; - ADDRESS TSO, - "ALLOC F(SAVEMBMR) DA('"Save_place"') SHR REUSE " ; - "EXECIO * DISKR SAVEMBMR ( STEM MBR. FINIS" ; - "EXECIO * DISKW ACMQOUT ( STEM MBR. " ; - DROP MBR. - - Comp_line = " " ; - push Comp_line ; - "EXECIO 1 DISKW ACMQOUT " ; - - Comp_line = " "COPIES("-",26)" INPUT COMPONENTS "COPIES("-",32); - push Comp_line ; - "EXECIO 1 DISKW ACMQOUT " ; - - Comp_line = " " ; - push Comp_line ; - push Comp_line ; - "EXECIO 2 DISKW ACMQOUT " ; - - Comp_line = " STEP: ACM#LOAD DD=SCAN ", - "VOL=NNNNNN DSN=ACM#LOAD.SCAN" - push Comp_line ; - "EXECIO 1 DISKW ACMQOUT " ; - - Comp_line = " " ; - push Comp_line ; - push Comp_line ; - "EXECIO 2 DISKW ACMQOUT " ; - - Comp_line = " ", - "MEMBER VV.LL DATE TIME SYSTEM SUBSYS ", - "ELEMENT TYPE STG STE ENVRMNT LD " - push Comp_line ; - "EXECIO 1 DISKW ACMQOUT " ; - - return ; - -Reformat_fields: - - tmp_yr = substr(CUR_DATE,3,2); - tmp_mo = substr(CUR_DATE,5,2); - tmp_da = substr(CUR_DATE,7,2); - tmp_hr = substr(CUR_TIME,1,2); - tmp_mi = substr(CUR_TIME,3,2); - - months = "JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC" ; -/* If tmp_mo < 1 | tmp_mo > 12 then, - Do - Say 'Component=' COMPONENT 'tmp_mo=' tmp_mo - tmp_mo = 1 - End */ - CUR_DATE = tmp_da||word(months,tmp_mo)||tmp_yr ; - CUR_TIME = tmp_hr":"tmp_mi ; - - return ; - -Write_component_info: - - Comp_line = copies(" ",133) ; - Comp_line = Overlay("+0100",Comp_line,3) ; - Comp_line = Overlay(COMPONENT,Comp_line,14) ; -/* Comp_line = Overlay(VERS_LEVL,Comp_line,25) ; */ - Comp_line = Overlay("01.00",Comp_line,25) ; - - Comp_line = Overlay(CUR_DATE,Comp_line,31) ; - Comp_line = Overlay(CUR_TIME,Comp_line,39) ; - - Comp_line = Overlay(SYSTEM,Comp_line,45) ; - Comp_line = Overlay(SUBSYSTEM,Comp_line,54) ; - Comp_line = Overlay(COMPONENT,Comp_line,63) ; - Comp_line = Overlay(TYPE,Comp_line,74) ; - Comp_line = Overlay(STG_NUM,Comp_line,84) ; /* STAGE NUMBER */ - Comp_line = Overlay("0",Comp_line,88) ; /* SITE NUMBER */ - Comp_line = Overlay(Environ,Comp_line,91) ; /* ENVIRONMENT */ - - PUSH Comp_line ; - "EXECIO 1 DISKW ACMQOUT " - - return ; +/* REXX */ +/* THESE ROUTINES ARE DISTRIBUTED BY THE CA STAFF "AS IS". + NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS MADE FOR THEM. + COMPUTER ASSOCIATES CANNOT GUARANTEE THAT THE ROUTINES ARE + ERROR FREE, OR THAT IF ERRORS ARE FOUND, THEY WILL BE CORRECTED. */ +/* https://github.com/BroadcomMFD/broadcom-product-scripts/tree/main*/ + ARG SAVEPDS ; + TRACE O; + output = "SAVEMBMR" ; +/* */ + "EXECIO * DISKR MERGED (STEM DATA. FINIS " ; +/* */ + Last_Element = " " ; +/* */ + Do ln = 1 to data.0 + COMPONENT = WORD(DATA.ln,01) ; + SYSTEM = WORD(DATA.ln,02) ; + SUBSYSTEM = WORD(DATA.ln,03) ; + TYPE = WORD(DATA.ln,04) ; + CUR_DATE = WORD(DATA.ln,05) ; + CUR_TIME = WORD(DATA.ln,07) ; +/* VERS_LEVL = WORD(DATA.ln,08) ; */ + Environ = WORD(DATA.ln,08) ; + STG_NUM = WORD(DATA.ln,09) ; + element = WORD(DATA.ln,10) ; + if ELEMENT /= Last_Element then, + DO + call Write_Element_Header ; + Last_element = ELEMENT ; + end; + call Reformat_fields ; + call Write_component_info ; + END; /* Do ln = 1 to data.0 */ + + "EXECIO 0 DISKW ACMQOUT (FINIS " + + EXIT(RC) ; + +Write_Element_Header: + + IF Last_Element /= " " then, + do + Comp_line = " " ; + push Comp_line ; + push Comp_line ; + "EXECIO 2 DISKW ACMQOUT " ; + end; + + Save_place = SAVEPDS"("element")" ; + Say "Writing" Save_place ; + ADDRESS TSO, + "ALLOC F(SAVEMBMR) DA('"Save_place"') SHR REUSE " ; + "EXECIO * DISKR SAVEMBMR ( STEM MBR. FINIS" ; + "EXECIO * DISKW ACMQOUT ( STEM MBR. " ; + DROP MBR. + + Comp_line = " " ; + push Comp_line ; + "EXECIO 1 DISKW ACMQOUT " ; + + Comp_line = " "COPIES("-",26)" INPUT COMPONENTS "COPIES("-",32); + push Comp_line ; + "EXECIO 1 DISKW ACMQOUT " ; + + Comp_line = " " ; + push Comp_line ; + push Comp_line ; + "EXECIO 2 DISKW ACMQOUT " ; + + Comp_line = " STEP: ACM#LOAD DD=SCAN ", + "VOL=NNNNNN DSN=ACM#LOAD.SCAN" + push Comp_line ; + "EXECIO 1 DISKW ACMQOUT " ; + + Comp_line = " " ; + push Comp_line ; + push Comp_line ; + "EXECIO 2 DISKW ACMQOUT " ; + + Comp_line = " ", + "MEMBER VV.LL DATE TIME SYSTEM SUBSYS ", + "ELEMENT TYPE STG STE ENVRMNT LD " + push Comp_line ; + "EXECIO 1 DISKW ACMQOUT " ; + + return ; + +Reformat_fields: + + tmp_yr = substr(CUR_DATE,3,2); + tmp_mo = substr(CUR_DATE,5,2); + tmp_da = substr(CUR_DATE,7,2); + tmp_hr = substr(CUR_TIME,1,2); + tmp_mi = substr(CUR_TIME,3,2); + + months = "JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC" ; +/* If tmp_mo < 1 | tmp_mo > 12 then, + Do + Say 'Component=' COMPONENT 'tmp_mo=' tmp_mo + tmp_mo = 1 + End */ + CUR_DATE = tmp_da||word(months,tmp_mo)||tmp_yr ; + CUR_TIME = tmp_hr":"tmp_mi ; + + return ; + +Write_component_info: + + Comp_line = copies(" ",133) ; + Comp_line = Overlay("+0100",Comp_line,3) ; + Comp_line = Overlay(COMPONENT,Comp_line,14) ; +/* Comp_line = Overlay(VERS_LEVL,Comp_line,25) ; */ + Comp_line = Overlay("01.00",Comp_line,25) ; + + Comp_line = Overlay(CUR_DATE,Comp_line,31) ; + Comp_line = Overlay(CUR_TIME,Comp_line,39) ; + + Comp_line = Overlay(SYSTEM,Comp_line,45) ; + Comp_line = Overlay(SUBSYSTEM,Comp_line,54) ; + Comp_line = Overlay(COMPONENT,Comp_line,63) ; + Comp_line = Overlay(TYPE,Comp_line,74) ; + Comp_line = Overlay(STG_NUM,Comp_line,84) ; /* STAGE NUMBER */ + Comp_line = Overlay("0",Comp_line,88) ; /* SITE NUMBER */ + Comp_line = Overlay(Environ,Comp_line,91) ; /* ENVIRONMENT */ + + PUSH Comp_line ; + "EXECIO 1 DISKW ACMQOUT " + + return ; diff --git a/endevor/Field-Developed-Programs/ACMBuild.bat b/endevor/Field-Developed-Programs/ACMBuild.bat new file mode 100644 index 0000000..26a8629 --- /dev/null +++ b/endevor/Field-Developed-Programs/ACMBuild.bat @@ -0,0 +1,31 @@ +REM In Windows, execute this command file to collect all Package +@ECHO OFF +ECHO ./ ADD NAME=@README > ACMBuild.moveout +ECHO These items come from the Endevor GitHub at >> ACMBuild.moveout +ECHO https://github.com/BroadcomMFD/broadcom-product-scripts >> ACMBuild.moveout +ECHO ------------------------------------------------------- >> ACMBuild.moveout +ECHO These are jcl : ACM#LOD1 ACM#LOD2 ACM#COPY >> ACMBuild.moveout +ECHO These are skl/CSIQSENU : ACM#LOD3 >> ACMBuild.moveout +ECHO These are rex/CSIQCLS0 : ACM#MERG ACM#REX1 ACM#REX2 >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#LOD1 >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#LOD1.jcl >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#LOD2 >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#LOD2.jcl >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#LOD3 >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#LOD3.skl >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#MERG >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#MERG.rex >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#REX1 >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#REX1.rex >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#REX2 >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#REX2.rex >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +ECHO ./ ADD NAME=ACM#COPY >> ACMBuild.moveout +TYPE ACM-build-without-Generates\ACM#COPY.jcl >> ACMBuild.moveout +ECHO. >> ACMBuild.moveout +REM