LOGTO simply looks at the environment variable udthome (!set udthome).
If the account exists under the path in udthome then you can use the
path relative to that in udthome (although I've never tried anything
like ..\..\myaccount). The full path will always work. Of course you can
use the dos 8.3 version of the account as well (dir /x). It must have
been late when I forgot that....

I'm not really sure what uses UD.ACCOUNT. The uniAdmin file tool does,
and perhaps some of the other tools but we usually ignore it. 

Here is a snip of a post the venerable Ken Wallis made a while back
explaining how a program is found.

"1) VOC

A cataloged subroutine with a VOC entry is likely to have been cataloged
either LOCAL or LOCAL DIRECT.  The second line of the VOC 'C' entry
gives the path of the object code, other lines may identify the source
IIRC.
(If a VOC 'C' entry points to object code in the $UDTHOME/sys/CTLG
directory tree, then the object code will actually be loaded by sbcs and
shared between multiple users as if it were a globally cataloged
routine.  I refer to this as GLOBAL DIRECT cataloging, but there is no
officially supported way of setting this up - you have to write a
program to create your VOC entry.  The advantage of GLOBAL DIRECT
cataloging is that it allows you to CALL FRED but actually invoke the
shared subroutine FRED_V4.)

2) global catalog

If there is no VOC entry, then the global catalog database is searched.
This is the directory structure underneath $UDTHOME/sys/CTLG.  CTLGTB is
a VOC pointer to $UDTHOME/sys/CTLGTB and usually the CTLGTB will say
what is in the catalog, but as I understand it your CTLGTB doesn't have
to be up to date for a routine to be found.  CATALOG updates CTLGTB, but
you can also just copy object code into the correct subdirectory in
$UDTHOME/sys/CTLG and CALL will find it.

3) _MAP_

If you really can't work out where the source for a cataloged program is
you can run the MAP command which will traverse the global catalog
directory structure and populate the _MAP_ file with entries describing
where all the routines were cataloged from."

I've found that CTLGTB is case-sensitive with UDTHOME. 

Since we ported our code from D3 to UniData my bosses thought it would
be a good thing to catalog everything directly. I think they just liked
having (needed) the VOC/MD entry. I usually simply set up a
"file-pointer" to the "remote" directory which makes it easy to
edit/compile/catalog programs. I've even used this to run code from
another server. The ability to open/edit files from another account
using the "account,file" syntax is one of the few things I miss from D3.

Hth
Colin Alfke

>-----Original Message-----
>From: Tony Gravagno
>
>I'd like to piggyback on this question with another related:
>
>What is the exact set of rules for determining whether an 
>account can/should be referenced via a full path vs just the 
>name?  It seems it's not as simple as just having an entry in 
>UV.ACCOUNT or UD.ACCOUNT.  Is this flavor-dependent?  It seems 
>every time I'm working with a new client and in different 
>accounts we go through this ritual: if you can't logto some 
>account, try the full path.  Same goes for cataloging code in 
>one account where the object is in another: can't run the code 
>- oops, the account name needs to be the full path.
>
>It would be nice to have some rules of thumb like : all 
>accounts created through UniAdmin can be referenced via 
>account name only, or all Pick flavor accounts created from 
>the command prompt don't have a Ux.ACCOUNT entry but creating 
>one will always work...
>
>Humble ignorance and gratitude,
>Tony
>
>
>DAVID WOLVERTON wrote:
>> How do I include a "space" in a LOGTO command? I've tried quoting., 
>> slashing... I must be missing something brutally simple...
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to