| 1 | XMC1B ;(WASH ISC)/THM-Script Interpreter (Open/Close) ;06/11/2002  09:33
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; In:
 | 
|---|
| 4 |  ; XMB
 | 
|---|
| 5 |  ; XMC1
 | 
|---|
| 6 | OPEN ;OPEN Command
 | 
|---|
| 7 |  ; O H=FORUM.VA.GOV,P=TCP/IP-MAILMAN
 | 
|---|
| 8 |  N XMI,XMCP,XMCP1,XMCP2
 | 
|---|
| 9 |  F XMI=1:1:$L(XMC1,",") S XMCP=$P(XMC1,",",XMI) D  Q:ER
 | 
|---|
| 10 |  . S XMCP1=$P(XMCP,"=",1),XMCP2=$P(XMCP,"=",2)
 | 
|---|
| 11 |  . I XMCP1=$E("HOST",1,$L(XMCP1)) D HOST(XMCP2) Q
 | 
|---|
| 12 |  . I XMCP1=$E("PROTOCOL",1,$L(XMCP1)) D PROT(XMCP2) Q
 | 
|---|
| 13 |  . D ERTRAN^XMC1(42245,XMCP1) ;Invalid parameter: '|1|'
 | 
|---|
| 14 |  Q:ER
 | 
|---|
| 15 |  I $G(XMPROT)="" D PROT("SCP")
 | 
|---|
| 16 |  D DEVICE Q:ER
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 | HOST(X) ; Host - Set IP address used by transmission scripts in file 4.6
 | 
|---|
| 19 |  S XMHOST=$P(XMB("SCR REC"),U,6)
 | 
|---|
| 20 |  I XMHOST="" S XMHOST="NO-IP"
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 | PROT(XMCHAN) ; Communications Protocol
 | 
|---|
| 23 |  N Y
 | 
|---|
| 24 |  D GET^XML
 | 
|---|
| 25 |  Q
 | 
|---|
| 26 | DEVICE ;
 | 
|---|
| 27 |  S XMCP2=$S($D(ZTQUEUED)&$L($G(ZTIO)):ZTIO,$D(ZTQUEUED)&$L($G(ION)):ION,$L($G(XMIO)):XMIO,1:$P(XMB("SCR REC"),U,5))
 | 
|---|
| 28 |  Q:XMCP2=""
 | 
|---|
| 29 |  D TRYDEV(XMCP2) Q:'ER
 | 
|---|
| 30 |  I $G(XMIO)="",$G(XMIO)=$G(ZTIO),$G(XMIO)'=XMCP2 D TRYDEV(XMIO)
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | TRYDEV(X) ; Device specification parsing
 | 
|---|
| 33 |  S ER=0 I $D(ZTQUEUED),IO'="" U IO D D1 Q
 | 
|---|
| 34 |  I X="" S ER=1 Q
 | 
|---|
| 35 |  S %ZIS="R",IOP=X D ^%ZIS K IOP
 | 
|---|
| 36 |  I POP D ERTRAN^XMC1(42246,X) Q  ;Device '|1|' could not be opened by %ZIS.
 | 
|---|
| 37 |  S XMHANG("OPEN")=9
 | 
|---|
| 38 |  D D1
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 | D1 ;
 | 
|---|
| 41 |  S XMC("DEVICE")=$P(^%ZIS(1,IOS,0),U),XMC("MODEM")=$P(^(0),U,6)
 | 
|---|
| 42 |  I $L(XMC("MODEM")),$D(^%ZIS(2,XMC("MODEM"),50)) S XMDIAL=^(50),XMHANG=^(51),XMSTAT=$G(^(52))
 | 
|---|
| 43 |  Q:IOT="RES"
 | 
|---|
| 44 |  U IO X ^%ZOSF("EOFF") S X=255 X ^%ZOSF("RM") X ^%ZOSF("TYPE-AHEAD")
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 | CLOSE ; Close channel
 | 
|---|
| 47 |  I $G(XMHANG)'="" X XMHANG D:$L(IO) FLUSH^XMC1
 | 
|---|
| 48 |  ;|1| sent, |2| received, |3| retransmissions.
 | 
|---|
| 49 |  D DOTRAN^XMC1($S($G(XMTLER):42248,1:42247),+$G(XMC("S")),+$G(XMC("R")),$G(XMTLER))
 | 
|---|
| 50 |  I '$D(ZTQUEUED),$G(XMHANG("OPEN"))=9 D ^%ZISC
 | 
|---|
| 51 |  S IOP="HOME" D ^%ZIS
 | 
|---|
| 52 |  ; Instead of the above line, v7.1 does this: *******************
 | 
|---|
| 53 |  ; I '$D(ZTQUEUED) D HOME^%ZIS
 | 
|---|
| 54 |  ; I $D(ZTQUEUED) S IO("C")=1 D ^%ZISC
 | 
|---|
| 55 |  I $G(XMINST),$D(^XMBS(4.2999,XMINST,3)) S $P(^(3),U,1,6)="^^^^^"
 | 
|---|
| 56 |  Q
 | 
|---|