It is always dangerous when managers write code.  They probably got
promoted because they couldn't write code to start with...  Anyway, the
quick way to make this work when you need it is as follows.  Before
running anything that calls ^XPDR, do the following:

mumps -dir
GTM>D ^%RSEL

Routine: *

... <runs for a few seconds listing the routines> ...
ZTMS0     ZTMS1     ZTMS2     ZTMS3     ZTMS4     ZTMS5     ZTMS7
ZTMSH     ZTP1      ZTPP      ZTPTCH    ZTRDEL    ZTRTHV    ZU
ZUA       ZUDTM     ZUMSM     ZUMSQ     ZUONT     ZUSET     ZUVXD
Current total of 23149 routines.

Routine:

GTM>

Now the local variable %ZR has an entry for each routine, thus:

GTM>ZWR

... <output truncated for brevity> ...
%ZR("ZUMSQ")="/usr/local/OpenVistA/r/"
%ZR("ZUONT")="/usr/local/OpenVistA/r/"
%ZR("ZUSET")="/usr/local/OpenVistA/r/"
%ZR("ZUVXD")="/usr/local/OpenVistA/r/"

GTM>

So, instead of the line of code:
       .S XPDJ=XPDI D:$D(^$R(XPDJ))  F  S XPDJ=$O(^$R(XPDJ))
Q:XPDJ=""!($P(XPDJ,XPDI)]"")  D

something like the following should work instead:
       .S XPDJ=XPDI D:$D(%ZR(XPDJ))  F  S XPDJ=$O(%ZR(XPDJ)) 
Q:XPDJ=""!($P(XPDJ,XPDI)]"")  D

It should be fairly easy (but more than I can do in 5 minutes right now)
to add a label to ^%RSEL that doesn't prompt for input but takes a
string as a parameter, so that a construct like DO NOINT^%RSEL("*")
could be used to populate %ZR instead of doing it interactively.

Watch out for line breaks in the above.

-- Bhaskar

On Mon, 2005-07-25 at 15:05 -0500, Bhaskar, KS wrote:
> You're right.  The line of code:
> 
>         .S XPDJ=XPDI D:$D(^$R(XPDJ))  F  S XPDJ=$O(^$R(XPDJ)) 
> Q:XPDJ=""!($P(XPDJ,XPDI)]"")  D
> 
> is not protected and cannot execute on GT.M.  What are the semantics
> of 
> ^$R(XPDJ)?  Does it return the next routine in the list of routines?
> It 
> should be a pretty quick fix.
> 
> -- Bhaskar
> 
> On Mon, 2005-07-25 at 14:41 -0500, Greg Woodhouse wrote: 
> > Look at UPDT^XPDR on your system. On mine, at least, the code to 
> > $ORDER  
> > through ^$ROUTINE isn't protected by any check to see if the
> platform  
> > is GT.M.
> 
> 
> 
> ------------------------------------------------------- 
> SF.Net email is sponsored by: Discover Easy Linux Migration
> Strategies 
> from IBM. Find simple to follow Roadmaps, straightforward articles, 
> informative Webcasts and more! Get everything you need to get up to 
> speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click 
> _______________________________________________ 
> Hardhats-members mailing list 
> Hardhats-members@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/hardhats-members
> 



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to