Edit macro @SLCT Edit macro @SLCT Author: David McRitchie formatted on 1995/04/01 06:54 for assistance contact: D. McRitchie DMcRitchie@hotmail.com -------------------------------------------------------------------------------- Macro name. @SLCT users. PDF EDIT users particularly SCRIPT users type. Edit Macro resides in SYS1.TSOCLIST -------------------------------------------------------------------------------- @SLCT Brings in JCL (PROC=SLCTTSO) for Selective SEARCH/PRINT of a PDS -------------------------------------------------------------------------------- related @RESQ edit macro -------------------------------------------------------------------------------- Use of the edit macro makes it easier to create a job to selectively print mem- bers from a source or text type dataset. The program invoked was designed to print a directory listing which is suppressed with SYSOUT=9. Each member printed will show directory information above it. -------------------------------------------------------------------------------- Since square brackets are not available, optional material is enclosed in European brackets <...>. ISREDIT @SLCT -------------------------------------------------------------------------------- Examples: The resulting member in edit after doing a reset would look something like this EDIT --- IS03.SHARE.TEXT(EXAMPLE) - 01.00 ------------------ COLUMNS 001 124 COMMAND ===> @SLCT SCROLL ===> CSR ****** **************************** TOP OF DATA ***************************** 000003 //* TITLE: LIST SELECTIVE SEARCH AND PRINT ANY PDS 000004 //* JCL CREATED: BY THE EDIT MACRO @SLCT AT 19:45 ON 1986/11/14 000005 //* USER CONTACT AND CODE MAINTENANCE: DAVID MCRITCHIE 000006 //EXAMPLE EXEC SLCTTSO,SYSOUT=V, 000008 // LIB='IS03.SHARE.TEXT' <== ?? CHECK DSNAME 000009 //PRINTER DD SYSOUT=9 DIRECTORY LISTING SUPPRESSED UNLESS COMMENT ED OUT 000010 //SEARCH DD * OPTIONAL SEARCH CARDS FOLLOW 000016 //SYSIN DD * OPTIONAL SELECT MEMBER CARDS FOLLOW 000017 EXCLUDE-EXAMPLE SPECIFICALLY EXCLUDES MEMBER EXAMPLE 000018 EXAMP <=??= WILL SELECT ALL OTHER MEMBERS BEGINNING WITH EXAMP . ****** ************************* BOTTOM OF DATA ***************************** The resulting member in edit before doing a reset would look something like thi s EDIT --- IS03.SHARE.TEXT(EXAMPLE) - 01.00 ------------------ COLUMNS 001 124 COMMAND ===> @SLCT SCROLL ===> CSR ****** **************************** TOP OF DATA ***************************** =NOTE= ............ YOU WILL NEED A JOBCARD, IF YOU DO NOT HAVE A JOBCARD =NOTE= ............ CLIST, YOU MAY @SLCT ONE FROM IS03.LIBR.CLIST(JOBCARD) 000003 //* TITLE: LIST SELECTIVE SEARCH AND PRINT ANY PDS 000004 //* JCL CREATED: BY THE EDIT MACRO @SLCT AT 19:45 ON 1986/11/14 000005 //* USER CONTACT AND CODE MAINTENANCE: DAVID MCRITCHIE 000006 //EXAMPLE EXEC SLCTTSO,SYSOUT=V, =NOTE= ==========> PLEASE CHECK THAT LIB= BELOW HAS CORRECT DSNAME 000008 // LIB='IS03.SHARE.TEXT' <== ?? CHECK DSNAME 000009 //PRINTER DD SYSOUT=9 DIRECTORY LISTING SUPPRESSED UNLESS COMMENT ED OUT 000010 //SEARCH DD * OPTIONAL SEARCH CARDS FOLLOW =NOTE= *.COPY* <=== EXAMPLE OF A SEARCH INPUT CARD =NOTE= * EXEC COPY * <=== EXAMPLE OF A SEARCH INPUT CARD =NOTE= * EXEC COPY,* <=== EXAMPLE OF A SEARCH INPUT CARD =NOTE= ==========> PLEASE CHECK MEMBER SELECTION AFTER //SYSIN DD * =NOTE= ==========> REMOVE ALL SELECTIONS TO PRINT / SEARCH ENTIRE LIBRARY 000016 //SYSIN DD * OPTIONAL SELECT MEMBER CARDS FOLLOW 000017 EXCLUDE-EXAMPLE SPECIFICALLY EXCLUDES MEMBER EXAMPLE 000018 EXAMP <=??= WILL SELECT ALL OTHER MEMBERS BEGINNING WITH EXAMP . =NOTE= |=======================================================================| =NOTE= | SELECTION CRITERIA USED BY PGM=IZ2018 IN PROC=SLCTTSO IS THE SAME | =NOTE= | AS USED BY PGM=IZ2019 AND CONSISTS OF EXAMINATION OF MEMBER- | =NOTE= | NAMES, CHECKING ON CORRESPONDING POSITIONS OF MEMBERNAME. | =NOTE= | @,#,$,A-Z,0-9 EXACT MATCH IN CORRESPONDING COLUMN REQUIRED | =NOTE= | % MUST BE A LETTER @,#,$,A-Z | =NOTE= | + MUST BE A DIGIT 0-9 IN CORRESPONDING COL. OF NAME | =NOTE= | * MUST BE A BLANK, HENCE REMAINDER ALSO BLANK | =NOTE= |//SYSIN DD * | =NOTE= |EXCLUDE- BCD EXCLUDE cards must precede INCLUDE- cards | =NOTE= |EXCLUDE-A E EXCLUDE members beginning with 'A', and POS. 5 'E' | =NOTE= |INCLUDE-ABCDE Member ABCDE excluded above, but ABCDE1 will select | =NOTE= |ABCED Same as if prefixed with INCLUDE-ABCDE | =NOTE= |=======================================================================| =NOTE= | ------- DEFAULT PRINTS HORIZONTALLY ON 3800 --------------------- | =NOTE= | LC=88,OUTPUT=H3800 DEFAULT -- PRINTS HORIZONTALLY ON 3800 | =NOTE= | ------- ADD JCL PARAMETERS TO PRINT IN NORMAL CHARACTERS -------- | =NOTE= | LC=60,OUTPUT=LC60 PRINT USING REGULAR CHARS=GT15,FCB=8X85 | =NOTE= | IN SMALL LETTERS 12/INCH VERTICAL, 15/INCH HORIZONTAL | =NOTE= | ------- PRINT OPTIONS TO PRINT ON VERTICAL -SCRIPT- PAPER ------ | =NOTE= | LC=80,OUTPUT=LC80 MEMBER NAME, 2 BLANKS, 105 CHAR/LINE GT15 | =NOTE= |LC=120,OUTPUT=V3800 MEMBER NAME, 2 BLANKS, 105 CHAR/LINE GC15 | =NOTE= |=======================================================================| =NOTE= |USAGE: SOURCE TYPE PDS -- NOT RECFM=U | =NOTE= |PURPOSE: PRINT MEMBERS OF A PDS, AND/OR | =NOTE= | SEARCH FOR CHARACTER STRINGS IN A PDS, AND/OR | =NOTE= | SELECT MEMBERS BY PGM=IZ2019 STANDARDS | =NOTE= | PROC=SLCTTSO SET UP TO PRINT ON A 3800 | =NOTE= |ADDITIONAL INFORMATION: ===> TSO INFOHELP PGMINDX | =NOTE= | PROGRAM INFORMATION ===> FIND FIRST 'IZ2018:' | =NOTE= | MEMBER SELECTION ===> FIND FIRST 'IZ2019:' | =NOTE= |=======================================================================| ****** ************************* BOTTOM OF DATA ***************************** Example of Printing an Entire Library from the command line of DSLIST The examples here serve two purposes. 1. Demonstration of using a edit macro on the command line of DSLIST. 2. Content of the clists that obtain the objective of printing an entire li- brary using PROC=SLCTTSO in a batch job and submitting same. The clists are printed as examples of the output from PROC=SLCTTSO. * The first edit macro, @SLCTDS, obtains the dsname, and places you into edit on a hopefully newly created member ZZ, invoking the edit macro @SLCTDS1. * The second edit macro, @SLCTDS1, creates JCL to list the entire dataset. Example of a DSLIST with @SLCTDS entered on commands lines. DSLIST - DATA SETS BEGINNING WITH IS03.SHARE --------------------- ROW 1 OF 2 COMMAND ===> SCROLL ===> PAGE COMMAND NAME DSORG RECFM LRECL BLKS ------------------------------------------------------------------------------ IS03.SHARE.AAAA @SLCTDS RC=0 PO FB 80 608 @SLCTDS IS03.SHARE.CNTL PO FB 80 608 @SLCTDS IS03.SHARE.TEXT PO VB 255 892 ***************************** END OF DATA SET LIST *************************** Content of @SLCTDSI edit macro generated JCL If the @SLCTDS1 edit macro contains SUBMITIT, you will not see this JCL, but it will be submitted and you will be cancelled out of member ZZ which was created within the @SLCTDS edit macro. ....... JOB .....jobcard generated........ //ZZ EXEC SLCTTSO,SYSOUT=2, // OUTPUT='*.DOWN8',LC=78, // LIB='xxxx.SHARE.TEXT' //DOWN8 OUTPUT GROUPID=TEXT Content of @SLCT edit macro generated JCL Compare the above with the regular JCL created //xxxxxxx JOB (xxxx,xxxx),xxxxxxxxx,CLASS=X,NOTIFY=xxxx //**** Z xxxx FIRST LASTNAME 1992/01/31 22:28:08 //**** JCL xxxx.xxxxx.xxxx(x) 1992/01/31 22:28:08 //* --TO CHANGE STORED %JOBCARD VARIABLES USE ==> %JOBCARD REFRESH-- //* TITLE: LIST SELECTIVE SEARCH AND PRINT ANY PDS //* JCL CREATED: BY THE EDIT MACRO @SLCT AT 22:27:01 ON 1992/01/31 //* USER CONTACT AND CODE MAINTENANCE: DAVID MCRITCHIE //Z EXEC SLCTTSO,SYSOUT=V, //** OUTPUT='*.DOWN8',LC=78, // LIB='xxxx.xxxx.xxxxx' <== ?? CHECK DSNAME //PRINTER DD SYSOUT=9 DIRECTORY LIST SUPPRESSED IF SYSOUT=9 //SEARCH DD * OPTIONAL SEARCH CARDS FOLLOW //SYSIN DD * OPTIONAL SELECT MEMBER CARDS FOLLOW @SLCT <=??= WILL SELECT ALL OTHER MEMBERS BEGINNING @SLCT Listings Produced. Directory PRINTER PGM=IZ2018 JOB IS03Z STEP Z .SLCTTSO RUN DATE 92.031 TIME 2 DSN=IS03.LIBR.CLIST , 3390 , TSOD03 DA MEMBER --TTR- A # CT VS.MD CDATE MDATE MTIME CUR-RECS ORG-RECS MOD-RECS @SLCTDS 005C12 0 0 15 01.01 92031 92031 20:27 4 8 0 @SLCTDS1 005E04 0 0 15 01.03 92031 92031 22:10 20 16 0 @SMALLS 004507 0 0 15 01.05 85260 91196 09:34 318 256 0 DIRECTORY.ENTRIES= 850 DIRECTORY.BLKS= 142 Content PRINT2 PGM=IZ2018 JOB IS03Z STEP Z .SLCTTSO RUN DATE 92.031 TIME 2 DSN=IS03.LIBR.CLIST , 3390 , TSOD03 DATE @SLCTDS ------------- VV.MM=01.01 CREATED= 92031 MODIFIED= 92031 92-01-31 FR @SLCTDS /* REXX test of command for 2.3.4 */ @SLCTDS Parse arg "'"DSN"'" @SLCTDS dsn = ''''||DSN||'(ZZ)''' @SLCTDS "%$EDIT" DSN "MACRO(@SLCTDS1) NEW" @SLCTDS1------------- VV.MM=01.03 CREATED= 92031 MODIFIED= 92031 92-01-31 FR @SLCTDS1 /* REXX -- ................ */ @SLCTDS1 ADDRESS "ISREDIT" @SLCTDS1 "MACRO (TOKEN)" @SLCTDS1 " ISREDIT (MEMBERX) = MEMBER " @SLCTDS1 " ISREDIT (DSNX) = DATASET" @SLCTDS1 GROUPID = RIGHT(DSNX,8) @SLCTDS1 I = INDEX(GROUPID,'.'); IF Iª=0 THEN GROUPID=SUBSTR(GROUPID,I+1) @SLCTDS1 "LINE_AFTER 0 = DATALINE ", @SLCTDS1 """//"||"* CREATED BY @SLCTDS1 &SYSDATE. &SYSTIME.""" @SLCTDS1 "LINE_BEFORE .ZL = DATALINE ", @SLCTDS1 """//&MEMBERX. EXEC SLCTTSO,SYSOUT=X,""" @SLCTDS1 "LINE_BEFORE .ZL = DATALINE ", @SLCTDS1 """// OUTPUT='*.DOWN8',LC=78,""" @SLCTDS1 "LINE_BEFORE .ZL = DATALINE ", @SLCTDS1 """// LIB='&DSNX.' <== ?? CHECK DSNAME""" @SLCTDS1 "LINE_BEFORE .ZL = DATALINE ", @SLCTDS1 """//DOWN8 OUTPUT GROUPID="||GROUPID||"""" @SLCTDS1 "LINE_AFTER .ZL = DATALINE ", @SLCTDS1 """//SYSIN DD * FOR !EDCHEK""" @SLCTDS1 "JOBCARD X";"SUBMITIT" 'IS03.SHARE.TEXT(NCADD)' -- April 1st, 1995 6:54 a.m. -- @SLCT -------------------------------------------------------------------------------- SCRIPT 'IS03.SHARE.TEXT(NCADD)' PRO('SCRIPT.R40.MACLIB(DSMPROFL)') L('SCRIPT.R40.MACLIB') FI('IS03.NCPDSHLP.LIST') TW CONT SYSVAR(X NO H NO D NO) M(ID TRACE) BIND(0 0) INDEX DEV(1403W8) 1995/04/01 Saturday, April 01, 1995 06:54 1403 -------------------------------------------------------------------------------- n @SLCT on