1 | CWMAILA ;INDPLS/PLS- DELPHI VISTA MAIL SERVER CONT'D ;21-Jun-2005 06:34;CLC
|
---|
2 | ;;2.3;CWMAIL;;Jul 19, 2005
|
---|
3 | ;MODIFIED FOR XM*7.1*50
|
---|
4 | Q ;ROUTINE CAN'T BE CALLED DIRECTLY
|
---|
5 | %READ(CWDATA,CWINPUT) ;
|
---|
6 | ;CWINPUT FORMAT - DELIMITER ';'
|
---|
7 | ; 1st - IEN of message
|
---|
8 | ; 4th - New message (value >0 indicates new messages only)
|
---|
9 | K CWDATA
|
---|
10 | N CWMSGN,CWNMFLG
|
---|
11 | S CWMSGN=$P(CWINPUT,";")
|
---|
12 | S CWNMFLG=+$P(CWINPUT,";",4)
|
---|
13 | D:CWMSGN PROCMS^CWMAIL0(.CWDATA,CWMSGN,CWNMFLG)
|
---|
14 | Q
|
---|
15 | %LIST(CWDATA,CWINPUT) ;
|
---|
16 | ;CWINPUT - MAIL TYPE OR MAILBOX NUMBER - DELIMITER ';'
|
---|
17 | ; 2nd - IEN of MailBasket or non-numeric for new mail
|
---|
18 | ;CWARY format: piece value
|
---|
19 | ; 1 message basket
|
---|
20 | ; 2 message ien
|
---|
21 | ; 3 message subject
|
---|
22 | ; 4 message date sent
|
---|
23 | ; 5 not used
|
---|
24 | ; 6 message type
|
---|
25 | ; 7 confirmation flag
|
---|
26 | ; 8 closed flag
|
---|
27 | ; 9 info flag
|
---|
28 | ; 10 confidential flag
|
---|
29 | ; 11 sender ien
|
---|
30 | ; 12 broadcast flag
|
---|
31 | ; 13 sender name
|
---|
32 | ; 14 total # of recipients
|
---|
33 | ; 15 total # of replies
|
---|
34 | ; 16 priority flag
|
---|
35 | ; 17 last response read
|
---|
36 | ; 18 message basket sequence number
|
---|
37 | ; 19 new message flag
|
---|
38 | ; 20 answer message flag
|
---|
39 | ;
|
---|
40 | S CWDATA(1)="0^AN ERROR HAS OCCURRED"
|
---|
41 | N CWVAL,CWMSG,CWMSGSUB,CWMSGDT,CWDCNT,CWMAIB,CWMSGBX,CWMSGLP
|
---|
42 | N CWARY
|
---|
43 | S CWVAL=$P(CWINPUT,";",2)
|
---|
44 | S CWMSG=0,CWDCNT=2,CWMSGLP=0
|
---|
45 | S CWMAIB=CWVAL
|
---|
46 | ;CALL API TO RETRIEVE MESSAGES
|
---|
47 | I CWVAL=+CWVAL D
|
---|
48 | . D LISTMSGS^XMXAPIB(XMDUZ,+CWMAIB,"BSKT;SUBJ;DATE;SEQN;NEW","",3500) ; data put in ^TMP("XMLIST",$J
|
---|
49 | . Q:'+$P($G(^TMP("XMLIST",$J,0)),U,1) ;NO DATA FOUND
|
---|
50 | . D BLDLST^CWMAILF(.CWDATA,$NA(^TMP("XMLIST",$J)),.CWDCNT)
|
---|
51 | E D ;PROCESS NEW MESSAGE REQUEST
|
---|
52 | . D LISTMSGS^XMXAPIB(XMDUZ,"*","BSKT;SUBJ;DATE;NEW","N",3500) ;SEQN;NEW","N")
|
---|
53 | . Q:'+$P($G(^TMP("XMLIST",$J,0)),U,1) ;NO DATA FOUND
|
---|
54 | . D BLDLST^CWMAILF(.CWDATA,$NA(^TMP("XMLIST",$J)),.CWDCNT)
|
---|
55 | I $O(CWDATA(1)) S CWDATA(1)="1^^DATA HAS BEEN FOUND"
|
---|
56 | E S CWDATA(1)=$S(+CWVAL:"1^^No Messages Found in Specified Mail Box",1:"1^^"_"You have no NEW Messages")
|
---|
57 | S $P(CWDATA(1),U,2)=CWDCNT-2
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | %DELETE(CWDATA,CWINPUT) ;
|
---|
61 | ;CWINPUT - DELIMITER ';'
|
---|
62 | ; 1st - IEN of message
|
---|
63 | ; 2nd - IEN of mail basket
|
---|
64 | N XMZ,XMDUZ,XMK,XMKZA,XMMSG
|
---|
65 | S XMZ=$P(CWINPUT,";")
|
---|
66 | S XMDUZ=DUZ
|
---|
67 | S XMK=$P(CWINPUT,";",2)
|
---|
68 | S XMKZA(XMZ)=""
|
---|
69 | D DELMSG^XMXAPI(XMDUZ,"",.XMKZA,.XMMSG)
|
---|
70 | I +$G(XMMSG) D
|
---|
71 | . S CWDATA(1)="1^0^Message Deleted"
|
---|
72 | E S CWDATA(1)="0^0^Unable to delete message"
|
---|
73 | Q
|
---|
74 | %SAVE(CWDATA,CWINPUT) ;
|
---|
75 | ;CWINPUT - DELIMITER ';'
|
---|
76 | ; 1st - IEN of message
|
---|
77 | ; 2nd - IEN of mail basket
|
---|
78 | ; 3rd - IEN of new mail basket
|
---|
79 | N XMZ,XMK,XMKM,XMMSG,XMKZA
|
---|
80 | S XMZ=$P(CWINPUT,";"),XMK=$P(CWINPUT,";",2)
|
---|
81 | S XMKZA(XMZ)=""
|
---|
82 | S XMKM=$P(CWINPUT,";",3)
|
---|
83 | D MOVEMSG^XMXAPI(XMDUZ,"",.XMKZA,XMKM,.XMMSG)
|
---|
84 | S CWDATA(1)=+$G(XMMSG) ;Return Status
|
---|
85 | Q
|
---|
86 | %MAKNEW(CWDATA,CWINPUT) ;
|
---|
87 | ;CWINPUT - DELIMITER ';'
|
---|
88 | ; 1st - IEN of message
|
---|
89 | ; 2nd - IEN of mail basket
|
---|
90 | N XMZ,XMK,XMKZA,XMMSG
|
---|
91 | S CWDATA(1)=0
|
---|
92 | S XMZ=$P(CWINPUT,";")
|
---|
93 | S XMK=+$P(CWINPUT,";",2)
|
---|
94 | D MAKENEW^XMXUTIL(XMDUZ,XMK,XMZ,1)
|
---|
95 | I XMK<.6 D ;MUST MOVE MESSAGE FROM WASTE BASKET TO IN BASKET
|
---|
96 | . S XMKZA(XMZ)=""
|
---|
97 | . D MOVEMSG^XMXAPI(XMDUZ,"",.XMKZA,1,.XMMSG)
|
---|
98 | S CWDATA(1)="1^1" ;FORCE TO SUCCESS
|
---|
99 | Q
|
---|
100 | %NEWBSK(CWDATA,CWINPUT) ;CREATE A NEW MAIL BASKET
|
---|
101 | ;CWINPUT - DELIMITER ';'
|
---|
102 | ; 1st Piece - New basket name
|
---|
103 | N CWBASKET,CWBSKN,CWMSG
|
---|
104 | S CWBASKET=$$UP^XLFSTR($P(CWINPUT,";")) ;FORCE TO UPPER CASE
|
---|
105 | D CRE8BSKT^XMXAPIB(XMDUZ,CWBASKET,.CWBSKN)
|
---|
106 | I +$G(CWBSKN)>0 D
|
---|
107 | . D QBSKT^XMXAPIB(XMDUZ,+CWBSKN,.CWMSG)
|
---|
108 | . S CWDATA(1)="1"_U_CWBSKN_U_$P($G(CWMSG),U,2)
|
---|
109 | E S CWDATA(1)=0_U_"Error-unable to create basket."
|
---|
110 | Q
|
---|
111 | %RESEQ(CWDATA,CWINPUT) ;RESEQUENCE A VISTA MAIL BASKET
|
---|
112 | ;CWINPUT - DELIMITER ';'
|
---|
113 | ; 2nd - IEN of mail basket
|
---|
114 | N CWBASKET,CWDATT
|
---|
115 | S CWBASKET=$P(CWINPUT,";",2)
|
---|
116 | G:'CWBASKET RESEQE
|
---|
117 | D RSEQBSKT^XMXAPIB(XMDUZ,CWBASKET,.CWDATT)
|
---|
118 | I $L(CWDATT) S CWDATA(1)="1^1"
|
---|
119 | E S CWDATA(1)="0^0^Error-unable to resequence messages."
|
---|
120 | RESEQE Q
|
---|
121 | ;
|
---|
122 | %MSGSRC(CWDATA,CWINPUT,CWTEXT) ;MESSAGE SEARCH
|
---|
123 | ;INPUT - CWINPUT AND CWTEXT ARRAY HOLD CRITERIA
|
---|
124 | ;OUTPUT - REFER TO %LIST
|
---|
125 | S CWDATA(1)="0^AN ERROR HAS OCCURRED"
|
---|
126 | N CWVAL,CWMSG,CWMSGSUB,CWMSGDT,CWDCNT,CWMAIB,CWMSGBX,CWMSGLP
|
---|
127 | N CWARY,CWFLAGS
|
---|
128 | S CWFLAGS=$P(CWINPUT,";") ;Processing Flags
|
---|
129 | S CWMAIB=$P(CWINPUT,";",2) ;MailBasket
|
---|
130 | S CWMSG=0,CWDCNT=2,CWMSGLP=0
|
---|
131 | S CWMAIB=$S($L(CWMAIB):CWMAIB,1:"*")
|
---|
132 | ;Convert External dates to FM Dates
|
---|
133 | I $G(CWTEXT("FDATE")) D
|
---|
134 | . S CWTEXT("FDATE")=$$CONVERT^XMXUTIL1(CWTEXT("FDATE"))
|
---|
135 | I $G(CWTEXT("TDATE")) D
|
---|
136 | . S CWTEXT("TDATE")=$$CONVERT^XMXUTIL1(CWTEXT("TDATE"))
|
---|
137 | ;CALL API TO RETRIEVE MESSAGES
|
---|
138 | D LISTMSGS^XMXAPIB(XMDUZ,CWMAIB,"BSKT;SUBJ;DATE;NEW",CWFLAGS,,,.CWTEXT) ; data put in ^TMP("XMLIST",$J
|
---|
139 | I +$P($G(^TMP("XMLIST",$J,0)),U,1) D ;
|
---|
140 | . D BLDLST^CWMAILF(.CWDATA,$NA(^TMP("XMLIST",$J)),.CWDCNT)
|
---|
141 | I $O(CWDATA(1)) S CWDATA(1)="1^^DATA HAS BEEN FOUND"
|
---|
142 | E S CWDATA(1)="1^^No Messages Found In Search"
|
---|
143 | S $P(CWDATA(1),U,2)=CWDCNT-2
|
---|
144 | MSGSRCE Q
|
---|