Natarajan R A
New User
Joined: 11 Jun 2014 Posts: 12 Location: INDIA
|
|
|
|
Hi,
I want to run a REXX program using JCL, which fetches last and last before records from a dataset.
JCL:
//STEP001 EXEC PGM=IKJEFT01,
// PARM='PSNAME'
//SYSTSPRT DD SYSOUT=*
//SYSEXEC DD DSN=DSNname,DISP=SHR
//SYSTSIN DD *
REXX:
I=1
INPUT = 'RST.rxx'
ADDRESS 'ISPEXEC'
"LMDINIT LISTID(LISTID) LEVEL("INPUT")"
IF RC > 0 THEN RETURN 0
"LMDLIST LISTID("LISTID") DATASET(DSNAME) OPTION(LIST)"
DO WHILE RC = 0
SAY 'FOUND DATASET 'DSNAME*/
ST.I=DSNAME
J=I
K=I-1
I=I+1
"LMDLIST LISTID("LISTID") DATASET(DSNAME) OPTION(LIST)"
END
"LMDFREE LISTID("LISTID")"
IF RC > 0 THEN RETURN 0
SAY 'PREVIOUS FILE NAME :'ST.K
SAY 'CURRENT FILE NAME :'ST.J
RETURN 1
Error:
5 *-* "LMDINIT LISTID(LISTID) LEVEL("INPUT")"
+++ RC(-3) +++
7 *-* "LMDLIST LISTID("LISTID") DATASET(DSNAME) OPTION(LIST)"
+++ RC(-3) +++
16 *-* "LMDFREE LISTID("LISTID")"
+++ RC(-3) +++
If I run REXX directly, I am not getting RC(-3) error, and its executing fine.
Is there are any JCLs to execute REXX successfully . ? or correct me if I went any where wrong in the above JCL or REXX. |
|
Paul Voyner
New User
Joined: 26 Nov 2012 Posts: 52 Location: UK
|
|
|
|
Code: |
//S1 EXEC PGM=IKJEFT1A
//SYSEXEC DD DISP=SHR,DSN=my.rexx.lib
//ISPPLIB DD DISP=(,PASS),SPACE=(TRK,(1,1,1)),UNIT=VIO,
// DCB=(LRECL=80,BLKSIZE=27920,DSORG=PO,RECFM=FB)
//ISPMLIB DD DISP=SHR,DSN=SYS1.ISP.SISPMENU CAN'T BE TMP
//ISPSLIB DD DISP=(,PASS),SPACE=(TRK,(1,1,1)),UNIT=VIO,
// DCB=(LRECL=80,BLKSIZE=27920,DSORG=PO,RECFM=FB)
//ISPPROF DD DISP=(,PASS),SPACE=(TRK,(1,1,1)),UNIT=VIO,
// DCB=(LRECL=80,BLKSIZE=27920,DSORG=PO,RECFM=FB)
//ISPTABL DD DISP=(,PASS),SPACE=(TRK,(1,1,1)),UNIT=VIO,
// DCB=(LRECL=80,BLKSIZE=27920,DSORG=PO,RECFM=FB)
//ISPTLIB DD DISP=SHR,DSN=SYS1.ISP.SISPTENU CAN'T BE TMP
//ISPLOG DD DSN=&&TMP,UNIT=SYSDA,SPACE=(121,(10,10,10)),DISP=(,PASS)
//SYSTSIN DD *
PROFILE NOPREFIX
ISPSTART CMD(%MYEXEC PARM1 PARM2 etc)
// |
|
|