This edit macro helps us to open the copybook in the program in view mode by just pressing the copybook name by placing the cursor in the copybook position.
/** REXX */
/*TRACE ?I*/
ADDRESS ISREDIT
'ISREDIT MACRO PROCESS'
'(C1,C2) = CURSOR'
FLAG = 'N'
"(LINEDATA) = LINE "C1
NAME = ' '
K = C2 - 1
NAME1 = ' '
DO UNTIL FLAG = 'Y'
IF SUBSTR(LINEDATA,K,1) = " ' " THEN
FLAG = 'Y'
ELSE
IF SUBSTR(LINEDATA,K,1) <> " ' " THEN
NAME1 = NAME1 !! SUBSTR(LINEDATA,K,1)
K = K - 1
END
NAME1 = REVERSE(NAME1)
FLAG = 'N'
DO UNTIL FLAG = 'Y'
IF SUBSTR(LINEDATA,C2,1) = " ' " THEN
FLAG = 'Y'
ELSE
IF SUBSTR(LINEDATA,C2,1) <> " ' " THEN
NAME = NAME !! SUBSTR(LINEDATA,C2,1)
C2 = C2 + 1
END
NAME = NAME1 !! NAME
UPPER NAME
PDS.1 = 'MANI.PEPUMAC.MAC'
PDS.2 = 'MANI.UEREFMAC.MAC'
SRCH_FND = 0
CALL SEARCH_PROCESS
EXIT
SEARCH_PROCESS:
DO J = 1 TO 2 UNTIL J = 3
PDSNAME = "'" !! PDS.J !! "'"
RP = OUTTRAP(MEM.)
ADDRESS TSO "LISTDS "PDSNAME" MEMBERS"
DO I = 7 TO MEM.0 UNTIL I = MEM.0
PARSE VAR MEM.I MEMNAME1 MEMNAME2
IF NAME = MEMNAME1 THEN
DO
SRCH_FND = 1
TEMPNAME = "'" !! PDS.J !! "(" !! MEMNAME1 !! ")'"
CALL OPEN_MEMBER
LEAVE J
END
END
ADDRESS TSO "FREE"
END
RETURN
OPEN_MEMBER:
ADDRESS ISPEXEC " VIEW DATASET ("TEMPNAME")"
ADDRESS TSO " FREE "
EXIT
Showing posts with label Mainframe Codes. Show all posts
Showing posts with label Mainframe Codes. Show all posts
Wednesday, December 19, 2007
Wednesday, May 23, 2007
This Macro is used to save a member of a PDS in View mode
/*REXX*/
'ISREDIT MACRO'
ADDRESS ISREDIT
"(MEM) = MEMBER"
"(DSN) = DATASET"
IF MEM = '' THEN DO
SAY 'DESIGNED FOR PDS MEMBER'
EXIT
END
"ISREDIT SAVE"
IF RC = 0 THEN DO
SAY 'NOT IN VIEW MODE.USE SAVE'
EXIT PROGRAM
END
"ISREDIT REPL .ZF .ZL " MEM
IF RC = 0 THEN
SAY 'MEMBER SAVED.EXIT FROM VIEW MODE' ELSE
SAY 'MEMBER NOT SAVED.RETURN CODE ' RC
EXIT
'ISREDIT MACRO'
ADDRESS ISREDIT
"(MEM) = MEMBER"
"(DSN) = DATASET"
IF MEM = '' THEN DO
SAY 'DESIGNED FOR PDS MEMBER'
EXIT
END
"ISREDIT SAVE"
IF RC = 0 THEN DO
SAY 'NOT IN VIEW MODE.USE SAVE'
EXIT PROGRAM
END
"ISREDIT REPL .ZF .ZL " MEM
IF RC = 0 THEN
SAY 'MEMBER SAVED.EXIT FROM VIEW MODE' ELSE
SAY 'MEMBER NOT SAVED.RETURN CODE ' RC
EXIT
Wednesday, April 25, 2007
Creating Current Date and Time in a file
//MANIMA JOB (020406),'MANIM/941-2',
// MSGLEVEL=1,MSGCLASS=O,NOTIFY=MANIM,
// CLASS=A
//S2 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
HI MANI
//SORTOUT DD DSN=MANIM.TEST.DATE,DISP=(MOD,CATLG),
// SPACE=(TRK,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSIN DD *
SORT FIELDS=(1,6,CH,A),FORMAT=CH
OUTREC FIELDS=(1:DATE1(-),12:TIME1(:),20:1,18)
/*
Output will be like this,
2007-04-25 03:37:44 HI MANI
// MSGLEVEL=1,MSGCLASS=O,NOTIFY=MANIM,
// CLASS=A
//S2 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
HI MANI
//SORTOUT DD DSN=MANIM.TEST.DATE,DISP=(MOD,CATLG),
// SPACE=(TRK,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSIN DD *
SORT FIELDS=(1,6,CH,A),FORMAT=CH
OUTREC FIELDS=(1:DATE1(-),12:TIME1(:),20:1,18)
/*
Output will be like this,
2007-04-25 03:37:44 HI MANI
Monday, April 23, 2007
Date into a dataset name
Sometimes we want to create lot of datasets and will be in a confusion on which date the dataset is created, etc. So it will be better to create the datasets with date and time as shown below,
//MANIMA JOB (020406),'MANIM/941-2',
// MSGLEVEL=1,MSGCLASS=O,NOTIFY=MANIM,
// CLASS=A
//STEPA EXEC PGM=EZACFSM1
//SYSOUT DD SYSOUT=(*,INTRDR)
//SYSIN DD DATA,DLM=@@
//MANIMB JOB (020406),'MANIM/941-2',
// MSGLEVEL=1,MSGCLASS=O,NOTIFY=MANIM,
// CLASS=A
//STEPB EXEC PGM=IEBCOPY
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//*
//SYSUT1 DD DISP=SHR,
// DSN=MANIM.TEST.REXX
//SYSUT2 DD DISP=(NEW,CATLG,DELETE),
// DSN=MANIM.UKX0702B.S010.#1.D&LYYMMDD..T&LHHMMSS,
// UNIT=SYSDA,SPACE=(CYL,(5,5,5))
/*
//SYSIN DD DUMMY
@@
//
Output will be like this given below,
MANIM.UKX0702B.S010.#1.D070424.T024946
MANIM.UKX0702B.S010.#1.D070424.T025318
//MANIMA JOB (020406),'MANIM/941-2',
// MSGLEVEL=1,MSGCLASS=O,NOTIFY=MANIM,
// CLASS=A
//STEPA EXEC PGM=EZACFSM1
//SYSOUT DD SYSOUT=(*,INTRDR)
//SYSIN DD DATA,DLM=@@
//MANIMB JOB (020406),'MANIM/941-2',
// MSGLEVEL=1,MSGCLASS=O,NOTIFY=MANIM,
// CLASS=A
//STEPB EXEC PGM=IEBCOPY
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//*
//SYSUT1 DD DISP=SHR,
// DSN=MANIM.TEST.REXX
//SYSUT2 DD DISP=(NEW,CATLG,DELETE),
// DSN=MANIM.UKX0702B.S010.#1.D&LYYMMDD..T&LHHMMSS,
// UNIT=SYSDA,SPACE=(CYL,(5,5,5))
/*
//SYSIN DD DUMMY
@@
//
Output will be like this given below,
MANIM.UKX0702B.S010.#1.D070424.T024946
MANIM.UKX0702B.S010.#1.D070424.T025318
Tuesday, April 17, 2007
Invoke Search-For Extended utility using REXX
Function:
This REXX exec can be issued as an EDIT macro or from the Data Set List panel to invoke the Search-For Extended utility for the current data set.
Operation:
Enter SFE as a line command on the DSLIST panel or as a primary command in EDIT or VIEW to enter the Search-For Extended utility and search the current data set.
/*************REXX*****************/
ADDRESS 'ISPEXEC'
"CONTROL ERRORS RETURN"
"ISREDIT MACRO (SRF4FILE)"
IF RC=0 THEN DO
IF SRF4FILE='' THEN DO
"ISREDIT (DSN) = DATASET"
IF RC>0 THEN EXIT RC
SRF4FILE="'"DSN"'"
END
END
ELSE
ARG SRF4FILE
IF SRF4FILE='' THEN EXIT 4
SRF4MEM='*'
SRC4WKPL='Y'
"VPUT (SRC4WKPL SRF4FILE SRF4MEM)"
"SELECT PGM(ISRSEPRM) PARM(S4) SCRNAME(SRCHFORE) "
IF ZERRMSG\='' THEN "SETMSG MSG("ZERRMSG")"
This REXX exec can be issued as an EDIT macro or from the Data Set List panel to invoke the Search-For Extended utility for the current data set.
Operation:
Enter SFE as a line command on the DSLIST panel or as a primary command in EDIT or VIEW to enter the Search-For Extended utility and search the current data set.
/*************REXX*****************/
ADDRESS 'ISPEXEC'
"CONTROL ERRORS RETURN"
"ISREDIT MACRO (SRF4FILE)"
IF RC=0 THEN DO
IF SRF4FILE='' THEN DO
"ISREDIT (DSN) = DATASET"
IF RC>0 THEN EXIT RC
SRF4FILE="'"DSN"'"
END
END
ELSE
ARG SRF4FILE
IF SRF4FILE='' THEN EXIT 4
SRF4MEM='*'
SRC4WKPL='Y'
"VPUT (SRC4WKPL SRF4FILE SRF4MEM)"
"SELECT PGM(ISRSEPRM) PARM(S4) SCRNAME(SRCHFORE) "
IF ZERRMSG\='' THEN "SETMSG MSG("ZERRMSG")"
Subscribe to:
Posts (Atom)

