Hierarchy Search Guideline http://fusiongps/guidelines/content/guidelines/hiersearch/ Version 1.0.0.1 Last Modified: Feb 13 2016 3:16:17 AM Author: Sherry Mead Contributors: Harris Kravatz, Amy Chen This guideline describes a set of hierarchy conditions that can be added to the condition choice list of a search field when the data to be searched is hierarchical. It also provides guidance on how to display hierarchy search results. Guideline Contents Hierarchy Search Guideline ..................................................................................................................1 Hierarchy Conditions .......................................................................................................................2 Hierarchy Condition Terminology .....................................................................................................2 Family Terminology .....................................................................................................................2 Tree Terminology ........................................................................................................................5 Selection-Independent Conditions ....................................................................................................5 Default Search Conditions ................................................................................................................6 Conventional Search Defaults ......................................................................................................6 Hierarchy Search Defaults ...........................................................................................................6 Conventional and Hierarchy Search Combined Defaults .................................................................7 Hierarchy Search Results .................................................................................................................7 Results Marked in a Tree Table ....................................................................................................8 Results and Their Ancestors in a Tree Table .................................................................................9 Flat Table and Path .....................................................................................................................9 Flat Table ................................................................................................................................. 10 View in Hierarchy ...................................................................................................................... 10 Appendix: Examples .......................................................................................................................... 11 Conditions that Use Family Terminology ......................................................................................... 11 Is a Descendent of Node .............................................................. Error! Bookmark not defined. Is a Last Descendent of Node ....................................................... Error! Bookmark not defined. Is a Child of Node ........................................................................ Error! Bookmark not defined. Is an Ancestor of Node ................................................................. Error! Bookmark not defined. Is a First Ancestor of Node ........................................................... Error! Bookmark not defined. Is a Parent of Node ...................................................................... Error! Bookmark not defined. Is a Sibling of Node ...................................................................... Error! Bookmark not defined. Conditions that Use Tree Terminology ............................................................................................ 19 Is a Member of Branch .............................................................................................................. 19 Is a Leaf Node .......................................................................................................................... 20 Is a Leaf Node Under Node .......................................................... Error! Bookmark not defined. Is the Root Node ...................................................................................................................... 22 Conditions that Require Metadata .................................................................................................. 23 Is a Member of the Level .............................................................. Error! Bookmark not defined. Has the Label ........................................................................................................................... 24 Change History ............................................................................................................................. 24 1 Hierarchy Conditions When hierarchy search conditions are available, the condition choice list (drop-down) should be visible by default. Use ADF Query Basic View, not ADF Quick Query. See the Focused Search Guideline. Any of the Transactional Search Design Patterns may be used for the search. The searchable fields must include: Tree Node The prompt for the Search field must be the name of the object each tree node represents. For example, if tree nodes are employees, the prompt for the search field is "Employee Name". See the example below. Note: ApplCore will provide a "Tree Node Picker" in Drop 7. Use it for all tree node search fields. All select tree node illustrations in this guideline represent the ApplCore tree node picker. Tree Node Label If you are using Fusion Tree Management and have Labels enabled, then the Labels field must be a searchable field. The prompt for the field must be the name of the attribute the label represents. For example, if tree node labels represent Positions, the search field is labeled "Position". See the example below. Figure 1: Tree Node and Label in search region f Figure 2: Tree Node and Label in search results Hierarchy Condition Terminology There are a few different options in displaying hierarchy Search Condition Terminology to the user. The three options are: Family Terminology, Domain-Specific Terminology, and Tree Terminology. Family Terminology Family terminology provides a set of seven (7) different conditions. These conditions include: Is a descendent of node, Is a child of node, Is a parent of node. Some family condition names may 2 be confusing if used standalone. For example, Is a last descendent of node of Node may not make sense when used on its own. Use family terminology when users will be accessing several levels of a hierarchy and will need to use a majority of these terms. Not all of these are required in the condition choice list. Use the ones that are applicable to your use cases. Is Is Is Is Is Is Is a child of node a descendent of node a last descendent of node a parent of node an ancestor of node a first ancestor of node a sibling of node Figure 3: Sample hierarchy: Chart of accounts Table 1 shows the search results of each of the Family Terminology conditions. For a more detailed diagram, click on the link for each of the Family Terminology conditions. Table 1: Search results for family conditions Family Condition Selected Search Results* Node Is a child of node Current Cash, Market, Receivables, 127000 Is a descendent of Current Cash, 100000-100099, 100100; Market, 110000, 110001, node 110002, …, 110099, 110100; Receivables, 120000, 120001, 120002, …, 120199, 121000; 127000 Is a last descendent of Current 100000, 100001, 100002, …, 100099, 100100; 110000, node 110001, 110001, …, 110099, 110100; 120000, 120001, 120002, …, 120199, 121000; 127000 Is a parent of node Current Assets Is an ancestor of node Current Assets, Balance Sheet, All Accounts Is a first ancestor of Current All Accounts node Is a sibling of node Current Prepaids 3 *Note: Matching range nodes appear expanded in the search results. Range nodes are expressions that represent a set of tree nodes. The actual tree nodes appear in the search results. Figure 4: Detailed example of an “Is a child of node” hierarchy search. 1. User selects a hierarchy condition in a search field. 2. User launches the tree picker then selects the desired node. 3. Step 3 in the illustration is not visible to the user. It is included here and in the Appendix to illustrate the definition of the selected condition by displaying the tree nodes that match it. 4. Results are displayed to the user. Note: In Fusion v1, this dialog contains a Tree Table and will only support browsing for tree nodes. Also note that the tree picker behaves like a date picker and is based on LOV Text Field, rather than LOV Choice list (see the BLAF+ LOV UI Spec.) Domain-Specific Terminology Use domain-specific terminology when you are certain it will be 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. 4 Table 2: Examples of Domain-Specific hierarchy conditions for employee search. Family Terminology Domain-Specific Terminology* Is a child of node Is a direct report of person Is a descendent of node Is a report of person Is a last descendent of node Is an individual contributor Is a parent of node Is the manager of person Is an ancestor of node Is in the reporting chain of person Is a first ancestor of node Is the CEO/President Is a sibling of node Is a peer of person *Note: These are examples, not recommended terms. Tree Terminology Tree terminology provides a set of 7 conditions. These conditions include: Is a leaf node, is the root node. Use tree terminology when domain specific terminology is not appropriate, and where tree terminology will be the most familiar terminology for the users. Table 3: Relationship between family terms and tree terms Family Terminology Tree Terminology Equivalent Is a child of node Is a child of node Is a descendent of node (excludes selected node) Is a member of branch (includes selected node) Is a last descendent of node Is a leaf node Is a last descendent of node Is a leaf node under node Is a parent of node Is a parent of node Is an ancestor of node Is an ancestor of node Is a first ancestor of node Is the root node Is a sibling of node Is a sibling of node Selection-Independent Conditions The following conditions are selection-independent. Selecting one of these conditions should trigger a PPR event that hides the value field. Selection-independent searches do not need a value in the hierarchy to compare to execute the search. Table 4: Selection-independent hierarchy conditions Family Terminology Is a last descendent of node Is a first ancestor of node Tree Terminology Equivalent Is a leaf node Is the root node Figure 5: Selection-independent condition: Is a leaf node The Value field is hidden when a selection-independent hierarchy condition is selected. 5 Figure 6: Selection-dependent condition: Is a leaf node under node The Value field remains visible when a selection-dependent hierarchy condition is selected. Default Search Conditions This section explains the Default Search Conditions shown in Conventional Search, Hierarchy Search, and Conventional and Hierarchy Search. Conventional Search Defaults Typical Focused Search default conditions include: Starts With, Contains, or Equals; depending on the field type. Figure 7: Default condition list for character fields See the Focused Search Guideline for the list of default conditions by data type. Hierarchy Search Defaults The Hierarchy Search default recommendation 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 should be “Is a child of node.” 6 Figure 8: Select the default hierarchy condition based on common use cases. Using Conventional and Hierarchy Search Conditions When Conventional and Hierarchy Search are combined, the recommendation is to group conditions by type of search. For example, group Conventional search conditions together, such as Starts With, Ends With, Equals, Contains; then group the Hierarchy Search conditions together, such as Is a child of node, Is a descendent of node. Figure 9: Hierarchy condition list Hierarchy Search Results There are four format options for presenting the results of a hierarchy search: Results Marked in a Tree Table Results and Their Ancestor in a Tree Table Flat Table and Path Flat Table To illustrate these four hierarchy search results options, we will use the example of the following organizational chart as the tree to be searched. 7 Figure 10: Sample hierarchy used in examples Results display examples show the results of the search: “Employee Name starts with K”. The following are examples of the search results shown in the four hierarchy search result formats. Results Marked in a Tree Table Figure 11: Matching nodes highlighted in full hierarchy 8 The full hierarchy is displayed with nodes expanded to show matching records. Matching records are indicated using an icon (see icon request SHERRY.MEAD.2381). 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 their ancestors. This display is also preferred when most use cases involve searching for multiple target records per query. Results and Their Ancestors in a Tree Table Figure 12: Matching nodes and their ancestors Search results are displayed in a tree table. Matching records appear as leaf nodes under their ancestors. This results display typically produces acceptable usability and adequate performance. Use this display when users require some context when viewing search results, which can be adequately provided by displaying the ancestor nodes. This display works well when most use cases involve searching for a single target record. Flat Table and Path Figure 13: Matching records with their ancestors in a flat table Search results are shown in a flat table along with a list of their ancestors in path or breadcrumb form. This results display provides the same amount of hierarchy context as the Results and Ancestors in Tree Table display, but in a less usable form. Use this design only if the path will be short in the large majority of cases. 9 Flat Table Figure 14: Results in flat table with no hierarchy context Matching nodes are shown in a flat table without information regarding where they appear in the hierarchy. Other relevant attributes can be added to the results table, such as Label. This results display 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. View in Hierarchy When search results are displayed in a flat table, with or without hierarchy context, place a View in Hierarchy button on the toolbar of the results table. 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 exists) appears as the root note and the tree is expanded to display the children of the selected result item (if exist). The View in Hierarchy button is disabled if a row is not selected. Note that the results table should not support multiple selection. Figure 15: View in Hierarchy interaction 10 Appendix: 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: A hierarchy condition in a sample search panel Selecting a node from a hierarchical Search and Select dialog with search results displayed in a Tree Table Nodes that match the search criteria highlighted in yellow Note that, when hierarchy conditions are used as section headers in this document, they appear headline capitalized. When used in a search panel, hierarchy conditions should appear sentence capitalized. See BLAF+ Language in UI: Capitalization. Conditions that Use Family Terminology Not all of these are required in the condition choice list. Use the ones that are applicable to your use cases. Is Is Is Is Is Is Is a descendent of node a last descendent of node a child of node an ancestor of node a first ancestor of node a parent of node a sibling of node 11 Is a Descendent of Node All tree nodes under the selected node, children, grandchildren, and so on to the leaf nodes. 12 Is a Last Descendent of Node All leaf nodes under the selected node. 13 Is a Child of Node All nodes directly under the selected node. 14 Is an Ancestor of Node All nodes above the selected node, parents, grandparents, and so on up to the root node. 15 Is a First Ancestor of Node Is the Root Node or nodes above the selected node in a multi-root hierarchy. Is the Root Node in a single root hierarchy. In this case, the value field should be hidden. See the Is the Root Node condition. 16 Is a Parent of Node Is the node directly above the selected node. 17 Is a Sibling of Node All nodes that are peers of / have the same parent as the selected node. 18 Conditions that Use Tree Terminology Not all of these are required in the condition choice list. Use the ones that are applicable to your use cases. Is Is Is Is a member of branch a leaf node a leaf node under node the Root Node Is a Member of Branch The selected node and all nodes under it, children, grandchildren, and so on to the leaf nodes. 19 Is a Leaf Node All leaf nodes (last nodes in each branch) in the tree. All last descendents of the root node. 20 Is a Leaf Node Under Node All lead nodes under / last descendants of the selected node. 21 Is the Root Node The top most node in a single root tree. This condition would be "Is a root node" for trees with multiple root nodes and requires a value field if multi-parent nodes are allowed. See the Is a first ancestor condition. 22 Conditions that Require Metadata Is a member of the level Has the label Is a Member of the Level All nodes the same distance from the root node in a level-based hierarchy. A level-based hierarchy is a hierarchy in which all nodes the same distance from the root node are logical peers and have the same label. 23 Has the Label All nodes having the specified developer-defined label. Change History Date 10-Nov-2008 16-Jan-2008 Description Note added referring to ApplCore Tree Node picker to be available in Drop 7 Fixed examples Recommendation is to include the immediate parent when the user selects View in Hierarchy. Initial Version Author Sherry Mead Bug 7262268 Previous Version 1.0.0.0 Harris Kravatz, Amy Chen, Sherry Mead 7199778 n/a 24