1 | XMXADDR2 ;ISC-SF/GMB-XMXADDR (cont.) ;04/17/2002 13:42
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | BRODCAST(XMDUZ,XMADDR,XMSTRIKE,XMPREFIX,XMLATER,XMFULL) ;
|
---|
4 | I $D(XMRESTR("NET RECEIVE")) D SETERR^XMXADDR4(0,"",39035) Q ;Broadcast messages are not accepted from remote sites.
|
---|
5 | I DUZ'=.5,'$D(^XUSEC("XMSTAR",DUZ)),'$D(^XUSEC("XMSTAR LIMITED",DUZ)) D Q
|
---|
6 | . ;Only the Postmaster or XMSTAR key holders may broadcast messages.
|
---|
7 | . D SETERR^XMXADDR4($G(XMIA),"!",39036)
|
---|
8 | I $D(XMRESTR("NOBCAST")) D SETERR^XMXADDR4($G(XMIA),"P",39036.5) Q ; Messages with replies may not be broadcast.
|
---|
9 | N XMCAST
|
---|
10 | I DUZ=.5!$D(^XUSEC("XMSTAR",DUZ)) D Q:$D(XMERROR)
|
---|
11 | . I '$G(XMIA) S XMCAST=$S(XMADDR="*":"F",1:"L") Q
|
---|
12 | . I XMADDR'="*" S XMCAST="L" Q
|
---|
13 | . D TYPECAST(.XMCAST)
|
---|
14 | E S XMCAST="L"
|
---|
15 | I XMCAST="F" D FULLCAST(XMSTRIKE,XMPREFIX,XMLATER,.XMFULL) Q
|
---|
16 | ; Doing a limited broadcast...
|
---|
17 | N XMLTD
|
---|
18 | I XMADDR'="*" D
|
---|
19 | . D CHECKIT(XMADDR,.XMLTD)
|
---|
20 | E D
|
---|
21 | . D TYPELTD(.XMLTD) Q:$D(XMERROR)
|
---|
22 | . D PARMLTD(.XMLTD) Q:$D(XMERROR)
|
---|
23 | Q:$D(XMERROR)
|
---|
24 | ;S XMFULL="* (Limited Broadcast)"
|
---|
25 | S XMFULL="*;"_XMLTD("TYPE")_";"_XMLTD("PARM")
|
---|
26 | I $G(XMINSTR("ADDR FLAGS"))["X" Q
|
---|
27 | I XMSTRIKE Q:$D(^TMP("XMY0",$J,XMFULL,"L")) W:$G(XMIA) $$EZBLD^DIALOG(39037) ;Deleting limited broadcast recipients
|
---|
28 | I $G(XMIA),'XMSTRIKE,XMLATER="?" D QLATER^XMXADDR(XMFULL,.XMLATER) Q:$D(XMERROR)
|
---|
29 | I XMLATER,'$G(XMIA) Q
|
---|
30 | I 'XMSTRIKE,$G(XMIA) W !,$$EZBLD^DIALOG(39038),! ;Limited broadcast recipients:
|
---|
31 | N XMSCREEN
|
---|
32 | ; User must have access code, verify code, primary menu, and mailbox
|
---|
33 | S XMSCREEN="I $L($P(^(0),U,3)),$L($P($G(^(.1)),U,2)),$L($P($G(^(201)),U,1)),$D(^XMB(3.7,+Y,2))"
|
---|
34 | D FIND^DIC(200,"","@","QX",XMLTD("PARM IEN"),"",XMLTD("XREF"),XMSCREEN)
|
---|
35 | I '$D(^TMP("DILIST",$J)) D Q
|
---|
36 | . D SETERR^XMXADDR4($G(XMIA),"",39039) ;No matches. No recipients.
|
---|
37 | D SHOWLTD(XMDUZ,XMSTRIKE,XMPREFIX,XMLATER,$G(XMIA))
|
---|
38 | Q
|
---|
39 | TYPECAST(XMCAST) ;
|
---|
40 | N DIR,XMALL
|
---|
41 | S XMALL=$$EZBLD^DIALOG(39040) ;Broadcast to all local users
|
---|
42 | S DIR(0)="S^"_XMALL_";"_$$EZBLD^DIALOG(39041) ;Limited broadcast to local users
|
---|
43 | D BLD^DIALOG(39042,"","","DIR(""A"")") ;Broadcast type
|
---|
44 | S DIR("B")=$P(XMALL,":",2,9)
|
---|
45 | ;Enter B to broadcast to all local users.
|
---|
46 | ;Enter L to broadcast to a subset of local users. Limited broadcasts
|
---|
47 | ;are to local users who have something in common, such as belonging
|
---|
48 | ;to the same DIVISION, or holding the same PRIMARY MENU.
|
---|
49 | ;The LIMITED BROADCASTs from which you may choose are defined by
|
---|
50 | ;your IRM in the MAILMAN SITE PARAMETERS file.
|
---|
51 | D BLD^DIALOG(39043,"","","DIR(""?"")")
|
---|
52 | D ^DIR I $D(DIRUT) D SETERR^XMXADDR4(0,"",37002) Q ;up-arrow or time out.
|
---|
53 | S XMCAST=$S(Y=$P(XMALL,":",1):"F",1:"L")
|
---|
54 | Q
|
---|
55 | FULLCAST(XMSTRIKE,XMPREFIX,XMLATER,XMFULL) ;
|
---|
56 | S XMFULL=$$EZBLD^DIALOG(39006) ;* (Broadcast to all local users)
|
---|
57 | W:$G(XMIA) $E(XMFULL,2,99)
|
---|
58 | D SETEXP^XMXADDR(XMFULL,"",XMSTRIKE,XMPREFIX,XMLATER)
|
---|
59 | Q
|
---|
60 | TYPELTD(XMLTD) ;
|
---|
61 | N DIC,DA,X,Y,DIR,XMDEF
|
---|
62 | S DA(1)=1
|
---|
63 | S DIC="^XMB(1,1,5,"
|
---|
64 | S XMDEF=$P(^XMB(1,1,0),U,20) I XMDEF S XMDEF=$P($G(^XMB(1,1,5,XMDEF,0)),U,1) I XMDEF'="" S DIC("B")=XMDEF
|
---|
65 | S DIC(0)="AEQZ"
|
---|
66 | D ^DIC I Y=-1!$D(DTOUT)!$D(DUOUT) D SETERR^XMXADDR4(0,"",37002) Q ;up-arrow or time out.
|
---|
67 | S XMLTD("TYPE IEN")=+Y
|
---|
68 | S XMLTD("TYPE")=$P(Y(0),U,1)
|
---|
69 | S XMLTD("FILE")=$P(Y(0),U,2)
|
---|
70 | S XMLTD("XREF")=$P(Y(0),U,3)
|
---|
71 | D CHKFILE(.XMLTD) Q:$D(XMERROR)
|
---|
72 | D CHKXREF(.XMLTD) Q:$D(XMERROR)
|
---|
73 | Q
|
---|
74 | CHKFILE(XMLTD) ;
|
---|
75 | I XMLTD("FILE")="" D Q
|
---|
76 | . ;Limited Broadcast entry |1|, field |2| is null.
|
---|
77 | . D SETERR^XMXADDR4($G(XMIA),"!",39044,XMLTD("TYPE IEN"),1)
|
---|
78 | I '$$VFILE^DILFD(XMLTD("FILE")) D Q
|
---|
79 | . ;Limited Broadcast entry |1|, field |2|: '|3|' does not exist.
|
---|
80 | . D SETERR^XMXADDR4($G(XMIA),"!",39045,XMLTD("TYPE IEN"),1,XMLTD("FILE"))
|
---|
81 | Q
|
---|
82 | CHKXREF(XMLTD) ;
|
---|
83 | I XMLTD("XREF")="" D Q
|
---|
84 | . ;Limited Broadcast entry |1|, field |2| is null.
|
---|
85 | . D SETERR^XMXADDR4($G(XMIA),"!",39044,XMLTD("TYPE IEN"),2)
|
---|
86 | I '$D(^VA(200,XMLTD("XREF"))) D Q
|
---|
87 | . ;Limited Broadcast entry |1|, field |2|: '|3|' does not exist.
|
---|
88 | . D SETERR^XMXADDR4($G(XMIA),"!",39045,XMLTD("TYPE IEN"),2,XMLTD("XREF"))
|
---|
89 | Q
|
---|
90 | PARMLTD(XMLTD) ;
|
---|
91 | N DIC,DIR,X,Y
|
---|
92 | S DIC=$$ROOT^DILFD(XMLTD("FILE"))
|
---|
93 | S DIC(0)="AEQZ"
|
---|
94 | S DIC("S")="I $D(^VA(200,"""_XMLTD("XREF")_""",+Y))"
|
---|
95 | S DIC("A")=$$EZBLD^DIALOG(39046,XMLTD("TYPE")) ;Select Limited Broadcast |1|:
|
---|
96 | D ^DIC I Y=-1!$D(DTOUT)!$D(DUOUT) D SETERR^XMXADDR4(0,"",37002) Q ;up-arrow or time out.
|
---|
97 | S XMLTD("PARM IEN")=+Y
|
---|
98 | S XMLTD("PARM")=Y(0,0)
|
---|
99 | Q
|
---|
100 | CHECKIT(XMADDR,XMLTD) ;
|
---|
101 | S XMLTD("TYPE")=$P(XMADDR,";",2) I XMLTD("TYPE")="" D SETERR^XMXADDR4($G(XMIA),"!",39047) Q ;Limited Broadcast selection is null.
|
---|
102 | S XMLTD("PARM")=$P(XMADDR,";",3) I XMLTD("PARM")="" D SETERR^XMXADDR4($G(XMIA),"!",39047.5) Q ;Limited Broadcast selection value is null.
|
---|
103 | S XMLTD("TYPE IEN")=$$FIND1^DIC(4.32,",1,","OQ",XMLTD("TYPE"))
|
---|
104 | I 'XMLTD("TYPE IEN") D SETERR^XMXADDR4($G(XMIA),"!",$S(XMLTD("TYPE IEN")=0:39048,1:39049),XMLTD("TYPE")) Q ;Limited Broadcast selection not found: |1| / Limited Broadcast selection ambiguous: |1|
|
---|
105 | N XMREC
|
---|
106 | S XMREC=$G(^XMB(1,1,5,XMLTD("TYPE IEN"),0))
|
---|
107 | S XMLTD("TYPE")=$P(XMREC,U,1)
|
---|
108 | S XMLTD("FILE")=$P(XMREC,U,2)
|
---|
109 | S XMLTD("XREF")=$P(XMREC,U,3)
|
---|
110 | D CHKFILE(.XMLTD) Q:$D(XMERROR)
|
---|
111 | D CHKXREF(.XMLTD) Q:$D(XMERROR)
|
---|
112 | S XMLTD("PARM IEN")=$$FIND1^DIC(XMLTD("FILE"),"","OQ",XMLTD("PARM"))
|
---|
113 | I XMLTD("PARM IEN") S XMLTD("PARM")=$$GET1^DIQ(XMLTD("FILE"),XMLTD("PARM IEN")_",",.01) Q
|
---|
114 | N XMPARM S XMPARM(1)=XMLTD("PARM"),XMPARM(2)=XMLTD("FILE")
|
---|
115 | D SETERR^XMXADDR4($G(XMIA),"!",$S(XMLTD("PARM IEN")=0:39050,1:39051),.XMPARM) ;Limited Broadcast value '|1|' not found / Limited Broadcast value '|1|' ambiguous
|
---|
116 | Q
|
---|
117 | SHOWLTD(XMDUZ,XMSTRIKE,XMPREFIX,XMLATER,XMIA) ;
|
---|
118 | N XMI,XMGM,XMCNT
|
---|
119 | S (XMI,XMCNT)=0
|
---|
120 | F S XMI=$O(^TMP("DILIST",$J,2,XMI)) Q:'XMI S XMGM=^(XMI) D
|
---|
121 | . N XMERROR,XMFWDADD
|
---|
122 | . I 'XMLATER D INDIV^XMXADDR(XMDUZ,XMGM,XMSTRIKE,XMPREFIX,XMLATER)
|
---|
123 | . Q:'XMIA
|
---|
124 | . I XMCNT,XMCNT#16=0 D Q:'XMIA
|
---|
125 | . . N DIR,Y ;Do you want to see more Limited Broadcast recipients
|
---|
126 | . . S DIR("A")=$$EZBLD^DIALOG(39052)
|
---|
127 | . . S DIR(0)="Y",DIR("B")=$$EZBLD^DIALOG(39053) ;No
|
---|
128 | . . D ^DIR
|
---|
129 | . . S XMIA=+Y ; The '+' takes care of $D(DIRUT)
|
---|
130 | . S XMCNT=XMCNT+1
|
---|
131 | . W:XMCNT#4-1=0 !
|
---|
132 | . W ?XMCNT-1#4*20,$E($S(XMPREFIX="":"",1:XMPREFIX_":")_$$NAME^XMXUTIL(XMGM),1,19)
|
---|
133 | K ^TMP("DILIST",$J)
|
---|
134 | Q
|
---|
135 | INXFORM(X) ; Input transform for file 4.3, field 51 LIMITED BROADCAST DEFAULT
|
---|
136 | N DIC,DA,Y,DIR,XMERROR,XMLTD,XMIA
|
---|
137 | I '$D(ZTQUEUED) S XMIA=1
|
---|
138 | S DA(1)=1
|
---|
139 | S DIC="^XMB(1,1,5,"
|
---|
140 | S DIC(0)="EQZ"
|
---|
141 | D ^DIC I Y=-1!$D(DTOUT)!$D(DUOUT) K X Q
|
---|
142 | S XMLTD("TYPE IEN")=+Y
|
---|
143 | S XMLTD("TYPE")=$P(Y(0),U,1)
|
---|
144 | S XMLTD("FILE")=$P(Y(0),U,2)
|
---|
145 | S XMLTD("XREF")=$P(Y(0),U,3)
|
---|
146 | D CHKFILE(.XMLTD) I $D(XMERROR) K X Q
|
---|
147 | D CHKXREF(.XMLTD) I $D(XMERROR) K X Q
|
---|
148 | S X=XMLTD("TYPE IEN")
|
---|
149 | Q
|
---|
150 | EXHELP ; Executable help for file 4.3, field 51 LIMITED BROADCAST DEFAULT
|
---|
151 | N I
|
---|
152 | D EN^DDIOL($$EZBLD^DIALOG(38056)) ; Choose from:
|
---|
153 | S I=0
|
---|
154 | F S I=$O(^XMB(1,1,5,I)) Q:'I D EN^DDIOL($P(^(I,0),U,1))
|
---|
155 | Q
|
---|