| 1 | XMTDO ;ISC-SF/GMB-Deliver other (server,device) ;04/11/2002  07:05
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; Replaces ZSER^, ZDEV^XMS1 (ISC-WASH/THM/CAP)
 | 
|---|
| 4 | SERVER ; S.server TASKMAN ENTRY
 | 
|---|
| 5 |  ; Variables supplied by TaskMan:  XMZ,XMSERVER,XMSVIENS
 | 
|---|
| 6 |  ; XMSERVER  Name of the server option (includes leading S.)
 | 
|---|
| 7 |  N XMZREC,XMFROM,XMSERR,XMSUBJ
 | 
|---|
| 8 |  D DUZ^XUP(.5)
 | 
|---|
| 9 |  S XMZREC=$G(^XMB(3.9,XMZ,0)) I XMZREC="" D  Q
 | 
|---|
| 10 |  . N XMPARM,XMINSTR
 | 
|---|
| 11 |  . S XMINSTR("FROM")=.5
 | 
|---|
| 12 |  . S XMPARM(1)=XMSERVER
 | 
|---|
| 13 |  . S XMPARM(2)=ZTSK
 | 
|---|
| 14 |  . D TASKBULL^XMXBULL(.5,"XM SEND ERR SERVER MSG",.XMPARM,"",.5,.XMINSTR)
 | 
|---|
| 15 |  S XMSUBJ=$P(XMZREC,U,1)
 | 
|---|
| 16 |  S:XMSUBJ["~U~" XMSUB=$$DECODEUP^XMXUTIL1(XMSUBJ)
 | 
|---|
| 17 |  S XMFROM=$P(XMZREC,U,2)
 | 
|---|
| 18 |  S:XMFROM["@" XMFROM=$$REPLYTO1^XMXREPLY(XMZ)
 | 
|---|
| 19 |  D SETSTAT(XMSVIENS,$$EZBLD^DIALOG(39300)) ; Server hand off ready
 | 
|---|
| 20 |  D DOSERV($E(XMSERVER,3,99),XMZ,XMFROM,XMSUBJ,.XMSERR)
 | 
|---|
| 21 |  D SETSTAT(XMSVIENS,$S($D(XMSERR):XMSERR,1:$$EZBLD^DIALOG(39301))) ; Served (hand off done)
 | 
|---|
| 22 |  S ZTREQ="@"
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 | DOSERV(XMXX,XMZ,XMFROM,XMSUBJ,XQSRVOK) ;
 | 
|---|
| 25 |  N XMCHAN,XMPROT,X,Y,XMSEN,XMREC,XMOPEN,XMCLOSE,XMSVIENS
 | 
|---|
| 26 |  S XMCHAN="SERVER"
 | 
|---|
| 27 |  D GET^XML
 | 
|---|
| 28 |  S X=XMXX_U_XMZ_U_XMFROM_U_XMSUBJ
 | 
|---|
| 29 |  D ^XQSRV
 | 
|---|
| 30 |  ; ^XQSRV1 calls SETSB^XMA1C to put the msg in the postmaster's bskt.
 | 
|---|
| 31 |  ; Instead, that line could read:
 | 
|---|
| 32 |  ; D:XQSRV PUTSERV^XMXMSGS1(XQSOP,XQMSG)
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 | DEVICE ; D.device or H.device TASKMAN ENTRY
 | 
|---|
| 35 |  ; Variables supplied by TaskMan:  XMDUZ,XMZ,XMDVIENS,XMPRTHDR
 | 
|---|
| 36 |  ; TaskMan opens and closes the device.
 | 
|---|
| 37 |  N XMV
 | 
|---|
| 38 |  I '$G(DUZ) D DUZ^XUP(XMDUZ)
 | 
|---|
| 39 |  D INITAPI^XMVVITAE
 | 
|---|
| 40 |  D PRTMSG^XMJMP(XMDUZ,"?",XMZ,"0-",0,$G(XMPRTHDR,1))
 | 
|---|
| 41 |  D SETSTAT(XMDVIENS,$$EZBLD^DIALOG(39302)) ; Printed
 | 
|---|
| 42 |  S ZTREQ="@"
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | SETSTAT(XMIENS,XMSTATUS) ; Record Time/Status in msg file
 | 
|---|
| 45 |  N XMFDA
 | 
|---|
| 46 |  S XMFDA(3.91,XMIENS,2)=$$NOW^XLFDT
 | 
|---|
| 47 |  S XMFDA(3.91,XMIENS,5)=XMSTATUS
 | 
|---|
| 48 |  D FILE^DIE("","XMFDA")
 | 
|---|
| 49 |  Q
 | 
|---|