1 | XMJMR ;ISC-SF/GMB-Interactive Reply ;04/24/2002 10:28
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; Replaces REPLY^XMA11,^XMA2,^XMA20,^XMAH1 (ISC-WASH/CAP/THM)
|
---|
4 | REPLY(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMINSTR,XMPTR,XMRESPSO,XMINCL,XMRESP) ;
|
---|
5 | N XMABORT,XMZ,XMID,XMWHICH,XMZI
|
---|
6 | S XMABORT=0
|
---|
7 | D INIT^XMJMR1(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,.XMINSTR,XMINCL,.XMZI,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
8 | D CRE8XMZ^XMXSEND("R"_XMZO,.XMZ,1) I XMZ<1 S XMABORT=1 Q
|
---|
9 | S XMID=$S(XMDUZ=.6:DUZ,1:XMDUZ)
|
---|
10 | D EDITON^XMJMS(XMID,XMZ,XMZO)
|
---|
11 | D PROCESS(XMID,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,.XMINSTR,XMPTR,XMRESPSO,.XMRESP,.XMZI,.XMWHICH,.XMABORT)
|
---|
12 | I XMABORT=DTIME D HALT^XMJMS($$EZBLD^DIALOG(34220)) ; replying to
|
---|
13 | D EDITOFF^XMJMS(XMID)
|
---|
14 | D:XMABORT KILLMSG^XMXUTIL(XMZ)
|
---|
15 | Q
|
---|
16 | PROCESS(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,XMINSTR,XMPTR,XMRESPSO,XMRESP,XMZI,XMWHICH,XMABORT) ;
|
---|
17 | N XMRESTR
|
---|
18 | S XMRESTR("REPLYTO")=XMZO
|
---|
19 | D:$D(XMWHICH) COPYTEXT^XMJMR1(XMZI,XMZ,XMWHICH,(XMZI'=XMZO))
|
---|
20 | D BODY^XMJMS(XMDUZ,XMZ,XMZOSUBJ,.XMRESTR,.XMABORT) Q:XMABORT
|
---|
21 | D REPLYMSG^XMJMRO(XMDUZ,XMK,XMKN,XMZO,XMZ,XMZOSUBJ,.XMRESTR,XMPTR,XMRESPSO,.XMRESP,.XMABORT) Q:XMABORT
|
---|
22 | I XMZOFROM["@",$$UP^XLFSTR(XMZOFROM)'["POSTMASTER" D REMOTE(XMDUZ,XMZO,XMZOSUBJ,XMZ,.XMINSTR)
|
---|
23 | Q
|
---|
24 | REMOTE(XMDUZ,XMZO,XMZOSUBJ,XMZ,XMINSTR) ;
|
---|
25 | N DIR,Y,XMSUBJ,XMTO,XMABORT
|
---|
26 | S XMABORT=0
|
---|
27 | S DIR("A")=$$EZBLD^DIALOG(34206) ; Do you wish to send this reply across the network?
|
---|
28 | S DIR(0)="Y",DIR("B")=$$EZBLD^DIALOG(39053) ; No
|
---|
29 | D BLD^DIALOG(34207,"","","DIR(""?"")") ; Enter YES if you wish your response ...
|
---|
30 | S DIR("??")="^D RHELP^XMJMR"
|
---|
31 | D ^DIR Q:'Y!$D(DIRUT)
|
---|
32 | S XMRE=$$EZBLD^DIALOG(37006) ; Re:
|
---|
33 | S XMSUBJ=$S($$UP^XLFSTR($E(XMZOSUBJ,1,$L(XMRE)))=$$UP^XLFSTR(XMRE):XMZOSUBJ,1:$E(XMRE_XMZOSUBJ,1,65))
|
---|
34 | D SUBJ^XMJMS(.XMSUBJ,.XMABORT) Q:XMABORT
|
---|
35 | D REPLYTO(XMZO,.XMTO,.XMABORT) Q:XMABORT
|
---|
36 | W !,$$EZBLD^DIALOG(34211,XMTO) ; Addressing the reply to: |1|
|
---|
37 | D INIT^XMXADDR
|
---|
38 | S XMINSTR("EXACT")=1 ; Match on exact domain name
|
---|
39 | D ADDR^XMXADDR(XMDUZ,XMTO,.XMINSTR)
|
---|
40 | K XMINSTR("EXACT")
|
---|
41 | ;S:XMTO[".VA.GOV" XMTO=$TR($P(XMTO,"@"),"._+",", .")_"@"_$P(XMTO,"@",2)
|
---|
42 | I $$GOTADDR^XMXADDR D
|
---|
43 | . W !,$$EZBLD^DIALOG(34212) ; Sending network reply...
|
---|
44 | . D NETREPLY^XMXREPLY(XMDUZ,XMZO,XMZ,XMSUBJ,.XMINSTR)
|
---|
45 | . W $$EZBLD^DIALOG(34213) ; Sent
|
---|
46 | D CLEANUP^XMXADDR
|
---|
47 | Q
|
---|
48 | RHELP ;
|
---|
49 | N XMTEXT
|
---|
50 | D BLD^DIALOG(34208,"","","XMTEXT","F") ; A network response will go to all message ... (explains network reply)
|
---|
51 | D MSG^DIALOG("WH","","","","XMTEXT")
|
---|
52 | Q
|
---|
53 | REPLYTO(XMZ,XMFROM,XMABORT) ;
|
---|
54 | N XMREPLTO,XMF,XMR
|
---|
55 | D REPLYTO^XMXREPLY(XMZ,.XMFROM,.XMREPLTO)
|
---|
56 | S XMF=XMFROM
|
---|
57 | S XMFROM=$$REMADDR^XMXADDR3(XMFROM)
|
---|
58 | Q:$G(XMREPLTO)=""
|
---|
59 | S XMR=XMREPLTO
|
---|
60 | S XMREPLTO=$$REMADDR^XMXADDR3(XMREPLTO)
|
---|
61 | Q:$$UP^XLFSTR(XMREPLTO)=$$UP^XLFSTR(XMFROM)
|
---|
62 | N DIR,Y
|
---|
63 | S DIR(0)="S^"
|
---|
64 | S DIR(0)=DIR(0)_"F:'FROM' "_XMF
|
---|
65 | S DIR(0)=DIR(0)_";R:'REPLY-TO' "_XMR
|
---|
66 | S DIR("B")="R"
|
---|
67 | D BLD^DIALOG(34214,"","","DIR(""A"")") ; This message has a 'reply-to' address ... (use which address?)
|
---|
68 | D BLD^DIALOG(34215,"","","DIR(""?"")") ; Generally, we recommend that you use ...
|
---|
69 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
70 | S:Y="R" XMFROM=XMREPLTO
|
---|
71 | Q
|
---|
72 | RECOVER(XMDUZ,XMZ,XMZO) ;
|
---|
73 | I XMDUZ'=DUZ,$$ZCONFID^XMXSEC(XMZO) D Q
|
---|
74 | . ; If user is surrogate & msg is confidential, delete unsent reply.
|
---|
75 | . D EDITOFF^XMJMS(XMDUZ)
|
---|
76 | . D KILLMSG^XMXUTIL(XMZ)
|
---|
77 | N XMSUBJ,DIR,Y,XMTEXT
|
---|
78 | S XMSUBJ=$P(^XMB(3.9,XMZO,0),U,1)
|
---|
79 | S:XMSUBJ["~U~" XMSUBJ=$$DECODEUP^XMXUTIL1(XMSUBJ)
|
---|
80 | W $C(7),!
|
---|
81 | ;You have / |1| has an unsent response in your buffer.
|
---|
82 | D BLD^DIALOG($S(XMDUZ=DUZ:34222,1:34222.1),XMV("NAME"),"","XMTEXT","F")
|
---|
83 | ;Subj: _XMSUBJ
|
---|
84 | D BLD^DIALOG(34536,XMSUBJ,"","XMTEXT","FS")
|
---|
85 | D MSG^DIALOG("WM","",79,"","XMTEXT")
|
---|
86 | W !
|
---|
87 | ;You may continue to reply, or delete the remaining text.
|
---|
88 | ;Shall we delete the unsent response?
|
---|
89 | D BLD^DIALOG(34222.3,"","","DIR(""A"")")
|
---|
90 | S DIR(0)="Y"
|
---|
91 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No
|
---|
92 | D BLD^DIALOG(34223,"","","DIR(""?"")") ; Enter YES to delete the unsent response...
|
---|
93 | D ^DIR
|
---|
94 | I $D(DTOUT) D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering
|
---|
95 | I Y=1!$D(DUOUT) D Q
|
---|
96 | . D EDITOFF^XMJMS(XMDUZ)
|
---|
97 | . D KILLMSG^XMXUTIL(XMZ)
|
---|
98 | N XMK,XMKN,XMZOSUBJ,XMZOFROM,XMINSTR,XMABORT,XMSECURE,XMPAKMAN,XMWHICH,XMPTR,XMRESPSO,XMRESP
|
---|
99 | S XMABORT=0
|
---|
100 | D RECINIT(XMDUZ,XMZO,.XMK,.XMKN,.XMZOSUBJ,.XMZOFROM,.XMINSTR,.XMPTR,.XMRESPSO,.XMRESP)
|
---|
101 | D WAIT^XMXUTIL
|
---|
102 | D INIT^XMJMR1(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,.XMINSTR,0,"",.XMWHICH,.XMABORT) Q:XMV("NOSEND")
|
---|
103 | I XMABORT D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering
|
---|
104 | D PROCESS(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,.XMINSTR,XMPTR,XMRESPSO,.XMRESP,"",.XMWHICH,.XMABORT)
|
---|
105 | I XMABORT=DTIME D HALT^XMJMS($$EZBLD^DIALOG(34220)) ; replying to
|
---|
106 | D EDITOFF^XMJMS(XMDUZ)
|
---|
107 | D:XMABORT KILLMSG^XMXUTIL(XMZ)
|
---|
108 | Q
|
---|
109 | RECINIT(XMDUZ,XMZO,XMK,XMKN,XMZOSUBJ,XMZOFROM,XMINSTR,XMPTR,XMRESPSO,XMRESP) ;
|
---|
110 | N XMSECBAD,XMIM,XMIU
|
---|
111 | S XMK=+$O(^XMB(3.7,"M",XMZO,XMDUZ,""))
|
---|
112 | S XMKN=$P($G(^XMB(3.7,XMDUZ,2,XMK,0)),U,1)
|
---|
113 | D DISPMSG^XMJMP(XMDUZ,XMK,XMKN,XMZO,.XMSECBAD,1)
|
---|
114 | I $G(XMSECBAD) D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering
|
---|
115 | D INMSG^XMXUTIL2(XMDUZ,0,XMZO,"","I",.XMIM,.XMINSTR,.XMIU)
|
---|
116 | S XMZOSUBJ=XMIM("SUBJ")
|
---|
117 | S XMZOFROM=XMIM("FROM")
|
---|
118 | S XMRESPSO=XMIM("RESPS")
|
---|
119 | S XMPTR=XMIU("IEN")
|
---|
120 | S XMRESP=XMIU("RESP")
|
---|
121 | Q
|
---|