• Subject: re: copying a job scheduler entry
  • From: Billy Rowe <billyrowe@xxxxxxx>
  • Date: 31 Jul 00 13:45:04 CDT
  • Disposition-Notification-To: billyrowe@usa.net
  • Read-Receipt: billyrowe@usa.net

> -----Original Message-----
> Is there a way to copy an existing Job Schedule Entry to a 
> new one?  It
> seems it would be much easier to set up some submissions if 
> you could copy
> and edit one that already exists.


Here is a Command and Command processing program that will do it for you:

/* ***************************************************************** */
/*                                                                   */
/*     COMMAND - CRTDUPSCDE - CREATE DUPLICATE JOB SCHEDULE ENTRY    */
/*                                                                   */
/*     CPP - CRTDUPSCDE                                              */
/*                                                                   */
/* ***************************************************************** */
             CMD        PROMPT('Create dupl job schedule entry')       
             PARM       KWD(FROMJOB)                                 + 
                        TYPE(*NAME)                                  + 
                        LEN(10)                                      + 
                        MIN(1)                                       + 
                        PROMPT('From job name')                        
             PARM       KWD(NEWNAME)                                 + 
                        TYPE(*NAME)                                  + 
                        LEN(10)                                      + 
                        DFT(*FROMJOB)                                + 
                        SPCVAL((*FROMJOB))                           + 
                        PROMPT('New job name')   






                      

/* ***************************************************************** */
/*                                                                   */
/*     PROGRAM - CRTDUPSCDE - CREATE DUPLICATE JOB SCHEDULE ENTRY    */
/*                                                                   */
/* ***************************************************************** */
 CRTDUPSCDE: PGM        PARM(&fromjob &newname)                        
             DCL        &fromjob   *CHAR 10                            
             DCL        &newname   *CHAR 10                            
                                                                       
             DCL        &cmd       *CHAR 512                           
             DCL        &cmdstr    *CHAR 3000                          
             DCL        &continue  *CHAR 16                            
             DCL        &entlen    *CHAR 4                             
             DCL        &entry     *CHAR 1156                          
             DCL        &frq       *CHAR 10                            
             DCL        &header    *CHAR 140                           
             DCL        &jobd      *CHAR 20                            
             DCL        &jobq      *CHAR 20                            
             DCL        &msgq      *CHAR 20                            
             DCL        &nbrent    *CHAR 4                             
             DCL        &offset    *CHAR 4                             
             DCL        &rcyacn    *CHAR 10                            
             DCL        &reldaymon *CHAR 50                            
             DCL        &save      *CHAR 10                            
             DCL        &scddate   *CHAR 10                            
             DCL        &scdday    *CHAR 70                            
             DCL        &scdtime   *CHAR 6                             
             DCL        &strpos    *CHAR 4                             
             DCL        &text      *CHAR 50                            
             DCL        &user      *CHAR 10                            
             DCL        &usrspc    *CHAR 20   'ZZSCDL0200QTEMP     '   
                                                                       
             MONMSG     CPF9999 EXEC(GOTO ERROR)                       
/* If duplicate entry is to be named the same as the from entry,     */
/* create the name for the duplicate entry.                          */
             IF         (&newname = '*FROMJOB') DO                     
             CHGVAR     &newname &fromjob                              
             ENDDO                                                     
                                                                       
/* Create user space to hold schedule entry list.                    */
             DLTUSRSPC  USRSPC(QTEMP/ZZSCDL0200)                       
             MONMSG     CPF0000                                        
             CALL       QUSCRTUS PARM(&usrspc                        + 
                                      'CRTDUPSCDE'                   + 
                                      X'00000100'                    + 
                                      ' '                            + 
                                      '*ALL      '                   + 
                                      ' ')                             
                                                                       
/* Retrieve schedule entry list into user space, get header info.    */
             CALL       QWCLSCDE PARM(&usrspc                        + 
                                      'SCDL0200'                     + 
                                      &fromjob                       + 
                                      &continue                      + 
                                      0)                               
             CALL       QUSRTVUS PARM(&usrspc                        + 
                                      X'00000001'                    + 
                                      X'0000008C'                    + 
                                      &header)                         
                                                                       
