#include vhLib.Macro #include BL.Derde.KlantSpecifiek EWRECA ;E'WMS Archive opkuis en controle EWRECR [ 12/06/2003 10:22 AM ] Quit CTK ; Controle door de caretaker dat de START routine nog draait Lock +^EWREC("CTK"):1 Else Quit ; Kan maar een keer gestart worden New Set Q="K" Do ^cA604,INIT^vhTERMINA Set ChkRtn="EWRECR" Quit:$P($H,",",2)<3600 ; Eerste uur na middernacht niet controleren, want dan wordt de nachtelijke stockscan overgebracht. If '$$JOBRUN(ChkRtn) Do . New Server Set Server = ##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam() . Set From=Server_"@VANHOECKE.BE",To=$LB("ICT_SysOp@vanhoecke.be"),Subject=ChkRtn_" gestopt" . Set Body="De link met het EWMS is verbroken!!!"_$$$CRLF_"Routine ^EWRECR draait niet meer"_$$$CRLF_"Gelieve dit dringend op te lossen!!!"_$$$CRLF . Set Body=Body_$$$CRLF_"Gelieve eerst te verifieren via de logging of er geen manuele stop is geweest " . Set Body=Body_$$$CRLF_"http://"_Server_"/csp/"_$$$NSpace_"/vhLibLogging.csp?SQED=0&chkFilterGroep=EWRECR&chkToonAlleNiveaus=1" . Set Body=Body_$$$CRLF_"starten kan via : JOB START^EWRECR" . Set Status=$$SendMiniMail^vhLib(From,To,Subject,Body) Do CHECKZMRPMD ; Makova testen Quit TEST Set ChkRtn="EWRECR" For I=1:1 Do H 1 . Set Job=$G(^EWREC("P","CHKJOB")) . Set Routine=$S(Job:$$ROUTINE^cS(Job),1:"*") . Write $S(Routine=ChkRtn:".",1:Routine_"") Quit JOBRUN(ChkRtn) For Count=1:1:10 Do Quit:Routine=ChkRtn Hang 2 .Set Job=$G(^EWREC("P","CHKJOB")) .Set Routine=$S(Job:$$ROUTINE^cS(Job),1:"*") Quit Routine=ChkRtn CHECKZMRPMD ; Makova Quit:'$D(^rOBJ("%ZMRASD")) ; Makova is niet geinstalleerd For I=1:1:5 Do Quit:Found . Set lbPID=$$CHECKJOB("%ZMRPMD") . Set Found=$LL(lbPID) . Quit:Found . Hang 2 Quit:Found Set NameSpace=$ZNSPACE zn "%SYS" Do RUN^%ZMRPMD zn NameSpace Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE",To=$LB("PV@VANHOECKE.BE"),Subject="Makova's "_%ZMRPMD_" is gestopt" Set Body="Het programma %ZMRPMD was gestopt maar is terug opgestart !!!" Set Status=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit CHECKJOB(ChkRtn) Set lbPID="" Set PID="" For Set PID=$O(^$JOB(PID)) Quit:PID="" Do . Set oP=##class(TECH.Process).OpenId(PID) . Quit:'$IsObject(oP) . Quit:oP.CurrentLineAndRoutine'[ChkRtn . Set lbPID=lbPID_$LB(PID) Quit lbPID RESTART ; Oproep voor de LINK-button in vhMAIL om EWRECR terug op te starten New ReStart Set ReStart=$$^vhTXTPOP("EWRECR","RESTARTV") If ReStart Do .Job START^EWRECR:50 .Kill:$G(MailId) ^vhMAIL("D",MailId,"R") .Set ReStart=$$^vhTXTPOP("EWRECR","RESTARTB") Else Do .For I=1:1 Quit:'$D(LD("B",I)) Do ..If $P(LD("B",I),"`",2)'="A" Set $P(LD("B",I),"`",3)="HD" Quit ; CLEAN ; Opkuizen archive zowel de files als die van EWREC("R" en EWREC("S" Lock EWRECA:2 Else Quit ; Dubbel op gestart Set D="\",U=";" Do CLNDIR(10,"DIRRARCHIVE") ; Receive Do CLNDIR(10,"DIRSARCHIVE") ; Send Do CLNREC("R",30) Do CLNREC("S",30) Do CLNORDW(30) Do CLNRCP(90) Quit CLNREC(Node,Dagen) New Datum,FileNm Set Datum=$H-Dagen Set Datum=($$EXTDATE^vhLib.DataTypes(Datum,"J4")_$E(100+$$EXTDATE^vhLib.DataTypes(Datum,"MN"),2,3)_$E(100+$$EXTDATE^vhLib.DataTypes(Datum,"DMN"),2,3))_999999 Set FileNm="" For Set FileNm=$O(^EWREC(Node,FileNm)) Quit:FileNm="" Do .Kill:FileNm+$H ; Minder dan x dagen gepickt .Quit:Datum+Dagen>+$H ; Minder dan x dagen gepickt .Do REMWMS^EWORDST(CONSNr) Quit CLNRCP(Dagen) ; Receptiees in RCP ouder dan x dagen verwijderen Set RCPNr="" For Set RCPNr=$O(^RCP("D",RCPNr)) Quit:RCPNr="" Do .Set Rec=^RCP("D",RCPNr) .Quit:$P(Rec,D,22)+Dagen+(Dagen*$P(Rec,D,20)'="I")>+$H ; Minder dan x dagen gerecepteerd .Do DELOBJ^EWRCPST(RCPNr) Quit CLNDIR(Dagen,Label) ;Opkuizen archive ;Alle berichten ouder dan x dagen worden verwijderd New Dir,Dummy,Ref,%J If $zv["MSM" Do .Set %J=$$%J^vhRtn1() .Set Ref=$NA(^HULP(%J)) Else Set Ref=$NA(Dummy) Set Dir=##class(TECH.Config.ConfigMgr).Instance().GetString("WMSExchange_RootDir")_^EWREC("P",Label) Do SCANDIR^vhDEV(Dir,"*.*",Ref,"X",Dagen) Quit ; Errormeldingen NOQUEU ;"Geen JobQueue" CURDRIVE ;"Current drive "_$E(DirR) CURDIR ;"Current dir "_DirR NODEL ;"Kan file niet verwijderen "_DirR_";"_FileNm NOMOVE ;"Fout in Move file "_FileNm_" from "_DirR_" to "_DirRA NOOPEN ;"Kan file niet openen "_DirR_";"_FileNm VOLGORD ;"VolgNr mismatch "_(^EWREC("R")+1)_" <-> "_VolgNr NOSTART ;"START^EWRECR draait niet meer" ERROR ;"Feedback oproep in de fout :"_C_";"_C("VOLGNR")_";"_FileNm NOTYPE ;"Geen routine gedefinieerd voor binnenkomend record :"_C NOTALIVE ;"E'WMS is niet meer ALIVE"_$H ALIVE ;"E'WMS is terug ALIVE"_$H