View previous topic :: View next topic
Author
Message
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
Hi Good Morning ,
I am new to REXX so please bear with me if this simple question.
I have Coded REXX
1. Main REXX program (XYZ)
Code:
/************** DATASET RECALL *************************/
DATASETR:
USER=USERID()
SKEL = ''
HLQ = RQUAL
SELECT
WHEN SYS='CCA0' THEN
DO
IF RSS = 'A1' THEN
DO
OWN1 = 'LK'
SKEL = 'SAVELST'
CALL RUNJOB
2. Savelist CLIST .
Code:
ADDRESS ISPEXEC
/****************************************************************/
/* CHANGE THE QUALIFIERS AS PER REQUIREMENT */
/****************************************************************/
/* ASM FILES */
/****************************************************************/
DSNLEV = '&HLQ..AS&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTASMF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMF") OPTION(SAVE) GROUP(ASMFFB) STATS(YES)"
"LMDLIST LISTID("LSTASMF") OPTION(FREE) GROUP(ASMFFB) STATS(YES)"
DSNLEV = '&HLQ..AS&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTASMO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMO") OPTION(SAVE) GROUP(ASMONS) STATS(YES)"
"LMDLIST LISTID("LSTASMO") OPTION(FREE) GROUP(ASMONS) STATS(YES)"
DSNLEV = '&HLQ..AS&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTASMV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMV") OPTION(SAVE) GROUP(ASMVS) STATS(YES)"
Where HLQ and RSS needs to pass from main REXX program
SAVELST is the job which need to be exeuted to take the save list.
Code:
//&USER.SV JOB (AR),'SAVE LIST ',
// CLASS=S,MSGCLASS=T,
// NOTIFY=&SYSUID
//*
//*
//EQQDELDS EXEC PGM=EQQDELDS,COND=(00,NE)
//*
//PS050 EXEC PGM=IKJEFT01,PARM='ISPSTART CMD(SVLSTHKR'
//* COND=(00,NE,PS040)
//*
//SYSEXEC DD DSN=P31511.PDS.TOOLS.REXX,
// DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//ASMI01 DD DSN=&USER..ASMFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI02 DD DSN=&USER..ASMONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI03 DD DSN=&USER..ASMVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
%SVLSTHKR
/*
2nd Option i tired.
Code:
//PS050 EXEC PGM=IKJEFT01,PARM='ISPSTART CMD(SVLSTHKR'
//* COND=(00,NE,PS040)
//*
//SYSEXEC DD DSN=P31511.PDS.TOOLS.REXX,
// DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//**********************************************************************
//*********** ASM FFB, ONS, VSO, VSB SAVELIST **************************
//**********************************************************************
//ASMI01 DD DSN=P31511.ASMFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI02 DD DSN=P31511.ASMONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI03 DD DSN=P31511.ASMVS.DATASETS,
But both jobs failed with ABEND U0102
Can any one help..
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
Continaution to above
I have tired like below as well
Code:
//PS050 EXEC PGM=IKJEFT01,DYNAMNBR=200
//* COND=(00,NE,PS040)
//*
//SYSEXEC DD DSN=P31511.PDS.TOOLS.REXX,
// DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//**********************************************************************
//*********** ASM FFB, ONS, VSO, VSB SAVELIST **************************
//**********************************************************************
//ASMI01 DD DSN=P31511.ASMFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI02 DD DSN=P31511.ASMONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI03 DD DSN=P31511.ASMVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
%SVLSTHKR
/*
But got the same issue ... not able to find the rootcause for the issue
Back to top
steve-myers Active Member Joined: 30 Nov 2013Posts: 917 Location: The Universe
You have multiple issues here.Running services like LMDLIST in batch requires additional DD statements in the the JCL so ISPF can run. That may be the proximate cause of the U0102 ABEND. You can invoke a CLIST in a Rexx EXEC in two ways.As a pseudo TSO line command
clist-member ...
If you do this the CLIST must be a member in a partitioned data set specified by a SYSPROC DD statement.
As a TSO EXECUTE (EX) command
EX clist ' ... '
where clist is the data set name of a data set containing your CLIST or dataset(clist)
I believe the Rexx CALL command usually references a procedure in the same member as the CALL command. RUNJOB is not a procedure in your prototype Rexx exec. I know a Rexx CALL can reference an external procedure, but I am not enough of a Rexx expert to coach you in the requirements to call an external procedure.
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
This is my entire code
Code:
ADDRESS ISPEXEC
/* ASM FILES */
/****************************************************************/
DSNLEV = '&HLQ..AS&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTASMF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMF") OPTION(SAVE) GROUP(ASMFFB) STATS(YES)"
"LMDLIST LISTID("LSTASMF") OPTION(FREE) GROUP(ASMFFB) STATS(YES)"
DSNLEV = '&HLQ..AS&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTASMO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMO") OPTION(SAVE) GROUP(ASMONS) STATS(YES)"
"LMDLIST LISTID("LSTASMO") OPTION(FREE) GROUP(ASMONS) STATS(YES)"
DSNLEV = '&HLQ..AS&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTASMV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMV") OPTION(SAVE) GROUP(ASMVS) STATS(YES)"
"LMDLIST LISTID("LSTASMV") OPTION(FREE) GROUP(ASMVS) STATS(YES)"
/****************************************************************/
/* CMS FILES */
DSNLEV = '&HLQ..AR&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCMSF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCMSF") OPTION(SAVE) GROUP(CMSFFB) STATS(YES)"
"LMDLIST LISTID("LSTCMSF") OPTION(FREE) GROUP(CMSFFB) STATS(YES)"
DSNLEV = '&HLQ..AR&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCMSO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCMSO") OPTION(SAVE) GROUP(CMSONS) STATS(YES)"
"LMDLIST LISTID("LSTCMSO") OPTION(FREE) GROUP(CMSONS) STATS(YES)"
DSNLEV = '&HLQ..AR&RSS..CD*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCMSC") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCMSC") OPTION(SAVE) GROUP(CMSCD) STATS(YES)"
"LMDLIST LISTID("LSTCMSC") OPTION(FREE) GROUP(CMSCD) STATS(YES)"
DSNLEV = '&HLQ..AR&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCMSV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCMSV") OPTION(SAVE) GROUP(CMSVS) STATS(YES)"
"LMDLIST LISTID("LSTCMSV") OPTION(FREE) GROUP(CMSVS) STATS(YES)"
DSNLEV = '&HLQ..ARLK.**.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCMSB") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCMSB") OPTION(SAVE) GROUP(CMSLK) STATS(YES)"
"LMDLIST LISTID("LSTCMSB") OPTION(FREE) GROUP(CMSLK) STATS(YES)"
/****************************************************************/
/* MBS FILES */
/****************************************************************/
DSNLEV = '&HLQ..MB&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTMBSF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTMBSF") OPTION(SAVE) GROUP(MBSFFB) STATS(YES)"
"LMDLIST LISTID("LSTMBSF") OPTION(FREE) GROUP(MBSFFB) STATS(YES)"
DSNLEV = '&HLQ..MB&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTMBSO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTMBSO") OPTION(SAVE) GROUP(MBSONS) STATS(YES)"
"LMDLIST LISTID("LSTMBSO") OPTION(FREE) GROUP(MBSONS) STATS(YES)"
DSNLEV = '&HLQ..MB&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTMBSV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTMBSV") OPTION(SAVE) GROUP(MBSVS) STATS(YES)"
"LMDLIST LISTID("LSTMBSV") OPTION(FREE) GROUP(MBSVS) STATS(YES)"
DSNLEV = '&HLQ..OC&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCTAF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCTAF") OPTION(SAVE) GROUP(CTAFFB) STATS(YES)"
"LMDLIST LISTID("LSTCTAF") OPTION(FREE) GROUP(CTAFFB) STATS(YES)"
DSNLEV = '&HLQ..OC&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCTAO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCTAO") OPTION(SAVE) GROUP(CTAONS) STATS(YES)"
"LMDLIST LISTID("LSTCTAO") OPTION(FREE) GROUP(CTAONS) STATS(YES)"
DSNLEV = '&HLQ..OC&RSS..CD*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCTAC") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCTAC") OPTION(SAVE) GROUP(CTACD) STATS(YES)"
"LMDLIST LISTID("LSTCTAC") OPTION(FREE) GROUP(CTACD) STATS(YES)"
DSNLEV = '&HLQ..OC&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTCTAV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCTAV") OPTION(SAVE) GROUP(CTAVS) STATS(YES)"
"LMDLIST LISTID("LSTCTAV") OPTION(FREE) GROUP(CTAVS) STATS(YES)"
DSNLEV = '&HLQ..OCLK.*'
"LMDINIT LISTID("LSTCTAB") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTCTAB") OPTION(SAVE) GROUP(CTALK) STATS(YES)"
"LMDLIST LISTID("LSTCTAB") OPTION(FREE) GROUP(CTALK) STATS(YES)"
DSNLEV = '&HLQ..OF&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTFASF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTFASF") OPTION(SAVE) GROUP(FASFFB) STATS(YES)"
"LMDLIST LISTID("LSTFASF") OPTION(FREE) GROUP(FASFFB) STATS(YES)"
DSNLEV = '&HLQ..OF&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTFASO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTFASO") OPTION(SAVE) GROUP(FASONS) STATS(YES)"
"LMDLIST LISTID("LSTFASO") OPTION(FREE) GROUP(FASONS) STATS(YES)"
DSNLEV = '&HLQ..OF&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTFASV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTFASV") OPTION(SAVE) GROUP(FASVS) STATS(YES)"
"LMDLIST LISTID("LSTFASV") OPTION(FREE) GROUP(FASVS) STATS(YES)"
DSNLEV = '&HLQ..OF&RSS..CD*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTFASC") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTFASC") OPTION(SAVE) GROUP(FASCD) STATS(YES)"
"LMDLIST LISTID("LSTCTAC") OPTION(FREE) GROUP(FASCD) STATS(YES)"
DSNLEV = '&HLQ..IT&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTITSF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTITSF") OPTION(SAVE) GROUP(ITSFFB) STATS(YES)"
"LMDLIST LISTID("LSTITSF") OPTION(FREE) GROUP(ITSFFB) STATS(YES)"
DSNLEV = '&HLQ..IT&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTITSO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTITSO") OPTION(SAVE) GROUP(ITSONS) STATS(YES)"
"LMDLIST LISTID("LSTITSO") OPTION(FREE) GROUP(ITSONS) STATS(YES)"
DSNLEV = '&HLQ..IT&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTITSV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTITSV") OPTION(SAVE) GROUP(ITSVS) STATS(YES)"
"LMDLIST LISTID("LSTITSV") OPTION(FREE) GROUP(ITSVS) STATS(YES)"
DSNLEV = '&HLQ..QP&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLMSF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLMSF") OPTION(SAVE) GROUP(LMSFFB) STATS(YES)"
"LMDLIST LISTID("LSTLMSF") OPTION(FREE) GROUP(LMSFFB) STATS(YES)"
DSNLEV = '&HLQ..QP&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLMSO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLMSO") OPTION(SAVE) GROUP(LMSONS) STATS(YES)"
"LMDLIST LISTID("LSTLMSO") OPTION(FREE) GROUP(LMSONS) STATS(YES)"
DSNLEV = '&HLQ..QP&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLMSV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLMSV") OPTION(SAVE) GROUP(LMSVS) STATS(YES)"
"LMDLIST LISTID("LSTLMSV") OPTION(FREE) GROUP(LMSVS) STATS(YES)"
DSNLEV = '&HLQ..QP&RSS..CD*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLMSC") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLMSC") OPTION(SAVE) GROUP(LMSCD) STATS(YES)"
"LMDLIST LISTID("LSTLMSC") OPTION(FREE) GROUP(LMSCD) STATS(YES)"
DSNLEV = '&HLQ..LT&RSS..F*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLTSF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLTSF") OPTION(SAVE) GROUP(LTSFFB) STATS(YES)"
"LMDLIST LISTID("LSTLTSF") OPTION(FREE) GROUP(LTSFFB) STATS(YES)"
DSNLEV = '&HLQ..LT&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLTSO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLTSO") OPTION(SAVE) GROUP(LTSONS) STATS(YES)"
"LMDLIST LISTID("LSTLTSO") OPTION(FREE) GROUP(LTSONS) STATS(YES)"
DSNLEV = '&HLQ..LT&RSS..V*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLTSV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLTSV") OPTION(SAVE) GROUP(LTSVS) STATS(YES)"
"LMDLIST LISTID("LSTLTSV") OPTION(FREE) GROUP(LTSVS) STATS(YES)"
DSNLEV = '&HLQ..LT&RSS..CD*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLTSC") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLTSC") OPTION(SAVE) GROUP(LTSCD) STATS(YES)"
"LMDLIST LISTID("LSTLTSC") OPTION(FREE) GROUP(LTSCD) STATS(YES)"
DSNLEV = '&HLQ..LTLK.**.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTLTSB") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTLTSB") OPTION(SAVE) GROUP(LTSLK) STATS(YES)"
"LMDLIST LISTID("LSTLTSB") OPTION(FREE) GROUP(LTSLK) STATS(YES)"
"LMDINIT LISTID("LSTTRMF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTTRMF") OPTION(SAVE) GROUP(TRMFFB) STATS(YES)"
"LMDLIST LISTID("LSTTRMF") OPTION(FREE) GROUP(TRMFFB) STATS(YES)"
DSNLEV = '&HLQ..TM&RSS..O*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTTRMO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTTRMO") OPTION(SAVE) GROUP(TRMONS) STATS(YES)"
"LMDLIST LISTID("LSTTRMO") OPTION(FREE) GROUP(TRMONS) STATS(YES)"
DSNLEV = '&HLQ..TM&RSS..CD*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTTRMC") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTTRMC") OPTION(SAVE) GROUP(TRMCD) STATS(YES)"
"LMDLIST LISTID("LSTTRMC") OPTION(FREE) GROUP(TRMCD) STATS(YES)"
DSNLEV = '&HLQ..TM&RSS..VS*.&HLQ..A&RSS..*'
"LMDINIT LISTID("LSTTRMV") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTTRMV") OPTION(SAVE) GROUP(TRMVS) STATS(YES)"
"LMDLIST LISTID("LSTTRMV") OPTION(FREE) GROUP(TRMVS) STATS(YES)"
DSNLEV = '&HLQ..TMLK.*'
"LMDINIT LISTID("LSTTRMB") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTTRMB") OPTION(SAVE) GROUP(TRMLK) STATS(YES)"
"LMDLIST LISTID("LSTTRMB") OPTION(FREE) GROUP(TRMLK) STATS(YES)"
JCL
Code:
//PS050 EXEC PGM=IKJEFT01,PARM='ISPSTART CMD(SVLSTHKR'
//* COND=(00,NE,PS040)
//*
//SYSEXEC DD DSN=P31511.PDS.TOOLS.REXX,
// DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//**********************************************************************
//*********** ASM FFB, ONS, VSO, VSB SAVELIST **************************
//**********************************************************************
//ASMI01 DD DSN=&USER..ASMFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI02 DD DSN=&USER..ASMONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ASMI03 DD DSN=&USER..ASMVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//**********************************************************************
//*********** CMS FFB,ONS,CD,VSO,VSB,BN,PH,SG SAVELIST *****************
//**********************************************************************
//CMSI01 DD DSN=&USER..CMSFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI02 DD DSN=&USER..CMSONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI03 DD DSN=&USER..CMSCD.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI04 DD DSN=&USER..CMSVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI05 DD DSN=&USER..CMSBN.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI06 DD DSN=&USER..CMSPH.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI07 DD DSN=&USER..CMSSG.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CMSI08 DD DSN=&USER..CMSTH.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//*****************************************
//*********** MBS FFB, ONS, VSO, VSB SAVELI
//*****************************************
//MBSI01 DD DSN=&USER..MBSFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//MBSI02 DD DSN=&USER..MBSONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//MBSI03 DD DSN=&USER..MBSVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//*******************************************************************
//*********** CTA FFB,ONS,CD,VSO,VSB,BN,PH,SG SAVELIST **************
//*******************************************************************
//CTAI01 DD DSN=&USER..CTAFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CTAI02 DD DSN=&USER..CTAONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//*CTAI03 DD DSN=&USER..CTACD.DATASETS,
//CTAI04 DD DSN=&USER..CTAVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CTAI05 DD DSN=&USER..CTABN.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CTAI06 DD DSN=&USER..CTAPH.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CTAI07 DD DSN=&USER..CTASG.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//CTAI08 DD DSN=&USER..CTATH.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//FASI01 DD DSN=&USER..FASFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//FASI02 DD DSN=&USER..FASONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//FASI03 DD DSN=&USER..FASCD.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//FASI04 DD DSN=&USER..FASVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ITSI01 DD DSN=&USER..ITSFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ITSI02 DD DSN=&USER..ITSONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//ITSI03 DD DSN=&USER..ITSVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LMSI01 DD DSN=&USER..LMSFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LMSI02 DD DSN=&USER..LMSONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LMSI03 DD DSN=&USER..LMSCD.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LMSI04 DD DSN=&USER..LMSVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LTSI01 DD DSN=&USER..LTSFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LTSI02 DD DSN=&USER..LTSONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LTSI03 DD DSN=&USER..LTSCD.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//LTSI04 DD DSN=&USER..LTSVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI01 DD DSN=&USER..TRMFFB.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI02 DD DSN=&USER..TRMONS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI03 DD DSN=&USER..TRMCD.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI04 DD DSN=&USER..TRMVS.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI05 DD DSN=&USER..TRMBN.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
//TRMI06 DD DSN=&USER..TRMPH.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI07 DD DSN=&USER..TRMSG.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
//TRMI08 DD DSN=&USER..TRMTH.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=140)
Back to top
Nic Clouston Global Moderator Joined: 10 May 2007Posts: 2454 Location: Hampshire, UK
Refer to Steve's first point: you have not specified the required ISPF libraries to run ISPF in batch. There are examples in the forum of what you need.
Also, I have corrected your use of the code tags in 2 of your posts above. Before your post use the "Preview" button to review your post and make any corrections. If you spot a mistake within 10 minutes of submitting your post then use the "Edit" button to edit and correct the mistakes.
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
Thansk alot Nic...
Actually i perfrming this activity through PANEL..
Code:
-------------------- DATASETS RECALL ACTIVITY TOOL --------------------
======================================================================
PLEASE VALIDATE THE BELOW VALUES CAREFULLY AGAIN
======================================================================
REGENV ====> REGSYS ====>
REGSUB ====> REGQUAL ====>
======================================================================
======================================================================
SUBMIT ====> .
As part of this i need to perform the below..
1. Take savelist
2. HRECALL for the datasets present in the above savelist(which will be input) for HRECALL Job
But my savelist it self is failing ..
If i take save list through command line and give the input to the HRECALL job its wroking..
Hence my major issue is to excute the REXX to take savelist when user give "Y" in submit.Save list need to created..
For this i have created .
1. XYZ main REXX program where i need to invoke the SVLSTHKR (above mentioned code) present MY.REXX.PDS
2. SAVELST ( job to call REXX an create the saelist) present in MYSKELL.PDS
Back to top
Pedro Global Moderator Joined: 01 Sep 2006Posts: 2593 Location: Silicon Valley
For PGM=IKJEFT01, you need to provide SYSTSPRT and SYSTSIN.
You should use a simple 'hello world' program first to make sure your JCL is correct. After your hello world is working, then try your complex program.
Oh, and you called it a 'clist' but it is actually a rexx program.
Back to top
cvnlynn New User Joined: 14 Jun 2017Posts: 31 Location: US
Quote:
//PS050 EXEC PGM=IKJEFT01,PARM='ISPSTART CMD(SVLSTHKR'
I noticed there's no closing parenthese
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
i have done the changes like below in the JCL and submitted again . now getting ABEND=S000 U0999 REASON=00000000 989
Code:
08 //PS010 EXEC PGM=IKJEFT01,PARM='ISPSTART CMD(%SVLSTHKR)'
09 //* COND=(00,NE,PS040)
10 //*
11 //SYSEXEC DD DSN=P31511.PDS.TOOLS.REXX,
12 // DISP=SHR
13 //SYSOUT DD SYSOUT=*
14 //SYSPRINT DD SYSOUT=*
15 //SYSUDUMP DD SYSOUT=*
16 //SYSDBOUT DD SYSOUT=*
17 //SYSTSIN DD DUMMY
18 //SYSTSPRT DD SYSOUT=*
Error:
Code:
STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV PG PAGE SWAP
V EQQDELDS 00 531 .00 .00 .07 36533 0 0 0
P31511SV.EQQDELDS.EQQDELDS RC= 0000
V PS010 998 16 .00 .00 .07 1241 0 0 0
P31511SV.PS010 .PS010 RC= 0998
P31511SV PS010SF - ABEND=S000 U0999 REASON=00000000 989
TIME=12.11.38
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
finally a minor progress on the job
I have done the changes in the job as below
Code:
//EQQDELDS EXEC PGM=EQQDELDS,COND=(00,NE)
//*
//PS010 EXEC PGM=IKJEFT01,PARM='SVLSTHKR'
//* COND=(00,NE,PS040)
//*
//SYSEXEC DD DSN=P31511.PDS.TOOLS.REXX,
// DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
Issue i am getting below issue
Code:
// DCB=(RECFM=FB,LRECL=140,BLKSIZE=0)
//CMSO05 DD DSN=&HLQ.AR&OWN1..FFB.&HLQ.A&RSS..LIST.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=140,BLKSIZE=0)
//CMSO06 DD DSN=&HLQ.AR&OWN2..FFB.&HLQ.A&RSS..LIST.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=140,BLKSIZE=0)
//CMSO07 DD DSN=&HLQ.AR&OWN3..FFB.&HLQ.A&RSS..LIST.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=140,BLKSIZE=0)
//CMSO08 DD DSN=&HLQ.AR&OWN4..FFB.&HLQ.A&RSS..LIST.DATASETS,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=140,BLKSIZE=0)
OWNI is not getting passed to JCL from REXX
REXX code as below
Code:
DO
OWN1 = 'LK'
SKEL = 'SAVELST'
CALL RUNJOB OWN1
END
ELSE
DO
OWN1 = 'BN'
OWN2 = 'PH'
OWN3 = 'SG'
OWN4 = 'TH'
SKEL = 'SAVELST'
CALL RUNJOB
END
Back to top
Nic Clouston Global Moderator Joined: 10 May 2007Posts: 2454 Location: Hampshire, UK
Well of course it isn't. The JCL is fixed in stone once it is submitted. Nothing can be changed once it has been read onto the machine.
You can only pass parms from the JCL to the programs being executed - not the other way around.
Back to top
steve-myers Active Member Joined: 30 Nov 2013Posts: 917 Location: The Universe
Nic Clouston wrote:
Well of course it isn't. The JCL is fixed in stone once it is submitted. Nothing can be changed once it has been read onto the machine.
You can only pass parms from the JCL to the programs being executed - not the other way around.
Mr. Clousten's statement is both correct and incorrect. The JCL card images themselves cannot be altered in any way. However, the effect of the statements can be altered through a variety of mechanisms by the programs that are run by the JCL. For exampleDynamic allocationThe TSO ALLOCATE and FREE commands. The BPXWDYN program, which can be called from Rexx EXECs (it is not really proper to call a Rexx EXEC a “program,” though many of us do this, and the effect is the same) as well as other programming languages such as C, PL/I or even Cobol. MVS dynamic allocation services directly called from (usually) Assembler programs, which is in effect what the TSO ALLOCATE and FREE commands are as well as something like BPXWDYN. Altering a data area known as a JFCB, which is only readily exposed to Assembler programs, followed by the use of the Assembler OPEN xxx,TYPE=J macro can achieve effects similar to the direct effect of using MVS dynamic allocation. In fact, there are things that can be done with this mechanism that cannot be directly done using dynamic allocation.
Back to top
Nic Clouston Global Moderator Joined: 10 May 2007Posts: 2454 Location: Hampshire, UK
Not incorrect - dynamic allocation does not go through the RI. I was referring solely to SUBMITTED JCL.
OP posted JCL with the data sets that s/he was referring to and the comments were based on that.
Back to top
Pedro Global Moderator Joined: 01 Sep 2006Posts: 2593 Location: Silicon Valley
When your exec finishes, be sure to provide a return code 0.
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
when i harocde the value of HLq = and RSS Like it working fine .. but i would be like to be mre generic
Before Hardcoding :
Code:
TRACE R
ADDRESS ISPEXEC
/****************************************************************/
/* CHANGE THE QUALIFIERS AS PER REQUIREMENT */
/****************************************************************/
/* ASM FILES */
/****************************************************************/
DSNLEV = '&HLQ.AS&RSS.F*.&HLQ.A&RSS.*'
"LMDINIT LISTID("LSTASMF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMF") OPTION(SAVE) GROUP(ASMFFB) STATS(YES)"
"LMDLIST LISTID("LSTASMF") OPTION(FREE) GROUP(ASMFFB) STATS(YES)"
DSNLEV = '&HLQ.AS&RSS.O*.&HLQ.A&RSS.*'
"LMDINIT LISTID("LSTASMO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMO") OPTION(SAVE) GROUP(ASMONS) STATS(YES)"
"LMDLIST LISTID("LSTASMO") OPTION(FREE) GROUP(ASMONS) STATS(YES)"
DSNLEV = '&HLQ.AS&RSS.V*.&HLQ.A&RSS.*'
"LMDINIT LISTID("LSTASMV") LEVEL("DSNLEV")"
The values are not geting passed and getting abend..
Code:
3 *-* ADDRESS ISPEXEC
4 *-* /****************************************************************/
5 *-* /* CHANGE THE QUALIFIERS AS PER REQUIREMENT */
6 *-* /****************************************************************/
7 *-* /* ASM FILES */
8 *-* /****************************************************************/
9 *-* DSNLEV = '&HLQ.AS&RSS.F*.&HLQ.A&RSS.*'
>>> "&HLQ.AS&RSS.F*.&HLQ.A&RSS.*"
0 *-* "LMDINIT LISTID("LSTASMF") LEVEL("DSNLEV")"
>>> "LMDINIT LISTID(LSTASMF) LEVEL(&HLQ.AS&RSS.F*.&HLQ.A&RSS.*)"
1 *-* "LMDLIST LISTID("LSTASMF") OPTION(SAVE) GROUP(ASMFFB) STATS(YES)"
>>> "LMDLIST LISTID(ISR00001) OPTION(SAVE) GROUP(ASMFFB) STATS(YES)"
+++ RC(4) +++
2 *-* "LMDLIST LISTID("LSTASMF") OPTION(FREE) GROUP(ASMFFB) STATS(YES)"
>>> "LMDLIST LISTID(ISR00001) OPTION(FREE) GROUP(ASMFFB) STATS(YES)"
+++ RC(8) +++
3 *-* DSNLEV = '&HLQ.AS&RSS.O*.&HLQ.A&RSS.*'
>>> "&HLQ.AS&RSS.O*.&HLQ.A&RSS.*"
After hardcoding:
SVLSTHKR
Code:
TRACE R
ADDRESS ISPEXEC
/****************************************************************/
/* CHANGE THE QUALIFIERS AS PER REQUIREMENT */
/****************************************************************/
/* ASM FILES */
/****************************************************************/
DSNLEV = 'SASA2.F*.SAA2.*'
"LMDINIT LISTID("LSTASMF") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMF") OPTION(SAVE) GROUP(ASMFFB) STATS(YES)"
"LMDLIST LISTID("LSTASMF") OPTION(FREE) GROUP(ASMFFB) STATS(YES)"
DSNLEV = 'SASA2.O*.SAA2.*'
"LMDINIT LISTID("LSTASMO") LEVEL("DSNLEV")"
"LMDLIST LISTID("LSTASMO") OPTION(SAVE) GROUP(ASMONS) STATS(YES)"
"LMDLIST LISTID("LSTASMO") OPTION(FREE) GROUP(ASMONS) STATS(YES)"
DSNLEV = 'SASA2.V*.SAA2.*'
the below outout files got created
Code:
P31511.ASMFFB.DATASETS
P31511.ASMONS.DATASETS
P31511.ASMVS.DATASETS
P31511.CMSCD.DATASETS
P31511.CMSFFB.DATASETS
P31511.CMSONS.DATASETS
P31511.CMSVS.DATASETS
P31511.CTAFFB.DATASETS
P31511.CTALK.DATASETS
P31511.CTAONS.DATASETS
P31511.CTAVS.DATASETS
P31511.FASCD.DATASETS
P31511.FASFFB.DATASETS
P31511.FASONS.DATASETS
P31511.FASVS.DATASETS
P31511.ITSFFB.DATASETS
REXX code:
Code:
DATASETR:
USER=USERID()
SKEL = ''
HLQ = RQUAL
"ALLOC FI(INDD) DA('P31511.PDS.TOOLS.SKELS(SAVELST)') SHR REUSE"
"EXECIO * DISKR INDD (STEM INP. FINIS"
"FREE FI(INDD)"
K = 0
DO I = 1 TO INP.0
FLAG = 0
IF POS("&USER.",INP.I) > 0 THEN
DO
PARSE VALUE INP.I WITH FIRST "&USER." LAST
INP.I = FIRST || USER || LAST
END
IF POS("&HLQ.",INP.I) > 0 THEN
DO
PARSE VALUE INP.I WITH FIRST "&HLQ." LAST
INP.I = FIRST || HLQ || LAST
END
IF POS("&RSS.",INP.I) > 0 THEN
DO
PARSE VALUE INP.I WITH FIRST "&RSS." LAST
INP.I = FIRST || RSS || LAST
END
IF POS("&HLQ.",INP.I) > 0 THEN
DO
PARSE VALUE INP.I WITH FIRST "&HLQ." LAST
INP.I = FIRST || HLQ || LAST
END
IF POS("&RSS.",INP.I) > 0 THEN
DO
PARSE VALUE INP.I WITH FIRST "&RSS." LAST
INP.I = FIRST || RSS || LAST
END
IF POS("&OWN1.",INP.I) > 0 THEN
DO
PARSE VALUE INP.I WITH FIRST "&OWN1." LAST
INP.I = FIRST || 'LK' || LAST
END
IF POS("&OWN2.",INP.I) > 0 THEN DO
PARSE VALUE INP.I WITH FIRST "&OWN2." LAST
INP.I = FIRST || 'BN' || LAST
END
IF POS("&OWN3.",INP.I) > 0 THEN DO
PARSE VALUE INP.I WITH FIRST "&OWN3." LAST
INP.I = FIRST || 'SG' || LAST
END
IF POS("&OWN4.",INP.I) > 0 THEN DO
PARSE VALUE INP.I WITH FIRST "&OWN4." LAST
INP.I = FIRST || 'TH' || LAST
END
IF POS("&OWN5.",INP.I) > 0 THEN DO
PARSE VALUE INP.I WITH FIRST "&OWN5." LAST
INP.I = FIRST || 'PH' || LAST
END
IF FLAG = 0 THEN
DO
K = K + 1
OUT.K = INP.I
END
END
ILIB1 = USER || ".TEMP.PRCJCL.REPJCL1"
IF SYSDSN("'"ILIB1"'") = "OK" THEN
"DELETE '"ILIB1"'"
"ALLOC DA('"ILIB1"') FI(OUTDD1) NEW REUSE RECFM(F) LRECL(80)"
"EXECIO * DISKW OUTDD1(STEM OUT. FINIS"
"FREE FI(OUTDD1)"
"SUB '"ILIB1"'"
SAY USERID() || "SV JOB SUBMITTED"
EXIT
Back to top
Willy Jensen Active Member Joined: 01 Sep 2015Posts: 730 Location: Denmark
Seems that you are confusing JCL variable substitution with REXX ditto. And I don't see where you get the values for HLQ and RSS respectively.
You must use the ARG function to pass values to a REXX from the JCL parameter like so:
Code:
Arg . 'HLQ('hlq')' . 0 . 'RSS('rss')' .
DSNLEV = hlq'AS'rss'.F*.'hlq'A'rss'.*'
Read the description of the PARSE keyword in the REXX Reference manual for details (ARG is short for PARSE UPPER ARG).
The values must be defined in the JCL parm like so:
Code:
PARM='ISPSTART CMD(%SVLSTHKR HLQ(S) RSS(A2))'
Back to top
Sahasra K New User Joined: 01 Aug 2017Posts: 8 Location: India
HLQ and RS vaues get passed from panels
PANELL :
Code:
nd ===> Scroll ===> CSR
9 +
0 + ======================================================================
1 + |PLEASE VALIDATE THE BELOW VALUES CAREFULLY AGAIN
2 + ======================================================================
3 +
4 + REGENV %====>@Z "% ^REGSYS %====>@Z "%
5 + REGSUB %====>@Z "% ^REGQUAL %====>@Z"%
6 +
7 + ======================================================================
8 + ======================================================================
9 +
0 + #CONFIRM %====>,Z"%
1 +
2 )INIT
3 .ZVARS='(REGENV SYS RSS RQUAL DSRCC)'
4 )PROC
5 VER(&DSRCC,NB,LIST,Y,N)
6 &ZPFKEY = .PFKEY
7 )END
LIST
HQL =
REXX Code :
Code:
DATASETR:
USER=USERID()
SKEL = ''
HLQ = RQUAL
/************** CONTROL RECORD PANEL*************************/
CNTLBKP:
CRSCB = 'CRBSL'
"ISPEXEC DISPLAY PANEL(CNTLBKPP) CURSOR("CRSCB")"
IF RC > 8 THEN
DO
SAY "PANEL CAN'T BE DISPLAYED RC=" RC
EXIT
END
IF ZPFKEY = "PF03" THEN
DO
CALL BEGIN
EXIT
END
RSS value in the REXX code:
Code:
VA
IF SCLT = 'A1' THEN
DO
RSS = 'A1'
END
ELSE
DO
RSS = 'A2'
Panell Screen :
Code:
======================================================================
PLEASE VALIDATE THE BELOW VALUES CAREFULLY AGAIN
======================================================================
REGENV ====> RSTEST REGSYS ====> CCA0
REGSUB ====> A2 REGQUAL ====> S
======================================================================
======================================================================
SUBMIT ====> .
Back to top
Willy Jensen Active Member Joined: 01 Sep 2015Posts: 730 Location: Denmark
Ok, but the statement DSNLEV = '&HLQ.AS&RSS.F*.&HLQ.A&RSS.*' is still wrong, this is not how you substitute values in REXX. Which is why you get RC=4 in your LMDLIST command.
Also I can't see how you intend to pass the values from the panel to the REXX.
Back to top
Pedro Global Moderator Joined: 01 Sep 2006Posts: 2593 Location: Silicon Valley
Quote:
I can't see how you intend to pass the values from the panel to the REXX.
Rexx programs and ISPF panels share a common variable pool. There is no need to 'pass' variables.
Back to top
Willy Jensen Active Member Joined: 01 Sep 2015Posts: 730 Location: Denmark
Quote:
Rexx programs and ISPF panels share a common variable pool
True, but the statement DSNLEV = '&HLQ.AS&RSS.F*.&HLQ.A&RSS.*' seems to be at the top of the program, so any DISPLAY would come later.
Back to top
Please enable JavaScript!