Siebel Business Process Framework: Task UI Guide > Best Practices for Working with Tasks > Design Patterns for Task User Experience >
About Queries That Users Can Refine
In general, it is recommend that queries be pre-configured into a Task's definition, typically as a search specification in Task View steps. However, sometimes it is just not possible to know at design time the exact search specification that user will need at run-time, which may result in a large number of records that satisfy the pre-defined search specification. Thus, you need to allow users to refine queries by using query-by-example.
In this design pattern, task view step specifies a relatively broad search specification. Task Controller sets this search specification as an anonymous search specification on the given business component, substituting any task properties referenced using '&' prefix with their respective literal values. Task view contains a 'Refine Query' button, which executes 'Refine Query' method on the BusComp, which keeps the original search spec, but lets the user change the search criteria. After entering refined search specification, user clicks on 'Execute Query' button in task view (that is only shown in query mode), which re-executes the query using the newly refined search specification. Note that if the fields that the original query was based on are not shown in the task view, the user can not remove the original query, which is often required.
The Create Order task (in Communications) contains a task view step that allows the user to select a number of products. Initially, the products are searched by the customer's zip code, but that query may return hundreds of applicable products. Thus, the user has the option of refining the query by name (for example, [Name] LIKE '*300 minutes*'). Since zip code is not shown, user can only narrow down the original search spec, but can not widen it.