View previous topic :: View next topic
|
Author |
Message |
crazyf1
New User
Joined: 05 May 2006 Posts: 26
|
|
|
|
I am just new with REXX programming and would want to do this as I am always getting a RC(-3)
Thanks
Objective:
From an input dataset, i want to change all READ,WRITE,ALLOC into R,W,A and del all EXEC
REXX
----------------------------
Code: |
/**REXX**************************************
********************************************/
PARSE ARG DSNAME MACRO1
ADDRESS ISPEXEC
"EDIT DATASET('"DSNAME"') MACRO("MACRO1")"
EXIT
|
MACRO - MACRO01
-----------------------------------
Code: |
/* REXX */
ISREDIT MACRO
ISREDIT CHANGE READ R ALL
ISREDIT CHANGE WRITE W ALL
ISREDIT CHANGE ALLOC A ALL
ISREDIT CHANGE EXEC(L) '' ALL
ISREDIT CHANGE EXEC(A) '' ALL
END
|
JCL
-------------------------------------
Code: |
//REXPROC1 PROC
//STEP010 EXEC PGM=IKJEFT01,DYNAMNBR=20,
// PARM='%EDITREXX &ARG01 &ARG02'
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=(G,,JOHN)
//SYSTSIN DD DUMMY
//SYSPROC DD DSN=TSGP.PDS.JASON.WORK.REXX,DISP=SHR
// PEND
//STEP01 EXEC REXPROC1,ARG01=TSGS.TEST.IDS,ARG02=MACRO01
|
|
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
OK.
#1.
Code: |
/* REXX */
ISREDIT MACRO
ISREDIT CHANGE READ R ALL
ISREDIT CHANGE WRITE W ALL
ISREDIT CHANGE ALLOC A ALL
ISREDIT CHANGE EXEC(L) '' ALL
ISREDIT CHANGE EXEC(A) '' ALL
END
|
This is NOT valid REXX code, and your ISPF Editor indicates such. ISREDIT and END are not valid REXX constructs. It is, however, valid CLIST code (minus the /* REXX */ statement, of course).
#2.
In your JCL, I don't see any ISPSTART command to invoke ISPF or any DD allocations for the requisite ISPF libraries (ISPLLIB, ISPPLIB, ISPSLIB, ISPMLIB, ISPPROF, ISPTABL, ISPTLIB, ISPLOG, ISPLIST).
For more details on the ISPSTART command, see here in the z/OS V1R7.0 ISPF Dialog Developer's Guide. |
|
Back to top |
|
|
crazyf1
New User
Joined: 05 May 2006 Posts: 26
|
|
|
|
if I am to invoke this as a CLIST, do i need to have ISPSTART command in my jcl? |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
You only need to invoke ISPSTART if you want to use ISPF services. |
|
Back to top |
|
|
crazyf1
New User
Joined: 05 May 2006 Posts: 26
|
|
|
|
Where do i put ISPSTART in my jcl? do i need to also to do DD allocations for the requisite ISPF libraries? or can i just use ISPSTART? |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
Back to top |
|
|
crazyf1
New User
Joined: 05 May 2006 Posts: 26
|
|
|
|
thank you very much! |
|
Back to top |
|
|
crazyf1
New User
Joined: 05 May 2006 Posts: 26
|
|
|
|
Can someone please help with this... getting a MAXCC=12
Also, I tried searching for my id (using 3.4) and it seems only 'T62811.ISPF.ISPPROF' is only available... so i tried using DUMMY/SYSOUT=* however, job failed.
Code: |
//TSOBTCH1 EXEC PGM=IKJEFT01
//ISPPROF DD DSN=TS62811.ISPF.ISPPROF,DISP=SHR
//ISPPLIB DD DSN=ISP.SISPPENU,DISP=SHR
//ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR
//ISPSLIB DD DSN=ISP.SISPSENU,DISP=SHR
// DD DSN=ISP.SISPSLIB,DISP=SHR
//ISPTLIB DD DSN=TS62811.ISPF.TABLES,DISP=SHR
//ISPTLIB DD DSN=ISP.SISPTENU,DISP=SHR
// DD DSN=ISP.SISPTLIB,DISP=SHR
//ISPTABL DD DSN=TS62811.ISPF.TABLES,DISP=SHR
//ISPLOG DD DSN=TS62811.ISPF.LOG,DISP=SHR
//ISPLLIB DD DSN=TS62811.ISPF.LOAD,DISP=SHR
//SYSEXEC DD DSN=ISP.SISPEXEC,DISP=SHR
//SYSPROC DD DSN=TSGP.PDS.JASON.WORK.REXX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE PREFIX(TS62811)
ISPSTART CMD(%EDITREXX TSGS.TEST.IDS MACRO1)
/*
|
TSGS.TEST.IDS ---> Dataset i want to edit
MACRO1 ----> Macro that will edit the dataset |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
Please post the error message(s). |
|
Back to top |
|
|
crazyf1
New User
Joined: 05 May 2006 Posts: 26
|
|
|
|
I am getting a MAXCC=12 abend 0C4 using this JCL. i really can't find any library allocated to my ispf.
Using 3.4 and searching for my id as HLQ
TS62811.CPPTEMP1.SCPPWORK
TS62811.CPPTEMP2.SCPPWORK
TS62811.CPPTEMP3.SCPPWORK
TS62811.HCD.MSGLOG
TS62811.HCD.TERM
TS62811.HCD.TRACE
TS62811.ISPF.ISPPROF
TS62811.ISPF.ISPPROF.CPUG
TS62811.LOG.MISC
TS62811.SPFLOG1.LIST
TS62811.SPFTEMP0.CNTL
TS62811.SRCHFOR.LIST
TS62811.SUPERC.LIST
JCL <-- substituted all files with SYSOUT=*
---------------------------------------------------------------
Code: |
//TSOBTCH1 EXEC PGM=IKJEFT01
//ISPPROF DD SYSOUT=*
//ISPPLIB DD DSN=ISP.SISPPENU,DISP=SHR
//ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR
//ISPSLIB DD DSN=ISP.SISPSENU,DISP=SHR
//* DD DSN=ISP.SISPSLIB,DISP=SHR
//ISPTLIB DD SYSOUT=*
//ISPTLIB DD DSN=ISP.SISPTENU,DISP=SHR
// DD DSN=ISP.SISPTLIB,DISP=SHR
//ISPTABL DD SYSOUT=*
//ISPLOG DD SYSOUT=*
//ISPLLIB DD SYSOUT=*
//SYSEXEC DD DSN=ISP.SISPEXEC,DISP=SHR
//SYSPROC DD DSN=TSGP.PDS.JASON.WORK.REXX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE PREFIX(TS62811)
ISPSTART CMD(%EDITREXX TSGS.TEST.IDS MACRO1)
/*
|
[/list] |
|
Back to top |
|
|
|