Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
J_R
Employee
Employee
0 Kudos

Initial Search Page and subsequent External Navigation in the OVP Floorplan

According to the UI guidelines an OVP application can have an initial page. An initial page is used if it is required to enter data before going to the main screen. The initial page can also be used to present a table of objects (e.g. recently used objects) that can be selected for further processing. In particular, an initial page can contain a search and a search result list. A result list entry may contain one or several links which, when clicked, enforce the navigation to further details of the selected object. In addition, a result list may offer a dedicated button that is intended for the creation of a new object.

For example, an OVP application for the purchase order could have an initial screen that enables the end-user to search for certain purchase orders. The purchase orders are then displayed in a result list below the purchase order search mask. This result list could contain a column showing the purchase order ID and another column showing the name of a contact. Clicking on the purchase order ID would trigger navigation to an overview page for the purchase order details, whereas clicking on the contact name would trigger navigation to an overview page for contact details. Both overview pages, however, belong to different OVP applications. In addition, the purchase order result list could offer a dedicated button that is intended for the creation of a new purchase order. When clicking on this button the OVP would be restarted but show a different Initial Page than normal.


The navigation from an initial search page to the overview page of the same object could be done in-place. In principle, this would be no problem for the OVP floorplan. However, this is often not ideal from usability perspective and sometimes even misleading. Hence, the general concept for SAP applications that is described in the UI guidelines foresees ex-place navigation from an initial search page to the overview page of an object. Whenever applications or reports are launched from the result list of a search a new application window will be opened. In the OVP floorplan this kind of navigation is realized with the Launchpad and suitable Launchpad customizing.

Before coming to technical details let’s summarize the general requirements when navigating from a search result list in an OVP application:

  • A new window must open in which an OVP application configuration is started. The OVP application depends on the object link that was clicked in the search result list.
  • In contrast to starting the application configuration manually the initial search page of the OVP is not displayed when navigating from a search result list, but directly the main overview page of the OVP.
  • The main overview page shows details of the selected object.
  • The original window with the initial search page stays open. Another object link can be clicked.

Technical Details:

  • When the OVP application is started the standard FPM event FPM_START is triggered. In method GET_UIBBS_FOR_EVENT of the OVP floorplan the target page is determined. This can either be a page of type ‘INIT’ (Initial Screen) if there is one or a page of type ‘MAIN’ (Main Overview Page) otherwise.

The standard mechanism is the following: Normally, the default initial page will be the starting page; if there is none, any other initial page will be taken instead. If there isn’t any initial page the default main overview page will be used as starting page; if there is none, any other main overview page will be taken instead. If there is neither an initial page nor a main overview page an error message will be shown.

There is the possibility to overrule the standard mechanism. For this, an additional URL parameter FPM_START_PAGE_ID or an application parameter FPM_START_PAGE_ID can be specified (the URL parameter has the higher priority). The value of the parameter must be a valid ID of an initial page or of a main overview page of the OVP application. In this case, the OVP will be started with the respective page.

In order to display a search page as starting page of the OVP application this page has to be configured in the configuration editor as the default or the only initial screen, or the application has to be started using the URL parameter or application parameter FPM_START_PAGE_ID. The search page must contain a Search GUIBB and a result list, for example the built-in result list of the Search GUIBB or a completely separated List GUIBB.

  • When the user has executed the search on the initial search page the result list is shown. In order to enable the external navigation from the result list entries to an OVP application the result list has to contain at least one link column. In ‘Create’ scenarios also a dedicated button in the result list toolbar is possible that triggers an external navigation. When clicking on a cell in a link column or on the dedicated button for ‘Create’ scenarios a navigation event FPM_NAVIGATE must be triggered. The navigation event must at least be enriched with suitable event parameters that identify an application via Launchpad customizing. The following FPM DDIC structures have been created in order to support the maintenance of the navigation event parameters in the configuration editor:

FPM_S_EXTERNAL_NAVIGATION_KEY:

COMPONENT

COMPONENT TYPE

DATA TYPE

LENGTH

SHORT DESCRIPTION

LPD_ROLE

APB_LPD_ROLE

CHAR

10

Role

LPD_INSTANCE

