Search and Query Templates

Last Updated 4-Jan-2004

General Description

There are many different types of search used throughout BLAF applications, each type with several options depending on the required functionality and needs of the user to perform the specific task. Some types of searches serve a unique purpose (i.e., quick search allows a user to search across tabs and objects in an application) and others may have similiar purposes (i.e., searching for an object or objects), but offer a varied layout choice (i.e., search as a section within an object list, search in a side navigation area of an object list). The contents of this search guideline are as follows:

Guideline Attributes

Spec Version # - 3.1
Spec Contributors - Betsy Beier, Katie Candland, Raymond Wong, Mervyn Dennehy
UI Models - all models
Example Products - all products
Related Guidelines - Object List Templates, Tabs, Global Buttons, Content Layout Templates, Hide/Show Element, Personalization of Views (Tables and HGrids), Search Flows

Interaction and Usage Specifications

Overview of Searching in BLAF

Across BLAF applications, there are many different types of search pages used depending on the requirements of the application, and needs of the user to find the objects needed to perform tasks. Search functionality in BLAF is surfaced on object list pages in different formats (such as a criteria section, a quick search, or in the side navigation). Search is not a generic function (i.e., a tab or a global button) since it is always used in context of a specific object type or centralized aggregate page location, such as a home page or portal page.

Different Search Templates for Different Search Needs

The most common search template used is Search with an Object List where the template is comprised of 2 sections, a search and a results section. (See also Object List Templates: Search and Results Guideline for more details.) This template allows a user to enter in criteria (from a single criteria to advanced criteria) to narrow down the results of a given object type. Other templates that have search capabilities are Object List with Quick Search and Search in the Side Navigation (of an object list or home page). See below for more details regarding usage of each different template.

Multiple Types of Backend Search Technologies Available

Across Oracle there are different types of search backend technologies used to actually perform the search query and return the appropriate results once the user has entered information in a search section of a page. These different search technologies may have slightly different front-end UI's, but overall the end-user should not be aware of the differences. For example, two types of search technologies used in Applications (ERP and CRM) are SQL-based searching and Intermedia-based searching. Each has it's unique benefits, but again, the end-user should not be exposed to the different pro's and con's of each search type, but be able to perform a search and retrieve results regardless of the technology used. See below for some more details regarding these two types of search technologies.

General Search Notes

Below are interaction notes outlining the expected behavior when a user enters various types of information into a search criteria field on one of the various search templates. (For detailed flows, see Search Flows guideline.)

Each type of search template has specific instruction text. For details, see Matrix of Search Instruction Text below.

Basic Search Criteria Field Behavior

Since a variety of search options are allowed (i.e., simple search with one criteria, advanced search with multiple criteria), it is important to understand the basic behavior of a search criteria field when data is entered into the field, and the "Go" button is selected.

Note: Blind queries (searches without filling in any fields) are never permitted in any type of search, because of excessive response time. A blind query results in an inline error message with the following text: "You must specify search text before starting your search."

Single Search Field in a Criteria Section

On an Object List Page (Search of One Attribute)

On an Object List Page (Keyword/Multiple Attributes)

On a Home Page or Aggregate Content Page
Choice Lists with Search Fields

Multiple Search Fields (or Widgets) in a Criteria Section

Case Sensitivity

The search critieria text fields should NOT be case sensitive but allow the user to enter in upper or lower case letters and retrieve similar results.

Length of Search Time/Performance Issues

It is recommended to have an optimized search, so that the user does not have to wait a long time for results to be retrieved. Depending on the size of the data set being search, and/or the complexity of the search, the search time may vary. Users should be aware of these issues prior to conducting a search, so that they will know what is expected, and/or may avoid certain conditions. Also, during a long search retrieval, it is also important to give the user information that the search is being conducted. Below are some UI techniques that may be used for searches that may take a long time:

Note: Blind queries (searches without filling in any fields) are never permitted in any type of search, because of excessive response time. A blind query results in an inline error message with the following text: "You must specify search text before starting your search."

Wildcard Searching

Implicit Wildcard at the End of a Value

If a user enters a string, the search is treated as a wildcard search ([partialstring][wildcard]) with the wildcard implicitly appended to the end of the string. A user does not need to enter a percent symbol to perform a wildcard search. If the user explicitly enters a wildcard at the end of a string (i.e. "liz%"), the extra wildcard is ignored since there is already an implicit wildcard at the end of the string. (Note: "%" and "*" should be allowed as wildcard symbols.)

