| Contents: | Main | Chapter | See Also: | Getting Started Manual | Advanced User Manual | |||
Figure 377 shows the ^DD nodes associated with the sample (fictitious) EMPLOYEE file:
Figure 377: Attribute Dictionary—Reading the Attribute Dictionary: Sample ^DD Nodes
^DD(3,.01,0)="NAME^FR^^0;1^I X'?1A.AP1",".AP K X"
^DD(3,.01,.1)="EMPLOYEE NAME"
^DD(3,.01,1,0)="^.1^1^1"
^DD(3,.01,1,1,0)="3^B"
^DD(3,.01,1,1,1)="S ^EMP("B",$E(X,1,30),DA)="""
^DD(3,.01,1,1,2)="K ^EMP("B",$E(X,1,30),DA)"
^DD(3,.01,3)="NAME MUST BE 3-30 CHARACTERS, IN THE FORMAT LAST,FIRST"
^DD(3,1,0)="SEX^RS^M:MALE;F:FEMALE^0;2^Q"
^DD(3,2,0)="DOB^D^^0;3^S %DT="EX" D ^%DT S X=Y I X<1400000 K X"
^DD(3,2,.1)="DATE OF BIRTH"
^DD(3,3,0)="DEPARTMENT^P13'^DIZ(13,^0;4^Q"
Their meaning can be translated to:
Figure 378: Attribute Dictionary—Reading the Attribute Dictionary: Sample Translated Meaning
NAME MUST BE 3-30 CHARACTERS, IN THE FORMAT LAST,FIRST
The (fictitious) EMPLOYEE file is cross-referenced by NAME, so every time a name is changed, the corresponding subscript under (fictitious) ^EMP("B") is also changed. DA is always the internal number of the employee when the cross-referencing code is executed.
If a second cross-reference for NAME existed (for example, a trigger), it would be descendent from:
^DD(3,.01,1,2
Suppose there is also a Multiple-valued field, SKILL. A Multiple-valued field is described by a separate data dictionary. VA FileMan creates this new data dictionary descendent from a non-integer subscript of ^DD. In the case of the (fictitious) EMPLOYEE file described by ^DD(3), it would store subsidiary data dictionaries in ^DD(3.01), ^DD(3.02), etc. The subsidiary data dictionary for the Multiple-valued SKILL field could look like this:
Figure 380: Attribute Dictionary—Reading the Attribute Dictionary: Sample Subsidiary Data Dictionary
^DD(3.01,0)="SKILL subfield^^1^2"
^DD(3.01,.01,0)="SKILL^MF^^0;1^K:$L(X)>30!($L(X)<3) X"
^DD(3.01,.01,3)="ANSWER MUST BE FROM 3 TO 30 CHARACTERS IN LENGTH"
The only new element here is the M in the second ^-piece of ^DD(3.01,.01,0). This is the flag corresponding to the YES answer to the question:
Figure 381: Attribute Dictionary—Reading the Attribute Dictionary: Sample Auxiliary User Prompts
HAVING ENTERED OR EDITED ONE SKILL, SHOULD USER BE ASKED ANOTHER?
If you answer YES to this question, each time the user enters data, the "Select SKILL:" prompt is repeated until the user enters a NULL response. There is also an entry corresponding to SKILL in the principal (fictitious) EMPLOYEE file's data dictionary as follows:
^DD(3,4,0)="SKILL^3.01A^^SX;0"
The 3.01 points to the subsidiary data dictionary of that number; it says that, to find the data descriptors of SKILL (and all fields pertaining to SKILL), you must look in ^DD(3.01). The A indicates that every time the user enters a new SKILL, it is automatically added to the file and the user is not asked:
ARE YOU ADDING A NEW SKILL?
The SX;0 in the fourth ^-piece tells us the entire SKILL Subfile is stored descendent from the SX subscript in each employee's record.
Reviewed/Updated: May 2026