Issue Logging into VistA from Programmer Prompt

73 views
Skip to first unread message

Edward Koll

unread,
Mar 24, 2022, 2:34:08 PM3/24/22
to hard...@googlegroups.com
Hello, all:

I am standing up a new instance. I have followed the Initialization steps, but am stuck trying to launch ^XUP. I am using Cache in a Windows environment (Windows 11), and using the Cache Terminal window. 

I can access the environment, and change to the UCI I created. 

From the developer prompt:

GOLD> S DUZ=1
GOLD> D ^XUP

Setting up programmer environment
This is a TEST account.
 
GOLD> 

I have stepped through the code, and it appears to be failing in O1^%ZIS$ at the following line:

O @%A S:'$T&(%A?.E1":".N) POP=1 S:'POP IO(1,IO)=""

The value of %A when it reaches this line is:

"|TRM|":(80:"C"):0

Is anyone aware of what the fix is for this?

Thanks!

George Bennington

unread,
Mar 24, 2022, 4:18:13 PM3/24/22
to Hardhats
I don't have any direct answer to your question, but I have the following.

1. I download the March release of the FOIA VistA from this link https://foia-vista.worldvista.org/DBA_VistA_FOIA_System_Files/DBA_VISTA_FOIA_2022/

2. I set up a UCI and DB in Cache named IRIS, setting up the namespace with the needed global and routine mapping.
The global mappings for namespace IRIS are displayed below: %Z*
The routine mappings for namespace IRIS are displayed below: %DT*, %RCR, %XU*, %ZIS*, %ZO*, %ZT*, %ZV*

3. Stop Cache

4. Remove the CACHE.DAT file from the IRIS directory.

5. Uncompress the downloaded IRIS.DAT file from #1 above.  Rename the file to CACHE.DAT

6. Restart Cache

7. Terminal info the IRIS UCI and perform the following. 


IRIS>S DUZ=1 D ^XUP

 
Setting up programmer environment
This is a TEST account.
 
Terminal Type set to: C-VT220
 
You have 14593 new messages.
Select OPTION NAME:
IRIS>ZW %A
 
IRIS>W %A
 
W %A
^
<UNDEFINED> *%A
IRIS>ZW
 
DILOCKTM=3
DISYS=18
DT=3220324
DTIME=10000
DUZ=1
DUZ(0)=""
DUZ(1)=""
DUZ(2)=1
DUZ("AG")="V"
DUZ("AUTHENTICATION")="XUP"
DUZ("BUF")=1
DUZ("LANG")=""
DUZ("LOA")=2
IO="|TRM|:|9320"
IO(0)="|TRM|:|9320"
IO(1,"|TRM|:|9320")=""
IO("CLNM")="TRM:"
IO("ERROR")=""
IO("HOME")="48^|TRM|:|9320"
IO("IP")="127.0.0.1"
IO("ZIO")="TRM:"
IOBS="$C(8)"
IOF="#,$C(27,91,50,74,27,91,72)"
IOM=80
ION="CACHE-WINDOWS-CONSOLE"
IOS=48
IOSL=24
IOST="C-VT220"
IOST(0)=91
IOT="VTRM"
IOXY="W $C(27,91)_((DY+1))_$C(59)_((DX+1))_$C(72)"
U="^"
X="27;DIC(4.2,"
XPARSYS="27;DIC(4.2,"
XQXFLG="^^XUP"
IRIS>

David Whitten

unread,
Mar 24, 2022, 11:26:05 PM3/24/22
to Hardhats,
First of all, the line in question is O1^%ZIS4 (minor typo of %ZIS$) 
The code 
O @%A S:'$T&(%A?.E1":".N) POP=1 S:'POP IO(1,IO)="" Is found at


And the code is at 


The ZIS4ONT code is copied into %ZIS4 when the VistA initialization routine ^ZTMGRSET is run

Looking at the value of %A I.e.
"|TRM|":(80:"C"):0

"|TRM|" means, use a TERMINAL I/O device in IRIS
80 is the right margin value

The "C" means the CRT protocol from https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GIOD_termio#GIOD_termio_lettercodes
"C"
CRT terminal
C mode accepts all eight bit characters as data, except for the following six: ASCII 3, 8, 10, 13, 21, and 127. The ASCII 127 Delete character echoes as a destructive backspace, that is, it backspaces and erases the preceding character. ASCII 21 (Ctrl-U) echoes enough destructive backspaces to bring the cursor to the start of the READ. If the setting for the right margin, or the nature of the terminal, forces echoed characters to begin a new line, Ctrl-U can erase only the characters on the last physical line. In any case, Ctrl-U cancels all input since the start of the READ. C is mutually exclusive with the P protocol.
And the 0 is a timeout of zero seconds, ie: succeed immediately or return a failure $TEST value of zero (0)


So this is a normal value for the value of %A and probably not your problem.

This data is probably coming from the TERMINAL TYPE or the DEVICE FileMan File. 
The entry for HOME is relevant.

You say it is failing. Does this mean $TEST is 0 ? (And POP is set to 1 ?)

Dave


--
--
http://groups.google.com/group/Hardhats
To unsubscribe, send email to Hardhats+u...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "Hardhats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/255b1bef-33f1-4ccd-a5fe-1f42e2dc9066n%40googlegroups.com.

Skip

unread,
Mar 25, 2022, 6:33:12 AM3/25/22
to Hardhats
Try doing the following:
USER>D ^%CD

Namespace: FOIA
You're in namespace FOIA
Default directory is c:\dats\foia\
FOIA>S DUZ=1 D P^DI


VA FileMan 22.0


Select OPTION:
FOIA>ZW

%H="62579,58221"
DILOCKTM=3
DT=3120502
DTIME=300
DUZ=1
DUZ(0)="@"
IO(0)="|TNT|Skip-HP:51028|41604"
U="^"
FOIA>D P^DI


VA FileMan 22.0


Select OPTION: ENTER OR EDIT FILE ENTRIES



INPUT TO WHAT FILE: DEVICE                (51 entries)
EDIT WHICH FIELD: ALL// $I
THEN EDIT FIELD:


Select DEVICE NAME: TEL
     1   TELNET      TELNET     TNA
     2   TELNET  GTM-UNIX-TELNET    TELNET     /dev/pts/
CHOOSE 1-2: 1  TELNET    TELNET     TNA
$I: TNA// |TNT|


Select DEVICE NAME:



Select OPTION:
FOIA>K

FOIA>S DUZ=1 D ^XUP


Setting up programmer environment
This is a TEST account.

Terminal Type set to: C-VT220

Select OPTION NAME:
FOIA>

Skip

unread,
Mar 25, 2022, 6:44:54 AM3/25/22
to Hardhats
I have found I also have needed to do - D ^%RCOMPIL on the translated %routines and and all others *. Note: the * does not catch the %routiunes.

Steven McPhelan

unread,
Mar 28, 2022, 3:15:36 PM3/28/22
to hardhats
It has been many years since I trouble shot Device problems.

I noticed two things:
Your %A contains "|TRM|".  Should it just be |TRM|  ?

Look at Skip's IO(0) variable.  For a Telnet device he has |TNT| not "|TNT|"

Steve
 There are two ways to conquer and enslave a country.  One is by the sword.  The other is by debt.- John Adams


Reply all
Reply to author
Forward
0 new messages