XMVGRP ;ISC-SF/GMB-Group creation/enrollment ;03/07/2002 07:01
;;8.0;MailMan;;Jun 28, 2002
; Entry points used by MailMan options (not covered by DBIA):
; ENLOCAL XMxxxxx - Add local users to mail groups
ENLOCAL1(XMXQUSER) ; Add local user(s) to group(s) - called from Kernel
; XMXQUSER - first user being added (duz or name)
I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
D INITAPI^XMVVITAE
ENLOCAL ; Add local user(s) to mail group(s).
N XMGRP,XMMBR,XMINSTR,XMTSK,XMTO,XMABORT
S XMABORT=0
D ENGRP(.XMGRP,.XMABORT) Q:XMABORT!'$D(XMGRP) ; select groups
D ENUSER(.XMMBR,.XMABORT,.XMXQUSER) Q:XMABORT ; select users
D ENCONF(.XMGRP,.XMMBR,.XMABORT) Q:XMABORT ; confirm it
D ADD2GRPZ^XMXGRP(.XMGRP,.XMMBR,.XMTO) ; add users to groups
W !!,$$EZBLD^DIALOG(38233) ; Users have been added to the mail groups
D ENFWD(XMDUZ,.XMINSTR,.XMABORT) Q:XMABORT ; forward msgs?
D FAFMSGS^XMXGRP1(XMDUZ,.XMGRP,.XMTO,.XMINSTR,.XMTSK) ; yup.
D FWDTSK^XMVGROUP(XMTSK) ; tell the user the task number.
Q
ENGRP(XMGRP,XMABORT) ;
N Y
F D Q:Y=-1!XMABORT
. N DIC,DIR,X,XMDEL
. S DIR("A")=$$EZBLD^DIALOG($S($D(XMGRP):38211,1:38210)) ; Another mail group / Allocate mail group
. S DIR("PRE")="I $E(X)=""-"" S XMDEL=1,X=$E(X,2,99)"
. D BLD^DIALOG(38213,"","","DIR(""?"")")
. ;Enter the name of the mail group you wish to allocate.
. ;Precede any mail group name with '-' to remove it.
. ;You'll only be able to select mail groups you're authorized to edit.
. ;Enter ?? for a list of mail groups you've already selected,
. ;and for mail group help.
. S DIR("??")="^D HELPGRP^XMVGRP"
. S DIR(0)="PO^3.8:FEMQ"
. S DIC("S")=$$GRPSCR^XMVGROUP(1)
. D ^DIR I $D(DTOUT)!$D(DUOUT) S XMABORT=1 Q
. Q:Y=-1
. I '$G(XMDEL) S XMGRP($P(Y,U,2))=+Y Q
. I '$D(XMGRP($P(Y,U,2))) W $C(7),$$EZBLD^DIALOG(38214) Q ; ?? Not on current list.
. K XMGRP($P(Y,U,2))
. W $$EZBLD^DIALOG(38215) ; Deleted from current list.
Q
HELPGRP ;
I '$D(XMGRP) W !,$$EZBLD^DIALOG(38216) ; You haven't selected any mail groups yet.
E D SHOWGRP
N DIR,X,Y,DIRUT,DTOUT,DIRUT
S DIR("A")=$$EZBLD^DIALOG(38217) ; Want mail group help
S DIR(0)="Y"
S DIR("B")=$$EZBLD^DIALOG(39053) ; NO
D ^DIR Q:'Y
;D HELP^XMHIG
N DIC,X,Y,DLAYGO
S DIC(0)="AEQM",DIC="^XMB(3.8,"
S DIC("S")=$$GRPSCR^XMVGROUP(1)
F W ! D ^DIC Q:Y<0 D
. D DISPLAY^XMHIG(+Y)
Q
SHOWGRP ;
N XMI,XMJ,XML,XMLN
W !!,$$EZBLD^DIALOG(38218) ; You've selected the following mail groups:
S XML=0,XMI="" F S XMI=$O(XMGRP(XMI)) Q:XMI="" I $L(XMI)>XML S XML=$L(XMI)
S XML=XML+3,XMLN=80\XML
S XMI=""
F XMJ=0:1 S XMI=$O(XMGRP(XMI)) Q:XMI="" D
. W:'(XMJ#XMLN) ! W ?(XMJ#XMLN*XML),XMI
Q
ENUSER(XMMBR,XMABORT,XMUSER) ;
N XMX,XMDONE
W !
S XMDONE=0
F D Q:XMDONE!XMABORT
. N XMDEL
. W !,$$EZBLD^DIALOG($S($D(XMMBR):38221,1:38220)) ; Another user: / Add user:
. I $G(XMUSER)'="" D
. . S XMX=XMUSER
. . K XMUSER
. . W XMX
. E D Q:XMX=""
. . R XMX:DTIME S:'$T XMX=U I XMX[U S XMABORT=1 Q
. . I XMX="" D Q
. . . I $D(XMMBR) S XMDONE=1 Q
. . . W $C(7)," ??",!,$$EZBLD^DIALOG(38222) ; You must select a user, or enter ^ to exit.
. . I XMX?1."?" D HELPUSR(XMX) S:XMX'="?" XMX="" Q
. . I $E(XMX)="-" S XMDEL=1,XMX=$E(XMX,2,99) W:XMX="" " ??",$C(7)
. N DIC,D,X,Y,DLAYGO,XMNAME
. S X=$$UP^XLFSTR(XMX)
. S DIC("S")="I $L($P(^(0),U,3)),$D(^XMB(3.7,+Y,2))" ; User must have an access code & mailbox
. S DIC("W")="I Y'=DUZ D USERINFO^XMXADDR1(Y)"
. S DIC="^VA(200,"
. S DIC(0)="FEMN" ; 'N' means if user enters a DUZ, ask "OK?"
. S D="B^BB^C^D" ; name^alias^initial^nickname
. D MIX^DIC1 I $D(DTOUT)!$D(DUOUT) S XMABORT=1 Q
. I Y<0 W " ??",$C(7) Q
. S XMNAME=$$NAME^XMXUTIL(+Y) ; $P(Y,U,2)
. I '$G(XMDEL) S XMMBR(XMNAME)=+Y Q
. I '$D(XMMBR(XMNAME)) W !,$C(7),$$EZBLD^DIALOG(38214) Q ; ?? Not on current list.
. K XMMBR(XMNAME)
. W !,$$EZBLD^DIALOG(38215) ; Deleted from current list.
Q
HELPUSR(XMX) ;
I XMX="?" D Q
. N XMTEXT
. D BLD^DIALOG(38223,"","","XMTEXT","F")
. D MSG^DIALOG("WH","","","","XMTEXT")
. ;Enter the name of the user you wish to add to the group(s).
. ;Precede any user name with '-' to remove it.
. ;You'll only be able to select users with mailboxes and access codes.
. ;Enter ?? for a list of users you've already selected,
. ;and for user help.
I '$D(XMMBR) W !,$$EZBLD^DIALOG(38226) ;You haven't selected any users yet.
E D SHOWUSR
N DIR,X,Y,DIRUT,DTOUT,DIRUT
S DIR("A")=$$EZBLD^DIALOG(38224) ; Want user help
S DIR(0)="Y"
S DIR("B")=$$EZBLD^DIALOG(39053) ; NO
D ^DIR Q:'Y
D HELP^XMHIU
Q
SHOWUSR ;
N XMI,XMJ,XML,XMLN
W !!,$$EZBLD^DIALOG(38225) ; You've selected the following users:
S XML=0,XMI="" F S XMI=$O(XMMBR(XMI)) Q:XMI="" I $L(XMI)>XML S XML=$L(XMI)
S XML=XML+3,XMLN=80\XML
S XMI=""
F XMJ=0:1 S XMI=$O(XMMBR(XMI)) Q:XMI="" D
. W:'(XMJ#XMLN) ! W ?(XMJ#XMLN*XML),XMI
Q
ENCONF(XMGRP,XMMBR,XMABORT) ;
D SHOWGRP
D SHOWUSR
W !
N DIR,X,Y
D BLD^DIALOG(38230,"","","DIR(""A"")") ; You are adding users to mail groups. Do you wish to proceed
S DIR(0)="Y"
S DIR("B")=$$EZBLD^DIALOG(39054) ; yes
D ^DIR I 'Y S XMABORT=1
Q
ENFWD(XMDUZ,XMINSTR,XMABORT) ;
W !
N DIR,X,Y
D BLD^DIALOG(38231,"","","DIR(""A"")")
;Do you wish to forward past mail group messages
;to the user(s) you just added to the mail group(s)
D BLD^DIALOG(38232,"","","DIR(""?"")")
;Answer YES to forward past mail group messages.
;You will be asked for a time frame to search,
;and then MailMan will create a task to find and forward
;existing mail group messages.
S DIR(0)="Y"
S DIR("B")=$$EZBLD^DIALOG(39053) ; no
D ^DIR I $D(DIRUT)!'Y S XMABORT=1 Q
D FWDDATES(XMDUZ,.XMINSTR,.XMABORT) Q:XMABORT
S XMINSTR("FLAGS")="F"
Q
FWDDATES(XMDUZ,XMINSTR,XMABORT) ;
; Message sent on or before date
N DIR,Y,X,XMOLDEST,XMTEXT
;S XMOLDEST=$O(^XMB(3.9,"C",""))
F S XMOLDEST=$O(^XMB(3.9,"C","")) Q:XMOLDEST?1N.N K ^XMB(3.9,"C",XMOLDEST) ; kill bogus nodes
; You will now choose a date range for the messages to be searched
; and forwarded. The oldest message is from XMOLDEST.
W !
D BLD^DIALOG(38023.5,$$FMTE^XLFDT(XMOLDEST,5),"","XMTEXT","F")
D MSG^DIALOG("WM","",IOM,"","XMTEXT")
I $P(^XMB(3.7,XMDUZ,0),U,7) D
. N XMCUT
. S XMCUT=$P(^XMB(3.7,XMDUZ,0),U,7)
. Q:XMCUT<XMOLDEST
. ; You may not access any message prior to |1| unless someone
. ; forwards it to you.
. D BLD^DIALOG(37100,$$FMTE^XLFDT(XMCUT,5),"","XMTEXT","F")
. D MSG^DIALOG("WE","",IOM,"","XMTEXT")
. S XMOLDEST=XMCUT
W !
S DIR(0)="DO^"_XMOLDEST_":DT:EX"
S DIR("A")=$$EZBLD^DIALOG(34444) ; Message sent on or after
D BLD^DIALOG(34444.1,"","","DIR(""?"")")
; Enter a date. It must include day, month, and year.
S DIR("B")=$$FMTE^XLFDT($$MAX^XLFMTH(XMOLDEST,$$FMADD^XLFDT(DT,-365)),5)
D ^DIR I $D(DIRUT) S XMABORT=1 Q
S XMINSTR("FDATE")=Y
; Message sent on or before date
I XMINSTR("FDATE")=DT S XMINSTR("TDATE")=DT Q
K DIR,Y,X
S DIR(0)="DO^"_XMINSTR("FDATE")_":DT:EX"
S DIR("A")=$$EZBLD^DIALOG(34445) ; Message sent on or before
D BLD^DIALOG(34444.1,"","","DIR(""?"")")
; Enter a date. It must include day, month, and year.
S DIR("B")=$$FMTE^XLFDT(DT,5)
D ^DIR I $D(DIRUT) S XMABORT=1 Q
S XMINSTR("TDATE")=Y
Q
XMVGRP ;ISC-SF/GMB-Group creation/enrollment ;03/07/2002 07:01
+1 ;;8.0;MailMan;;Jun 28, 2002
+2 ; Entry points used by MailMan options (not covered by DBIA):
+3 ; ENLOCAL XMxxxxx - Add local users to mail groups
ENLOCAL1(XMXQUSER) ; Add local user(s) to group(s) - called from Kernel
+1 ; XMXQUSER - first user being added (duz or name)
+2 IF '$DATA(XMV)
NEW XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
+3 DO INITAPI^XMVVITAE
ENLOCAL ; Add local user(s) to mail group(s).
+1 NEW XMGRP,XMMBR,XMINSTR,XMTSK,XMTO,XMABORT
+2 SET XMABORT=0
+3 ; select groups
DO ENGRP(.XMGRP,.XMABORT)
IF XMABORT!'$DATA(XMGRP)
QUIT
+4 ; select users
DO ENUSER(.XMMBR,.XMABORT,.XMXQUSER)
IF XMABORT
QUIT
+5 ; confirm it
DO ENCONF(.XMGRP,.XMMBR,.XMABORT)
IF XMABORT
QUIT
+6 ; add users to groups
DO ADD2GRPZ^XMXGRP(.XMGRP,.XMMBR,.XMTO)
+7 ; Users have been added to the mail groups
WRITE !!,$$EZBLD^DIALOG(38233)
+8 ; forward msgs?
DO ENFWD(XMDUZ,.XMINSTR,.XMABORT)
IF XMABORT
QUIT
+9 ; yup.
DO FAFMSGS^XMXGRP1(XMDUZ,.XMGRP,.XMTO,.XMINSTR,.XMTSK)
+10 ; tell the user the task number.
DO FWDTSK^XMVGROUP(XMTSK)
+11 QUIT
ENGRP(XMGRP,XMABORT) ;
+1 NEW Y
+2 FOR
Begin DoDot:1
+3 NEW DIC,DIR,X,XMDEL
+4 ; Another mail group / Allocate mail group
SET DIR("A")=$$EZBLD^DIALOG($SELECT($DATA(XMGRP):38211,1:38210))
+5 SET DIR("PRE")="I $E(X)=""-"" S XMDEL=1,X=$E(X,2,99)"
+6 DO BLD^DIALOG(38213,"","","DIR(""?"")")
+7 ;Enter the name of the mail group you wish to allocate.
+8 ;Precede any mail group name with '-' to remove it.
+9 ;You'll only be able to select mail groups you're authorized to edit.
+10 ;Enter ?? for a list of mail groups you've already selected,
+11 ;and for mail group help.
+12 SET DIR("??")="^D HELPGRP^XMVGRP"
+13 SET DIR(0)="PO^3.8:FEMQ"
+14 SET DIC("S")=$$GRPSCR^XMVGROUP(1)
+15 DO ^DIR
IF $DATA(DTOUT)!$DATA(DUOUT)
SET XMABORT=1
QUIT
+16 IF Y=-1
QUIT
+17 IF '$GET(XMDEL)
SET XMGRP($PIECE(Y,U,2))=+Y
QUIT
+18 ; ?? Not on current list.
IF '$DATA(XMGRP($PIECE(Y,U,2)))
WRITE $CHAR(7),$$EZBLD^DIALOG(38214)
QUIT
+19 KILL XMGRP($PIECE(Y,U,2))
+20 ; Deleted from current list.
WRITE $$EZBLD^DIALOG(38215)
End DoDot:1
IF Y=-1!XMABORT
QUIT
+21 QUIT
HELPGRP ;
+1 ; You haven't selected any mail groups yet.
IF '$DATA(XMGRP)
WRITE !,$$EZBLD^DIALOG(38216)
+2 IF '$TEST
DO SHOWGRP
+3 NEW DIR,X,Y,DIRUT,DTOUT,DIRUT
+4 ; Want mail group help
SET DIR("A")=$$EZBLD^DIALOG(38217)
+5 SET DIR(0)="Y"
+6 ; NO
SET DIR("B")=$$EZBLD^DIALOG(39053)
+7 DO ^DIR
IF 'Y
QUIT
+8 ;D HELP^XMHIG
+9 NEW DIC,X,Y,DLAYGO
+10 SET DIC(0)="AEQM"
SET DIC="^XMB(3.8,"
+11 SET DIC("S")=$$GRPSCR^XMVGROUP(1)
+12 FOR
WRITE !
DO ^DIC
IF Y<0
QUIT
Begin DoDot:1
+13 DO DISPLAY^XMHIG(+Y)
End DoDot:1
+14 QUIT
SHOWGRP ;
+1 NEW XMI,XMJ,XML,XMLN
+2 ; You've selected the following mail groups:
WRITE !!,$$EZBLD^DIALOG(38218)
+3 SET XML=0
SET XMI=""
FOR
SET XMI=$ORDER(XMGRP(XMI))
IF XMI=""
QUIT
IF $LENGTH(XMI)>XML
SET XML=$LENGTH(XMI)
+4 SET XML=XML+3
SET XMLN=80\XML
+5 SET XMI=""
+6 FOR XMJ=0:1
SET XMI=$ORDER(XMGRP(XMI))
IF XMI=""
QUIT
Begin DoDot:1
+7 IF '(XMJ#XMLN)
WRITE !
WRITE ?(XMJ#XMLN*XML),XMI
End DoDot:1
+8 QUIT
ENUSER(XMMBR,XMABORT,XMUSER) ;
+1 NEW XMX,XMDONE
+2 WRITE !
+3 SET XMDONE=0
+4 FOR
Begin DoDot:1
+5 NEW XMDEL
+6 ; Another user: / Add user:
WRITE !,$$EZBLD^DIALOG($SELECT($DATA(XMMBR):38221,1:38220))
+7 IF $GET(XMUSER)'=""
Begin DoDot:2
+8 SET XMX=XMUSER
+9 KILL XMUSER
+10 WRITE XMX
End DoDot:2
+11 IF '$TEST
Begin DoDot:2
+12 READ XMX:DTIME
IF '$TEST
SET XMX=U
IF XMX[U
SET XMABORT=1
QUIT
+13 IF XMX=""
Begin DoDot:3
+14 IF $DATA(XMMBR)
SET XMDONE=1
QUIT
+15 ; You must select a user, or enter ^ to exit.
WRITE $CHAR(7)," ??",!,$$EZBLD^DIALOG(38222)
End DoDot:3
QUIT
+16 IF XMX?1."?"
DO HELPUSR(XMX)
IF XMX'="?"
SET XMX=""
QUIT
+17 IF $EXTRACT(XMX)="-"
SET XMDEL=1
SET XMX=$EXTRACT(XMX,2,99)
IF XMX=""
WRITE " ??",$CHAR(7)
End DoDot:2
IF XMX=""
QUIT
+18 NEW DIC,D,X,Y,DLAYGO,XMNAME
+19 SET X=$$UP^XLFSTR(XMX)
+20 ; User must have an access code & mailbox
SET DIC("S")="I $L($P(^(0),U,3)),$D(^XMB(3.7,+Y,2))"
+21 SET DIC("W")="I Y'=DUZ D USERINFO^XMXADDR1(Y)"
+22 SET DIC="^VA(200,"
+23 ; 'N' means if user enters a DUZ, ask "OK?"
SET DIC(0)="FEMN"
+24 ; name^alias^initial^nickname
SET D="B^BB^C^D"
+25 DO MIX^DIC1
IF $DATA(DTOUT)!$DATA(DUOUT)
SET XMABORT=1
QUIT
+26 IF Y<0
WRITE " ??",$CHAR(7)
QUIT
+27 ; $P(Y,U,2)
SET XMNAME=$$NAME^XMXUTIL(+Y)
+28 IF '$GET(XMDEL)
SET XMMBR(XMNAME)=+Y
QUIT
+29 ; ?? Not on current list.
IF '$DATA(XMMBR(XMNAME))
WRITE !,$CHAR(7),$$EZBLD^DIALOG(38214)
QUIT
+30 KILL XMMBR(XMNAME)
+31 ; Deleted from current list.
WRITE !,$$EZBLD^DIALOG(38215)
End DoDot:1
IF XMDONE!XMABORT
QUIT
+32 QUIT
HELPUSR(XMX) ;
+1 IF XMX="?"
Begin DoDot:1
+2 NEW XMTEXT
+3 DO BLD^DIALOG(38223,"","","XMTEXT","F")
+4 DO MSG^DIALOG("WH","","","","XMTEXT")
+5 ;Enter the name of the user you wish to add to the group(s).
+6 ;Precede any user name with '-' to remove it.
+7 ;You'll only be able to select users with mailboxes and access codes.
+8 ;Enter ?? for a list of users you've already selected,
+9 ;and for user help.
End DoDot:1
QUIT
+10 ;You haven't selected any users yet.
IF '$DATA(XMMBR)
WRITE !,$$EZBLD^DIALOG(38226)
+11 IF '$TEST
DO SHOWUSR
+12 NEW DIR,X,Y,DIRUT,DTOUT,DIRUT
+13 ; Want user help
SET DIR("A")=$$EZBLD^DIALOG(38224)
+14 SET DIR(0)="Y"
+15 ; NO
SET DIR("B")=$$EZBLD^DIALOG(39053)
+16 DO ^DIR
IF 'Y
QUIT
+17 DO HELP^XMHIU
+18 QUIT
SHOWUSR ;
+1 NEW XMI,XMJ,XML,XMLN
+2 ; You've selected the following users:
WRITE !!,$$EZBLD^DIALOG(38225)
+3 SET XML=0
SET XMI=""
FOR
SET XMI=$ORDER(XMMBR(XMI))
IF XMI=""
QUIT
IF $LENGTH(XMI)>XML
SET XML=$LENGTH(XMI)
+4 SET XML=XML+3
SET XMLN=80\XML
+5 SET XMI=""
+6 FOR XMJ=0:1
SET XMI=$ORDER(XMMBR(XMI))
IF XMI=""
QUIT
Begin DoDot:1
+7 IF '(XMJ#XMLN)
WRITE !
WRITE ?(XMJ#XMLN*XML),XMI
End DoDot:1
+8 QUIT
ENCONF(XMGRP,XMMBR,XMABORT) ;
+1 DO SHOWGRP
+2 DO SHOWUSR
+3 WRITE !
+4 NEW DIR,X,Y
+5 ; You are adding users to mail groups. Do you wish to proceed
DO BLD^DIALOG(38230,"","","DIR(""A"")")
+6 SET DIR(0)="Y"
+7 ; yes
SET DIR("B")=$$EZBLD^DIALOG(39054)
+8 DO ^DIR
IF 'Y
SET XMABORT=1
+9 QUIT
ENFWD(XMDUZ,XMINSTR,XMABORT) ;
+1 WRITE !
+2 NEW DIR,X,Y
+3 DO BLD^DIALOG(38231,"","","DIR(""A"")")
+4 ;Do you wish to forward past mail group messages
+5 ;to the user(s) you just added to the mail group(s)
+6 DO BLD^DIALOG(38232,"","","DIR(""?"")")
+7 ;Answer YES to forward past mail group messages.
+8 ;You will be asked for a time frame to search,
+9 ;and then MailMan will create a task to find and forward
+10 ;existing mail group messages.
+11 SET DIR(0)="Y"
+12 ; no
SET DIR("B")=$$EZBLD^DIALOG(39053)
+13 DO ^DIR
IF $DATA(DIRUT)!'Y
SET XMABORT=1
QUIT
+14 DO FWDDATES(XMDUZ,.XMINSTR,.XMABORT)
IF XMABORT
QUIT
+15 SET XMINSTR("FLAGS")="F"
+16 QUIT
FWDDATES(XMDUZ,XMINSTR,XMABORT) ;
+1 ; Message sent on or before date
+2 NEW DIR,Y,X,XMOLDEST,XMTEXT
+3 ;S XMOLDEST=$O(^XMB(3.9,"C",""))
+4 ; kill bogus nodes
FOR
SET XMOLDEST=$ORDER(^XMB(3.9,"C",""))
IF XMOLDEST?1N.N
QUIT
KILL ^XMB(3.9,"C",XMOLDEST)
+5 ; You will now choose a date range for the messages to be searched
+6 ; and forwarded. The oldest message is from XMOLDEST.
+7 WRITE !
+8 DO BLD^DIALOG(38023.5,$$FMTE^XLFDT(XMOLDEST,5),"","XMTEXT","F")
+9 DO MSG^DIALOG("WM","",IOM,"","XMTEXT")
+10 IF $PIECE(^XMB(3.7,XMDUZ,0),U,7)
Begin DoDot:1
+11 NEW XMCUT
+12 SET XMCUT=$PIECE(^XMB(3.7,XMDUZ,0),U,7)
+13 IF XMCUT<XMOLDEST
QUIT
+14 ; You may not access any message prior to |1| unless someone
+15 ; forwards it to you.
+16 DO BLD^DIALOG(37100,$$FMTE^XLFDT(XMCUT,5),"","XMTEXT","F")
+17 DO MSG^DIALOG("WE","",IOM,"","XMTEXT")
+18 SET XMOLDEST=XMCUT
End DoDot:1
+19 WRITE !
+20 SET DIR(0)="DO^"_XMOLDEST_":DT:EX"
+21 ; Message sent on or after
SET DIR("A")=$$EZBLD^DIALOG(34444)
+22 DO BLD^DIALOG(34444.1,"","","DIR(""?"")")
+23 ; Enter a date. It must include day, month, and year.
+24 SET DIR("B")=$$FMTE^XLFDT($$MAX^XLFMTH(XMOLDEST,$$FMADD^XLFDT(DT,-365)),5)
+25 DO ^DIR
IF $DATA(DIRUT)
SET XMABORT=1
QUIT
+26 SET XMINSTR("FDATE")=Y
+27 ; Message sent on or before date
+28 IF XMINSTR("FDATE")=DT
SET XMINSTR("TDATE")=DT
QUIT
+29 KILL DIR,Y,X
+30 SET DIR(0)="DO^"_XMINSTR("FDATE")_":DT:EX"
+31 ; Message sent on or before
SET DIR("A")=$$EZBLD^DIALOG(34445)
+32 DO BLD^DIALOG(34444.1,"","","DIR(""?"")")
+33 ; Enter a date. It must include day, month, and year.
+34 SET DIR("B")=$$FMTE^XLFDT(DT,5)
+35 DO ^DIR
IF $DATA(DIRUT)
SET XMABORT=1
QUIT
+36 SET XMINSTR("TDATE")=Y
+37 QUIT