R D D Declarative Search Project Fusion Requirements: Equirements Efinition Ocument
R D D Declarative Search Project Fusion Requirements: Equirements Efinition Ocument
Declarative Search
Project Fusion Requirements
Status: DRAFT
Disclaimer: The following is intended to outline our general product direction and is intended for information purposes. The
development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of
Oracle.
Contributors
Reviewers
Approvers
Document References
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 2 of 28
Document Title Document Location
Table of Contents
1. Introduction..........................................................................................................................................5
1.4 Definitions..................................................................................................................................6
2. Market Analysis...................................................................................................................................7
4. User Profiles.......................................................................................................................................10
5. Business Requirements......................................................................................................................11
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 3 of 28
5.2.13 F-ADFf-SRCH-15 Retention of user inputs.........................................................................................17
5.2.14 F-ADFf-SRCH-16 Multiple Search Regions........................................................................................17
5.2.15 F-ADFf-SRCH-17 PPR.........................................................................................................................17
5.2.16 F-ADFf-SRCH-18 Multiple Search Regions........................................................................................17
5.2.17 F-ADFf-SRCH-19 100% Declarative Search.......................................................................................18
5.2.18 F-ADFf-SRCH-20 Customization........................................................................................................18
5.2.19 F-ADFf-SRCH-21 SOA support...........................................................................................................18
5.2.20 F-ADFf-SRCH-22 Fuzzy, spelling and thesaurus................................................................................19
5.2.21 F-ADFf-SRCH-23 Highlighting...........................................................................................................19
5.2.22 F-ADFf-SRCH-24 and 34 Quick Find – local.......................................................................................19
5.2.23 F-ADFf-SRCH-25 Fielded Search........................................................................................................20
5.2.24 F-ADFf-SRCH-26 “OR” condition......................................................................................................20
5.2.25 F-ADFf-SRCH-28 Ranked Results.......................................................................................................20
5.2.26 F-ADFf-SRCH-29 Mini-reports...........................................................................................................20
5.2.27 F-ADFf-SRCH-29 Operators................................................................................................................21
5.2.28 F-ADFf-SRCH-31 Flex Fields..............................................................................................................21
5.2.29 F-ADFf-SRCH-32 Map results.............................................................................................................21
5.2.30 F-ADFf-SRCH-33 GIS query support..................................................................................................21
5.2.31 F-ADFf-SRCH-35 Continuous Search.................................................................................................22
5.2.32 F-ADFf-SRCH-38 View Functions......................................................................................................22
5.2.33 F-ADFf-SRCH-39 Separate Search / Results.......................................................................................22
5.2.34 F-ADFf-SRCH-40 Seeded Views.........................................................................................................22
5.2.35 F-ADFf-SRCH-41 Most Recent...........................................................................................................22
5.2.36 F-ADFf-SRCH-44 Design patterns.......................................................................................................23
5.2.37 F-ADFf-SRCH-45 Filtered Lists..........................................................................................................23
5.2.38 F-ADFf-SRCH-46 Quick Find – global................................................................................................23
5.2.39 F-ADFf-SRCH-47 API getCritieria......................................................................................................23
5.2.40 F-ADFf-SRCH-48 API getNonViewAttrCritieria................................................................................23
5.2.41 F-ADFf-SRCH-50 QBE........................................................................................................................23
5.2.42 F-ADFf-SRCH-51 Row Count.............................................................................................................24
5.3 Technology Considerations.....................................................................................................24
6. Use Cases.............................................................................................................................................24
7. Supporting Information....................................................................................................................26
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 4 of 28
8. Open and Closed Issues.....................................................................................................................26
1. Introduction
Much of the user’s experience is defined by the performance and flexibility of the search function.
Today’s search function is often hand-coded, inflexible, and relatively slow (relative to common
user experiences with search engines like Google).
Ensure continuity in user experience, whether from EBS, JD Edwards’ Enterprise One, or
PeopleSoft’s Enterprise, by providing fusion with complete feature-parity across all three
stacks.
Significantly increase the usability and flexibility of the current search functionality.
Boost developer productivity by providing a thorough declarative development that
covers many use cases.
Increase performance on individual queries and across the entire application.
For the purposes of review and approval, the scope of this document is limited to the detail and
discussion of the initial Search requirements for Fusion – the successor product to Oracle E-
Business Suite Release 12, Peoplesoft release 8.x, and JD Edwards’s 8.x. While this document
may speak to some long-term strategic directions, this is not the primary aim of the document.
The scope will be limited to the supported Framework pieces necessary to support the
functionality described below. In general, this includes:
The expected end-user functionality for search regions on a page. A Search region on a
page is the typical process for culling from a much larger data set those specific data
objects (usually, row or rows) that the user needs in order to perform a specific activity.
The process and functions necessary for developers to define search regions on a page.
Complete declarative development would mean the developer would use a graphical
interface to manipulate the search mechanism without ever needing access to SQL, Java,
XML or any other programmatic language.
Searches supported in Web Services. These are captured in the various Web Services
RDDs.
Value Sets, look-up tables and other internal simple search functions.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 5 of 28
1.2 Purpose of this Document
The primary purpose of this document is to detail and discuss the initial Search requirements and
use-cases for Fusion (the successor product to Oracle E-Business Suite Release 12, PeopleSoft
release 8.x, and JD Edwards 8.x). It is expected teams of developers will build products to meet
these requirements.
A secondary purpose of this document will be to discuss strategic direction for the purpose of
justifying these requirements, setting context, and aiding development of these functions in
alignment with long-term goals.
The primary audience is ST and ATG developer teams, specifically those dedicated to
development of search functionality. Included in that group are affiliated teams, such as Jdev, QA,
documentation, architects and User Experience.
The document uses technical terms and is not intended as a complete business rationale for
supporting any one individual requirement or the entire project as a whole. Business discussions
are indented to help convey an understanding of the requirement to the development teams.
It is also intended for review by Application development teams to ensure it conforms to their
existing and future requirements.
1.4 Definitions
Term Definition
Contains Operator currently used by E, E1 and EBS applications to perform a pattern-match table scan through a
SQL "LIKE" clause. This can be a very expensive operation.
Filter A rapid reduction of the number of records shown in the results table based on one or more exact criteria
provided by the user.
CBO Cost-based optimizer. Database functionality that collects statistics about the underlying data structure to
enable the optimizer to choose the best course for resolving a query, regardless of the syntax used in that
query.
Quick Find BLAF specification term used to describe a single query across multiple pages in a pageflow. Described
here as having a local variant and a more global variant for navigation purposes.
Find-within-results An attempt to locate the next instance of a single precise query term within the result table without
altering the number or order of the result table. Similar in function to the "find on this page" function in
IE, acrobat, excel, etc.
Fuzzy-match Any method for expanding a query to return relevant related items that imprecisely match the original
query terms.
Navigation A hierarchical ordering of information the user interacts with to locate a specific item (in most
applications, this is typically a "page;" but in portal, it may also mean a specific document).
Proximity Search A search query operator that returns results where two query terms are in close proximity to one another;
the closer the proximity, the higher the relevance ranking.
Query The method used to describe which items to retrieve from the database
Sort An ordering of the items in the result table; does not change the number of results.
Stemming function Built-in language functions that automatically expand the query term to include all lingual variants of that
query term. Simple stemming allows for typical verb variants, such as swim/swam, bring/brought…
others also include proper names such as bob/robert and NYC/New York City.
Thesaurus function Built-in language functions that automatically expand the query term to include synonyms of that query
term; customizable thesauri allow a manual mapping, I.e. "mobile phone" to "cell phone." Natural
language processing/semantic analysis engines reduce the need for manual thesaurus mappings.
Wildcard A character inserted into the query to substitute for any of one or more characters.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 6 of 28
2. Market Analysis
Whether we like it or not, Google sets the standard in Search. It may not be a fair comparison, but
our customers frequently say: “Google searches the entire Internet; Oracle just searches my
database. Why can’t it be like Google?”
To today’s web-savvy users, the current search utility is an anachronistic throwback to green
terminals and command-line interfaces. Users want a flexible yet simple design that rapidly
returns what they request. More often than not, Oracle presents the exact opposite: a laundry list of
criteria, each with a set of search operators that make little sense to the casual user. Issues like
case-insensitivity and in-exact matching are so common today, users are annoyed when they see
Oracle’s search screens frequently that lack that flexibility.
These expectations are not going to diminish. Rather, they are likely to increase significantly over
the next two years.
Bill Gates believes Google is his most threatening competition, and he has pivoted his entire
company to counter that threat. Vista is more than a convergence of the file system and database;
its aim is to redefine the way people find information by driving natural language search
functionality into every Microsoft application. From the start button to any time you hit “open” in
a Microsoft application, you'll be working with the omnipresent, omniscient, incredibly fast search
interface.
Fusion will leverage Oracle’s stack advantage to reclaim its dominance as the world leader in
Enterprise information storage and retrieval.
A database-neutral application like SAP may not ever be able to deliver to the market's
expectation. But SAP understands the need, and some of its plans in Mendocino call for a direct
integration into Microsoft’s search facilities. Beginning in 2006, Microsoft will offer applications
with many integrated transactional search capabilities, allowing users to do things like
automatically link a calendar item to the billing account in SAP (which, of course, begins with a
search of the possible accounts).
Microsoft’s integrated Search capability, in the opinion of this author, constitutes a significant
threat to Oracle’s application business.
Customers in nearly every application segment are requesting additional Search functionality.
They are requesting:
More simplicity and flexibility in the search terms, without sacrificing precision when
needed.
Blindingly fast returns, so that rapid iteration can occur.
Results that support a multiplicity of different data types, often federated together –
documents, rowsets presented in a table, H-grid, tree, to data plotted on a map.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 7 of 28
A capacity to define synonyms for common search terms.
A capacity to easily refine the search, using more criteria if needed, and a capacity to
save that search for future use.
For better navigation to specific workflows or content pieces.
For the system to make “smart” decisions based on previous choices and/or context of the
user. If I am a US employee, and I search for “benefits,” chances are I don’t want the Chinese
benefits policies.
For example, recruiters want better facilities for comparing requisitions to resumes: to declare
common synonyms in technical jargon, to discern between finding a search term in college
experience as opposed to job experience, and to locate an candidate addresses on a map to
determine proximity to the job site.
In Forms, application developers have created many of the search pages through manual hand-
coding. In general, these are difficult to manage and upgrade, and users find them cumbersome
and restricted. There is at least one example of an Oracle Text application being built on top of
Forms in the Content Management application for CRM.
EBS applications developed in OAF can use the declarative function called the OA Query Bean to
define their searches. A wizard-like function, this walks the developer through each step of the
process for creating a search page and results table, while using the metadata constructs to
generate much of the underlying SQL.
This is not a true declarative function: developers must be aware of the underlying data
schema during many of the steps of the OA Query Bean.
Use of the metadata is mostly textual; in general, GUI functionality like drag-and-drop is
not supported, and thus it is common for the developer to mistype or mismatch the metadata
components on even simple search pages.
OAQB handles many simple use cases, but it does not provide assistance in many
complex use cases – which are increasingly the more common variety. Thus, OAQB is not
frequently used by many of the application development teams. When it is used, developers
will resort to the “advanced mode” which allows them access to manipulate the SQL for every
query.
For the reasons cited above, developers frequently avoid OAQB altogether and manually
code each individual search page and query.
Functionality such as thesaurus, spelling, and conditional logic are generally not
supported through this function. Fuzzy searching is also limited.
The vast majority of PeopleSoft’s search pages were created automatically; it was as easy as the
developer selecting a few check boxes in the IDE. This insulated the developer from all SQL, and
allowed the SAM layer (SQL Access Method) to provide a common syntax across every database
platform. However:
The search mechanism was extremely inflexible, and one application pillar, CRM, chose
to develop a wholly new search function because of the lack of configurable Search
functionality.
Support for Full-text, documents, and thesaurus was through embedded executables
provided by Verity, which the app engines call directly. In addition to being difficult to
manage and upgrade, it created platform support issues and migration from Verity-specific
syntax.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 8 of 28
In comparison to either of the other two stacks, EnterpriseOne enjoys a much greater degree of
centralized functions. Search pages are defined declaratively and automatically, and full text is
done through a programmatic interface Verity.
1. The Oracle Database will be the only database supported for application development.
This is critical: some demands of declarative development will require Oracle-specific
functionality, such as outer joins and Oracle Text. Moreover, we intend on optimizing the
stack for a performance advantage over SAP.
2. Application developers may, but often will not, employ methods to ensure the search
functions map to specific user needs. Thus, generic search regions will need to be flexible
enough to be both sufficiently self-descriptive for the casual user and sufficiently
powerful to accommodate power-user requirements.
3. All Search functions will be both multi-lingual and fully accessible to persons with
disabilities. However, it is also assumed these specific requirements are covered by teams
dedicated to those endeavors.
4. During design time, application developers are often ignorant of the data schema or the
data load/performance implications of specific searches.
6. The Peoplesoft model for declaring Search functions was too inflexible for many
application needs, and the OA Query Bean is not functional enough to handle most use
cases. Fusion declarative search development will need to provide both flexibility and
accommodate a large number of complex application use cases.
10. Fusion applications will not have any dependencies on PeopleSoft or JD Edwards legacy
technologies.
11. While the goal is feature parity, this release will not contain comprehensive automated
migration of PeopleSoft and JD Edwards application data.
12. There will be selected automated migration/upgrade support for EBS applications (meta-
data, configuration settings and personalizations). ADF is the successor to OAF and will
inherit OAF functionality.
15. Business application developer and business application system configuration will be
target for AS11 product
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 9 of 28
17. We will have a complete meta-model of the Fusion applications, including the mapping
from versioned files to application objects to business functions to business flows.
18. A Standards Based Logical common canonical for core business objects will be defined.
However, it is also required to search external business objects, which may not follow
standard naming conventions.
19. Resource Catalog, Integration Repository, MDS and Virtual Content Repository have
very similar search needs with regard to exposing software artifacts to developers and
business analysts.
20. Declarative Development of Search components will ensure better LCM through easier
upgrades, maintenance and performance tuning.
4. User Profiles
Frequency of Technical/
Application Web
User Type Use Experience Description Examples Critical Needs
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 10 of 28
Flexible criteria, saved
searches, Excel-like
This person may also be
features in the table, and
using the application on a
CFO, CRM call integration with desktop
daily basis, but the searches
center manager, apps. Speed may not be as
Knowledge Daily to are broader and result sets are
High Business Analyst, critical, but users may
Worker weekly larger. They are typically
HR Manager, need access to more than
making mass manipulations
recruiter 200 rows of data.
of data and expect Excel-like
Increasingly, these are
qualities in the table.
opportunities for
“dashboard” technologies.
Flexible criteria,
Developers searching for
High federation, and the option
software artifacts from
Daily --though to deselect sources are all
disparate and heterogeneous Developer,
Developer (during low critical. Return set must
systems, even when bereft of Business Analyst?
design time) domain reflect the relationships
good naming conventions or
knowledge between objects and
descriptions.
support tree navigation.
5. Business Requirements
Priority Definition
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 11 of 28
5.2 Business Requirements
By using the Jdev and the successor to the OA Query Bean, it should be difficult -- if not
impossible -- for a developer to create a useless, sub-performing, non-uniform or unreliable search
pages.
To clarify:
This requirement only addresses performance. Other requirements address the utility,
uniformity and reliability requirements.
The requirement is that all searches should take no more than 2 seconds – from the point
of executing the “go” button on the client through the middle tier to the database and
back to fill the table with results.
The requirement is only in for typical “search” use cases, meaning queries used in a
typical page flow transactional setting and excluding structured queries for reporting
purposes.
The assumption is that ratio of hardware to data/concurrent users will remain the same or
be improved in Fusion, and that it is not an option to ask customers to change the TCO
equation.
As expected, there are many issues with this requirement. However, the requirement is iron-clad:
clear user experience data indicates that user behavior is aversely affected when the speed of a
query falls below two seconds. Indeed, the common user behavior is to re-issue the same non-
performant query a second time, thus doubling the performance hit.
Moreover, the landscape is filled with commonly used application where nearly 100% of all
queries return in less than two seconds: Google, Gmail, Google Maps, Thunderbird, etc. If
Microsoft’s desktop search is an indication of what Vista will provide, there won’t be a “go”
button and the search will return results faster than the user can type.
Oracle has no choice but to find a way to ensure sub-two second search performance. The
market is already demanding it, and that will only increase as the number of sub-two
second search applications proliferate – including, especially, Vista and its 90%
marketshare.
Oracle’s stack advantage should mean customers obtain both a TCO and a performance
advantage over SAP, even assuming that standards-based Java renders it comparatively
slower.
There are many paths to resolution, but none as powerful as providing a declarative
development environment. As opposed to managing millions of individually-coded SQL
statements, performance teams can concentrate on optimizing through a centralized
infrastructure of code generation. Moreover, this provides for easier upgrades and
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 12 of 28
additions. Lastly, the model can leverage its knowledge about the relationship between
data objects as well as the underlying schema, not just for primary and alternate key
generation but for understanding data loads and query plans. Over time, Jdev might not
just influence the schema design, but perhaps even dictate it through UI-first
development.
1. Have multiple versions of the Search Component that address the distinct types
of users likely to encounter that interface. A casual user to a self-service site has
different skills and experience than a production user, and it may make sense for
application teams to have separate components purely for the purpose of making
the functionality / performance tradeoffs necessary.
3. Given additional discussion with the Jdev guys, there may also be some ability
to indicate on the model (or derive from the schema) which queries and
conditions are likely to involve large amounts of data.
4. Provide a simple monitoring device that can alert System integrators and
deployment consultants when specific queries and conditions are not performing
and allow them to “tune” the application through personalization / customization
options before the application is deployed for the appropriate mix between
flexibility, performance and hardware. (These options may also be beneficial for
customers who experience seasonal peaks in volume, such as the end of the
quarter).
b) Another suggestion is for the middle tier to collect its own statistics
about queries generated on the page and tune the options for
operators and required fields as necessary. For example, if a user
attempts “contains” query on the “customer” criterion (and nothing
else) and the resultant query takes longer than 2 seconds, the second
time that screen is generated:
These are not requirements; it is not the purpose of this document to design the application to meet
the requirements. Rather, the requirement is stated above, and these options are provided for
discussion and context purposes only.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 13 of 28
5.2.2 F-ADFf-SRCH-02 BLAF Consistency
The declarative development of Search regions must adhere to the guidelines of the BLAF (and
most recently BLAF+), including the Search, Tree, Table and Hgrid specifications. These are
included in the related documents above.
To clarify:
The BLAF specification has several additional requirements and several changes to the current
search look-and-feel. Most prominently, the approach prohibits a basic/advanced search motif in
favor of a query-builder motif. As the experts in User Experience, and in accordance with user
testing and feedback, the search component requirements must adhere to the BLAF specifications
when approved.
It is not a requirement for the search component to be the BLAF enforcement vehicle. Rather, the
resulting search experience should comply with BLAF by default.
Searches should be "reusable" in other pages. The product resulting from creating a search panel
and mapping those criteria to fields (and associated SQL, XML and Java) must be stored in a
location that can be easily accessed by other developers for reuse
It is assumed that the search components will persist in the “resource catalog” or in some
consumable fashion in MDS. Searching for search components, and other artifacts, is discussed in
a future requirement.
Implied "AND" condition: Unless explicitly changed, the behavior for resolving criteria will be an
intersection, or Logical "AND." User enters one or more criteria with the expectation that every
result will meet every condition.
Unless explicitly changed, the action of "search" will be initiated only when the user presses on
the "go" button. A "clear" button will remove all values in the criteria fields
The clear button must only control the fields on the specific region it is assigned to. If there are
multiple search regions on a page, there will be multiple go and clear buttons that specifically tied
to the specific regions.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 14 of 28
5.2.6 F-ADFf-SRCH-07 Date Picker
User clicks on the calendar icon, which displays a modal window displaying that calendar month
(with buttons to select prior or future months). User clicks on the date, and it immediately drops in
that date in the appropriate criteria field.
Wildcard support
Except where expressly prohibited by the developer, every text field criterion should be appended
with an assumed % wildcard at the end of the term. While this degrades performance, it is the
market expectation that a search for “John” will also return “Johnson.”
The framework should also allow developers to interpret * as wildcards as well as %, as well as
escape those characters when used by the application as percentage and asterisk.
Selective search is the OA tool that allows a developer to definite a minimum criteria set before
the query is executed (which also has an option for excluding blind and wildcard searches). It is
described in the very next requirement.
Developers may create conditions on any field, or any combination of fields, to prevent the user
from initiating a query that will not perform. In some cases, the developer may decide to allow
blind queries.
This allows for developers to explicitly choose the conditions that will most optimally render the
performance results they require. It is a bit of a hard-coded response to what should be taken care
of in other areas.
Note there is a difference between required criteria, which the user must always provide, and
selective search, which requires one of a specific combination of criteria, some of which may be
left blank.
In some cases of selective search, the developer may allow complete blind queries where the user
fetches all of the rows possible. This should be a rare case; for instance, when the user does not
know the format of the data enough to declare a search term (how do I know the format for
business unit, if I’ve never seen an example of a business unit. It is suggested that BLAF best
practices encourage developers to employ seeded queries where they might otherwise provide
blind queries.
Issue is whether or not this can be handled entirely on the client-side – which appears to be the
case as described in View Error Validation : F-F-ADFf-01-07
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 15 of 28
If not, there may need to be a corresponding Model requirement.
Case-insensitive Search
User may enter uppercase, lowercase, or mixed case without affecting the results, which may also
be any variant of case
This is should require some form of the case functional query, as the current method of swapping
case for the first two characters is insufficient.
This should be a choice in the search component creation; however, the default should be for case
insensitivity.
As a developer option, if there is only one value in the resulting grid, automatically execute any
subsequent transactional page associated with that item (if only a single master is in the table,
return the corresponding detail page automatically).
The capabilities of the Simple search are a subset of the capabilities of the Advanced search,
which are a subset of the capabilities available in the Views
Advanced screen shall contain all of the possible criteria on a single panel. User will decide which
to use or not use based on his desire.
This should be renamed. Search component should support; all the operators; basic search does
not have any operators (they are implicit). Need to revisit this issue.
With regards to all three of these requirements, the BLAF+ specification for a query-builder UI
may render the functionality for basic/advanced search panels moot. However, if developers are
given the option for two more panels (basic search/advanced search/saved search), those panels
must share functionality as a series of increasing capabilities.
Views page will conform to all existing and planned personalization framework plans
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 16 of 28
Priority: 1 Commitment: Out of Scope.
Personalization requirements, including the requirements for saved searches (otherwise known as
“views”) are covered in the personalization spreadsheet.
User may toggle between panels/pages without losing the work he has already inputted. If the user
inputs some criteria on Simple panel, then chooses Advanced, his inputs appear in the appropriate
criteria fields automatically. If he then enters additional values in the advanced screen and toggles
back to Simple, the additional values are eliminated where there is no corresponding mapping.
Applied to panel switchjing to views and when a user performs any sort of drill-down.
This is an issue; most developers will not define a backing bean. Need to find a way to
declarativly do this.
The Search Components will be bound to same UI model (backing bean) objects. Up to App to
make sure that correct UI model fields used depending on simple / advanced search.
Developers may opt to have more than one search/results regions on a page. For instance, a
recruiter is allowed to search requisitions on one side of the page and compare the results to the
search results of applicants on the other side of the screen. PPR handles the separate refreshes.
To clarify: the declarative development must support multiple search regions on a single pages.
PPR
All portions of the criteria section and the table should be enabled through Partial Page Refresh.
Thus, when selecting an operator that requires a second condition (such as "between"), the panel
will refresh with the additional field.
Note there is a small additional requirement embedded in that statement. The declarative
environment should allow for EL and conditional logic. For instance, if the user selects “between,”
the component should then allow for two criteria on the single field.
Similar conditional logic may be coded by the developer to say if the user selects Canada from the
Country drop down, then display the “Province” field.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 17 of 28
5.2.16 F-ADFf-SRCH-18 Multiple Search Regions
This is a design time requirement (drop-as-search from control palette). There are also an ADFM
requirements to expose the search criteria meta-data.
100% Declarative
Except where otherwise indicated, developers must be able to satisfy all Search use cases simply
by using a declarative interface; that is: without ever needing to code in Java, SQL or XML.
ADFf team is concerned that 100% might not be possible, especially when customized with
flexfields. ADFf team proposed a monolithic design, that could not be customized, where the UI
is dynamically generated based on the model (assuming flexfields are in the model). ADFf team
wanted to see the specific use cases where declarative development would be necessary.
As discussed above, PeopleSoft had a fairly rigid declarative search function, and while it served
well for many years, developers became increasingly frustrated with its lack of configurability.
Indeed, PeopleSoft planned to release a version 9.0 of the product which featured more
configurable search, including declarative ways to address requirements like the next one
(customized poplists)
Also, it is not sufficient to plan to address the use cases currently covered by the OA Query Bean.
Indeed, the OA Query Bean does not support a critical mass of use cases sufficient to realize the
gains in developer productivity or code management.
Product management will continue to work with the app teams in identifying the complex use
cases, and will continue to send those use cases to development for review.
In short, all of the use cases provided in this document must be supported through a declarative
development process.
See also:
F-ADFMBC-10-011 -- Provide support for named WHERE clause parameters.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 18 of 28
5.2.18 F-ADFf-SRCH-20 Customization
customized poplists
Many customizations should be allowed in the search creation interface, such as developers opting
to create customized pop-lists for special actions within a specific criteria. For example, I-
recruitment users may search for postings "3 days ago" "1 week ago" and "1 month ago." These
options require special additions to the WHERE clause as well as to the poplist.
An issue with the estimate. It is not OK to force the developer to do the model binding, instead
this should be declarative. This is not just inserting a value; I need a way to interpret “3 days”
through a dictionary (system date minus 3 days) , then that result should be declarativly mapped to
the query.
Developers should be able to consume SOA search services, such as connections to Web search
services like Google, SOA-enabled document archives, or even SAP/netweaver data.
The assumption is that services are defined and stored in the integration repository, and exposed to
Jdev through the resource catalog. The assumption is that these services are exposed through the
same declarative development mechanism (drop-as-search from control palette) as the other search
functions.
Casual I-recruit user wants to quickly find all job openings related to the general title of "pre-sales
engineer," which could include such titles as "product consultant" or "systems engineer." User
types all of these in a single criterion field, which checks spelling and performs a search based on
a specific Thesaurus and/or other query expanders. A ranked results list is returned, the results
with more relevant terms above those with fewer relevant terms.
Fuzzy should be a relatively easy requirement to meet, as Oracle Text-specific SQL is parsed no
differently than any other SQL. Moreover, there is no delay in updates, per the common
misconception.
Spelling may be more difficult, as it requires a conditional two-step query: if the initial query did
not return matches with a high degree of confidence, provide the user with the highest match from
the dictionary. Applications would be responsible for the “did you mean?” prompt and coding the
logic to pass the value into the search string. However, the dictionary would needs to be accessible
and updateable in runtime.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 19 of 28
Thesaurus is also relatively simple. Assuming Oracle Text does not uses the Thesaurus to build
nodes on the index, the functionality would simply act as a query expander: first the query terms
would be applied to the thesaurus to find additional words, then the query would be executed
against the index with those additional words.
Highlighting
Developer can optionally allow the search result to appear highlighted in the results table or
resulting object; particularly useful in long descriptions, while using multiple criteria, or with
union queries.
A single search must be able to span multiple columns, such that a developer could define a single
generic search box for “location” that would apply any term placed in that box against city, state,
country, province or zip code.
This may be a simple domain search, and is meant to bring Current DB search pages with entry for
each column closer to something like a google search.
However, it is limited in scope and only applies to the search within a specific, single application
use case.
This may require an API to identify what to search (smart model adapter with a dumber view
piece?). May only be possible in simple use cases, where the data is very similar.
It should probably prompt the developer in DT indicating it may create a sub-performing query.
One possible solution for the more complicated use case described above is to include some
logical parsing mechanisms: if the term is a number, then the query is executed against the zip
code column; if it is a two-letter text value, start first with state and province.
Above user wants to execute the exact same criteria (a single location), except with the additional
condition that all results be within the specific date range of the last week.
Easily accomplished since the SQL parser handles Oracle Text SQL no differently than any other
SQL. There will be many use cases where the user will employ both exact and inexact criteria –
resume submitted after a specific date, solutions within a range of cases numbers, etc.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 20 of 28
5.2.24 F-ADFf-SRCH-27 “OR” condition
"OR" conditions
I-recruit user wants to find openings in either marketing or product management without
performing two different searches. Expectation is every returned result will contain an item that
meet either, or both, conditions.
The UE for this function is determined through testing and will be expressed in the BLAF+ Search
specification.
Ranked results
When returning unioned results (through "or" conditions or fuzzy criteria), the list will be rank-
ordered by the number of conditions that are met.
Mini-reports
In some cases, the developer may allow users to create conditional criteria using AND/OR/NOT
operators in conjunction with each other between the criteria. User may also create duplicate
criteria.
This is the equivalent with the BLAF+ specification for a query-builder type of interface. It will
address the needs of the Knowledge Worker, especially if combined with the Excel-like functions
found in the BLAF+ table specification.
Operators
Operators are tied to the data type of the corresponding field and may include presence operators
("begins with" "contains" "="), negative operators ("not ="), or range operators ("<" "<=" ">"
">=").
The functionality proposed here is the exact same as currently provided in all three stacks.
Essentially, the types of operators are tied to the
The only exception would be if the operators are disabled, by an overt action by an administrator
to improve performance, or via a dynamic decision by the middle tier based on the query
performance (as discussed in the performance requirement, F-ADFf-SRCH-1).
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 21 of 28
5.2.28 F-ADFf-SRCH-31 Flex Fields
Flex-Fields
Flex fields must appear as a possible criteria on the search regions indicated by the
developer/business analyst.
Search interface must be able to return results in way that can be consumed and rendered on a
map, using the web services interface provided by. In addition, the search must be able to locate
related zip codes, thus enabling queries such as “find all jobs within 50 miles of 94707.”
The first portion of this requirement will be increasingly in demand, as Google “mashups” provide
significant visual assistance for many common search use cases: resolving a service request,
locating the closest retail outlet, identifying the geographic spread of last quarter’s sales.
Developer can allow users to select multiple areas on a map, which will relate to a query spanning
all of the possibilities between those two locations
Continuous Search
There is no "go" button. The engine executes a search every time the user tabs out of a criteria. On
a tabout, it executes a PPR and brings back the results that meet the criteria at that time. As he
adds or adjust his criteria, the number of returned results changes.
Since first publishing this requirement, Microsoft’s desktop was released providing a nearly
instantaneous search facility. (However, it does wait for the first few characters before firing the
first fuzzy query).
My sense is that this is the kind of functionality we will need to compete, certainly by year 2007.
Users must be able to apply, at a minimum, all of the current search personalization features
including manipulating criteria, sort order, column order, and filters applied to the results;
developers should also retain default view behavior.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 22 of 28
Priority: 1 Commitment: In scope F-F-01-09
This feature does not seem to meet the requirement as stated above. It seems to be a better fit in F-
F- 01-94
Users should be able to manipulate the conditions for creating a search without having to execute
that search. That is, the user should be able to access saved searches, make changes to a search,
then execute the go command, while retaining original saved criteria.
This is currently supported functionality in PeopleSoft and JD Edwards, and is requested by many
app dev teams. Moreover, it is a portion of the BLAF+ Search specification and the
Personalization RDD.
Developers, customizers, Admins, and business-users should be able to easily create a saved
search (seeded view) and make that view available -- as a choice, or as the default choice -- to
users or groups of users of a particular page
This is currently supported functionality in EBS, and currently used by many app dev teams.
Moreover, it is a portion of the BLAF+ Search specification and the Personalization RDD.
Developers should enable users to choose from a drop-down list of most recent searches that they
have performed.
Need design patterns for creating easy, self-descriptive search panels that can morph to the needs
of advanced users creating boolean searches.
Configuration option to display search results (with pre-defined but editable search criteria) upon
page load.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 23 of 28
5.2.38 F-ADFf-SRCH-46 Quick Find – global
Ability to search across multiple fields from one search field. Similar to "keyword" searches, but
used as a navigational aide to get to the beginning of a specific page flow. Some developers
wanted to be able to restrict to n out of m columns.
Assumption is that the portal navigation and/or page flow RDDs are handling this particular
requirement and use case.
Support existing OAF functions for applications to obtain the criteria for the search component.
Applications may then pass some or all of these criteria as a part of rendering the search region.
This is an existing requirement.
Support existing OAF functions for applications to obtain the non-view attribute criteria.
Applications may then pass some or all of these criteria as a part of rendering the search region.
This is an existing requirement.
Also: F-ADFf-LOV-33
To achieve Feature parity with EnterpriseOne, user must be able to input fielded criteria above
each associated columns. The input field must not scroll off.
Requirment added on 7/31: When the entire dataset is known (either because the query requires an
ORDERBY of some other function where the total must be obtained), provide the user with the
exact count (without executing a separate COUNT query, which would have performance
impacts). When the exact count cannot be determined, provide simple mechanism to return an
approximate row count (such as using the CBO statistics) especially when row counts exceed
multiples of 1000.
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 24 of 28
5.3 Technology Considerations
None.
All.
None.
6. Use Cases
Basic Exact Search Casual I-recruit user wants to quickly find all marketing job F-ADFf-SRCH-01 Search
openings. User sees a very simple search screen with the most
Performance
commonly used criteria fields. Picks "marketing" from a drop-down
menu and receives results in a table on the same page within 2
seconds of pressing the "go" button. F-ADFf-SRCH-02 BLAF
Consistency
F-ADFf-SRCH-06 Omnipresent
Functions
Implied "AND" I-recruit user wants to find all marketing positions within the last F-ADFf-SRCH-05 Implied AND
condition week and near his area. Enters one or more criteria with the
expectation that every result will meet every condition. The user is
forced to enter at least
Basic calendar search I-recruit user wants to search from last Monday, but cannot F-ADFf-SRCH-07 Date Picker
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 25 of 28
remember the exact date. User clicks on the calendar icon, which
displays a modal window displaying that calendar month (with
buttons to select prior or future months). User clicks on the date,
and it immediately drops in that date in the appropriate criteria field.
Wildcards/Selective User enters a series of wildcards without realizing the query will not F-ADFf-SRCH-08 Wildcard
Search perform; user is alerted to what conditions he needs to meet in
support
order to construct a performing query.
Clear / Multiple A recruiter has two searches operational on the same screen: one F-ADFf-SRCH-06 Omnipresent
Search regions to fetch applicants, the other to fetch requisitions. She makes a
Functions
mistake in searching for an applicant and presses clear, which only
clears the criteria in the region associated with the applicant search.
F-ADFf-SRCH-16 Multiple Search
Regions
Basic Fuzzy search Casual I-recruit user wants to quickly find all job openings related to F-ADFf-SRCH-10 Case
the general title of "pre-sales engineer," which could include such
insensitivity
titles as "Product Consultant" or "systems engineer." User types all
of these in a single criteria field. An ranked results list is returned,
the results with more relevant terms above those with fewer F-ADFf-SRCH-22 Fuzzy, spelling
relevant terms. Search terms are highlighted in the result setsF- and thesaurus
ADFf-SRCH-23 Highlighting
Single search criteria User is prompted only for "location." Location can be a city, state, F-ADFf-SRCH-24 and 34 Quick
spanning multiple country, province or zip code
Find – local
columns
Compound Fuzzy and Above user wants to execute the exact same criteria, except with F-ADFf-SRCH-25 Fielded Search
Exact search (aka the additional condition that all results be within the specific date
"fielded search") range of the last week.
Retain user-inputted User wants to toggle between screens without losing the work he F-ADFf-SRCH-15 Retention of user
values across panel has already inputted. User inputs some criteria on Simple panel,
inputs
switches then chooses Advanced. His inputs appear in the appropriate
criteria fields automatically. If the user then enters values in the
advanced screen, then chooses to toggle back to simple, the
advanced values that do not have mappings are eliminated.
PPR As the user selects "between" operator, the page partially refreshes F-ADFf-SRCH-17 PPR
to provide the additional field
"OR" conditions I-recruit user wants to find openings in either marketing or product F-ADFf-SRCH-26 “OR” condition
management without performing two different searches.
Expectation is every returned result will contain an item that meet
either, or both, conditions.
Ranked results In the above use-case, user expects the list will be rank-ordered by F-ADFf-SRCH-28 Ranked Results
the number of conditions that are met.
user-chosen Employee wants to deduct all business-related expenses that were F-ADFf-SRCH-29 Mini-reports
AND/OR/NOT criteria rejected by his employer. He uses the Advanced Search page to
conditions generate a mini-report that contains all of the Expense reports he
submitted last year but were either rejected completely or only
partially fulfilled.
Flex-Fields Power user wishes to add a searchable column to flag items that F-ADFf-SRCH-31 Flex Fields
need to be routed to the CEO for approval. This field must appear
as a possible criteria in the advanced search panel -- at least for
this user.
Seeded views Job hunter wants to find all job openings that have been posted F-ADFf-SRCH-40 Seeded Views
within the last day/2 days/week/month. Rather than using a
calendar function and determining the appropriate date, user is
presented with a custom pull-down menu with those options.
proximity to user Salesman wants to fly from San Francisco to New York. He knows F-ADFf-SRCH-33 GIS query
and/or destination of his options for departure (SFO, OAK, or SJO) but does not know
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 26 of 28
his options for destination (JFK, LGA, or EWR). On an interactive support
map detailing all of the airports in the US, he circles his departure
area and his arrival area. All possibilities are returned to him in
order of expense.
Quick Find - Global Casual User desires to navigate to the Expenses page by typing F-ADFf-SRCH-46 Quick Find –
“expenses” into the search box. Context allows the engine to know
global
the user, and thus to when he is presented with the expense page,
it is already populated with his active expense reports.
Continuous Search There is no "go" button. The engine executes a search every time F-ADFf-SRCH-35 Continuous
the user tabs out of a criteria. As he adds or adjust his criteria, the
Search
number of returned results changes.
Declarative A developers creates the experience for all of the above use cases F-ADFf-SRCH-04 Reusability
simply by using a declarative interface, that is: without ever needing
to code in Java, SQL or XML.
F-ADFf-SRCH-19 100%
Declarative Search
7. Supporting Information
1.
2.
3.
Priority: H= High; M=Medium, L=Low
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 27 of 28
No. Description Date Priority Owner Resolution Date
Raised Closed
Project Fusion Requirements<Subject> Oracle Corporation Confidential - For Oracle internal use only Page 28 of 28