Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Submitting a series of Jobs in REXX

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

New User


Joined: 09 Oct 2007
Posts: 30
Location: USA

PostPosted: Thu Nov 01, 2007 1:17 am    Post subject: Submitting a series of Jobs in REXX
Reply with quote

I have two jobs and when I am executing my following rexx program, only firs job is submitted and second job is not exectued.

could yu please guide me where I am wrong. What is the problem in my below code. Do I need to clear queue for every count of loop or some other error?

jcl name (with same jobcard)
JCL1
JCL2


My rexx code
Code:

/*REXX*/                                                               
 
/*Accepting the input */                                               
SAY 'ENTER A  NEW  BLOCK NAME:'                                         
                                                                       
PARSE PULL NEWBLK                                                       
                                                                       
NEWBLK1=STRIP(NEWBLK)                                                   
                                                                       
CNT = 2                                                                 
                                                                       
NEWBLK=NEWBLK1                                                         
  DO JCLNUM = 1 TO 2                                                   
     SAY JCLNUM                                                         
     CALL EDIT_JCL                                                     
                                                                       
     CALL SUB_JCL                                                       
  END
                                                                         
      CALL EXIT                                                         
                                                                         
 /* Sub-routine for editing the Job to be submitted              */     
                                                                         
 EDIT_JCL:                                                               
                                                                         
 "ALLOC DD(INDD) DA('CAA1035.REXX.JCL(JCL"JCLNUM")') SHR                 
                                                                         
                                                                   REU" 
                                                                         
    "EXECIO * DISKR INDD (STEM IN. FINI"                                 
                                                                         
    index = IN.0                                                         
                                                                         
    DO  record = 1 to index 
IF POS('OC12',IN.record) > 0 THEN DO                   
                                                       
   POS1 = POS('OC12',IN.record)                       
                                                       
   SAY POS1                                           
                                                       
   IN.record = OVERLAY(NEWBLK,IN.record,POS1,4)       
                                                       
   SAY IN.record                                       
 END                                                   
                                                       
 IF POS('DATASET(',IN.record) > 0 THEN                 
                                                       
  DO                                                   
                                                       
        TEMP = "DATASET("DSNPROF")"                 
                                                     
        IN.record = OVERLAY(TEMP,IN.record,1,80)     
                                                     
        SAY IN.record                               
                                                     
                                                     
    END                                             
                                                     
   END                                               
                                                     
   "FREE FILE(INDD)"                                 
                                                     
RETURN 0                                             


                                                                       
/* Sub-routine for submiting the Job prepared                       */ 
                                                                       
SUB_JCL:                                                               
                                                                       
DO onq = 1 to index                                                     
                                                                       
   QUEUE IN.onq                                                         
                                                                       
END                                                                     
                                                                       
QUEUE "$$"                                                             
                                                                       
CALL OUTTRAP 'out.'                                                     
                                                                       
ADDRESS TSO "SUBMIT * END($$)"                                         

CALL OUTTRAP 'OFF'                                                     
                                                                       
SAY 'Output from SUBMIT cmd...'                                         
                                                                       
  DO i = 1 TO out.0                                                     
                                                                       
  SAY i out.i                                                           
                                                                       
  END i                                                                 
                                                                       
                                                                       
                                                                       
  DO i = 1 TO out.0                                                     
                                                                       
  PARSE VAR out.i . 'JOB ' . '(' jobid ')'                             

                                                                   
  IF jobid <> '' THEN LEAVE                                       
                                                                   
  END i                                                           
                                                                   
IF jobid = ''                                                     
                                                                   
THEN SAY 'Job submission failed, rc='rc                           
                                                                   
ELSE SAY 'Job submitted successfully, job number is: 'jobid       
                                                                   
                                                                   
                                                                   
EXIT:                                                             
                                                                   
EXIT 0                                                                                 
Back to top
View user's profile Send private message

superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4650
Location: Raleigh, NC, USA

PostPosted: Thu Nov 01, 2007 1:25 am    Post subject: Reply to: Submitting a series of Jobs in REXX
Reply with quote

I don't see a RETURN statement in SUB_JCL:.
Back to top
View user's profile Send private message
senmainframe
Currently Banned

New User


Joined: 09 Oct 2007
Posts: 30
Location: USA

PostPosted: Thu Nov 01, 2007 1:38 am    Post subject:
Reply with quote

I added and it is working fine. Also one more help, if first job get abends or fails, second jobs should not be run. How I can check in this?
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4650
Location: Raleigh, NC, USA

PostPosted: Thu Nov 01, 2007 2:21 am    Post subject: Reply to: Submitting a series of Jobs in REXX
Reply with quote

Well, your code shows that you seem to be pretty adept with the typical TSO commands. Ask yourself how you would do what you want in TSO, and you'll have your answer.

As another hint, usually, when you enter the TSO HELP command without any other parameters, you'll get a list of all the TSO commands grouped by function. There should be a group for FOREGROUND INITIATED BACKGRUND COMMANDS, of which SUBMIT and STATUS and some others belong to.
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4650
Location: Raleigh, NC, USA

PostPosted: Thu Nov 01, 2007 2:22 am    Post subject: Reply to: Submitting a series of Jobs in REXX
Reply with quote

Or, you could search the forums, as this topic is posted by someone just about every day.
Back to top
View user's profile Send private message
senmainframe
Currently Banned

New User


Joined: 09 Oct 2007
Posts: 30
Location: USA

PostPosted: Fri Nov 02, 2007 2:16 am    Post subject:
Reply with quote

Hi,

Thank you very mcuh. We can use TSO command STATUS, but I dont know how to use in my REXX properly. Could you guide or any other method is available?
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4650
Location: Raleigh, NC, USA

PostPosted: Sat Nov 03, 2007 2:05 am    Post subject: Reply to: Submitting a series of Jobs in REXX
Reply with quote

Well, in your code you're capturing the jobname and jobid from the TSO SUBMIT command. Once you know both of those, you then typically use the TSO STATUS command to retrieve the current status of the job. First, TSO STATUS JOBNAME(JOBID) will return the message:

IKJ56211I JOB JOBNAME(JOBID) EXECUTING

and will keep returning that message every time you invoke the command until the job completes, at which time if will then say:

IKJ56192I JOB JOBNAME(JOBID) ON OUTPUT QUEUE

Now, you know it's completed. Then, you just need to use the TSO OUTPUT command to retrieve the job output:

TSO OUTPUT JOBNAME(JOBID) PRINT(dsname) BEGIN HOLD KEEP
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
No new posts Looping REXX - unable to interrupt RAVISANKAR07 CLIST & REXX 3 Wed Dec 06, 2017 1:08 pm
No new posts The same REXX program doesnt work for... jackzhang75 CLIST & REXX 5 Wed Dec 06, 2017 2:51 am
No new posts Rexx - File tailoring samzee71 CLIST & REXX 10 Thu Nov 30, 2017 10:47 pm
This topic is locked: you cannot edit posts or make replies. Rexx to Grab ISMF Information. upendrasri All Other Mainframe Topics 16 Sun Nov 26, 2017 12:35 am
No new posts Rexx to send an email without SMTP Se... upendrasri All Other Mainframe Topics 12 Sun Nov 19, 2017 7:59 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us