source: FOIAVistA/trunk/r/MAILMAN-XM/XMB.m@ 1582

Last change on this file since 1582 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 3.9 KB
Line 
1XMB ;ISC-SF/GMB-Send Bulletin APIs ;04/17/2002 07:38
2 ;;8.0;MailMan;;Jun 28, 2002
3 ; Was (WASH ISC)/THM/RWF/CAP
4 ;
5 ; Entry points are (DBIA 10069):
6 ; ^XMB Create and deliver a bulletin in the background (task).
7 ; EN^XMB Create a bulletin in the foreground (now) and send it in
8 ; the background (task)
9 ; BULL^XMB Interactive create and send a bulletin
10 ;
11 ; The recipients of the bulletin include any entries in the XMY
12 ; array that the caller has defined and the members of mail group
13 ; that are included in the definition of the entry in the Bulletin
14 ; file (#3.6) at the time of delivery. There must be valid
15 ; recipients or the message will not be delivered.
16 ;
17 ; I/O Variables:
18 ; XMB (in) Bulletin name (an entry in File #3.6)
19 ; XMB(parameter#) (in, optional) Value to be stuffed into the bulletin
20 ; for each required parameter
21 ; eg. XMB(1)=data for parameter#1
22 ; XMTEXT (in, optional) Name of array containing
23 ; additional bulletin text
24 ; XMY (in, optional) Array of additional recipients of a
25 ; bulletin
26 ; XMDUZ (in, optional) Sender # or string saying who or what
27 ; sent the bulletin (default=DUZ)
28 ; XMDT (in, optional) Date/time to send bulletin (default=now)
29 ; XMYBLOB (in, optional) MIME array
30 ; XMZ (out) Message number (if successful)
31 ;
32 ; Entry ^XMB:
33 ; Needs: XMB
34 ; Accepts: XMDUZ,XMTEXT,XMY,XMDT,XMYBLOB
35 ; Returns: (XMB=-1 if bulletin does not exist in file 3.6)
36 ; Kills: XMTEXT,XMY
37 N XMINSTR,XMATTACH,XMTASK
38 K XMERR,^TMP("XMERR",$J)
39 I '$O(^XMB(3.6,"B",XMB,"")) S XMB=-1 Q
40 I '$G(DUZ) N DUZ D DUZ^XUP(.5)
41 I $G(XMDUZ)=""!($G(XMDUZ)=0) S XMDUZ=DUZ
42 I XMDUZ'?.N S %=XMDUZ N XMDUZ S XMDUZ=% K %
43 D:$D(XMYBLOB) SETBLOB(.XMYBLOB,.XMATTACH)
44 D:$D(XMDT) SETLATER(XMDT,.XMINSTR)
45 I XMDUZ'?.N D SETFROM^XMD(.XMDUZ,.XMINSTR) Q:$G(XMMG)["Error ="
46 D INITAPI^XMVVITAE
47 S:$D(XMTEXT) XMTEXT=$$CREF^DILF(XMTEXT)
48 S:$D(XMDF) XMINSTR("ADDR FLAGS")="R" ; Ignore addressee restrictions
49 S:$D(XMBTMP) XMINSTR("ADDR FLAGS")=$G(XMINSTR("ADDR FLAGS"))_"I" ; Don't initialize (kill) the ^TMP addressee global
50 D TASKBULL^XMXBULL(XMDUZ,XMB,.XMB,.XMTEXT,.XMY,.XMINSTR,.XMTASK,.XMATTACH)
51 K:$D(XMERR) XMERR,^TMP("XMERR",$J)
52 K XMTEXT,XMY
53 Q
54EN ;Interactive Bulletin Entry Point
55 ; Needs: XMB
56 ; Accepts: XMDUZ,XMTEXT,XMY,XMDT,XMYBLOB
57 ; Returns: XMZ,(XMB=-1 if bulletin does not exist in file 3.6)
58 ; Kills: XMB,XMTEXT,XMY
59 N XMBIEN,XMINSTR
60 K XMERR,^TMP("XMERR",$J)
61 S XMBIEN=$O(^XMB(3.6,"B",XMB,"")) I XMBIEN="" S XMB=-1 Q
62 I '$G(DUZ) N DUZ D DUZ^XUP(.5)
63 I $G(XMDUZ)=""!($G(XMDUZ)=0) S XMDUZ=DUZ
64 I XMDUZ'?.N S %=XMDUZ N XMDUZ S XMDUZ=% K %
65 D:$D(XMYBLOB) SETBLOB(.XMYBLOB,.XMATTACH)
66 I XMDUZ'?.N D SETFROM^XMD(.XMDUZ,.XMINSTR) Q:$G(XMMG)["Error ="
67 S:$D(XMTEXT) XMTEXT=$$CREF^DILF(XMTEXT)
68 S:$D(XMDF) XMINSTR("ADDR FLAGS")="R" ; Ignore addressee restrictions
69 S:$D(XMBTMP) XMINSTR("ADDR FLAGS")=$G(XMINSTR("ADDR FLAGS"))_"I" ; Don't initialize (kill) the ^TMP addressee global
70 D SEND^XMXBULL(XMDUZ,XMBIEN,.XMB,.XMTEXT,.XMY,.XMINSTR,.XMZ,.XMATTACH)
71 K:$D(XMERR) XMERR,^TMP("XMERR",$J)
72 K XMB,XMTEXT,XMY
73 Q
74SETBLOB(XMYBLOB,XMATTACH) ;
75 N %X,%Y
76 S %X="XMYBLOB(",%Y="XMATTACH(""IMAGE""," D %XY^%RCR
77 Q
78SETLATER(XMDT,XMINSTR) ;
79 S XMINSTR("LATER")=$$XMDATE^XMXPARM("XMDT",XMDT)
80 I $D(XMERR) K XMINSTR("LATER"),XMERR,^TMP("XMERR",$J)
81 Q
82BULL ; Manually post a bulletin
83 D BULLETIN^XMJMBULL
84 Q
85ZTSK ; Entry point for TaskMan to transmit messages to a site.
86 ; Needed for transition from v7.1 to v8.0. Once site has transitioned,
87 ; this entry point can be deleted.
88 S ZTREQ="@"
89 S XMINST=XMB("XMSCR")
90 Q:$$OBE^XMTDR(XMINST)
91 S XMTREC=$G(^XMBS(4.2999,XMINST,4))
92 S ^XMBS(4.2999,XMINST,4)=$P(XMTREC,U,1,2)_U_XMB("SCRIPT",0)_U_XMB("TRIES")_U_U_XMB("ITERATIONS")_U_XMB("FIRST SCRIPT")_U_$P(XMB("SCRIPT"),U,6)
93 S ^XMBS(4.2999,XMINST,5)=XMB("SCRIPT")
94 K XMB,XMTREC
95 G TASK^XMTDR
96 Q
Note: See TracBrowser for help on using the repository browser.