Information Systems:Overnight ENDOFDAY

From uniWIKI
Revision as of 13:26, 4 January 2016 by Sheilav (talk | contribs)
Jump to navigation Jump to search

The scheduler starts this job at 1:00AM; every morning except Sunday - when the End of Week is called. This job will -

- End all programs that use ASW or extension files, and end subsystems so users cannot sign on.

- Do a 'temporary' backup of data libraries only. This uses tape '999999', which has a retention period of one day so that it can be over written every night. It can be used if something happens during the overnight processing, to quickly restore a file the next day if needed (without having to call the tape from off site storage), and to rebuild the test environment.

- Run updates, reports, and housekeeping (clear work files and out queues, and delete unnecessary spool files).

The program is EODDAILY in library UNIPHARMIT.

- Sends the first email message - 'EOD starting (2:15 3:00 5:00 6:30)'.

- Calls EODEND2, which will end all processes that can use either ASW or extension files. This does not end Domino, so that I.T. staff will receive the emails being sent.

/* End EDI monitors for SPS Commerce and EDI Gateway */ 
                                                                               
             EDIENDMON                                                         
             EDIENDEDIG                                                        
 
/* End subsystems that run user jobs */                                                   
                                                                               
             ENDSBS     SBS(QINTER) OPTION(*IMMED)                             
             ENDSBS     SBS(QBATCH) OPTION(*IMMED)                             
             ENDSBS     SBS(DCRF) OPTION(*IMMED)                               
             ENDSBS     SBS(UP1480BS) OPTION(*IMMED)                           
             ENDSBS     SBS(TLABARCODE) OPTION(*IMMED)                         
             ENDSBS     SBS(BC400SERVR) OPTION(*IMMED)        
             ENDSBS     SBS(MONITOR2) OPTION(*IMMED)          
                                                              
/* End IMS, IMP, IOP, OMS, and EMA */           
                                                              
             CHGDTAARA  DTAARA(IMSWITCH) VALUE('STOP      ')  
             CHGDTAARA  DTAARA(IMPSWITCH) VALUE('STOP      ')
             CHGDTAARA  DTAARA(IOPSWITCH) VALUE('STOP      ') 
             CHGDTAARA  DTAARA(OMSWITCH) VALUE('STOP      ')
             CHGDTAARA  DTAARA(EMASWITCH) VALUE('STOP      ') 

             ENDIMSJOB                                        
             ENDIMPJOB
             ENDIOPJOB                                        
             ENDOMSJOB                                        
             ENDEMAJOBS                                       

             ENDIMSSUB  OPTION(*IMMED)                        
             ENDIMPSUB  OPTION(*IMMED)                        
             ENDIOPSUB  OPTION(*IMMED)                        
             ENDOMSSUB  OPTION(*IMMED)                        
             ENDEMASUB  OPTION(*IMMED)                        
                                                                               
/*  End Web servers, pause for one minute, then end subsystem */           
                                                                               
             ENDTCPSVR  SERVER(*HTTP) HTTPSVR(WEBSMART)                        
             ENDTCPSVR  SERVER(*HTTP) HTTPSVR(WEBTEST)                         
             ENDTCPSVR  SERVER(*HTTP) HTTPSVR(WEBINTER)                        
             DLYJOB     DLY(60)                                                
             ENDSBS     SBS(QHTTPSVR) DELAY(60)                                
                                                                               
/*  Explicity end Telnet server with a 5 minute delay - otherwise */
/*  there could be a problem with the RF guns */
                                                                                
             ENDTCPSVR  SERVER(*TELNET)                                        
             DLYJOB     DLY(300)                                               

- Calls EOD

/* Do temporary backup.  This is to restore files if update program     */ 
/* bombs.  It can be used to do a quick restore if say, a user deletes  */ 
/* something they shouldn't.  And it is used to rebuild test libraries. */ 
                                                                             
             CALL       PGM(EODBUTEMP)                                       
                                                                             
/*  Run End of Day - updates, reports, and housekeeping                 */ 
                                                                             
             CHGASWCOM  COMPANY(VA)                                          
             CALL       PGM(EODUPD)                                          
             CALL       PGM(EODRPT)                                          
             CALL       PGM(EODCLR)                                          
                                                                             
/* Clear consolidated item master file (XXITEMP).  This is rebuilt in   */ 
/* EODREBLD, but as it is used by so many jobs, it can be cleared only  */
/* in the Application Restricted State.                                 */
                                                                          
             RCLRSC                                                          
             CLRPFM     FILE(XXITEMP)                                        
                                                                             