APB_LPD_INSTANCE

CHAR

32

Instance

LPD_APPLICATION_ALIAS

APB_LPD_APPL_ALIAS

STRING

0

Application Alias

FPM_S_EXTERNAL_NAVIGATION_BASE:

COMPONENT

COMPONENT TYPE

DATA TYPE

LENGTH

SHORT DESCRIPTION

.INCLUDE

FPM_S_EXTERNAL_NAVIGATION_KEY

0

External navigation key

SOURCE_ATTRIBUTE_NAME

FPM_SOURCE_ATTRIBUTE

CHAR

30

Source Attribute

FPM_S_EXTERNAL_NAVIGATION_INFO:

COMPONENT

COMPONENT TYPE

DATA TYPE

LENGTH

SHORT DESCRIPTION

.INCLUDE

FPM_S_EXTERNAL_NAVIGATION_BASE

0

External navigation base information

INITIAL_PAGE_PROC_MODE

FPM_INITIAL_PAGE_PROC_MODE

CHAR

1

Processing Mode of Initial Page

EDIT_MODE

FPM_EDIT_MODE

CHAR

1

Edit Mode for OVP Floorplan

START_PAGE_ID

FPM_CONTENT_AREA_ID

STRING

0

Start Page of the OVP Floorplan

DDIC structure FPM_S_EXTERNAL_NAVIGATION_KEY defines the general key for a Launchpad entry that allows starting an external application. This DDIC structure is included in DDIC structure FPM_S_EXTERNAL_NAVIGATION_BASE which additionally contains the field component SOURCE_ATTRIBUTE_NAME. When clicking on a search result list cell this field may contain the name of an alternative list column that carries the relevant object key that is required to process the initial search page in background. DDIC structure FPM_S_EXTERNAL_NAVIGATION_BASE is itself contained in DDIC structure FPM_S_EXTERNAL_NAVIGATION_INFO. This structure offers three more field components, INITIAL_PAGE_PROC_MODE, EDIT_MODE, and START_PAGE_ID. The first one specifies the processing mode of the initial screen of the OVP application. It is described below in more detail. The second field component specifies the edit mode of that OVP application. The third field component specifies the page that should be displayed when the OVP application is started. In particular, this field component is relevant in ‘Create’ scenarios.


To realize the navigation, the feeder class for the result list needs to expose the FPM event FPM_NAVIGATE in its action definition, and a DDIC structure which includes the structure FPM_S_EXTERNAL_NAVIGATION_BASE needs to be assigned as event parameter structure. In the configuration of the result list, a column can be configured with display type “Link to Action”. Instead of the default action assignment “Standard Action”, the feeder action FPM_NAVIGATE should be configured. In the case of ‘Create’ scenarios a button that is based on the feeder action FPM_NAVIGATE can be configured.
As event parameters for the “Link to Action” or the button, the Launchpad key (role and instance) can be configured as well as an Launchpad application alias. In addition, in case the event parameter structure includes the DDIC structure FPM_S_EXTERNAL_NAVIGATION_INFO, the processing mode, the edit mode, and the start page ID can be configured.

    • If no Launchpad key is configured, the FPM default Launchpad with role=‘FPM’ and instance=‘FPM_DEFAULT’ in LPD_CUST will be used for the determination of the navigation target; otherwise, the Launchpad that has the configured key will be used.
    • If no application alias is configured, a dynamic Launchpad entry of application type ‘Web Dynpro ABAP’ will be created at runtime that restarts the current application configuration externally, i.e. ex-place.
    • If an invalid Launchpad key or an invalid system alias is configured, a simple in-place navigation step with FPM event ‘FPM_LEAVE_INITIAL_SCREEN’ is performed within the OVP as fallback.

When executing the navigation the processing mode, edit mode, and start page ID are forwarded to the target application. Further attributes can be forwarded as explained later. Using the processing mode of the initial screen, it can be achieved that the search in the target application is executed dark parameterized with data of the clicked result list entry providing a unique result, and such that the main overview page is entered with the data for this result.

  • When navigating externally from the initial search page result list of an OVP application to another OVP or the same OVP application in order to show details of the selected object it must be ensured that the initial search page is not shown again, but processed dark in the background. In ‘Create’ scenarios an appropriate page on which data for the new object can be entered must be shown. For this, the event that is raised when clicking on a navigation link in the search page result list or on the dedicated button for the creation of new objects contains a special event parameter INITIAL_PAGE_PROC_MODE. This parameter can have the following values:

