Statement
TraverseUnique
General
Duplicate object references can occur when traversing two or more many relationships consecutively. Often duplicates are desirable but sometimes they are not. The TraverseUnique statement automatically removes duplicate objects.
TraverseUnique Statement
TraverseUnique
Navigation
Hotel : Accommodates : Guest
Guest : Likes : Food
TraverseSelection
Template
<<:>> <<#Food.Name>>
The TraverseUnique statement is used in place of the Traverse statement where duplicate objects are not required.
TraverseUnique Example
This example shows how to list the Foods liked by Guests at a Hotel without duplication.
Declare Hotel entity:
Entity:Hotel
Attribute
Text : Name
Relationship
Accommodates -|> Guest
Declare Guest entity:
Entity:Guest
Attribute
Text : Name
Relationship
Likes -|> Food
Declare Food entity:
Entity:Food
Attribute
Text : Name
Using the Traverse statement:
Traverse
Navigation
Hotel : Accommodates : Guest
Guest : Likes : Food
TraverseSelection
Template
<<:>> <<#Food.Name>>
The Hotel has two Guests, Jack & Jill. If Jack likes Fish & Beef and Jill likes Pies & Beef then the following is displayed:
Fish
Beef
Pies
Beef
Beef is displayed twice which is not the desired result. However, if the TraverseUnique statement is used:
TraverseUnique
Navigation
Hotel : Accommodates : Guest
Guest : Likes : Food
TraverseSelection
Template
<<:>> <<#Food.Name>>
The following is displayed:
Fish
Beef
Pies
Beef is displayed once. The use of TraverseUnique eliminates the duplicates from the result.
|