Difference between revisions of "Information Systems:Overnight ENDOFDAY"
m (→Summary) |
|||
| (31 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | The scheduler starts this job at 1:00AM; every morning except Sunday - when the End of Week is called. |
+ | The scheduler starts this job at 1:00AM; every morning except Sunday - when the End of Week is called. It calls [[EODDAILY]], which will - |
- End all programs that use ASW or extension files, and end subsystems so users cannot sign on. |
- End all programs that use ASW or extension files, and end subsystems so users cannot sign on. |
||
| Line 7: | Line 7: | ||
- Run updates, reports, and housekeeping (clear work files and out queues, and delete unnecessary spool files). |
- Run updates, reports, and housekeeping (clear work files and out queues, and delete unnecessary spool files). |
||
| + | The following sections only show the main functions in the programs; not any error checking. Whenever there can be an error that shouldn't affect processing, the programs have the MONMSG (monitor message) command to ignore it. When a file that is to be rebuilt can't be cleared (because it is in use by another job), the program will automatically skip the rebuild. |
||
| − | '''The program is EODDAILY in library UNIPHARMIT.''' |
||
| + | * [[EODDAILY]] |
||
| − | - Sends the first email message - 'EOD starting (2:15 3:00 5:00 6:30)'. |
||
| + | This is called by the scheduler (job name ENDOFDAY) every day except Sunday, at 1:00AM. It puts the computer into an application restricted state. If it fails, it will be cancelled by the backup; which starts at 3:00AM. |
||
| − | - 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. |
||
| + | * [[EODEND2]] |
||
| − | /* 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) |
||
| + | This 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. This is called by EODDAILY and EODWEEKLY. |
||
| − | - Calls '''EOD''' |
||
| + | * [[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) |
||
| + | This does the overnight processing. It is called by EODDAILY and EODWEEKLY. |
||
| − | '''EODBUTEMP''' |
||
| + | * [[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) |
||
| + | This does a 'temporary' backup of the production data libraries, on tape '999999' which is reused every day. It can be used to restore files if something goes terribly wrong in the overnight processing, reload a file if something happens to it the next day (we have had users accidentally do mass deletes), or to rebuild the test environment (PL). |
||
| − | '''EODUPD''' |
||
| + | We used to do the regular backup at this point instead of after all the overnight processing. Then we discovered (during a year end audit) that transactions for the day had not updated G/L, A/R. etc on the tape. |
||
| − | /* 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 suggestions. */ |
||
| − | |||
| − | 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) |
||
| − | |||
| − | /* Update ASW Item Cost With Effective VEBA From CCP */ |
||
| − | |||
| − | CALL PGM(IXRUP880) |
||
| − | |||
| − | /* Note that we can operate if the following jobs are not run. |
||
| + | This is called by EOD. |
||
| − | /* 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) |
||
| − | |||
| − | /* Calculate items that will have a 5% increase in cost or 5% decrease */ |
||
| − | /* in gross margin %, and email buyer. */ |
||
| − | |||
| − | CALL PGM(IXRIQ405) |
||
| − | |||
| − | /* Send any 'READY' promos to ECU */ |
||
| − | |||
| − | ECUPROMO |
||
| − | |||
| − | /* Adjust demand by items on promo. This is so that purchase */ |
||
| − | /* suggestions for regular stocked items are not inflated by promo sales.*/ |
||
| − | |||
| − | PXDEMAND |
||
| − | |||
| − | /* Use average purchase cost for warehouse MAI in SROSRO to update */ |
||
| − | /* average purhcase cost in SROSRO for RET, and average purchase cost */ |
||
| − | /* in base item 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) |
||
| − | |||
| − | /* Run miscellaneous billing */ |
||
| − | |||
| − | CALL PGM(CXBILL) |
||
| − | MONMSG MSGID(CPF0000) |
||
| − | |||
| − | /* FTP SALES ORDERS WITH NO INVOICED LINES */ |
||
| − | |||
| − | CALL PGM(INVCUP300) |
||
| − | |||
| − | /* REBUILD PROMO RESULTS FILES */ |
||
| − | |||
| − | CALL PGM(PXRESBUILD) |
||
| − | |||
| − | /* FOR VEDI AND COOP BILLING, SETTLE INVOICES TO TRANSFERS */ |
||
| − | |||
| − | CALL PGM(CXBILL07) |
||
| − | |||
| − | /* CANCEL ANY HELD POS ORDERS THAT ARE FOUR DAYS OLD OR OVER */ |
||
| − | |||
| − | CALL PGM(IOPMIN04) |
||
| − | |||
| − | /* 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. |
||
| + | * [[EODUPD]] |
||
| − | - Resets the submit time for this job on the scheduler to 1:00AM. This is in case a warehouse supervisor has delayed it. |
||
| + | |||
| + | This does the updating that requires all users to be off the system. It is called by EOD. |
||
| + | |||
| + | * [[EODRPT]] |
||
| + | |||
| + | This generates reports. It is called by EOD. |
||
| + | |||
| + | * [[EODREBLD]] |
||
| + | |||
| + | This rebuilds/updates master and statistic files used by Web Orders and InfoNet. These are built as part of the overnight processing instead of when a user requests the information. This also clears work files and spool files. It is submitted to QBATCH by EOD, to run after the restricted state has ended; about 5:00AM. |
||
| + | |||
| + | * [[EODCLR]] |
||
| + | |||
| + | Deletes reports that are generated but will never be printed; for example pick and putaway lists that we don't use because we use RF. Clears temporary work files. The programs that use these files delete records for the user. This program clears the files, which gets rid of these deleted records. This is called by EODREBLD. |
||
| + | |||
| + | * [[OUTQCLEAR]] |
||
| + | |||
| + | Runs a query against a file of all entries in out queues PRT01 and QPRINT, and builds a file of reports that can be deleted. Then reads that file, and deletes them. This is called by EODCLR. |
||
| + | |||
| + | * [[WSOVERNIT1]] |
||
| + | |||
| + | This is part of the process to rebuild files for Web Orders. On the Power 8, the shell commands sometimes come to a hard stop and need an operator response. That would stop the over night processing from completing. So EODREBLD submits this program, does something else that takes about 20 minutes, then runs the next part. If some of the shell commands are not run, the only effect on Web Orders is that some pictures or specifications may be missing. This is called by EODREBLD. |
||
| + | |||
| + | * [[WSOVERNIT2]] |
||
| + | |||
| + | This rebuilds files used in Web Orders. They are built once here, so they don't have to be rebuilt every time a store makes a request. This is called by EODREBLD. |
||
| + | |||
| + | * [[EODEMAIL]] |
||
| + | |||
| + | This is called by the scheduler (job name EODEMAIL) every day at 8:00AM. It will email IT saying which tape volume was used for the backup, and archive the BRMS recovery reports to SuperServer. |
||
| + | |||
| + | =Summary= |
||
| + | |||
| + | Order of events: |
||
| + | |||
| + | '''Scheduled job name: ENDOFDAY, 1AM''' |
||
| + | # CL: EODDAILY |
||
| + | ## CL: EODEND2 |
||
| + | ## CL: EOD |
||
| + | ### CL: EODBUTEMP |
||
| + | ### CL: EODUPD |
||
| + | ### CL: EODRPT |
||
| + | ### SBMJOB: EODRBLD (queued until system up) |
||
| + | |||
| + | '''Scheduled job name: EODSAVE, 3AM''' |
||
| + | # CL: EODBU |
||
| + | ## CL: EODEND3 |
||
| + | ## SBMJOB: STRBKUBRM (full system save) |
||
| + | |||
| + | '''System up: ~5AM''' |
||
| + | # EODRBLD from earlier job runs |
||
| + | ## SBMJOB: WSOVERNIT1 |
||
| + | ## CL: WSOVERNIT2 |
||
| + | ## CL: EODCLR |
||
| + | |||
| + | [[Category: Overnight Processing]] |
||
Latest revision as of 16:16, 24 November 2016
The scheduler starts this job at 1:00AM; every morning except Sunday - when the End of Week is called. It calls EODDAILY, which 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 following sections only show the main functions in the programs; not any error checking. Whenever there can be an error that shouldn't affect processing, the programs have the MONMSG (monitor message) command to ignore it. When a file that is to be rebuilt can't be cleared (because it is in use by another job), the program will automatically skip the rebuild.
This is called by the scheduler (job name ENDOFDAY) every day except Sunday, at 1:00AM. It puts the computer into an application restricted state. If it fails, it will be cancelled by the backup; which starts at 3:00AM.
This 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. This is called by EODDAILY and EODWEEKLY.
This does the overnight processing. It is called by EODDAILY and EODWEEKLY.
This does a 'temporary' backup of the production data libraries, on tape '999999' which is reused every day. It can be used to restore files if something goes terribly wrong in the overnight processing, reload a file if something happens to it the next day (we have had users accidentally do mass deletes), or to rebuild the test environment (PL).
We used to do the regular backup at this point instead of after all the overnight processing. Then we discovered (during a year end audit) that transactions for the day had not updated G/L, A/R. etc on the tape.
This is called by EOD.
This does the updating that requires all users to be off the system. It is called by EOD.
This generates reports. It is called by EOD.
This rebuilds/updates master and statistic files used by Web Orders and InfoNet. These are built as part of the overnight processing instead of when a user requests the information. This also clears work files and spool files. It is submitted to QBATCH by EOD, to run after the restricted state has ended; about 5:00AM.
Deletes reports that are generated but will never be printed; for example pick and putaway lists that we don't use because we use RF. Clears temporary work files. The programs that use these files delete records for the user. This program clears the files, which gets rid of these deleted records. This is called by EODREBLD.
Runs a query against a file of all entries in out queues PRT01 and QPRINT, and builds a file of reports that can be deleted. Then reads that file, and deletes them. This is called by EODCLR.
This is part of the process to rebuild files for Web Orders. On the Power 8, the shell commands sometimes come to a hard stop and need an operator response. That would stop the over night processing from completing. So EODREBLD submits this program, does something else that takes about 20 minutes, then runs the next part. If some of the shell commands are not run, the only effect on Web Orders is that some pictures or specifications may be missing. This is called by EODREBLD.
This rebuilds files used in Web Orders. They are built once here, so they don't have to be rebuilt every time a store makes a request. This is called by EODREBLD.
This is called by the scheduler (job name EODEMAIL) every day at 8:00AM. It will email IT saying which tape volume was used for the backup, and archive the BRMS recovery reports to SuperServer.
Summary
Order of events:
Scheduled job name: ENDOFDAY, 1AM
- CL: EODDAILY
- CL: EODEND2
- CL: EOD
- CL: EODBUTEMP
- CL: EODUPD
- CL: EODRPT
- SBMJOB: EODRBLD (queued until system up)
Scheduled job name: EODSAVE, 3AM
- CL: EODBU
- CL: EODEND3
- SBMJOB: STRBKUBRM (full system save)
System up: ~5AM
- EODRBLD from earlier job runs
- SBMJOB: WSOVERNIT1
- CL: WSOVERNIT2
- CL: EODCLR