cANEM1(CODE,PRG,PRGNM,TXT,VARPRG,FLT,ADRES,NBRS,ATTREF,TYPE,FROM) ;Alert-boodschappen ;%ANEM1 [ 26/05/03 - 17:18:58 - 59315,62338 ] ; ; D ^cANEM1(code,prg,prgnm,.txt,.varprg,flt,.adres,.nbrs,.attref,type) ; |-> met .x kan je een tabel doorgeven ; CODE = code van Alert-boodschap ; PRG = programma ; PRGNM = programma-naam ; VARPRG = tabel met variabelen uit prog ; TXT = tabel met vaste lijnen vaste lijnen (gedefin. in applicatie) ; FLT = filter op E-mail adressen (X FLT) ; ADRES = tabel met E-mail adressen ; ADRES = 1 : tabel met e-mail adressen vervangt de e-mail adressen uit ALERT_USR ; ADRES = 0 : tabel met e-mail adressen wordt toegevoegd bij e-mail adressen uit ALERT_USR ; ADRES(n) 1. nvt ; 2. intern nummer USR ; 3. e-mail adress of intern nummer MAIL.ADDR ; 4. Aan of Cc ("" = Aan 1 = Cc) ; 5. nvt ; 6. systeem-info ("" = neen 1 = ja) ; NBRS = tabel met GSM-nummer ; NBRS = 1 : tabel met SMS-nrs vervangt de nrs uit ALERT_SMS ; NBRS = 0 : tabel met SMS-nrs wordt toegevoegd bij de nrs uit ALERT_SMS ; NBRS(n) 1. nvt ; 2. intern nummer USR ; 3. intern nummer SMS-nummer SMS ; 4. GSM-nummer (enkel indien geen USR of geen SMS-nr) ; ; ; ATTREF = tabel die de referentie(s) bevat naar het bestand waar de attachments zich bevinden ; bvb ref(1)="^HULP(boot,$J,1)" ; ref(2)="^HULP(boot,$j,2)" ; ; TYPE = Intern nr type mail (CODE.9007) ; FROM = indien ingevuld wordt het default FROM adres overschreven met dit ; ; T1 ; !!!! This text is not complete. There are more than ; lines. !!! ; 1 S $ZT="TRAP^cAN000" N UCI,UI1,BA,K,UQC,USC,IREF,DTXT,UI1A,I,J,BE,AAN,CC,IND,VAR,OK,HULP,LINES,SMSMSG,nmspc S LINES=500 ; maximum aantal lijnen in TXT = de tekst doorgegeven vanuit applicatie ; indien niet in TST : switchen naar TST (definities) S UCI=$ZU($ZV'["MSM"*5) I $ZV["MSM",$P(UCI,",")'="TST" D IN^cQMSMSW("TST") S (UI1,UI1A)=$$UI1^cAFA1("ALERT",110,CODE) I '$L(UI1) G YZ S BA(1)=$$SIGN^cAFA1("ALERT",UI1,0) I $P(BA(1),D,30) G YZ ; alert buiten gebruik ; 2 ; samenstellen SYS-gegevens D ^cA105,^cA106,MASTER^cQ5 S HULP="HULP" I $ZV["MSM" S HULP="^HULP("""_boot_""","""_$j_".Alert"")" S @HULP@(555,0,2)=$P(BA(1),D,10)_" - "_$P(BA(1),D)_" - "_$$NS^cQ14_" - "_UCI_" "_$G(^cLOG(boot,"DESCRIPTION",0,0))_" - "_DT_" - "_TD S SMSMSG=$$NS^cQ14_" "_UCI_" "_$J_" "_DT_" "_TD_": " S @HULP@(555,0,3)=$G(QU) I $D(QU(2)) S @HULP@(555,0,3)=@HULP@(555,0,3)_" - "_$G(QU(2)) S @HULP@(555,0,3)=@HULP@(555,0,3)_" - "_$G(Q)_" - "_$G(@("^"_Q_"BA(99,1)")) S @HULP@(555,0,4)=$G(PRG)_" "_$G(PRGNM) I $D(%ZM) S @HULP@(555,0,5)=%ZM_" = "_$P($G(@("^|UCI|"_$P(%ZM,"^",2,99))),D)_"/"_$P($G(@$ZR),D,11) S $P(@HULP@(555,0,6),"-",50)="-" S @HULP@(555,0,7)="" ; tekst vanuit applicatie 21 S I="" F J=12:1 S I=$O(TXT(I)) Q:I="" D Q:I="zz" . I J>(LINES+11) S @HULP@(555,0,J)=$P($T(T1),U,2)_LINES_$P($T(T1),U,3) S I="zz" Q ; meer dan xxx lijnen : stoppen . S @HULP@(555,0,J)=$TR(TXT(I),"\","/") ; ophalen gedef. variabelen 23 I '$D(VAR) D VAR(.VAR) M VAR=VARPRG ; indien var. spec. gedef. in progr. ; Versturen SMS indien er GSM-nummers doorgegeven zijn 25 D SMS(SMSMSG,.NBRS) ; 3 ; ophalen vaste tekst van Alert (komt steeds achteraan de mail te staan) D DMS^cAN000("UQC","USC","ALERT.TXT",1) S DTXT="" I $L(UQC)&$L(USC) S DTXT=$G(^DMC(UQC,USC,"DATA","TXT")) D DTXT(UI1A) ; ophalen tekst ; specifieke Xecute S OK=0 I $L($P(BA(1),D,4)) X $P(BA(1),D,4) I OK G 5:OK=1,Y:OK=2 ; 4 ; E-mail adressen S I=$$ADRESA(UI1A,"",.ADRES) S CC=$P(I,D,2),AAN=$P(I,D) I '$L($G(FROM)) S FROM=$$SIG^cAFA1("PAR","MAIL",105) ; 5 ; versturen E-mail I $D(@HULP@(556)) D . ; switch to the 'master' if we are on the 'shadow', set $ZU(20) (Cache v5). . I $ZV'["MSM",$ZU(110)=$G(^cLOG($ZU(5),"SYSTEM","SLAVE"),$G(^cLOG($ZU(5),"SYSTEM","MASTER"),$ZU(110))),$G(^cLOG($ZU(5),"SYSTEM","MASTER"),$ZU(110))'=$G(^cLOG($ZU(5),"SYSTEM","SLAVE"),$G(^cLOG($ZU(5),"SYSTEM","MASTER"),$ZU(110))),$ZU(90,10,cs_"M") S nmspc=$ZU(5) ZN cs_"M" S X=$ZU(20,nmspc) . ; switch to the 'master' if we are on the 'crossover', set $ZU(20) (Cache v5). . I $ZV'["MSM",$ZU(110)=$G(^cLOG($ZU(5),"SYSTEM","CROSSOVER"),$G(^cLOG($ZU(5),"SYSTEM","MASTER"),$ZU(110))),$G(^cLOG($ZU(5),"SYSTEM","MASTER"),$ZU(110))'=$G(^cLOG($ZU(5),"SYSTEM","CROSSOVER"),$G(^cLOG($ZU(5),"SYSTEM","MASTER"),$ZU(110))),$ZU(90,10,cs_"M") S nmspc=$ZU(5) ZN cs_"M" S X=$ZU(20,nmspc) . I '$L($G(TYPE)) S TYPE=$P(BA(1),D,5) . D MAIL^cA350(FROM,AAN,CC,$$CONV($P(BA(1),D,2)),$P(HULP_"(",")")_$S(HULP[",":",",1:"")_"556,TO)",Q,.ATTREF,TYPE) ;ATTREF,TYPE -> 19.05.03 JV ; Kortgesloten door KU op 23.09.02 : vanaf nu geen koppeling meer met Memo-data (afgesproken met GD en AM) ; I '$D(@HULP@(557)) G YZ ; ingeval Memo-data ; N S1,S2,TO ; S I="",J=0 ; S TO="" ; F S TO=$O(@HULP@(557,TO)) Q:TO="" D ; . F S I=$O(@HULP@(557,TO,I)) Q:I="" D ; .. S S2=@HULP@(557,TO,I) ; .. N I ; .. I J>7 D ; ... D MEMO^cA5002(.S1,TO) ; ... S J=0 K S1 ; .. S J=J+1 ; .. S S1(J)=S2 ; . I $L($O(S1(""))) D MEMO^cA5002(.S1,TO) Y K @HULP ; YZ I $ZV'["MSM",$D(nmspc) ZN nmspc K nmspc ; back to the shadow I $ZV["MSM",$D(UCI),$P(UCI,",")'="TST" D IN^cQMSMSW($P(UCI,",")) Q ; ADRES(UI1,SYN) ; samenstellen adressen S $ZT="TRAP^cAN000" S BE(1)=$$SIGN^cAFA1("ALERT_USR",UI1,0) ADRES0 I $P(BE(1),D,30) Q N IND S IND=556 ; indien gebruiker : E-mail van bij de gebruiker I $P(BE(1),D,2) D G ADRES1 . ; KU op 23.09.02 : indien user niet meer operationeel dan niet meer versturen . S $P(BE(1),D,3)="" . I $$SIG^cAFA1("USR",$P(BE(1),D,2),130) Q ; user buiten gebruik . S $P(BE(1),D,3)=$P($G(^(1)),D,21) ; ophalen E-mail adress bij User . ; Kortgesloten door KU op 23.09.02 : vanaf nu geen koppeling meer met Memo-data (afgesproken met GD en AM) . ; I '$L($P(BE(1),D,3))!'$G(SWEM) S $P(BE(1),D,3)=$P(^(0),D),IND=557 ; Kortgesloten door KU op 23.09.02 : vanaf nu geen koppeling meer met Memo-data (afgesproken met GD en AM) ; I $P(BE(1),D,3)?1.N S $P(BE(1),D,3)=$S($G(SWEM):$$SIG^cAFA1("MAIL.ADDR",$P(BE(1),D,3),103),1:"") I $P(BE(1),D,3)?1.N S $P(BE(1),D,3)=$S('$$SIG^cAFA1("MAIL.ADDR",$P(BE(1),D,3),130):$P($G(^(0)),D,3),1:"") ; indien e-mail address ADRES1 I '$L($P(BE(1),D,3)) Q ; geen E-mail adres ; indien Q-waarde ingevuld is, .... I '$G(SYN),$L($P(BE(1),D,11)),$G(Q)'=$$SIG^cAFA1("Q",$P(BE(1),D,11),101) Q ; conditie om te versturen I '$G(SYN),$L($G(FLT)) X FLT I '$T Q I IND'=556 G ADRES2 I $$UC^cAFA1(U_CC_U_AAN_U)[$$UC^cAFA1((U_$P(BE(1),D,3)_U)) Q ; e-mail adres reeds in aan of cc I $P(BE(1),D,4) S CC=CC_$S($L(CC):U,1:"")_$P(BE(1),D,3) ; CC E S AAN=AAN_$S($L(AAN):U,1:"")_$P(BE(1),D,3) ; AAN ADRES2 I $G(SYN) G ADRESZ ; S TXT=$S($P(BE(1),D,5):$P(BE(1),D,5),1:$P(BA(1),D,3)) ; S @HULP@(IND)="" S TXT=UI1A D DTXT(TXT) ; tekst ; S I=11 I $P(BE(1),D,6) S I="" ; indien SYS-info ; opbouw tekst vanuit applicatie per E-mail adres F S I=$O(@HULP@(555,0,I)) Q:I="" S @HULP@(IND,$P(BE(1),D,3),I)=@HULP@(555,0,I) S J=$O(@HULP@(IND,$P(BE(1),D,3),""),-1)+2 ; opbouw vaste tekst Alert per E-mail adres S I="" I $L(TXT) F S I=$O(@HULP@(555,TXT,I)) Q:I="" S @HULP@(IND,$P(BE(1),D,3),J)=@HULP@(555,TXT,I),J=J+1 ADRESZ Q ; ADRESA(UI1A,SYN,ADRES) ; ophalen 'aan' en 'Cc' voor tonen in synoniemen ; SYN=1 indien voor synoniemen N UQC,USC,IREF,IND,BE,AAN,CC,I1 S SWEM='$$DMS("MAIL") ; KU op 23.09.02 : vanaf nu geen koppeling meer met Memo-data (afgesproken met GD en AM) ; dus als je geen licentie hebt voor mail , dan niets meer ... I 'SWEM G ADRESZ S AAN="",CC="" ; ADRES = 1 vervangen van de e-mail adressen uit ALERT_USR ; = 0 toevoegen van de e-mail adressen aan ALERT_USR I $G(ADRES)=1 G ADRESAY D DMS^cAN000("UQC","USC","ALERT_USR") I '$L(UQC)!'$L(USC) G ADRESAZ S IREF=$G(^DMC(UQC,USC,"DATA","INDEX")) I '$L(IREF) G ADRESAZ S IND=UI1A_" " F S IND=$O(@IREF@(101,IND)) Q:$P(IND," ")'=UI1A D ADRES(^(IND),$G(SYN)) ADRESAY S I1="" F S I1=$O(ADRES(I1)) Q:I1="" S BE(1)=ADRES(I1) D ADRES0 ADRESAZ Q AAN_$S($L(AAN):D,1:"")_CC ; CONV(A) ; %xxx% uit K vertalen naar data in %xxx% variabele N I,K I A'["%" G CONVZ S I="" F S I=$O(VAR(I)) Q:I="" F Q:A'[("%"_I_"%") S A=$P(A,"%"_I_"%")_VAR(I)_$P(A,"%"_I_"%",2,99) CONVZ Q A ; DMS(Q1) ; N R S R="" I $L(Q),$L(Q1) S R=$G(^DMS(Q,Q1,0)) I '$L(R),$L(Q1) S R=$G(^DMS(0,Q1,0)) S R=$P(R,D,30) Q R ; DTXT(UI1) ; ophalen tekst I '$L($G(DTXT)) G DTXTZ N ITXT I '$L(UI1) G DTXTZ ; indien reeds opgehaald en geconverteerd I $D(@HULP@(555,UI1)) G DTXTZ I '$D(@DTXT@(UI1)) Q M @HULP@(555,UI1)=@DTXT@(UI1) S ITXT="" F S ITXT=$O(@HULP@(555,UI1,ITXT)) Q:ITXT="" S @HULP@(555,UI1,ITXT)=$$CONV(@HULP@(555,UI1,ITXT)) DTXTZ Q ; SMS(SMSMSG,NBRS) ; opmaken tekst voor SMS + klaarstellen om door te sturen ; indien UI1A en BA(1) bestaan: UI1A = int.nr van de ALERT en BA(1) = 0-node van de alert ; SMSMSG : beginstuk van de SMS : nu SYSTEEM-UCI-JOBnr.-DT-TD: ; NBRS : eventueel tabel met extra SMS-nrs S $ZT="TRAP^cAN000" N GSMNBRS S GSMNBRS=$$SMSNBR($G(UI1A),.NBRS) ; ophalen GSM-nrs I '$L(GSMNBRS) G SMSZ S SMSMSG=$G(SMSMSG) I $D(BA(1)) S SMSMSG=SMSMSG_$$CONV($P(BA(1),D,2)) ; opvullen titel D SMSIT(GSMNBRS,SMSMSG) ; klaarstellen SMS voor versturen SMSZ Q ; SMSNBR(UI1A,NBRS) ; UI1A = int.nr van de ALERT ; NBRS = tabel met SMS-nrs : zie uitleg bovenaan prog. N R,UQC,USC,IREF,IND,I1 S $ZT="TRAP^cAN000" S R="" I $G(NBRS)=1 G SMSNBRY D DMS^cAN000("UQC","USC","ALERT_SMS",1) I '$L(UQC)!'$L(USC) G SMSNBRZ S IREF=$G(^DMC(UQC,USC,"DATA","INDEX")) I '$L(IREF) G SMSNBRZ S IND=UI1A_" " F S IND=$O(@IREF@(101,IND)) Q:$P(IND," ")'=UI1A S R=R_$S($L(R):",",1:"")_$$SMSNB(^(IND)) SMSNBRY S I1="" F S I1=$O(NBRS(I1)) Q:I1="" S R=R_$S($L(R):",",1:"")_$$SMSNB(,NBRS(I1)) F Q:R'[",," S R=$P(R,",,")_","_$P(R,",,",2,99) I $E(R,$L(R))="," S R=$E(R,1,$L(R)-1) SMSNBRZ Q R ; SMSNB(UI1,BE) ; ophalen van een GSM-nr S $ZT="TRAP^cAN000" I '$D(BE),$L($G(UI1)) S BE=$$SIGN^cAFA1("ALERT_SMS",UI1,0) I '$L($G(BE)) G SMSNBZ SMSNBA I $P(BE,D,30) S $P(BE,D,4)="" G SMSNBZ ; buiten gebruik of verwijderd ; indien gebruiker : GSM-nr van bij de gebruiker I '$P(BE,D,2) G SMSNBB S $P(BE,D,4)="" I $$SIG^cAFA1("USR",$P(BE,D,2),130) G SMSNBZ ; user buiten gebruik S $P(BE,D,4)=$P($G(^(0)),D,14) ; ophalen GSM-nr bij User G SMSNBZ ; indien SMS-nr : GSM-nummer ophalen SMSNBB I '$P(BE,D,3) G SMSNBZ S $P(BE,D,4)="" I $$SIG^cAFA1("SMS",$P(BE,D,3),130) G SMSNBZ ; SMS-nr buiten gebruik S $P(BE,D,4)=$P($G(^(0)),D,3) ; ophalen GSM-nrr SMSNBZ Q $$DP^cAFA1($P(BE,D,4)) ; SMSIT(NBRS,MES) ;send SMS message MES to NBRS ; NBRS = GSMnummer(s) gescheiden door een komma : 0475xxx,0476yyy, ... ; MES = te versturen boodschap (er mogen geen / in zitten ! Die worden autom. geconv. naar \) N B,DIRD,DIR,I,K,ER,FILE S $ZT="TRAP^cAN000" S MES=$TR($G(MES),"/","\"),DIRD=$E($$INFO^cQ14)_":" I +$G(^cLOG(boot,"SMS"))=2 D Q . S DIR=DIRD_"\DataM\Blat\" . S ER=$$JW^cA710("echo. >"_DIR_"empty.txt") . S B=DIR_"blat.exe "_DIR_"empty.txt -from msmadm@daisy.terbeke.be -to IMCEASMS-" . F I=1:1:$L(NBRS,",") D .. S ER=$$JW^cA710(B_$P(NBRS,",",I)_"@terbeke.be -subject """_MES_"""") E D . S DIR=DIRD_"\DataM\SMS\outfiles\" . F I=1:1 S FILE=DIR_"out"_I_".txt" Q:$$TST^cA710(FILE) . S ER=$$OW^cA710(FILE) . I 'ER S ER=$$WF^cA710(FILE,"1//"_NBRS_"//"_MES_"//"_DIRD_"\DataM\SMS\logging\receipt.txt") . S ER=$$CF^cA710(FILE) SMSMITZ Q ; UI1(DMS,BI,X) ; test uniek gegeven N i F i=1:1:$L(X) q:$E(X,i)?1N S X=$E(X,1,i-1) Q $$UI1^cAFA1(DMS,BI,X) ; VAR(VAR) ; ophalen variabelen N UQC,USC,UI1,UREF,K,B K VAR D DMS^cAN000("UQC","USC","ALERT.VAR") I '$L(UQC)!'$L(USC) G VARZ S UREF=$G(^DMC(UQC,USC,"DATA","REF")) I '$L(UREF) G VARZ S UI1="" F S UI1=$O(@UREF) Q:UI1="" D . I $P(@UREF@(0),D,30) Q . S B=^(0) . X "S K="_$P(B,D,3) . S VAR($P(B,D))=K VARZ Q ; ; opzetten vaste variabelen applicatie-gebonden in TABEL VARPRG(TABEL,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15) K TABEL N i F i=1:1:15 I $D(@("B"_i)) S TABEL("B"_i)=@("B"_i) Q ; ZZ ; 24.02.06 - 9 u 54 * V8.06