☜ | $REFERENCEM[UMPS] by Example | ☞ |
Approved for inclusion in a future M[UMPS] language standard.
The value of this variable is equal to the name of the global variable that defined the current value of the "naked indicator" (or is empty when the "naked indicator" is currently undefined).
NAKED() ; Get naked indicator IF $Reference="" Quit "<undefined>" New TMP Set TMP=$Data(^(0)) Set TMP=$Reference Quit $Extract(TMP,1,$Length(TMP)–2) Kill ^ABC Set ^ABC(1,2,3)="Demo" Write "-->""",$Reference,"""" -->"^ABC(1,2,3)" Set A=$Query(^ABC(1)) Write "-->""",A,""", and """,$Reference,"""." -->"^ABC(1,2,3)", and "".
After a reference to the function $Query, the naked indicator becomes undefined, which means that $Reference becomes equal to the empty string.
... Do SAVNAK ... Do RESTNAK ... Quit SAVNAK Set OLD=$Reference Quit RESTNAK Set $Reference=OLD Quit
could be used to save and restore the naked indicator. Note that Setting $Reference does not imply that the global variable that it points to is actually referenced, only that the naked indicator is (re)set.
Set X=$Data(^A(3))
Set ^(3)="data ^A 3 (must be retrieved later)"
Set SBE="$REFERENCE should be equal to "
Set V1=$Reference
Write !,SBE,"'^A(3)': ",V1
Set X=$Data(^(3,4))
Set V2=$Reference
Write !,SBE,"'^A(3,4)': ",V2
Lock ^P(27)
Set V3=$Reference
Write !,SBE,"'^A(3,4)': ",V3
Set $Reference=V1
Write !,"Naked reference should work: ",^(3)
Write !
Quit
...
Set ^X=1 Write !,$Reference
Set ^X(1)=2 Write !,$Reference
Set $Reference=""
Write !,"naked indicator is undefined."
should produce:
^X
^X(1)
Note that a reference to ^X makes the naked indicator
undefined, but does not make $Reference empty.
The final command, Set $Reference="" makes
$Reference empty and also makes the naked indicator
undefined.
$Reference may occur as an argument of a New command.
; Define value of $REFERENCE If $Data(^Test(1234) Do Test1 Write !,"The value of $REFERENCE is " Write $Reference Write !,"This value should be ^Test(1234)." Do Test2 Write !,"The value of $REFERENCE is " Write $Reference Write !,"Should be ^Other(""Name"")." Quit Test1 New $Reference Do Test2 Quit Test2 ; Re-define $REFERENCE If $Data(^Other("Name")) Quit
Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.
The information in this page is
NOT authoritative and subject to be modified
at any moment.
Please consult the
appropriate (draft) language standard for an
authoritative definition.
Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.
This page most recently updated on 15-Nov-2023, 12:09:03.
For comments, contact Ed de Moel (demoel@jacquardsystems.com)