| Hierarchy Search Guidelines | |
| Version 2.0.0.0 | |
| Introduction | |
This guideline describes a set of hierarchy conditions that you can add to the condition choice list of a search field when the data that users search for is hierarchical. The guideline also provides guidance about how to display hierarchy search results. Note: Images used in this guideline are provided as general references. They are not exact representations of Applications Development Framework (ADF) pages. |
| Contents | |
| Hierarchy Conditions | |
When hierarchy search conditions are available, the condition choice list should be visible by default. Use ADF Query Basic View, not ADF Quick Query. For more information, see the Search and Query Usage Guidelines. You can use any of the Transactional Search Design Patterns for the search. The searchable fields must include:
|
| Hierarchy Condition Terminology |
You have three different options to display hierarchy search condition terminology to users:
Family terminology provides a set of seven different conditions. Some family condition names can be confusing if used standalone. For example, "Is a last descendant of node" may not make sense when used on its own. Use family terminology when users must access several levels of a hierarchy and need to use a majority of these terms. Not all of these conditions are required in the condition choice list. Use the ones that are applicable to your use cases:
Table 1. illustrates the search results of each of the family terminology conditions. For a more detailed diagram, click the link for each of the family terminology conditions.
The following steps are illustrated in figure 4:
Use domain-specific terminology when you are certain it is familiar to the majority of your users. For example, when searching for an employee of a specific manager, use a condition such as “Is an employee of person” instead of “Is a child of node,” which is the less familiar family term. Table 2 illustrates domain-specific hierarchy conditions. For a more detailed diagram, click the link for each of the family terminology condition.
Tree terminology provides a set of eight conditions, such as, "Is a leaf node" and "Is the root node." Use tree terminology when domain-specific terminology is not appropriate and when tree terminology is the most familiar terminology for users. Table 3 illustrates the relationship between family and tree terms. For a more detailed diagram, click the link for each of the family terminology condition.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Selection-Independent Conditions | |
The following conditions are selection-independent. Selecting one of these conditions hides the value field (see figure 5). Selection-independent searches do not need a value in the hierarchy to compare to execute the search. Table 4 lists selection-independent hierarchy conditions.
When users select a selection-independent hierarchy condition the value field is hidden.
When users select a selection-dependent hierarchy condition the value field remains visible.
|
||||||||||||
| Default Search Conditions |
This section explains the default search conditions that appear in conventional searches, hierarchy searches, and conventional and hierarchy searches. Typical focused search default conditions include Starts with, Contains, or Equals depending on the field type. For a list of default conditions by search field data type, see the Search and Query Usage guidelines.
The recommended hierarchy search default is to use the most common search condition for the particular task as the default. This default may differ from task to task. For example, if the most common task in this hierarchy search example task is to find the child of an account in the hierarchy, then the default value should be Is a child of node.
Combined Conventional and Hierarchy Search Conditions When you combine conventional and hierarchy search, group conditions by type of search. For example, group conventional search conditions together, such as Starts with, Ends with, Equals, and Contains. Then group the hierarchy search conditions together, such as Is a child of node, Is a descendant of node, and so on.
|
| Hierarchy Search Results |
You can present the results of a hierarchy search in four format options:
To illustrate these four hierarchy search results options, this guideline uses the example of an organizational chart as the tree to be searched (figure 10). Figure 11 shows the results of the search: “Employee Name starts with K.” Key differences between hierarchy search and flat table search include switching between flat and hierarchical views of the data (in three of the four results patterns) and the display of the "No results found" message (figure 12). In all four patterns, the "No results found" message shouldappear in a message dialog box, rather than clearing the tree table and displaying the message within the table body so that users can simply dismiss the dialog box to continue browsing the hierarchy.
Results Marked in a Tree Table In this option, the full hierarchy appears with nodes expanded to show matching records. Matching records are indicated using an icon This results display is often preferred by users but produces the slowest performance. Use this display when the hierarchy is small, and it is important for users to see matching nodes in the context of their peers and descendants as well as that of their ancestors. This display (figure 11) is also preferred when most use cases involve searching for multiple target records per query. The full hierarchy remains available within the tree table whether or not any tree nodes match the user's query. If there are no matching tree nodes, place the "No results found" message in a dialog box. Do not clear the tree table, and place the "No results found" dialog box in the table body (see figure 12).
Results and Their Ancestors in a Tree Table In this option, search results appear in a tree table. Matching records appear as leaf nodes under their ancestors. Users can select a matching record and click View in Hierarchy to see the selected record highlighted within the full tree. This results display (figure 13) typically produces acceptable usability and adequate performance. Use this display when users require some context that can be adequately provided by displaying the ancestor nodes when viewing search results. This display works well when most of the use cases involve searching for a single target record.
In this option, search results appear in a flat table along with a list of their ancestors in path or breadcrumb form. Users can select a matching record and click View in Hierarchy to see the selected record highlighted within the full tree. This results display (figure 14) provides the same amount of hierarchy context as the Results and Their Ancestors in a Tree Table display but in a less usable form. Use this design only if the listed path is short in the large majority of cases.
Matching nodes appear in a flat table without information regarding where they appear in the hierarchy. Users can add other relevant attributes, such as Label, to the results table. Users can select a matching record and click View in Hierarchy to see the selected record highlighted within the full tree. This results display (figure 15) provides no hierarchy context for result items, but it supports the display of additional node attributes better than the other alternatives. Use this display only if users do not need to see hierarchy context for matching nodes.
When search results appear in a flat table (that is, Results and Their Ancestors in a Tree Table, Flat Table and Path, and Flat Table), place a View in Hierarchy button on the toolbar of the results table (see figure 16). When users select a result item, then click View in Hierarchy, the results table is replaced with a tree table. The selected item's parent (if one exists) appears as the root note, and the tree is expanded to display the children of the selected result item (if any exist). If users have not selected a row, the View in Hierarchy button is unavailable. Note that the results table should not support multiple selection.
|
| Examples |
Each of the following examples use one of three sample hierarchies: an organization chart, a geography hierarchy, and a chart of accounts. Each example shows:
Note: In this document, when hierarchy conditions appear as section headers, they appear in headline capitalization. However, when you use these conditions in a search, they should appear in sentence capitalization. For more information, see Language in UI: Capitalization. Conditions That Use Family Terminology You do not need to include all of these conditions in the condition choice list. Use only the ones that are applicable to your use cases:
This condition displays all tree nodes under the selected node, children, grandchildren, and so on to the leaf nodes.
This condition displays all leaf nodes under the selected node.
This condition displays all nodes directly under the selected node.
This condition displays all nodes above the selected node, parents, grandparents, and so on up to the root node.
Is the root node or nodes above the selected node in a multiroot hierarchy? Is the root node in a single root hierarchy? If so, you should hide the value field. For more information, see the Is the Root Node condition in this guideline.
This condition displays a node directly above the selected node in multiparent hierarchies. Note: Name this condition Is the parent of node when it is used with single-parent hierarchies.
This condition displays all nodes that are peers of (that is, have the same parent as) the selected node.
Conditions That Use Tree Terminology You do not need to include all of these conditions in the condition choice list. Use only the ones that are applicable to your use cases: This condition displays the selected node, all nodes under it, children, grandchildren, and so on to the leaf nodes.
This condition displays all leaf nodes (the last nodes in each branch) in the tree including all last descendants of the root node.
This condition displays all leaf nodes under the selected node and is equivalent to the Is a last descendant of node condition.
The root node is the top-most node in a single root tree. Note: The condition should be Is a root node for trees with multiple root nodes and requires a value field if you include multiparent nodes. For more information, see the Is a First Ancestor Node condition.
Conditions That Require Metadata You do not need to include all of these conditions in the condition choice list. Use only the ones that are applicable to your use cases: This condition displays all nodes that are the same distance from the root node in a level-based hierarchy. A level-based hierarchy is a hierarchy in which all nodes at the same distance from the root node are logical peers and have the same label.
This condition displays all nodes that have the specified developer-defined label.
|