| 1 | TIUUPLD ; SLC/JER - ASCII Upload ;9/11/98@16:39:47
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**21**;Jun 20, 1997
 | 
|---|
| 3 | MAIN ; Control branching
 | 
|---|
| 4 |  N EOM,TIUDA,TIUERR,TIUHDR,TIULN,TIUSRC,X
 | 
|---|
| 5 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 6 |  S TIUSRC=$P($G(TIUPRM0),U,9),EOM=$P($G(TIUPRM0),U,11)
 | 
|---|
| 7 |  I EOM']"",($P(TIUPRM0,U,17)'="k") W !,$C(7),$C(7),$C(7),"No End of Message Signal Defined - Contact IRM.",! Q
 | 
|---|
| 8 |  S:TIUSRC']"" TIUSRC="R"
 | 
|---|
| 9 |  S TIUHDR=$P(TIUPRM0,U,10)
 | 
|---|
| 10 |  I TIUHDR']"" W $C(7),$C(7),$C(7),"No Record Header Signal Defined - Contact IRM.",! Q
 | 
|---|
| 11 |  S TIUDA=$$MAKEBUF
 | 
|---|
| 12 |  I +TIUDA'>0 W $C(7),$C(7),$C(7),"Unable to create a Buffer File Record - Contact IRM.",! Q
 | 
|---|
| 13 |  I TIUSRC="R" D REMOTE(TIUDA)
 | 
|---|
| 14 |  I TIUSRC="H" D HFS(TIUDA)
 | 
|---|
| 15 |  I +$G(TIUERR) W $C(7),$C(7),$C(7),!,"File Transfer Error: ",$G(TIUERR),!!,"Please re-transmit the file...",!
 | 
|---|
| 16 |  ; Set $ZB to MAIN+14^TIUUPLD:2
 | 
|---|
| 17 |  I +$O(^TIU(8925.2,TIUDA,"TEXT",0))>0,'+$G(TIUERR) D FILE(TIUDA)
 | 
|---|
| 18 |  I +$O(^TIU(8925.2,TIUDA,"TEXT",0))'>0!+$G(TIUERR) D BUFPURGE^TIUPUTC(TIUDA)
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 | REMOTE(DA) ; Read ASCII stream from remote computer
 | 
|---|
| 21 |  N TIUI,TIUPAC,X
 | 
|---|
| 22 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 23 |  S TIUPAC=$P(TIUPRM0,U,15)
 | 
|---|
| 24 |  I TIUPAC']"",($P(TIUPRM0,U,17)'="k") W $C(7),$C(7),$C(7),"No Pace Character Defined - Contact IRM.",! Q
 | 
|---|
| 25 |  I $P(TIUPRM0,U,17)="k" D KERMIT(DA) Q
 | 
|---|
| 26 |  D REMHDR("ASCII")
 | 
|---|
| 27 |  S TIUERR=""
 | 
|---|
| 28 |  W !,$C(TIUPAC)
 | 
|---|
| 29 |  F  R X:DTIME S:'$T X="^TIMEOUT" D  Q:TIUERR'=""
 | 
|---|
| 30 |  . I (X="^")!(X="^^")!(X="^TIMEOUT") DO  Q
 | 
|---|
| 31 |  . . S TIUERR="1,End of Message Signal not seen."
 | 
|---|
| 32 |  . I X=EOM S TIUERR=0 W ! Q
 | 
|---|
| 33 |  . I X?1."?" D HELP(X),REMHDR("ASCII") Q
 | 
|---|
| 34 |  . ; Ignore leading white space
 | 
