Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Calling CLIST through job and REXX

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX
View previous topic :: :: View next topic  
Author Message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Tue Aug 01, 2017 10:25 am    Post subject: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message

Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Tue Aug 01, 2017 10:28 am    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 546
Location: The Universe

PostPosted: Tue Aug 01, 2017 10:55 am    Post subject:
Reply with quote

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
View user's profile Send private message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Tue Aug 01, 2017 11:15 am    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 1846
Location: UK

PostPosted: Tue Aug 01, 2017 3:10 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Tue Aug 01, 2017 3:59 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Pedro

Senior Member


Joined: 01 Sep 2006
Posts: 2068
Location: Silicon Valley

PostPosted: Tue Aug 01, 2017 9:35 pm    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message
cvnlynn

New User


Joined: 14 Jun 2017
Posts: 29
Location: US

PostPosted: Tue Aug 01, 2017 10:11 pm    Post subject:
Reply with quote

Quote:
//PS050 EXEC PGM=IKJEFT01,PARM='ISPSTART CMD(SVLSTHKR'

I noticed there's no closing parenthese
Back to top
View user's profile Send private message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Wed Aug 02, 2017 9:48 am    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Wed Aug 02, 2017 12:06 pm    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

finally a minor progress on the job icon_smile.gif

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
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 1846
Location: UK

PostPosted: Wed Aug 02, 2017 3:06 pm    Post subject:
Reply with quote

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
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 546
Location: The Universe

PostPosted: Wed Aug 02, 2017 4:26 pm    Post subject:
Reply with quote

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 example
  • Dynamic allocation
    • The 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
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 1846
Location: UK

PostPosted: Wed Aug 02, 2017 7:37 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Pedro

Senior Member


Joined: 01 Sep 2006
Posts: 2068
Location: Silicon Valley

PostPosted: Wed Aug 02, 2017 9:36 pm    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

When your exec finishes, be sure to provide a return code 0.
Back to top
View user's profile Send private message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Mon Aug 07, 2017 10:51 am    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message
Willy Jensen

Active User


Joined: 01 Sep 2015
Posts: 155
Location: Switzerland

PostPosted: Mon Aug 07, 2017 1:52 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Sahasra K

New User


Joined: 01 Aug 2017
Posts: 8
Location: India

PostPosted: Mon Aug 07, 2017 2:10 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Willy Jensen

Active User


Joined: 01 Sep 2015
Posts: 155
Location: Switzerland

PostPosted: Mon Aug 07, 2017 6:32 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Pedro

Senior Member


Joined: 01 Sep 2006
Posts: 2068
Location: Silicon Valley

PostPosted: Mon Aug 07, 2017 11:13 pm    Post subject: Reply to: Calling CLIST through job and REXX
Reply with quote

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
View user's profile Send private message
Willy Jensen

Active User


Joined: 01 Sep 2015
Posts: 155
Location: Switzerland

PostPosted: Mon Aug 07, 2017 11:35 pm    Post subject:
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
This topic is locked: you cannot edit posts or make replies. how to code for GDG in Rexx cvnlynn CLIST & REXX 13 Wed Aug 09, 2017 9:13 pm
This topic is locked: you cannot edit posts or make replies. rexx to create a tso command Bharath Vikraman CLIST & REXX 1 Tue Aug 08, 2017 3:32 pm
This topic is locked: you cannot edit posts or make replies. rexx code to create a ps file Bharath Vikraman CLIST & REXX 4 Mon Aug 07, 2017 10:30 am
No new posts Default Message in Rexx cvnlynn CLIST & REXX 9 Wed Aug 02, 2017 12:38 am
No new posts I want to retire TRX and use only Rex... Abhinav Sharma CLIST & REXX 6 Sat Jul 29, 2017 2:53 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us