Intent-Based Navigation (IBN) is a general cross-application navigation concept used in Fiori Launchpad and natively supported by SAP UI5 Fiori Apps.
Legacy applications created based on WebDynpro or Dynpro technologies have their own methods for navigation and resource/target addressing that do not map to IBN. To simplify the transition of existing applications from the GUI/WebDynpro world to the simplified experience of Fiori, support of the Fiori-like navigation in Classic UI technology apps is essential. It shall be a way for GUI/WebDynpro applications to use Intent-Based Navigation the same/similar way as it used by SAP UI5 apps. It shall be possible to remap the old target used in Visually Harmonized applications to the new lightweight Fiori application, and it shall be done with minimal modification efforts.
It also necessary to support previous navigation technics (OBN, Absolute Navigation, Call Transaction, etc) in Fiori Launchpad, and transparently convert them into IBN, providing such qualifiers as bookmarkability, readability, stability and deep linking of URLs, ensuring that target application keeps running in FLP.
The method provided below provides an easy way to automatically translate legacy navigation calls into IBN without or with minimal code changes.
The technic described below supports only the following legacy navigation targets
- Dynpro (SAP GUI Transaction)
If a target would be something different, for example, a URL, the navigation call would not be translated but will go as before: in-place without changing of FLP URL, ex-place – leaving FLP frame.
- Absolute Navigation (WebDynpro). No code modification necessary.
- Object-Based Navigation (WebDynpro). No code modification necessary.
- ABAP Report Launchpad based navigation == LPD_CUST (WebDynpro). No code modification necessary.
- Navigation using IF_LSAPI == CL_LSAPI_MANAGER (WebDynpro, Dynpro). No code modification necessary.
- CALL TRANSACTION. To be replaced by CL_LSAPI_MANAGER=>NAVIGATE_TO_TRANSACTION (Dynpro)
How to enable
To get the solution working you will need to fulfill several requirements:
- Upgrade your backend to SAP_UI 7.54.
- If you navigate using CALL TRANSACTION or IF_LSAPI=>NAVIGATE it may be sufficient to install only the latest NWBC ABAP Runtime patch note (PL67).
- Enabling generic intents for your backend system by creating Target Mappings
- Defining of additional system alias mapping in sid notation
- Setting the backend flag that activates translation of navigation.
And now, more detailed about each step.
Generic intents for Classical UIs
The pre-requisite for enabling the automatic translation of the legacy navigation calls into IBN is the availability (assignment) of generic intents for staring any WebDynpro Application and GUI Transaction for the specific backend. Such generic intents are normally defined as target mappings when enabling Easy Access Menu access for a backend system.
Assignment of the generic intent to a user would give him the potential ability to call any GUI Transaction / WebDynpro in the backend, but, of course, standard start authorization would be still executed, and if the user does not have permissions to start the app it would break. So, from the security perspective – it is not an issue.
Target Mappings (TM) with generic intents are not pre-delivered with SAP Technical catalogs and shall be explicitly created/assigned on the customer side, since TMs referring explicit systems by system alias, and the alias mapping is only known on the customer side.
The use of Easy Access Menu enabled only for S/4 on-Premise, but not for S/4 Cloud. So, the way to use generic intents on S/4 Cloud not yet clear.
Enabling access to GUI transactions on the specific backend (U1YCLNT120_T)
Enabling access to WebDynpro Applications on the specific backend
Alternative: Role-free enablement using FLP Configuration
From release 1909 there is an easier way for the enablement of Easy Access Menu (EAM) without manual creation of generic intent target mappings. Enablement is done using FLP Configuration, where an administrator can turn on EAM for all users of the specific clients for a list of specific backends (e.g role-free). In links below search for parameter FLP_EAM_ALLIASES.
Definition of the system alias in sid notation for the specific backend
When legacy navigation shall happen locally, on the same backend, the way to express it in IBN is to add a sap-system parameter pointing on the same system. For example sap-system=URZCLNT120. But there is an issue, that the IBN call is constructed on the ABAP side, where it is not known how the backend system named by FLP. The trick here is to pass the name of yourself in the alternative form, using a sid notation: sap-system=sid(URZ.120), while this information is available. But this leads to the requirement that, the FLP than shall understand the alternative name of the backend system expressed in sid notation. In most cases, when the backend system was added using the task list, the aliasing of the destination using sid name shall be already available in table /UI2/V_ALIASMAP, but if not, it shall be maintained like shown below:
Such a configuration is only necessary with hub or federated deployment when the backend system is different from the front-end server. The alias mapping shall be configured in the front-end server /UI2/V_ALIASMAP.
Configuring using a task list
There is an easier way to connect the backend system to the front-end server using the task list SAP_GATEWAY_ADD_SYSTEM_ALIAS.
Enabling access to WebDynpro Applications and GUI Transactions on co-deployed FLP
Backend configuration of Legacy to IBN auto transition
There are two ways to enable the automatic translation of absolute navigation into IBN: global and user-specific. Both ways shall be done on the backend system (not FrontEnd) and work only for this particular system when legacy navigation triggered by an app located on this system.
- Global for system: Transaction SM30 => /UI2/NWBC_CFGCV => ParameterName = MAP_LEGACY_TO_IBN; ParameterValue = “X”.
- For specific user: Transaction SU52 => User parameter => MAP_LEGACY_TO_IBN = “X”
Q: How to enable automatic translation of legacy to IBN on customer side?
A: There is no automatic way for now. You need to instruct customers on how to create corresponding TM and assign them to users and how to switch the mode in /UI2/NWBC_CFGCV on each backend. Probably there would be a central consulting note describing that.