Configure OVS for intellisense
Hi All,
As we see all the public OVS are properly configured for intellisense/autocomplete.
Some times, begineers like me having difficult time to configure OVS. This document helps to configure an OVS properly as in public OVS.
Steps to configure OVS for Intellisense/Auto Complete
- Delete default query
- Add a query (Query Builder or SADL Query)
- Configure Handler (optional)
- Configure Inport
- Configure Outport
- Configure Find Form
Scenario : To list all the available book in the BookSelf(BO) and Book Name is OVS field.
Delete default query
In Controller tab, delete the query under Queries folder, which is created by default when the OVS is created. Find this nice document (Some Thoughts about Queries) by Horst, will get to know the reason to delete the default query. While deleting query you are asked to delete the existing SearchParameters, you can overwrite the existing binding of SearchParameters or recreate it.
Add a Query
A query is needed to process the autocomplete. I provided both the query, you can choose any one query and proceed below.
a.Query Builder
Create a query builder as show below.
Add New Item and Select Query.
In the Define Query Parameter, under Basic Find column select the fields which you want to do auto complete, in my case I select Book Name and ID
Once you finish active the BO so that it will activate the query. Now get back to OVS UI,
In Datamodel tab, bind your structure and SearchParameters to the query, make sure all your elements are bound to the elements under the query.
In Controller tab under Queries folder bind your query to QueryByElements of QueryBuilder. bring down the SearchText under QueryByElements to Selected Query Parameters table, SearchText is the key thing in autocomplete.
For more details of query creation : Refer 1605 sdk documentation : 8.3.3.4 Create a Query
Then proceed to the Handler Configuration
b.SADL based query
Create a SADL query as shown below.
Then proceed to the Handler Configuration
Configure Handler
After configuring query, select the default set and in the right hand corner you can find the set OnSelect to GetValueHelpHandler under Events
GetValueHelpHandler
Set Query Name and BO Model
RetrieveValueHelpHandler
Set Query Name
SetValueHelpHandler
Set Query Name and BO Model
Configure Inport
OVSValueSelectorInPort
In parameterBinding column, select the SearchText while we created our query.
OVSValueSelectorOutPort
In parameterBinding column, select the ID and Name which you want to show in OVS, in my case I want to show the BookID and BookName
Configure Find Form
Lets complete final step, map the SearchText to Find Form
Select designer tab, in the Properties explorer under Design, Select the Find Forms and select the SearchTextBinding and bind it to the SearchText as we created during query.
In the DefaultSet Mapping make sure your DefaultSet uses FindFomPane which we created just before.
Thats all about the configurations. Now get into to the screen where you want to see the OVS, in my case opened the QAF and selected the Book field and assigned the OVS component ( Refer: 9.4.3.18 Configure an Object Value Selector in 1605 sdk documentation).
As you can see, when I type ‘the’ it shows all the book name that begins with ‘the’.
****************************************************************************************************************************************************
Regards,
Senthilmurugan
This is a good guide. Thanks for this.
Adding to this: The SADL query did not work for me. They seem to have a bug filtering by Indicator fields (Booleans), they just ignore whatever you define on the parameters of the query. If you have this issue try creating an SDK query (the first method defined above).
Cheers,
HI Senthil ,
While creating a SADL Query ,you have used parent Component and parent path ,but in my case there is no such data.What should I give?
Hi Pranav,
If you don't have parent component, no problem ignore it. Search text, inport and outport configuration are the key things.
Ok..Thanks.
Hi my friend,
thank you very much for this. Sadly this does not work by now. I do miss anything, but what.
You did write :
"In Datamodel tab, bind your root to the query and SearchParameters to the query, make sure all your elements are bound to the elements under the query." ==> But in the screenshot you do connect "Items" with the query "Intelisense" , an not the root. What is right?
On the other Hand there are sometimes 3 Elements under your SearchParameters Structure, and sometime it is just the Search Parameter. What is right?
I still get the eror "Outport of the ovs component is not configured right".
Can you help?
Thanks in advance
Regards
Erhan
Sorry for the inconvenience Erhan,
“In Datamodel tab, bind your root to the query.......
I meant the prime data structure which is bound to the query.
Here I used the structure ‘Items’ mapped to the query. And the fields which are mapped under the Items are used in the UI as well as outport.
Now we will get to the elements under Search parameters
While creating a query, you would have selected some elements for ‘Basic Find’ (whatever you type in the SearchText box it will be looked upon the elements which are checked under Basic Find).
In my case. book id and book name. Those elements are created automatically under search parameters if SADL query is used or can be brought manually if query builder is used.
And the elements which I used the parameter binding of outport is the one which is checked under the Basic Find option of the query. One can use those elements as filter elements in the advanced search as well.
Regards,
Senthil
HI Senthil,
Thanks for this. As i'm a beginner, i'm not sure whether we can add more fields to type ahead. For eg, besides ID and Name, can we add Book description and few more fields as well?