/* Rebuild statistics files, and update summary files.  As this can run  */ 
/* while users are on the system, submit job to QBATCH so that it will   */
/* run after the system is brought back up again.  This gets it out of   */
/* the restricted state sooner.                                          */
                                                                           
            SBMJOB     CMD(CALL PGM(EODREBLD)) JOBQ(QS36EVOKE) 

EODBUTEMP

/* Hold BRMS maintenance report so it doesn't print.                     */
                                                                         
            OVRPRTF    FILE(QP1AEP) HOLD(*YES)                           

/* Call BRMS Maintenance to expire tape '999999'.  It has a one day      */
/* retention, but still must be expired before it can be used again.     */
/* Note that this temporary backup won't work if it runs before midnight.*/ 
                                                                        
            STRMNTBRM  RMVLOGE(*NONE) RUNCLNUP(*NO) RTVVOLSTAT(*NO) +    
                         CHGJRN(*NO) PRTEXPMED(*NO) PRTVSNRPT(*NO) +     
                         PRTBKUACT(*NO) PRTRCYRPT(*NONE)                 

/* Delete BRMS maintenance report                                        */
                                                                
            DLTSPLF    FILE(QP1AEP) SPLNBR(*LAST)    

/* Run BRMS control group UNITEMP, which will save user data files only. */                    
                                                                          
            STRBKUBRM  CTLGRP(UNITEMP) SBMJOB(*NO) 

EODUPD

/* Generate bills to suppliers for COOP AND VEDI.  This has to run first */
/* so that generated entries will be included in the updates.            */
                                                                             
            CXBILL03C                                                        
            CALL       PGM(CXBILL06)                                         
                                                                             
/* Run ASW command to put the current date minus 1 (as this job is       */
/* running after nidnight) into the LDA (local data area)                */

            CHGASWLDA  TYPE(*DATDZ) RELVAL(-1) STARTPOS(001)  

/* Extract yesterday's date from the LDA and convert it to numeric       */
        
            RTVDTAARA  DTAARA(*LDA (1 8)) RTNVAR(&DATEC)                     
            CHGVAR     VAR(&DATE) VALUE(&DATEC)    

/* Call ASW program to get yesterday's fiscal period, and convert to     */
/* character.                                                            */
                            
            GETPERIOD  DATE(&DATE) PERIOD(&PERIOD)                           
            CHGVAR     VAR(&PERIODC) VALUE(&PERIOD)                          
                                                                             
/* Print invoice journal.  This will be file DMR352P in WRKSPLF EDOJOB.  */
/* There are saved parameters for this.  Just change the date and period.*/ 
                                                                             
            RTVASWPAR  PGM(DMC352) PAID(INVJOURNAL) USER(*ALL)               
            CHGASWLDA  TYPE(*DATDZ) RELVAL(-1) STARTPOS(082)                 
            CHGASWLDA  VALUE(&PERIODC) TYPE(*CHAR) STARTPOS(090) +           
                         POSITIONS(6)                                        
            EXCASWPGM  PGM(DMC352) PARM(N)                                   
                                                                             
/* Run nightly DIS to FIN.  Again, there are saved parameters for this.   */
/* Change the date and period.                                            */ 

            RTVASWPAR  PGM(GCFC751) PAID(DIS2FIN) USER(*ALL)                 
            CHGASWLDA  TYPE(*DATDZ) RELVAL(-1) STARTPOS(082)                 
            CHGASWLDA  VALUE(&PERIODC) TYPE(*CHAR) STARTPOS(090) +           
                         POSITIONS(6)                                        
            EXCASWPGM  PGM(GCFC751) PARM(N)  
                                
/* Clear intermediate purchase suggestions from yesterday.                */
                                                                              
            RTVASWPAR  PGM(DIC801) PAID(CLRSUGPO) USER(*ALL)                 
            CHGASWLDA  TYPE(*DATDZ) STARTPOS(1)                              
            EXCASWPGM  PGM(DIC801) PARM(N)                                   
 
/* Generate purchase suggetions.                                          */
                                                                            
            RTVASWPAR  PGM(INVC431) PAID(PURSUG2MAI) USER(*ALL)                             
            EXCASWPGM  PGM(INVC431) PARM(N)                                 
                                                                             
            RTVASWPAR  PGM(INVC431) PAID(PURSUG3MAI) USER(*ALL)             
            EXCASWPGM  PGM(INVC431) PARM(N)                                 
                                                                             