‘  ‘ – Normal

‘E’ – Execute Search

‘L’ – Execute Search & Leave

‘C' – Create

    • In the case of the value ‘ ‘ everything works as if the OVP application is started new, without any special logic.
    • In the case of the value ‘E’ the Search GUIBB triggers the FPM event FPM_EXECUTE_SEARCH in PBO in order to execute the search automatically in background. Before executing the search the required search parameters are derived before from the URL. However, no further navigation is triggered
    • In the case of the value ‘L’ the Search GUIBB triggers the FPM event FPM_EXECUTE_SEARCH in PBO as well. However, afterwards the standard FPM event FPM_LEAVE_INITIAL_SCREEN is triggered in addition. It is expected that the search execution provides a unique search result. The consequence is that the OVP will not show the initial search page anymore, but navigate directly to the default main overview page, or, if there is no default main overview page, to any other main overview page. Alternatively, the target page can also be specified directly on the FPM event LEAVE_INITIAL_SCREEN via the event parameter TARGET_CONTENT_AREA.
    • In the case of the value ‘C’ the OVP is started new. Of course, the event parameter START_PAGE_ID is taken into account, and enables the OVP to start directly with the specified page. The latter is required for ‘Create’ scenarios in which another than the initial search page must be displayed initially

  • Field content of the clicked link will be transported to the externally launched application as an URL parameter, and the value is taken from the list cell which raised the event. Only if a different component name was specified in the field SOURCE_ATTRIBUTE_NAME, then the content of this field is transmitted instead. The name of the corresponding URL parameter is FPM_NAVI_SOURCE_KEY_ATTR_<component_name>. In the case that the processing mode is set in the configuration, the search is automatically executed with the parameter having the same name as the component name of the result list. In the case that the component name in the search is different from the result list, a parameter mapping in the Launchpad configuration needs to be defined. (And hence, navigation via a static lauchpad entry is mandatory in this case.) The result list feeder class needs to make sure that it transfers the first record to the main page content when the FPM_LEAVE_INITIAL_SCREEN event is triggered in the dark processing mode.


Example:

A search for products has a component PRODUCT_ID in the search attributes and search result list. The result list feeder class exposes the event FPM_NAVIGATE with the event parameter structure FPM_S_EXTERNAL_NAVIGATION_INFO. Now, all that application development needs to do is to choose the display type “Link To Action” for component PRODUCT_ID and to assign the FPM event FPM_NAVIGATE in the result list configuration. In the event parameters the field 'Processing Mode' (technically: INITIAL_PAGE_PROC_MODE) has to be set to the value 'Execute Search & Leave' (technically: 'L'). The field 'Source Attribute' can be used to transfer particular data of the product from the source to the target application. The field 'Edit Mode' (technically: EDIT_MODE) can be used to set the edit mode in the target application.

A screenshot of the configuration for such a scenario is shown below.

Remark:

If there is more than one key field required in order to get a unique search result, the single field component SOURCE_ATTRIBUTE_NAME in structure FPM_S_EXTERNAL_NAVIGATION_INFO is not sufficient. In the case that five field components for the key information are sufficient, the FPM DDIC structure FPM_S_EXT_NAVIGATION_INFO_ADD5 may be used. In the same way, the DDIC structures FPM_S_EXT_NAVIGATION_INFO_AD10, FPM_S_EXT_NAVIGATION_INFO_AD15, or FPM_S_EXT_NAVIGATION_INFO_AD20 may be used if 10, 15, or 20 field components are sufficient. Alternatively, of in the case that 20 field components are still not sufficient, the application can include one of these structures into an application-specific structure that contains the additional field components for the key information. The additional field component names must begin with ‘SOURCE_ATTRIBUTE_NAME’. At design time, in the configuration, the names of the relevant field names, the values of which have to be transferred to the target application, can be specified in those field components.