XMDIR1B ;(WASH ISC)/CAP-Load VACO Directories (NOAVA) ;04/17/2002 08:47
;;8.0;MailMan;;Jun 28, 2002
; Entry points used by MailMan options (not covered by DBIA):
; REMOTES XMEDIT-REMOTE-USER
I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP=""
S X="EOF^XMDIR1B",@^%ZOSF("TRAP"),XMB0=^%ZOSF("UPPERCASE")
GO G P:'$D(ZTQUEUED)
R1 U IO R Y:DTIME I '$D(ZTQUEUED) U IO(0)
S XMA=XMA+1 I '$D(ZTQUEUED),XMA#10=0 W "."
P S X=Y X XMB0 F %=0:0 Q:$E(Y)'?1P S Y=$E(Y,2,99)
F %=$L(Y):-1:0 Q:$E(Y,%)?1A S Y=$E(Y,1,%-1)
K X S X=$$STRIP($P(Y,":"))
G R1:X[" ",R1:X["@",R1:X["::",R1:X["..",R1:X="",R1:X?1.N,R1:X?.E3N.E,R1:X["/",R1:X?.E1C.E
S XMY=Y
;
;Name
S X("LN")=X
S X=$$STRIP($P(XMY,":",2)),X("FN")=X,X("RN")=""
;
;Mail code
S X=$$STRIP($P(XMY,":",6)),X("MC")=$P(X," "),X("EMC")=X G R1:X("MC")?.E1C.E
;
;Phone number / Extension
S X("PHONE")=$$STRIP($P(XMY,":",5)),X("PHONE/E")=$$STRIP($P(XMY,":",7))
;
;Location
S X("L")=$$STRIP($P(XMY,":",4))
;
;Network address
S X=$$STRIP($P(XMY,":",9)),X=$P(X,"@")
G R1:'$L(X),R1:X?.E1C.E S X("NET")=X_"@VACO.DOMAIN.EXT"
I $D(^XMD(4.2997,"B",X("LN"))) S %="" F S %=$O(^XMD(4.2997,"B",X("LN"),%)) Q:%="" I $D(^XMD(4.2997,%,0)) S %6=^XMD(4.2997,%,0) I X("NET")=$P(%6,U,7) S XME="Already on file - not filed " D ER^XMDIR1 G R1
;
D FILE^XMDIR1A(.X)
G R1
EOF D ^%ZISC,END^XMDIR1A("NOAVA",90) Q
;
;Strip leading and trailing spaces
STRIP(X) F Q:$E(X)'=" " S X=$E(X,2,999)
F Q:$E(X,$L(X))'=" " S X=$E(X,1,$L(X)-1)
Q X
NOWANG D @^%ZOSF("ERRTN")
I '$D(ZTQUEUED) W !!,"The error: "_$ZE_" occured !!!",!!
G Q^XMDIR1
REMOTES ;Edit/Add Remote members
N DA,DIE,DR,DIC,DLAYGO,X,Y,DUOUT,DTOUT
S DIC=4.2997,DLAYGO=4.2997,DIC(0)="AELQMZ" D ^DIC
Q:$S($D(DTOUT):1,$D(DUOUT):1,Y<1:1,1:0)
S DA=+Y,DIE=4.2997,DR=".01:99999" D ^DIE
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMDIR1B 1827 printed Dec 13, 2024@02:11:33 Page 2
XMDIR1B ;(WASH ISC)/CAP-Load VACO Directories (NOAVA) ;04/17/2002 08:47
+1 ;;8.0;MailMan;;Jun 28, 2002
+2 ; Entry points used by MailMan options (not covered by DBIA):
+3 ; REMOTES XMEDIT-REMOTE-USER
+4 IF $$NEWERR^%ZTER
NEW $ETRAP,$ESTACK
SET $ETRAP=""
+5 SET X="EOF^XMDIR1B"
SET @^%ZOSF("TRAP")
SET XMB0=^%ZOSF("UPPERCASE")
GO if '$DATA(ZTQUEUED)
GOTO P
R1 USE IO
READ Y:DTIME
IF '$DATA(ZTQUEUED)
USE IO(0)
+1 SET XMA=XMA+1
IF '$DATA(ZTQUEUED)
IF XMA#10=0
WRITE "."
P SET X=Y
XECUTE XMB0
FOR %=0:0
if $EXTRACT(Y)'?1P
QUIT
SET Y=$EXTRACT(Y,2,99)
+1 FOR %=$LENGTH(Y):-1:0
if $EXTRACT(Y,%)?1A
QUIT
SET Y=$EXTRACT(Y,1,%-1)
+2 KILL X
SET X=$$STRIP($PIECE(Y,":"))
+3 if X[" "
GOTO R1
if X["@"
GOTO R1
if X["::"
GOTO R1
if X[".."
GOTO R1
if X=""
GOTO R1
if X?1.N
GOTO R1
if X?.E3N.E
GOTO R1
if X["/"
GOTO R1
if X?.E1C.E
GOTO R1
+4 SET XMY=Y
+5 ;
+6 ;Name
+7 SET X("LN")=X
+8 SET X=$$STRIP($PIECE(XMY,":",2))
SET X("FN")=X
SET X("RN")=""
+9 ;
+10 ;Mail code
+11 SET X=$$STRIP($PIECE(XMY,":",6))
SET X("MC")=$PIECE(X," ")
SET X("EMC")=X
if X("MC")?.E1C.E
GOTO R1
+12 ;
+13 ;Phone number / Extension
+14 SET X("PHONE")=$$STRIP($PIECE(XMY,":",5))
SET X("PHONE/E")=$$STRIP($PIECE(XMY,":",7))
+15 ;
+16 ;Location
+17 SET X("L")=$$STRIP($PIECE(XMY,":",4))
+18 ;
+19 ;Network address
+20 SET X=$$STRIP($PIECE(XMY,":",9))
SET X=$PIECE(X,"@")
+21 if '$LENGTH(X)
GOTO R1
if X?.E1C.E
GOTO R1
SET X("NET")=X_"@VACO.DOMAIN.EXT"
+22 IF $DATA(^XMD(4.2997,"B",X("LN")))
SET %=""
FOR
SET %=$ORDER(^XMD(4.2997,"B",X("LN"),%))
if %=""
QUIT
IF $DATA(^XMD(4.2997,%,0))
SET %6=^XMD(4.2997,%,0)
IF X("NET")=$PIECE(%6,U,7)
SET XME="Already on file - not filed "
DO ER^XMDIR1
GOTO R1
+23 ;
+24 DO FILE^XMDIR1A(.X)
+25 GOTO R1
EOF DO ^%ZISC
DO END^XMDIR1A("NOAVA",90)
QUIT
+1 ;
+2 ;Strip leading and trailing spaces
STRIP(X) FOR
if $EXTRACT(X)'=" "
QUIT
SET X=$EXTRACT(X,2,999)
+1 FOR
if $EXTRACT(X,$LENGTH(X))'=" "
QUIT
SET X=$EXTRACT(X,1,$LENGTH(X)-1)
+2 QUIT X
NOWANG DO @^%ZOSF("ERRTN")
+1 IF '$DATA(ZTQUEUED)
WRITE !!,"The error: "_$ZE_" occured !!!",!!
+2 GOTO Q^XMDIR1
REMOTES ;Edit/Add Remote members
+1 NEW DA,DIE,DR,DIC,DLAYGO,X,Y,DUOUT,DTOUT
+2 SET DIC=4.2997
SET DLAYGO=4.2997
SET DIC(0)="AELQMZ"
DO ^DIC
+3 if $SELECT($DATA(DTOUT)
QUIT
+4 SET DA=+Y
SET DIE=4.2997
SET DR=".01:99999"
DO ^DIE
+5 QUIT