|---|
| 35 |  . I (+$O(^TIU(8925.2,DA,"TEXT",0))'>0),(X="") Q
 | 
|---|
| 36 |  . S TIUI=+$G(TIUI)+1,^TIU(8925.2,DA,"TEXT",TIUI,0)=$$STRIP(X)
 | 
|---|
| 37 |  . W !,$C(TIUPAC) ; Send ACK to remote
 | 
|---|
| 38 |  S ^TIU(8925.2,DA,"TEXT",0)="^^"_$G(TIUI)_"^"_$G(TIUI)_"^"_DT_"^^^^"
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 | REMHDR(PRTCL) ; Write Header for Remote upload
 | 
|---|
| 41 |  W @IOF D JUSTIFY^TIUU($$TITLE^TIUU(PRTCL_" UPLOAD"),"C")
 | 
|---|
| 42 |  W:PRTCL="ASCII" !!,"Initiate upload procedure:",!
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | KERMIT(DA) ; Use Kermit Protocol Driver
 | 
|---|
| 45 |  N XTKDIC,XTKERR,XTKMODE,DWLC
 | 
|---|
| 46 |  D REMHDR("KERMIT")
 | 
|---|
| 47 |  S XTKDIC="^TIU(8925.2,"_+DA_",""TEXT"",",XTKMODE=2
 | 
|---|
| 48 |  D RECEIVE^XTKERMIT I +$G(XTKERR) S TIUERR=$G(XTKERR) W !
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | HFS(DA) ; Read HFS file
 | 
|---|
| 51 |  N TIUI,X
 | 
|---|
| 52 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 53 |  W @IOF D JUSTIFY^TIUU($$TITLE^TIUU("ASCII UPLOAD"),"C")
 | 
|---|
| 54 |  W !!,"Select Host File:",! D ^%ZIS I POP W !,$C(7),"Device unavailable." Q
 | 
|---|
| 55 |  F  U IO R X:DTIME Q:'$T!(X=EOM)!(X="^")!(X="^^")  D
 | 
|---|
| 56 |  . U IO(0) W X,!
 | 
|---|
| 57 |  . S TIUI=+$G(TIUI)+1,^TIU(8925.2,DA,"TEXT",TIUI,0)=$$STRIP(X)
 | 
|---|
| 58 |  S ^TIU(8925.2,DA,"TEXT",0)="^^"_$G(TIUI)_"^"_$G(TIUI)_"^"_DT_"^^^^"
 | 
|---|
| 59 |  D ^%ZISC
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 | STRIP(X) ; Strip control characters
 | 
|---|
| 62 |  N I,Y
 | 
|---|
| 63 |  ; First replace TABS w/5 spaces
 | 
|---|
| 64 |  F I=1:1:$L(X) S:$A(X,I)=9 X=$E(X,1,(I-1))_"     "_$E(X,(I+1),$L(X))
 | 
|---|
| 65 |  ; Next, remove control characters
 | 
|---|
| 66 |  S Y="" F I=1:1:$L(X) S:$A(X,I)>31 Y=Y_$E(X,I)
 | 
|---|
| 67 |  Q Y
 | 
|---|
| 68 | MAKEBUF() ; Subroutine to create buffer records
 | 
|---|
| 69 |  N DIC,DA,DR,DIE,START,X,Y
 | 
|---|
| 70 |  S START=$$NOW^TIULC
 | 
|---|
| 71 |  S (DIC,DLAYGO)=8925.2,DIC(0)="LX",X=""""_$J_"""" D ^DIC
 | 
|---|
| 72 |  I +Y'>0 S DA=Y G MAKEBUX
 | 
|---|
| 73 |  S DA=+Y,DIE=DIC,DR=".02////"_+$G(DUZ)_";.03////"_START D ^DIE
 | 
|---|
| 74 | MAKEBUX Q DA
 | 
|---|
| 75 | FILE(DA) ; Completes upload transaction, invokes filer/router
 | 
|---|
| 76 |  N DIE,DR
 | 
|---|
| 77 |  I '$D(^TIU(8925.2,+DA,0)) G FILEX
 | 
|---|
| 78 |  S DIE="^TIU(8925.2,",DR=".04////"_$$NOW^TIULC D ^DIE
 | 
|---|
| 79 |  ; Task background filer/router to process buffer record
 | 
|---|
| 80 |  S ZTIO="",ZTDTH=$H,ZTSAVE("DA")=""
 | 
|---|
| 81 |  S ZTRTN=$S($P(TIUPRM0,U,16)="D":"MAIN^TIUPUTD",1:"MAIN^TIUPUTC")
 | 
|---|
| 82 |  S ZTDESC="TIU Document Filer"
 | 
|---|
| 83 |  ; If filer is NOT designated to run in the foreground, queue it
 | 
|---|
| 84 |  I '+$P(TIUPRM0,U,18) D  G FILEX
 | 
|---|
| 85 |  . D ^%ZTLOAD
 | 
|---|
| 86 |  . W !,$S($D(ZTSK):"Filer/Router Queued!",1:"Filer/Router Cancelled!")
 | 
|---|
| 87 |  ; Otherwise, run the filer in the foreground
 | 
|---|
| 88 |  W !!,"File Transfer Complete--Now Filing Records..."
 | 
|---|
| 89 |  D @ZTRTN
 | 
|---|
| 90 | FILEX Q
 | 
|---|
| 91 | HELP(X) ; Process HELP for Remote upload
 | 
|---|
| 92 |  I X="?" W !?3,"Begin file transfer using ASCII protocol upload procedure.",!
 | 
|---|
| 93 |  I X?2."?" D
 | 
|---|
| 94 |  . W !?3,"Consult your terminal emulator's User Manual to determine",!
 | 
|---|
| 95 |  . W !?3,"how to set-up and initiate an ASCII protocol file transfer.",!
 | 
|---|
| 96 |  W !?3,"Enter '^' or '^^' to exit.",!
 | 
|---|
| 97 |  S TIUX=$$READ^TIUU("FOA","Press RETURN to continue...")
 | 
|---|
| 98 |  Q
 | 
|---|