Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XMC1B

XMC1B.m

Go to the documentation of this file.
  1. XMC1B ;(WASH ISC)/THM-Script Interpreter (Open/Close) ;06/11/2002 09:33
  1. ;;8.0;MailMan;;Jun 28, 2002
  1. ; In:
  1. ; XMB
  1. ; XMC1
  1. OPEN ;OPEN Command
  1. ; O H=DOMAIN.EXT,P=TCP/IP-MAILMAN
  1. N XMI,XMCP,XMCP1,XMCP2
  1. F XMI=1:1:$L(XMC1,",") S XMCP=$P(XMC1,",",XMI) D Q:ER
  1. . S XMCP1=$P(XMCP,"=",1),XMCP2=$P(XMCP,"=",2)
  1. . I XMCP1=$E("HOST",1,$L(XMCP1)) D HOST(XMCP2) Q
  1. . I XMCP1=$E("PROTOCOL",1,$L(XMCP1)) D PROT(XMCP2) Q
  1. . D ERTRAN^XMC1(42245,XMCP1) ;Invalid parameter: '|1|'
  1. Q:ER
  1. I $G(XMPROT)="" D PROT("SCP")
  1. D DEVICE Q:ER
  1. Q
  1. HOST(X) ; Host - Set IP address used by transmission scripts in file 4.6
  1. S XMHOST=$P(XMB("SCR REC"),U,6)
  1. I XMHOST="" S XMHOST="NO-IP"
  1. Q
  1. PROT(XMCHAN) ; Communications Protocol
  1. N Y
  1. D GET^XML
  1. Q
  1. DEVICE ;
  1. 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))
  1. Q:XMCP2=""
  1. D TRYDEV(XMCP2) Q:'ER
  1. I $G(XMIO)="",$G(XMIO)=$G(ZTIO),$G(XMIO)'=XMCP2 D TRYDEV(XMIO)
  1. Q
  1. TRYDEV(X) ; Device specification parsing
  1. S ER=0 I $D(ZTQUEUED),IO'="" U IO D D1 Q
  1. I X="" S ER=1 Q
  1. S %ZIS="R",IOP=X D ^%ZIS K IOP
  1. I POP D ERTRAN^XMC1(42246,X) Q ;Device '|1|' could not be opened by %ZIS.
  1. S XMHANG("OPEN")=9
  1. D D1
  1. Q
  1. D1 ;
  1. S XMC("DEVICE")=$P(^%ZIS(1,IOS,0),U),XMC("MODEM")=$P(^(0),U,6)
  1. I $L(XMC("MODEM")),$D(^%ZIS(2,XMC("MODEM"),50)) S XMDIAL=^(50),XMHANG=^(51),XMSTAT=$G(^(52))
  1. Q:IOT="RES"
  1. U IO X ^%ZOSF("EOFF") S X=255 X ^%ZOSF("RM") X ^%ZOSF("TYPE-AHEAD")
  1. Q
  1. CLOSE ; Close channel
  1. I $G(XMHANG)'="" X XMHANG D:$L(IO) FLUSH^XMC1
  1. ;|1| sent, |2| received, |3| retransmissions.
  1. D DOTRAN^XMC1($S($G(XMTLER):42248,1:42247),+$G(XMC("S")),+$G(XMC("R")),$G(XMTLER))
  1. I '$D(ZTQUEUED),$G(XMHANG("OPEN"))=9 D ^%ZISC
  1. S IOP="HOME" D ^%ZIS
  1. ; Instead of the above line, v7.1 does this: *******************
  1. ; I '$D(ZTQUEUED) D HOME^%ZIS
  1. ; I $D(ZTQUEUED) S IO("C")=1 D ^%ZISC
  1. I $G(XMINST),$D(^XMBS(4.2999,XMINST,3)) S $P(^(3),U,1,6)="^^^^^"
  1. Q