Index: EWRECR.mac.rou =================================================================== diff -u -r1827 -r1828 --- EWRECR.mac.rou (.../EWRECR.mac.rou) (revision 1827) +++ EWRECR.mac.rou (.../EWRECR.mac.rou) (revision 1828) @@ -15,42 +15,43 @@ Quit START - ; Do INIT - ;$$$MailTrap - ;Do ERROR^EWLOG($T(GESTART)) + ; Do INIT + ;$$$MailTrap + ;Do ERROR^EWLOG($T(GESTART)) + + Set $ZTrap="OnEWRECRError" + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Start","EWRECR wordt gestart"_$$$CRLF_$$GetJobInfo^vhLib.System()) + Do INIT + Do ERROR^EWLOG($T(GESTART)) + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Start","EWRECR is gestart") + + For Quit:EWLoop="STOP" Do Quit:EWLoop="STOP" + . ;Use WDev + . Set Ok=$System.Event.Wait("EWRECFAST",$S(FastMode:FastTime,1:HangTime)) + . If Ok=1 Set FastMode=$P($H,",",2)+^EWREC("P","WAITTIME") ;Read van interjob is voortijdig beeindigd, fastmode ingesteld voor max. 2 min + . If FastMode,$D(^EWREC("WHC"))<10 Set FastMode="" ;Geen WaitHandle -> geen fastmode + . If FastMode,FastMode<$P($H,",",2) Set FastMode="" ;FastMode is verstrekenen + . Do CHECK + . Do WMSALIVE + . Do:$D(^ORDW("BON")) CHKBON^EWORDF2 ; Verder op bon zetten en afdrukken + . Do:$D(^RCP("URG")) CHKURG^EWRCPF ; Urgentie door mailen naar user + . Do:$G(^RCP("AUTO")) CHKAUTO^EWRCPF() ; Automatisch inboeken Halux + . Lock +^cLOG(cs,"CTK0","JOB"):0 ; Controle of caretaker nog draait + . If $T Do ; Indien gelocked dan caretaker gestopt + . . Lock -^cLOG(cs,"CTK0","JOB") + . . Job ^cQCTK1 + . Lock ^EWREC("R") ; unlock alles en terug locken van EWREC("R") + . Set Ok=$System.Event.Wait("EWRECSTOP",0) + . Set:Ok=1 EWLoop="STOP" - Set $ZTrap="OnEWRECRError" - Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Start","EWRECR wordt gestart"_$$$CRLF_$$GetJobInfo^vhLib.System()) - Do INIT - Do ERROR^EWLOG($T(GESTART)) - Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Start","EWRECR is gestart") + Do:EWLoop="STOP" ERROR^EWLOG($T(GESTOPT)) + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).InfoMail("Stop","EWRECR is gestopt (var EWLoop="_EWLoop_")") - For Quit:EWLoop="STOP" Do Quit:EWLoop="STOP" - .;Use WDev - .Set Ok=$System.Event.Wait("EWRECFAST",$S(FastMode:FastTime,1:HangTime)) - .If Ok=1 Set FastMode=$P($H,",",2)+^EWREC("P","WAITTIME") ;Read van interjob is voortijdig beeindigd, fastmode ingesteld voor max. 2 min - .If FastMode,$D(^EWREC("WHC"))<10 Set FastMode="" ;Geen WaitHandle -> geen fastmode - .If FastMode,FastMode<$P($H,",",2) Set FastMode="" ;FastMode is verstrekenen - .Do CHECK - .Do WMSALIVE - .Do:$D(^ORDW("BON")) CHKBON^EWORDF2 ; Verder op bon zetten en afdrukken - .Do:$D(^RCP("URG")) CHKURG^EWRCPF ; Urgentie door mailen naar user - .Do:$G(^RCP("AUTO")) CHKAUTO^EWRCPF() ; Automatisch inboeken Halux - .Lock +^cLOG(cs,"CTK0","JOB"):0 ; Controle of caretaker nog draait - .If $T Do ; Indien gelocked dan caretaker gestopt - .. Lock -^cLOG(cs,"CTK0","JOB") - .. Job ^cQCTK1 - .Lock ^EWREC("R") ; unlock alles en terug locken van EWREC("R") - .Set Ok=$System.Event.Wait("EWRECSTOP",0) - .Set:Ok=1 EWLoop="STOP" - Do:EWLoop="STOP" ERROR^EWLOG($T(GESTOPT)) + Do CLEANUP + ;Close:$G(WDev) WDev + Set $ZTrap="" + Quit - Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).InfoMail("Stop","EWRECR is gestopt (var EWLoop="_EWLoop_")") - Do CLEANUP - ;Close:$G(WDev) WDev - Set $ZTrap="" - Quit - OnEWRECRError // ErrorHandling added by WimV on 18/08/2011 Set $ZTrap="" @@ -60,6 +61,17 @@ Do CLEANUP Quit +CLEANUP + // opkuisen van System.Events en Locks + // wordt opgeroepen bij afsluiten van EWRECR en wanneer EWRECR crasht + Kill ^EWREC("P","CHKJOB"),^EWREC("P","CHKDEV") + Set Ok=$System.Event.Delete("EWRECSTOP") + Set Ok=$System.Event.Delete("EWRECFAST") + Set:($System.Event.Defined("EWRECSTOPPED")) Ok=$System.Event.Signal("EWRECSTOPPED") + Lock + Quit + + STOP New Ok Write "Stop signaal verstuurd",! @@ -78,17 +90,6 @@ Set Ok2=$System.Event.Delete("EWRECSTOPPED") Quit Ok -CLEANUP - // opkuisen van System.Events en Locks - // wordt opgeroepen bij afsluiten van EWRECR en wanneer EWRECR crasht - Kill ^EWREC("P","CHKJOB"),^EWREC("P","CHKDEV") - Set Ok=$System.Event.Delete("EWRECSTOP") - Set Ok=$System.Event.Delete("EWRECFAST") - Set:($System.Event.Defined("EWRECSTOPPED")) Ok=$System.Event.Signal("EWRECSTOPPED") - Lock - Quit - - INIT Set Q="K" D ^cA604 ;Set D="\",U=";",Q="K" Set EWLoop="STOP" ; Indien problemen met initialisatie @@ -111,6 +112,7 @@ Set EWLoop="" ; Geen problemen Quit + /* MailTrap() Quit:($ZError="ErrorHandled")&&$Quit "" Quit:($ZError="ErrorHandled") @@ -144,6 +146,7 @@ Set ErrorTrace=ErrorTrace_$C(13)_$C(13)_"Device: "_$I_" Job: "_$J Set ErrorTrace=ErrorTrace_$C(13)_"Server: "_$ZU(110)_" NameSpace: "_$ZU(5) Quit ErrorTrace + */ CHECK ;Use $P ;Lock +DirScan