/* Keep copy of purchase suggestions as there are sometimes questions     */
/* about whether something was generated here, or manually.               */
                                                                             
            CPYF       FROMFILE(UP1480BFVA/SROPUH) +                        
                         TOFILE(UP1480BFVA/SROPUH.B1) MBROPT(*REPLACE)      
            CPYF       FROMFILE(UP1480BFVA/SROPUL) +                        
                         TOFILE(UP1480BFVA/SROPUL.B1) MBROPT(*REPLACE)      
                                                   
/* Note that we can operate if the following jobs are not run.  
/* Rebuild the Time Axis File                                             */
                                                                             
            RTVASWPAR  PGM(DMC951) PAID(TIMEAXIS) USER(*ALL)                 
            CHGASWLDA  VALUE(&PERIODC) TYPE(*CHAR) STARTPOS(007) +           
                         POSITIONS(6)                                        
            EXCASWPGM  PGM(DMC951) PARM(N)                                   
                                                                             
/* Rebuild A/R Credit Time Axis                                           */

            RTVASWPAR  PGM(GDMC195) PAID(ARAXIS) USER(*ALL)                  
            EXCASWPGM  PGM(GDMC195) PARM(N)                                  
                                                                             
/* Rebuild A/R and A/P Totals                                             */
                                                                             
            RTVASWPAR  PGM(FSC880) PAID(ARAPREBLD) USER(*ALL)                
            EXCASWPGM  PGM(FSC880) PARM(N)                                   
                                                                             
/* Update ASW Item Cost With Effective VEBA From CCP                      */
                                                                             
            CALL       PGM(IXRUP880)                                         
                                                                             


/* CALCULATE ITEMS THAT WILL HAVE A 5% INCREASE IN COST OR 5% DECREASE  */ 
/* IN GROSS MARGIN % and email buyer (This must be done before Domino   */ 
/* is taken down)                                                       */ 
                                                                             
            CALL       PGM(IXRIQ405)  
            MONMSG     MSGID(CPF0000)                                        
                                                                             
/* SEND ANY 'READY' PROMOS TO ECU                                         */
                                                                             
            ECUPROMO                                                         
            MONMSG     MSGID(CPF0000)                                        
                                                                             
/* ADJUST DEMAND BY ITEMS ON PROMO                                        */
                                                                             
            PXDEMAND                                                         
            MONMSG     MSGID(CPF0000)                                        
                                                                             
/* USE AVERAGE PURCHASE COST FOR MAIN WAREHOUSE IN SROSRO TO UPDATE      */
/* PURCHASE COST FOR RET WAREHOUSE IN SROSRO AND AVERAGE PURCHASE        */
/* COST IN BASE MASTER FILE SROPRG                                       */
/* do not share open data path, as SRBPRG may not be open for update     */
                                                                             
            OVRDBF     FILE(SRBPRG) TOFILE(SRBPRG) SHARE(*NO)                
            CALL       PGM(AVGCST01)                                         
            MONMSG     MSGID(CPF0000)  

/* RUN MISCELLANEOUS BILLING                                            */ 
                                                                             
            CALL       PGM(CXBILL)                                           
            MONMSG     MSGID(CPF0000)                                        
                                                                             
/* FTP SALES ORDERS WITH NO INVOICED LINES                              */ 
                                                                             
            CALL       PGM(INVCUP300)                                        
            MONMSG     MSGID(CPF0000)                                        
                                                                             
/* REBUILD PROMO RESULTS FILES                                          */ 
                                                                             
            CALL       PGM(PXRESBUILD)                                       
            MONMSG     MSGID(CPF0000)                                        
                                                                             
/* FOR VEDI AND COOP BILLING, SETTLE INVOICES TO TRANSFERS              */ 
                                                                             
            CALL       PGM(CXBILL07)                                         
            MONMSG     MSGID(CPF0000)  

/* CANCEL ANY HELD POS ORDERS THAT ARE FOUR DAYS OLD OR OVER            */
                                                                            
            CALL       PGM(IOPMIN04)                                        
            MONMSG     MSGID(CPF0000)                                       
                                                                            
/* DELETE ITEMS NOTES THAT HAVE EXPIRED                                  */
                                                                            
            CALL       PGM(DMRUP101)                                        
            MONMSG     MSGID(CPF0000)                                       
                                                                            
/* TRY TO REORGANIZE CARRIER INTERFACE FILE                             */
                                                                            
            RGZPFM     FILE(ATLASPF)                                        
            MONMSG     MSGID(CPF0000)                                                                                  
                                                                       

- Sends the second email message - 'Daily overnite processing ended normally' - at about 2:15AM.

- Resets the submit time for this job on the scheduler to 1:00AM. This is in case a warehouse supervisor has delayed it.