BL.Derde.Kennis,Prod.Product 1 %RegisteredObject 0 %Integer 1 Opstarten nachtelijke job d ##class(BL.Derde.Kennis.MailDoelstelling).NightMailDoelstelling() 1 1 Mailen van doelstelling d ##class(BL.Derde.Kennis.MailDoelstelling).%New().MailDoelstelling() 1 Ophalen van de doelstellingen(=kennisankers) uit de tabel Derde_Kennis.Kennis. Het resultaat wordt opgeslagen in de array Cache 0 Geef de creatiedatum van een kennisAnker (Van het oorspronkelijk aangemaakte via boolean) KennisID,boolFirst Controleert of een kennisAnker al gelezen is door een bepaalde user KennisID,UserID Mailen naar de KS'ers Mailen naar de binnendienst Mailen naar de buitendienst opmaken van de HTML-pagina %Stream " #define fmtBeginPeriode(%TITEL) $C(10,13)_"
"_%TITEL_"
" #define fmtBeginKlant(%KLNr,%KLNaam,%REGIO) $C(10,13)_"
"_%KLNr_" - "_%KLNaam_"Regio: "_%REGIO_"
" #define fmtEndKlant "
" #define fmtEndHtml "" Set MaandMin3=$$CALCDATE^vhDTyp(+$H,"M",-3) ; 3 maanden geleden Set MaandMin6=$$CALCDATE^vhDTyp(+$H,"M",-6) ; 6 maanden geleden Set JaarMin1=$$CALCDATE^vhDTyp(+$H,"J",-1) ; 1 jaar geleden Kill ^HULP(..%J,"Kennis") ;begin HTML-pagina Set strmBody=##class(%GlobalCharacterStream).%New() Do strmBody.Write($$$fmtBeginHtml) Do strmBody.Write(FirstLine) Do strmBody.Write("
") ;aflopen van de Cache en sorteren op periode, klant en doelstelling Set KLID="" For Set KLID=$O(Cache(KLID)) Quit:KLID="" Do . Set KLNr=$Piece(^KKL(KLID,0),"\",1) . Set KlantNaam=$Piece(^KKL(KLID,0),"\",2) . Set Regio=$Piece(^KKL(KLID,0),"\",20) . Set KennisID="" . For Set KennisID=$O(Cache(KLID,KennisID)) Quit:KennisID="" Do . . Set oKennis=##Class(Derde.Kennis.Kennis).%OpenId(KennisID) . . Quit:'$IsObject(oKennis) . . ; ophalen van de info van een doelstelling . . Set ExtVW=$$EXTVW^KLOPV(KLNr) . . Set IntVW=$$INTVW^KLOPV(KLNr) . . Set KennisAnkerGelezen=Cache(KLID,KennisID) . . Set Datum=+oKennis.CreationDateAndTime . . Set Tekst=oKennis.Msg . . Set OorspronkelijkeDatum=..GetCreationDateAndTime(KennisID,1) . . ;groeperen op periode: nieuwe berichten, minder dan 3 maanden, minder dan 6 maanden en ouder dan 6 maanden . . Set VNR=$S('KennisAnkerGelezen:1,Datum'
HMTL-detaillijnen IntExt,UserID,VNR,KLID,KennisID 0 " #define fmtEndRow $C(10,13)_"" #define fmtLineBreak $C(10,13)_"
" #define fmtBody(%Txt) $C(10,13)_"

"_%Txt_"

" #define fmtFooter(%Txt) $C(10,13)_"

"_%Txt_"

