| 1 | XMCB ;ISC-SF/GMB- Batch Message Transmission ;08/28/2003  10:11 | 
|---|
| 2 | ;;8.0;MailMan;**22**;Jun 28, 2002 | 
|---|
| 3 | ; Was (WASH ISC)/THM | 
|---|
| 4 | ; | 
|---|
| 5 | ; Entry points used by MailMan options (not covered by DBIA): | 
|---|
| 6 | ; TAPEOUT  XMS-SEQ-TRANSMIT     (was BAT^XMS) | 
|---|
| 7 | ; TAPEIN   XMR-SEQ-RECEIVE      (was BAT^XMR) | 
|---|
| 8 | ; GLBOUT   XMR-UCI-SEND         (was TASKER^XMS) | 
|---|
| 9 | ; GLBIN    XMR-UCI-RCV          (was TASKER^XMR) | 
|---|
| 10 | Q | 
|---|
| 11 | TAPEOUT ; Write messages to tape. | 
|---|
| 12 | ; (Transmit them to another site via tape.) | 
|---|
| 13 | N XMC,XMCHAN,XMINST,XMSITE,XMABORT,ER | 
|---|
| 14 | S XMABORT=0,XMCHAN="TAPE",ER=0,XMC("BATCH")=1 | 
|---|
| 15 | D ASKINST^XMCXU(.XMINST,.XMSITE,.XMABORT,"M") Q:XMABORT | 
|---|
| 16 | D OPEN^XML Q:$G(ER)!$G(POP) | 
|---|
| 17 | D OUTDO | 
|---|
| 18 | D KL^XMC | 
|---|
| 19 | Q | 
|---|
| 20 | TAPEIN ; Read messages from tape. | 
|---|
| 21 | ; (Receive them from another site via tape.) | 
|---|
| 22 | N XM,XMC,XMCHAN,ER | 
|---|
| 23 | S ER=0,(XMC("BATCH"),XMC("TURN"))=1,XMCHAN="T-IN" | 
|---|
| 24 | I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D R^XMCTRAP" | 
|---|
| 25 | E  S X="R^XMCTRAP",@^%ZOSF("TRAP") | 
|---|
| 26 | D ENT^XMR | 
|---|
| 27 | U IO(0) D ^%ZISC | 
|---|
| 28 | W:'$D(ZTQUEUED) !,$$EZBLD^DIALOG(42257,+$G(XMC("R"))) ;Messages received: |1| | 
|---|
| 29 | G KL1^XMC | 
|---|
| 30 | Q | 
|---|
| 31 | GLBOUT ; Write messages to a global. | 
|---|
| 32 | ; (Transmit them to another UCI via the global.) | 
|---|
| 33 | W $C(7),!! | 
|---|
| 34 | I '$D(^%ZISL(4.281,0)) W !!,$$EZBLD^DIALOG(42250) Q  ;File 4.281 is not set up properly. | 
|---|
| 35 | N XMTEXT | 
|---|
| 36 | D BLD^DIALOG(42251,"","","XMTEXT","F") | 
|---|
| 37 | D MSG^DIALOG("WM","","","","XMTEXT") | 
|---|
| 38 | ;  ******* I M P O R T A N T *******" | 
|---|
| 39 | ;This option transmits messages from one UCI to another via ^%ZISL(4.281. | 
|---|
| 40 | ;Each UCI must be running MailMan, and file 4.281 must be translated and | 
|---|
| 41 | ;accessible from both UCIs.  In the two-step process, the messages are | 
|---|
| 42 | ;written to the global from one UCI, and read from it in the other. | 
|---|
| 43 | ; | 
|---|
| 44 | ;Invoke this option on the sending UCI, and select the domain whose | 
|---|
| 45 | ;messages are to be transmitted.  (The domain name must be the exact | 
|---|
| 46 | ;name of the domain of the receiving UCI - no synonyms.)  The messages | 
|---|
| 47 | ;are written to file 4.281 and deleted from the transmit queue. | 
|---|
| 48 | ; | 
|---|
| 49 | ;Log on to the receiving UCI and invoke the receiver.  It will read all | 
|---|
| 50 | ;messages in file 4.281 which were sent to it (it can't read any | 
|---|
| 51 | ;messages sent to any other domain), and queue them to be delivered. | 
|---|
| 52 | ;The messages will then be deleted from file 4.281. | 
|---|
| 53 | N XMC,XMCHAN,XMLINE,XMFDA,XMIEN,XMIENS,XMABORT,XMINST,XMSITE,XMTASK,ER,Y | 
|---|
| 54 | S XMCHAN="TASKER",(XMABORT,XMLINE)=0 | 
|---|
| 55 | D ASKINST^XMCXU(.XMINST,.XMSITE,.XMABORT,"M") Q:XMABORT | 
|---|
| 56 | D GET^XML Q:$G(ER)!$G(POP) | 
|---|
| 57 | S XMFDA(4.281,"+1,",.01)=^XMB("NETNAME") | 
|---|
| 58 | D UPDATE^DIE("","XMFDA","XMIEN") | 
|---|
| 59 | S XMTASK=XMIEN(1) | 
|---|
| 60 | D OUTDO | 
|---|
| 61 | S XMIENS=XMTASK_"," | 
|---|
| 62 | S XMFDA(4.281,XMIENS,1)=XMSITE | 
|---|
| 63 | D FILE^DIE("","XMFDA") | 
|---|
| 64 | D KL^XMC | 
|---|
| 65 | Q | 
|---|
| 66 | OUTDO ; | 
|---|
| 67 | N XM,XMDUZ | 
|---|
| 68 | U IO(0) | 
|---|
| 69 | S XM="",(XMC("BATCH"),XMC("TURN"))=1,XMREC="Q" | 
|---|
| 70 | D GET^XMCXT(0) | 
|---|
| 71 | W !,$$EZBLD^DIALOG(42252) ;Dumping messages now | 
|---|
| 72 | U IO | 
|---|
| 73 | D ENTER^XMS | 
|---|
| 74 | D XMTFINIS^XMTDR(XMINST) | 
|---|
| 75 | U IO(0) | 
|---|
| 76 | I $D(XMC("S")) W $C(7)," ... ",$$EZBLD^DIALOG(42253,XMC("S")) ;Messages dumped: |1| | 
|---|
| 77 | X XMCLOSE | 
|---|
| 78 | Q | 
|---|
| 79 | GLBIN ; Read messages from a global. | 
|---|
| 80 | ; (Receive them from another UCI via the global.) | 
|---|
| 81 | N XM,XMC,XMCHAN,XMDUZ,XMTASK,XMNETNAM,XMSITE,XMABORT,XMI,XMIREC,XMCNT,Y | 
|---|
| 82 | S XM=$S($D(ZTQUEUED):"",1:"D") | 
|---|
| 83 | S XMNETNAM=^XMB("NETNAME"),XMABORT=0,XMCHAN="TASK-IN" | 
|---|
| 84 | D GET^XML Q:$G(ER) | 
|---|
| 85 | I XM["D" D  Q:XMABORT | 
|---|
| 86 | . D GET^XMCXT(0) | 
|---|
| 87 | . D DOTRAN^XMC1(42254,XMNETNAM) ;Receive messages for |1| | 
|---|
| 88 | . D PAGE^XMXUTIL(.XMABORT) | 
|---|
| 89 | S (XMI,XMCNT)=0 | 
|---|
| 90 | F  S XMI=$O(^%ZISL(4.281,"C",XMNETNAM,XMI)) Q:'XMI  D  Q:ER | 
|---|
| 91 | . S XMIREC=$G(^%ZISL(4.281,XMI,0)) Q:XMIREC="" | 
|---|
| 92 | . Q:$P(XMIREC,U,2)'=XMNETNAM | 
|---|
| 93 | . S XMSITE=$P(XMIREC,U,1) | 
|---|
| 94 | . S XMIREC=$G(^%ZISL(4.281,XMI,"T",1,0)) Q:XMIREC'?1"HELO ".E | 
|---|
| 95 | . S XMCNT=XMCNT+1 | 
|---|
| 96 | . I XM["D" D DOTRAN^XMC1(42255,XMI,XMSITE) ;Loading entry #|1| from |2| | 
|---|
| 97 | . S XMTASK=XMI,ER=0,XMLINE=.999,(XMC("BATCH"),XMC("TURN"),XMQUIET)=1 | 
|---|
| 98 | . D RECEIVE^XMR Q:ER | 
|---|
| 99 | . N DA,DIK | 
|---|
| 100 | . S DA=XMTASK,DIK="^%ZISL(4.281," D ^DIK | 
|---|
| 101 | I XM["D" D | 
|---|
| 102 | . I XMCNT D DOTRAN^XMC1(42257,XMC("R")) Q  ;Messages received: |1| | 
|---|
| 103 | . D DOTRAN^XMC1(42256,XMNETNAM) ;No entries found in file 4.281 for |1| | 
|---|
| 104 | D KL^XMC | 
|---|
| 105 | Q | 
|---|