Let's assume that there is a component which implements an advanced search page where we'd like to enable Saved Search possibility. There are MainWindow window, ViewSet, Search and Result views. ViewSet consists of two view areas SearchVA and ResultVA. BTQAct is used as an advanced search object from ONEORDER component set. It has BTQRAct object as a result. Own UI object (ZWC_SCON here) is used to enable navigation to this component. This component already provides basic functions: it can be started from WebUI, can run search and display results.
Steps to go:
1. Add two value nodes to component controller's context:
node NAVIGATIONDESCRIPTOR with field UI_OBJECT_TYPE type BSP_DLC_OBJECT_TYPE and
node LAUNCHERINFO with field GOREQUESTED type STRING
2. In method IF_BSP_MODEL~INIT of the node NAVIGATIONDESCRIPTOR set property UI_OBJECT_TYPE as a corespondent UI object which is related to this component.
3. Add Component Usage SavedSearchRegistration. It points to component CRM_SAVEDSEARCH and its interface view RegistrationWindow.
4. Redefine method WD_USAGE_INITIALIZE of component controller class and create binding from BTQACT to ADVANCEDSEARCH and from NAVIGATIONDESCRIPTOR to NAVIGATIONDESCRIPTOR nodes of component usage SavedSearchRegistration.
5. Add view area SavedSearchRegistration to ViewSet's htm page.
6. Create this view area in Runtime Repository and bind component usage SavedSearchRegistration to it.
Remark: it's possible to use only one inbound plug, but for better understanding separated plugs are used.
7. Create an inbound plug SavedSearchGo in MainWindow with the following code.
8. Create an inbound plug SavedSearchEdit in MainWindow with the following code.
9. Create an inbound plug SavedSearchGo in Search view with the following code.
10. Create an inbound plug SavedSearchEdit in Search view with the following code.
11. Create Navigational Links SavedSearchGo and SavedSearchEdit from MainWindow (without outbound plug) to an appropriate plug in Search view.
12. In SPRO -> CRM -> UI Framework -> Technical Role Definition -> Define Work Area Component Repository for this component/window create Target IDs. Define UI object and actions there (F - for button Go and A - for button Advanced in Saved Search area at the top of the WebUI page).
13. Add these Target IDs to Define Generic OP Mapping section in Navigation Bar Profile.
14. Check that UI object used here has GenIL Component Name and BOL Object Name set. It can happen that desired GenIL component has not been loaded yet and when you try to navigate to saved search the dump will occur. This settings prevent the dump and make system load appropriate component at startup of the user session.
The component got Saved Search functionality.