Wildcard at the Beginning of a Value

The user may enter an explicit wildcard as the beginning of the string if so desired. The implicit wild card will also be added to the end. For instance, if the user enters %liz, the search will return:

NOTE: In the OA Framework (ERP and CRM Applications) leading wildcards are prohibited due to performance overhead. If a wildcard is entered at the beginning of a string, OA will trap as an error.

Multiple Strings in Search Field

Depending on the search backend technology used, there are slightly different behaviors when a user enters in multiple strings into a search field.

For SQL-based searching, if multiple strings are entered into a field (say a "Customer Name" field) it is treated as a single entity or single string.

For Intermedia-based searching, if a user types multiple words into a search text field, the system searches by implicit "or", and does relevance ranking using "and". This may vary if a condition is associated with the search criteria field. See Intermedia-based Conditional Searching below for more details.

Quote Usage

Quotes are allowed in Intermedia-based searching. When used, the words within the quote will be searched in that exact order.

Boolean Operator Usage

In general, users find forming complex query statements with many levels of "and" and "or" statements a difficult task. For most all BLAF applications, there are 2 simple options provided for the user to perform these more complex queries: using "and" and "or" surrounding a set of criteria or using "and" or "or" within a specific criteria.

An expert user who may be familiar with more complex boolean searches, though, may need the ability for more complex searching. Some BI applications may have this capability. This UI is handled through a query building process (or a step by step/wizard approach to building a query), and is not in a typical search/results page layout.

And/Or Surrounding a Set of Criteria

In condition-style advanced searching, using SQL-based backend technology, a radio group is exposed surrounding the entire criteria set to denote whether or not the search criteria should be "and" together, or "or". See below under Advanced Search with Conditions: SQL-based Conditional Searching for more details.

And/Or within a Specific Criteria

Intermedia-based search technology allows a user to have "and" and "or" functionality per certain criteria type. For instance, when condition-style advanced searching with Intermedia is used, a condition may be "Match Any Words". The user may enter in multiple words within the associated text field. These words would form an "or" statement. Another conditions allows the user to "Match All Words". Again, the user may enter in multiple words into the associated fields. These words would form an "and" statement. See Advanced Search with Conditions: SQL-based Conditional Searching below for more details.

Search with Conditions

Conditions such as: less than, greater than, is, is not, begins with, etc. should be in a choice list associated with a search criteria field. These terms should not be entered into the search field if a user is trying to form a query statement. Equivalent symbols for these terms should not be in the choice list, words should be used. For more details on condition-style advanced searching see below under:

Symbols

(Note: This section may be edited with more current details - Oct-2003)
If a user enters other symbols into a search field such as a currency symbol (dollar sign, yen symbol, french franc symbol), or sentence punctuation (comma, question mark), the search should ignore these. An inline information message box may appear after a user performs a search with these symbols stating that these symbols are ignored.

Misspellings

If possible, closely associated words, or correctly spelled words should be provided if a user enters an incorrect spelling of a word (e.g. search that can pull back results based on correct spelling). This feature may be handled with Intermedia-style searching.

Search with an Object List

There may be 100's-1,000's of records regarding one specific object type. Searching allows a user to narrow down the list to a manageable size. The different search criteria section options (simple, advanced, etc.) provides the user with more functionality to narrow his/her results set. These different search criteria sections can toggle between each other to allow the user flexibility in the type of search he/she may want to perform.


Object List Template with a Search Criteria Section and a Results Section


Different Search Section Options Toggling Between Each Other


Note: For more information about the "Views" section, see the Personalization of Views (Tables and HGrids) guideline for details.

Search Criteria Section with an Object List

The search criteria section on the object list toggles between simple search, advanced search (as conditional statements, or large set of attributes), and views (table queries and customized display.) Depending on the complexity of the object (if the object does not have too many attributes associated with it), simple and advanced search can be combined to form a search with more options (hide/show more options). This option may toggle between Views. Below outlines each search criteria section option.

Simple Search Section

A simple search criteria section allows a user to quickly search for an object or objects based on a key attribute(s). This option is typically displayed as the default search section when a user first comes to an object list page.