" ;ophalen van de info van een doelstelling Set Rec=^HULP(..%J,"Kennis",VNR,KLID,KennisID) Set Datum=$Piece(Rec,"\") Set ExtVW=$Piece(Rec,"\",2) Set IntVW=$Piece(Rec,"\",3) Set Domein=$Piece(Rec,"\",4) Set Opmerking=$Piece(Rec,"\",5) Set OorspronkelijkeDatum=$Piece(Rec,"\",6) Set Txt=$$$fmtBeginRow Set Txt=Txt_Domein If IntExt ="I" Do ; Intern . Set Txt=Txt_$$$fmtFooter("Externe verantw: "_$$USERNAME^vhUSER(ExtVW,1)_" - "_$S(+Datum=+OorspronkelijkeDatum:"Aangemaakt: ",1:"Laatste wijziging: ")_$$EXTDATE^vhDTyp(Datum,"DK")_$S(+Datum=+OorspronkelijkeDatum:"",1:$S(OorspronkelijkeDatum:" (Aangemaakt: "_$$EXTDATE^vhDTyp(OorspronkelijkeDatum,"DK")_")",1:""))) Else If IntExt="E" Do ; extern . Set Txt=Txt_$$$fmtFooter("Interne verantw: "_$$USERNAME^vhUSER(IntVW,1)_" - "_$S(+Datum=+OorspronkelijkeDatum:"Aangemaakt: ",1:"Laatste wijziging: ")_$$EXTDATE^vhDTyp(Datum,"DK")_$S(+Datum=+OorspronkelijkeDatum:"",1:$S(OorspronkelijkeDatum:" (Aangemaakt: "_$$EXTDATE^vhDTyp(OorspronkelijkeDatum,"DK")_")",1:""))) Else Do ; alle . Set Regio=$Piece(^HULP(..%J,"Kennis",VNR,KLID),"\",3) . Set Txt=Txt_$$$fmtFooter("Regio:"_Regio_" - "_"Externe verantw: "_$$USERNAME^vhUSER(ExtVW,1)_" - "_"Interne verantw: "_$$USERNAME^vhUSER(IntVW,1)_" - "_$$EXTDATE^vhDTyp(oKennis.CreationDateAndTime,"DK")) If Opmerking'="" Set Txt=Txt_$$$fmtFooter(Opmerking) Set Txt=Txt_$$$fmtEndRow Quit Txt ]]>
opmaken van de HTML-pagina voor de KS'ers %Stream " #define fmtBeginKlant(%KLNr,%KLNaam,%REGIO) $C(10,13)_"
"_%KLNr_" - "_%KLNaam_"Regio: "_%REGIO_"
" #define fmtEndKlant "
" #define fmtEndRegio "
" #define fmtEndHtml "" Set strmBody=##class(%GlobalCharacterStream).%New() ;header van de HTML-pagina Do strmBody.Write($$$fmtBeginHtml) Do strmBody.Write(FirstLine) Do strmBody.Write("
") Set MaandMin3=$$CALCDATE^vhDTyp(+$H,"M",-3) ; 3 maanden geleden Set MaandMin6=$$CALCDATE^vhDTyp(+$H,"M",-6) ; 6 maanden geleden Set JaarMin1=$$CALCDATE^vhDTyp(+$H,"J",-1) ; 1 jaar geleden Kill ^HULP(..%J,"Kennis") ;aflopen van de Cache en sorteren op regio, klant, periode, datum en doelstelling Set KLID="" For Set KLID=$O(Cache(KLID)) Quit:KLID="" Do . Set KLNr=$Piece(^KKL(KLID,0),"\",1) . Set KlantNaam=$Piece(^KKL(KLID,0),"\",2) . Set Regio=$Piece(^KKL(KLID,0),"\",20) . Set Land=$S((Regio<20)&(Regio'<10):"BE",(Regio<30)&(Regio'<20):"NL",1:"Overige") . If Regio="" Set Regio=" " . If $G(LandCode)'="" Quit:Land'=LandCode . ;aflopen van de doelstellingen . Set KennisID="" . For Set KennisID=$O(Cache(KLID,KennisID)) Quit:KennisID="" Do . . Set oKennis=##Class(Derde.Kennis.Kennis).%OpenId(KennisID) . . Quit:'$IsObject(oKennis) . . ;ophalen van de info van een doelstelling . . Set ExtVW=$$EXTVW^KLOPV(KLNr) . . Set IntVW=$$INTVW^KLOPV(KLNr) . . Set Datum=+oKennis.CreationDateAndTime . . Set Tekst=oKennis.Msg . . Set OorspronkelijkeDatum=..GetCreationDateAndTime(KennisID,1) . . Set Verschil=+$H-Datum . . ;groeperen op periode: nieuwe berichten, minder dan 3 maanden, minder dan 6 maanden en ouder dan 6 maanden . . Set VNR=$S(Datum'
HMTL-detaillijnen voor de KS'ers Regio,KLID,VNR 0 " #define fmtEndRow $C(10,13)_"" #define fmtLineBreak $C(10,13)_"
" #define fmtBody(%Txt) $C(10,13)_"

"_%Txt_"

" #define fmtFooter(%Txt) $C(10,13)_"

"_%Txt_"

" Set Datum="" For Set Datum=$O(^HULP(..%J,"Kennis",Regio,KLID,VNR,Datum)) Quit:Datum="" Do . Set KennisID="" . For Set KennisID=$O(^HULP(..%J,"Kennis",Regio,KLID,VNR,Datum,KennisID)) Quit:KennisID="" Do . . Set Rec=^HULP(..%J,"Kennis",Regio,KLID,VNR,Datum,KennisID) . . Set Datum=$Piece(Rec,"\") . . Set ExtVW=$Piece(Rec,"\",2) . . Set IntVW=$Piece(Rec,"\",3) . . Set Domein=$Piece(Rec,"\",4) . . Set Opmerking=$Piece(Rec,"\",5) . . Set OorspronkelijkeDatum=$Piece(Rec,"\",6) . . Set Txt=$$$fmtBeginRow . . Set Txt=Txt_$$$fmtBody(Domein) . . Set Txt=Txt_$$$fmtFooter("Externe verantw: "_$$USERNAME^vhUSER(ExtVW,1)_" - "_"Interne verantw: "_$$USERNAME^vhUSER(IntVW,1)_" - "_$S(+Datum=+OorspronkelijkeDatum:"Aangemaakt: ",1:"Laatste wijziging: ")_$$EXTDATE^vhDTyp(Datum,"DK")_$S(+Datum=+OorspronkelijkeDatum:"",1:$S(OorspronkelijkeDatum:" (Aangemaakt: "_$$EXTDATE^vhDTyp(OorspronkelijkeDatum,"DK")_")",1:""))) . . If Opmerking'="" Set Txt=Txt_$$$fmtFooter(Opmerking) . . Set Txt=Txt_$$$fmtEndRow Quit Txt ]]>
Mail opsturen IntExt,UserID,Subject,strmBody:%Stream "_$G(^vhUSER("D",User,"M"))) . Set EmailAdres=$LB(EmailAdres) Set RerouteMailTo = ##class(TECH.Config.ConfigMgr).Instance().GetString("BL.Derde.Kennis.MailDoelstelling_RerouteMailTo") If (RerouteMailTo '= "") { Set EmailAdres = $LB("cw@vanhoecke.be") ;RerouteMailTo } Quit $$SendMiniMail^vhLib("VHisie@vanhoecke.be",EmailAdres,Subject,strmBody,1,1) ]]>