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/