Showing posts with label Mainframe Codes. Show all posts
Showing posts with label Mainframe Codes. Show all posts

Wednesday, December 19, 2007

Edit macro to open the copybook by just clicking the copybook name in the program

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

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

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

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

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")"