| 1 | ORMTIME ; SLC/RJS - PROCESS TIME BASED EVENT ;9/29/99  09:35 [2/1/00 9:30am] | 
|---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**40,253**;Dec 17, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ; Main entry tag. | 
|---|
| 5 | ; | 
|---|
| 6 | N OCXPSDT,OCXZTSK,OCXERR,OCXORMTR,OCXSTDT,OCXLOCK,OCXPAR | 
|---|
| 7 | K ^TMP("OCXORMTIME",$J) | 
|---|
| 8 | S OCXLOCK=0 | 
|---|
| 9 | S OCXORMTR="ORMTIME: Startup" | 
|---|
| 10 | S OCXSTDT=$$EDATE($$IDATE("NOW")) | 
|---|
| 11 | S ^TMP("OCXORMTIME",$J,"STATUS")="ORMTIME: Attempting to lock ^OR(100,""AE"") at "_OCXSTDT_"." | 
|---|
| 12 | L +^OR(100,"AE"):10 | 
|---|
| 13 | I  D | 
|---|
| 14 | .S OCXLOCK=1 | 
|---|
| 15 | .D SCAN | 
|---|
| 16 | .L -^OR(100,"AE") | 
|---|
| 17 | .K ^TMP("OCXORMTIME") | 
|---|
| 18 | .S OCXPAR=$$IDATE2("NOW") | 
|---|
| 19 | .D PUT^XPAR("SYS","ORM ORMTIME LAST RUN",1,OCXPAR,.OCXERR) | 
|---|
| 20 | S:'OCXLOCK ^TMP("OCXORMTIME",$J,"STATUS")="ORMTIME: Unable to lock ^OR(100,""AE"") at "_OCXSTDT_" attempt." | 
|---|
| 21 | Q | 
|---|
| 22 | ; | 
|---|
| 23 | SCAN ; Call ORMTIM01 for order checking, etc.  ORMTIM02 for misc time based tasks | 
|---|
| 24 | ; | 
|---|
| 25 | D SCAN^ORMTIM01 | 
|---|
| 26 | D MISC^ORMTIM02 | 
|---|
| 27 | Q | 
|---|
| 28 | ; | 
|---|
| 29 | EDATE(Y) X ^DD("DD") S:(Y["@") Y=$P(Y,"@",1)_" at "_$P(Y,"@",2) Q Y | 
|---|
| 30 | ; | 
|---|
| 31 | IDATE(X) N %DT,Y S %DT="F" D ^%DT Q Y | 
|---|
| 32 | ; | 
|---|
| 33 | IDATE2(X) N %DT,Y S %DT="TF" D ^%DT Q Y | 
|---|
| 34 | ; | 
|---|
| 35 | REQUEUE(ORMQT) ; Code formerly queued ORMTIME tasks in Taskman. | 
|---|
| 36 | ; | 
|---|
| 37 | ; (This tag kept for compatibility with outside calls.) | 
|---|
| 38 | ; | 
|---|
| 39 | Q | 
|---|
| 40 | ; | 
|---|
| 41 | STATUS ; Check status of last ORMTIME run. | 
|---|
| 42 | ; | 
|---|
| 43 | N ORMLAST | 
|---|
| 44 | ; | 
|---|
| 45 | ; Get date/time of last ORMTIME run: | 
|---|
| 46 | S ORMLAST=$$GET^XPAR("SYS","ORM ORMTIME LAST RUN",1,"I") | 
|---|
| 47 | S ORMLAST=$$EDATE(ORMLAST) ; Convert to external format for display. | 
|---|
| 48 | ; | 
|---|
| 49 | ; Present information to user: | 
|---|
| 50 | W ! | 
|---|
| 51 | W !,"     ORMTIME last ran "_ORMLAST_"." | 
|---|
| 52 | W ! | 
|---|
| 53 | ; | 
|---|
| 54 | Q | 
|---|
| 55 | ; | 
|---|
| 56 | BULL ; Send a bulletin if ORMTIME's last run is greater than 24 hours. | 
|---|
| 57 | ; | 
|---|
| 58 | N DIC,ORMMSG,X,XMSUB,XMTEXT,XMY,XMZ,Y,ORMLAST | 
|---|
| 59 | ; | 
|---|
| 60 | ; Don't send bulletin if ORMTIME STATUS mail group does not exist: | 
|---|
| 61 | S DIC=3.8,DIC(0)="",X="ORMTIME STATUS" | 
|---|
| 62 | D ^DIC Q:(+Y<0) | 
|---|
| 63 | ; | 
|---|
| 64 | S ORMLAST=$$GET^XPAR("SYS","ORM ORMTIME LAST RUN",1,"I") | 
|---|
| 65 | I $$FMDIFF^XLFDT($$IDATE2("NOW"),ORMLAST,2)>86400  D | 
|---|
| 66 | .S XMY("G.ORMTIME STATUS")="" | 
|---|
| 67 | .S XMSUB=" ORMTIME Warning" | 
|---|
| 68 | .S ORMMSG(1,0)=" " | 
|---|
| 69 | .S ORMMSG(2,0)="    The ORMTIME process last ran more than 24 hours ago. " | 
|---|
| 70 | .S ORMMSG(3,0)=" " | 
|---|
| 71 | .S ORMMSG(4,0)=" The ORMTIME background job handles activating and expiring orders," | 
|---|
| 72 | .S ORMMSG(5,0)=" some time based notifications, as well as purging of temporary CPRS" | 
|---|
| 73 | .S ORMMSG(6,0)=" data. It is important that it runs regularly." | 
|---|
| 74 | .S ORMMSG(7,0)=" " | 
|---|
| 75 | .S ORMMSG(8,0)="    Assure that the scheduled option, ORMTIME RUN, is correctly implemented." | 
|---|
| 76 | .S ORMMSG(9,0)=" " | 
|---|
| 77 | .S XMTEXT="ORMMSG(" | 
|---|
| 78 | .D ^XMD | 
|---|
| 79 | Q | 
|---|
| 80 | ; | 
|---|