/* If list is incomplete, leave.                                     */
             IF         (%SST(&header 104 1) *EQ 'I') DO               
             SNDPGMMSG  MSG('Error: CRTDUPSCDE retrieved an +          
                          incomplete list of schedule entries.')       
             RETURN                                                    
             ENDDO                                                     
                                                                       
/* If number of entries in list is zero, escape.                     */
             CHGVAR     &nbrent (%SST(&header 133 4))                  
             IF         (%BIN(&nbrent) *EQ 0) DO                       
             SNDPGMMSG  MSG('Error: CRTDUPSCDE did not retrieve +      
                          any schedule entries.')                      
             RETURN                                                    
             ENDDO                                                     
                                                                       
/* Get entry length, offset, and start position from header.          *
             CHGVAR     &entlen         (%SST(&header 137 4))          
             CHGVAR     &offset         (%SST(&header 125 4))          
             CHGVAR     (%BIN(&strpos)) (%BIN(&offset) + 1)            
                                                                       
/* Retrieve the first entry in the list                              */
             CALL       QUSRTVUS PARM(&usrspc                        + 
                                      &strpos                        + 

                                      &entlen                        + 
                                      &entry)                          
                                                                       
/* Get the individual parameters from the list entry                 */
             CHGVAR     &cmd       (%SST(&entry 645 512))              
             CHGVAR     &frq       (%SST(&entry 108 10))               
                                                                       
             CHGVAR     &scddate   (%SST(&entry 22 10))                
             If Cond(%SST(&entry 22 1) *eq '0') Then(DO)               
               CvtDat Date(&SCDDATE) ToVar(&SCDDATE) +                 
                      FromFmt(*CYMD) ToFmt(*JOB) ToSep(*NONE)          
             Enddo                                                     
                                                                       
             CHGVAR     &scdday    (%SST(&entry 32 70))                
             CHGVAR     &scdtime   (%SST(&entry 102 6))                
             CHGVAR     &reldaymon (%SST(&entry 118 50))               
             CHGVAR     &save      (%SST(&entry 577 10))               
             CHGVAR     &rcyacn    (%SST(&entry 168 10))               
                                                                       
             IF         (%SST(&entry 537 10) *NE '          ')       + 
             CHGVAR     &jobd      (%SST(&entry 537 10) *TCAT '/'    + 
                              *TCAT %SST(&entry 527 10))               
             ELSE                                                    + 
             CHGVAR     &jobd      (%SST(&entry 527 10))               
                                                                       
             IF         (%SST(&entry 208 10) *NE '          ')       + 
             CHGVAR     &jobq      (%SST(&entry 208 10) *TCAT '/'    + 
                              *TCAT %SST(&entry 198 10))               
             ELSE                                                    + 
             CHGVAR     &jobq      (%SST(&entry 198 10))               
             CHGVAR     &user      (%SST(&entry 547 10))               
                                                                       
             IF         (%SST(&entry 567 10) *NE '          ')       + 
             CHGVAR     &msgq      (%SST(&entry 567 10) *TCAT '/'    + 
                              *TCAT %SST(&entry 557 10))               
             ELSE                                                    + 
             CHGVAR     &msgq      (%SST(&entry 557 10))               
                                                                       
             CHGVAR     &text      ('Copy of' *BCAT &fromjob)          
                                                                       
/* Build command string to add a new job schedule entry              */
                       CHGVAR     &cmdstr                                     
+ 
                        ('ADDJOBSCDE JOB('       *TCAT &newname      + 
                            *TCAT ') CMD('       *TCAT &cmd          + 
                            *TCAT ') FRQ('       *TCAT &frq          + 
                            *TCAT ') SCDDATE('   *TCAT &scddate      + 
                            *TCAT ') SCDDAY('    *TCAT &scdday       + 
                            *TCAT ') SCDTIME('   *TCAT &scdtime      + 
                            *TCAT ') RELDAYMON(' *TCAT &reldaymon    + 
                            *TCAT ') SAVE('      *TCAT &save         + 
                            *TCAT ') RCYACN('    *TCAT &rcyacn       + 
                            *TCAT ') JOBD('      *TCAT &jobd         + 
                            *TCAT ') JOBQ('      *TCAT &jobq         + 
                            *TCAT ') USER('      *TCAT &user         + 
                            *TCAT ') MSGQ('      *TCAT &msgq         + 
                            *TCAT ') TEXT('''    *TCAT &text         + 
                            *TCAT ''')')                               
                                                                       
/* Add a new job schedule entry                                      */
             CALL       QCMDEXC PARM(&cmdstr 3000)                     
                                                                       
/* Job cleanup                                                       */
                                                             
             DLTUSRSPC  USRSPC(QTEMP/ZZSCDL0200)                       
             MONMSG     CPF0000                                        
                                                                       
             RETURN                                                    
/* Error message                                                     */
 ERROR:      SNDPGMMSG  MSG('Error occurred during CRTDUPSCDE +        
                          command. See job log for details.')          
                                                                       
             ENDPGM

____________________________________________________________________
Get free email and a permanent address at http://www.amexmail.com/?A=1
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.