In my last blog(http://scn.sap.com/community/abap/blog/2012/12/08/search-generic-uibbSearch Generic UIBB) I demonstrated how to use the Search GUIBB and in this blog I shall continue to explain how to use the Search GUIBB and List GUIBB(The list GUIBB is used to display the results). I shall continue to give the formal introduction for Search GUIBB again ....
Quick Introduction on Search GUIBB from FPM Cookbook -
A generic design template for displaying a search query which is implemented using the Web Dynpro component FPM_SEARCH_UIBB. You can determine the search query by configuring the Web Dynpro component FPM_SEARCH_UIBB.
The following screenshot details the search component elements:
I would like to demonstrate how to use this "Search Component" functionality. In this blog, I would develop an application which could search employees based on the Employee Number and list the Employee details.
As a part of this development I would perform the following main activities -
- Create a common class which would be used for data storage.
- Create a Feeder class for Search GUIBB which defines the search criteria.
- Create a Feeder class for List GUIBB which displays the results.
- Create WD Application and the respective Application and component configurations.
Step - 1 : Common Class for Data Storage
This class creates the generic data that is shared across components. Like, I would like to create an attribute that stores the search results in the form of table.
While creating this base class, please uncheck the "Final" attribute since we are going to use this class as a parent class in the steps ahead.
Create the following attributes -
Save and Activate this class.
Step-2 : Feeder class for Search GUIBB
This feeder class would define the "Search" criteria(Selection fields in SAP lingo). We have to implement the interface - IF_FPM_GUIBB_SEARCH to achieve this functionality.
Link the parent class - ZCL_FPM_BASE_CLASS to this newly created Search GUIBB -
Implement the interface IF_FPM_GUIBB_SEARCH to add the interface methods -
Though it sounds dumb, but went ahead following SAP's suggestion -
" If your application does not need a particular method, implement an empty method, otherwise the system will dump."
Whichever method you don't want to use, go ahead adding a simple "RETURN" statement to make sure that the application doesn't dump @ runtime.
Built the selection criteria and result table's field catalog in the following interface method -
On clicking "SEARCH" button, extract the respective information into the respective attribute in the following method -
Step - 3 : Feeder class for List GUIBB
This feeder class displays the search results. Create this feeder class with the super class as "ZCL_FPM_BASE_CLASS".
Implement the interface - IF_FPM_GUIBB_LIST to get the interface methods.
Move the extracted search results from the Parent class's table in the following method -
Also populate the results table field catalog in the following method -
Make sure you implement the remaining interface methods even though they are not used.
Step - 4 : WD Application and respective Configurations
Used the smart "ACT" to create the FPM based WD Application and the respective application and component configurations in 1 shot -
Opened my OIF Component configuration and added the "Search GUIBB" to my Subview -
Created the component configuration for my Search GUIBB -
Attached my above created feeder class to the freshly created Search GUIBB's component configuration -
Defined my "Selection Criteria" as "PERNR" by clicking on "Add Selection Criteria". It lists all columns that are added as search criteria in "GET_DEFINITION" method -
Added the List UIBB to this component Configuration.
Went ahead creating the component configuration for List UIBB -
Linked the newly created LIST UIBB's feeder class to this component configuration -
Add the columns that needs to be displayed in the Results table -
Went ahead testing my WD Application to see the desired results -
That's all on "Search GUIBB" concept for now ! Shall continue writing more blogs on more FPM Concepts, so stay tuned !