Search with More Options Appended Section (Hide/Show Used)

Search with More Options should be used when a user typically only searches on a key attribute, or a few attributes, but occassionally may need more attributes to search by in certain circumstances. This option is a combination of a simple search and advanced search and not used that often. This option may be used when the object that is being searched does not have too many associated attributes. (For larger objects, it is better to use the simple search/advanced search toggle option.) To reduce confusion to the user of too many tiers of search options, the "Search with More Options" section should not toggle with Advanced Search, but just toggle with a "Views" section. (Only in rare exception cases should this be allowed.). If in the "more options" region, there are many attributes, it is best just to use an advanced search toggle button for this, rather than the hide/show region.

Advanced Search Section

Advanced Search allows the user to search based on many attributes of an object. There are 2 variants of an advanced search criteria section, advanced search with many attributes and condition-style advanced search. Below outlines the differences between the advanced search section options.

Advanced Search with Many Attributes

This option is used when a user needs to search for an object or objects with many associated object attributes. He/she may not have found the object or objects in the simple search, and want more attributes/criteria to fill out to find exactly what he/she is looking for. For instance, the user may be searching for all projects that were started by a certain date, with a certain status, are managed by a certain person and fall under a specific organization. Advanced Search with Many Attributes section allows the user to fill out these specific criteria/object attributes to retreive this type of query.

Advanced Search with Conditions

For more complex querying capabilities, the advanced search may be shown with conditions associated per object attribute. There are two types of condition building queries. Each type has somewhat similar front-end UI features, but varies based on the backend search technology that is used, either SQL-based or Intermedia-based. The end-user, though should not be aware of this backend difference. Also, it is not recommended to mix the two technologies on the same page. The basic common features of these two condition building search options are:

The differences between the two types of conditional searches are outlined below:

SQL-based Conditional Searching
Intermedia-based Conditional Searching
Multiple Sections of Advanced Search Criteria

In rare cases, when extreme amounts of search criteria need to be available to the user, it may be applicable to have a search criteria grouped in multiple sections. The single section of search criteria does not fit with this requirement, and the user must navigate to a full advanced search page. See below under Multiple Sectioned Advanced Search as Own Page for details.

Views Section

Views are personalized and/or seeded searches (criteria and display).

Object List with Quick Search

The "Quick Search" allows a user to search across an applications tabs (across multiple objects). For instance, an application may have 4 tabs, "Home", "Customer", "Orders", "Products". The quick search may contain a choice list with the object types, allowing the user to quickly search for a specific order, a specific customer, or a specific product from any page with the quick search available. (The choice list should use key attributes to search by, such as Customer Name and Order Number, unless Intermedia-style search is used and multiple object attributes can be searched based on the object type.) It may also be used for a user to search a catalog of information. (Typically pages within a catalog are within one tab.)

Search in the Side Navigation

Search in Side Navigation of a Home Page

Searching on the home page can allow the user to quickly navigate to the object(s) or section of the application that is most important to him/her.

Search in Side Navigation of an Object List Page

This search allows the user to perform a simple search within the side navigation region, and have the results appear in the content area. This search is not as extensible as the search section used on an object list, and should only be used when necessary. This configuration is good for searching only one object type, and not across objects. It is best when the application does not have a deep hierarchy.

Multiple Sectioned Advanced Search as Own Page

In rare cases, when many attributes need to be searched on (more than 10-15), it may be necessary to have a full advanced search page where the search criteria is grouped into multiple sections. For this type of page, the results do not show on the same page as the criteria. There are other flow issues that need to be taken into consideration when this option is used. See Search Flows guideline for full details.


Matrix of Search Instruction Text

The following matrix provides standard instruction text for each type of search and its optional variations. Current plans for user preferences include the option to turn off instruction text throughout the application or suite of applications. Consequently it is recommended to provide instruction text by default so new users have a more successful introduction to the application. Once familar with the application, users can then turn off the instruction text.

When search functionality is provided without a separate Search subheader, search-related instruction text is appended to the instruction text for the page as a whole. Depending on the length and complexity of the other instructions, developers may need to omit the search-related instructions.

Note: All types of search, other than simple search with a single field, may have the requirement to fill out one or more indexed fields for performance reasons. If so, append the following text to the instruction text for that search type: "You must fill out [one of] the following field[s] before starting your search: {FieldNameX} [, FieldNameY] [, and FieldNameZ]."

In drafting instruction text, it is preferable to reuse the same text wherever possible. In the following table, common instruction text is indicated by a number/letter in parentheses in the Options column, such as (2a), where the number indicates the search type, and the letter indicates the option(s). Except for the Views section, no instruction text is provided for Advanced Search/Simple Search toggles (the button makes this obvious).

Search Type Options Toggles to? Instruction Text Syntax Notes
Simple Search None (1a) None|Advanced Search "To find specific {ObjectTypes | 'Items'} type your search text, and then click Go." Experienced users do not need instructions.
One or two choice lists (1b) None|Advanced Search "To find specific {ObjectTypes | 'Items'}, select {a | an} {ParentObjectType | category} from the Search By list, type your search text, and then click Go."  
Multiple attributes below search field (1c) None|Advanced Search "To find specific {ObjectTypes | 'Items'}, type your search text, fill out additional fields as needed, and then click Go."  
Search with More Options Appended (Hide/Show) None (1d) None "To find specific {ObjectTypes | 'Items'}, type your search text, and then click Go. Click Show More Search Options to fill out additional search criteria as needed."  
One choice list (1e) None "To find specific {ObjectTypes | 'Items'}, select {a | an} {ParentObjectType | category} from the Search By list, type your search text, and then click Go. Click Show More Search Options to fill out additional search criteria as needed."  
Advanced Search Various (2a) Simple Search "To find specific {ObjectTypes | 'Items'}, type your search text, fill out additional fields as needed, and then click Go. [For a list of valid wildcards, click the Information button {Info button}]" Wildcard text and Info button may be included if wildcard search is supported.
Views Section with Personalization None (3a) Simple or Advanced Search "Select a view from the list and click Go to display the results. To find specific {ObjectType | 'Objects'}, press Simple Search. To create or update your own views, click Personalize."  
Both Views and Search Criteria Displayed -Iterative (3b) None "Select a view from the list, fill out additional fields to filter the view as needed, and then click Search to display matching results. To create or update your own views, click Personalize."  
Quick Search None (1a) None|Advanced Search in Own Page None Instruction text not required.
One or two choice lists (1b) None|Advanced Search in Own Page "To find specific {ObjectTypes | 'Items'}, select {a | an} {ParentObjectType | category} from the Search By list, type your search text, and then click Go." Instruction text to be omitted except for inexperienced users, typically in mass market applications.
Search in Side Navigation None (1a) None|Advanced Search None Instruction text not required. Optional Advanced Search link should be replaced with a button.
One choice list (1b) None|Advanced Search "To find specific {ObjectTypes | 'Items'}, select {a | an} {ParentObjectType | category} from the Search By list on the left, type your search text, and then click Go." Instruction text to be omitted except for inexperienced users, typically in mass market applications. Optional Advanced Search link should be replaced with a button.
Multiple Section Advanced Search Various (2a) None "To find specific {ObjectTypes | 'Items'}, type your search text, specify additional criteria as needed, and then click Go. [For a list of valid wildcards, click the Information button {Info button}]" Wildcard text and Info button to be included if wildcard search is supported.
LOV Search None (1a) None|Advanced Search "To find specific {ObjectTypes | 'Items'}, type your search text, and then click Go." Use the plural form of ObjectTypes for both single-select and multi-select tables, as LOV search is independent of row selection. Assume that users do not need instruction on how to select rows from single and multi-select tables.
One choice list (1b) None|Advanced Search "To find specific {ObjectTypes | 'Items'}, select {a | an} {ParentObjectType | category} from the Search By list, type your search text, and then click Go."

Notes: Key Flexfield Search is not included in this matrix as it is a special case. Nevertheless, the general manner of phrasing is consistent.



Visual Specifications

Below are details and links to other guidelines that relate to the layout of these search templates.

Removal of Results Section Header

The Results section header is optional on object list pages with search sections. Oracle Applications removes the header in all cases, but other divisions may choose to include or remove it. When the Results section header is omitted, it is replaced with a separator line, as shown in the following image:

Search and Results with Results Header Omitted

Note: It is mandatory for all Oracle Applications products to remove the Results Header. However, this is not a requirement for products in other divisions.

Open/Closed Issues