The new ICM is a collection of classical web UI applications rendered as Apps in Fiori launch pad and new Fiori template-based apps. Both these heterogeneous applications work side by side with seamless working experience and inter application navigations along with data context transfer. This blog post gives more information on how navigations are achieved between these two heterogeneous applications.
The blog illustrates the below three navigations
- Navigation from Web UI to Fiori
- Navigation from Fiori to Web UI
- Navigation from Fiori to Fiori
Navigation from Web UI to Fiori
Below steps illustrate on how navigation is enabled from Web UI to Fiori in ICM.
- New Object Types are created to represent ICM Location and ICM Object in Web UI
ICM Location and ICM Object are new assignment blocks created in place of old blocks. New UI Object Types are created to represent ICM Location and ICM Object in Web UI (using the view BSPDLCV_OBJ_TYPE in SM30)
|Object Type||Description||Genil Component||BOL Object Name|
2.Creation of Navigation descriptor
To initiate a navigation, a new navigation descriptor should be created with reference to the UI object types entered above. This descriptor should be added to the navigation collection to allow the framework to interpret the navigation in FLP mode separately.
A sample code looks like below
*** start of navigation
CALL METHOD cl_crm_ui_descriptor_obj_srv=>create_ui_object_based
iv_ui_object_type = ‘CRMS4_ICM_LOCATION’
iv_ui_object_action = ‘B’
iv_entity_key_value = lv_entity_key_value
iv_entity_key_name = lv_entity_key_name
rr_result = lv_descriptor_object.
3. FLP Navigation Mapping
We have made the required configurations in the below IMG activity for navigation from a Web Client UI Framework (WCF) application to a Fiori Launchpad (FLP) application.
The WCF uses the information of this IMG activity to deviate the navigation to FLP.
IMG->Service->Technical Role Definition->Define FLP Navigation Parameter Mapping
|Parameter Value 1||@InvgCsMLocationID||@InvgCsMObjectID|
|Parameter Value 2||guid\’00000000-0000-0000-0000-000000000000\’||guid\’00000000-0000-0000-0000-000000000000\’|
|Parameter Value 3||true||True|
Navigation from Fiori to Web UI
In Order to enable navigation from Fiori to Web UI Navigation, parameter defining the target navigation must be maintained in the technical Catalog for the semantic object-action combination.
In Our Example, to navigate from ICM Location Fiori App to ICM Case Web UI Application, we need to maintain the target parameter and link it to the field in CDS View in the ICM Case – display (Semantic Object-Action) App Descriptor.
Here parameter InvgCsMRelationshipTargetUUID is added which is renamed to crm-object-value (Since this is the parameter used in the WebClient Application ID TICM_CSDSP)
Navigation to WebUI Apps from Fiori Apps is achieved through this parameter.
Seamless navigation to WCF apps from Fiori Apps is achieved through intent based navigation. CDS Annotation #WITH_INTENT_BASED_NAVIGATION is provided in the CDS View to support navigation from Fiori Apps to WEBCUIF apps.
This navigation type contains an action that is related to a semantic object. This combination of action and semantic object is an intent. The annotation @Consumption.semanticObject is required for navigation based on intent. The client decides how to react when this navigation is triggered.
It needs the combination of Sematic Object, action and Parameters.
Below is the code Snippet written in the ICM Location CDS View to achieve intent based navigation.
CDS View fields will be passed as parameters of the action.
Corresponding CDS view should have the field InvgCsMRelationshipTargetUUID whose values will be mapped to crm-object-value.
Navigation from Fiori to Fiori
Since we have two Fiori Apps ICM Location and ICM Object, user should be able to navigate from ICM Location to ICM Object and from ICM Location to ICM Location.
Fiori to Fiori Navigation is also achieved through Intent Based Navigation.
Below is the target mapping defined in ICM Location to support navigation.
Inter App Navigation
Inter App Navigation is the navigation between the same Apps, Navigation from ICM Location to ICM Location or from ICM Object to ICM Object.
CDS Annotation #WITH_NAVIGATION_PATH supports the navigation between ICM Location to ICM Location or from ICM Object to ICM Object.
Cross App Navigation
Cross App Navigation is the navigation between two different Apps, Navigation from ICM Location to ICM Object or from ICM Object to ICM Location.
In the CDS View annotation #WITH_INTENT_BASED_NAVIGATION should be used to navigate between ICM Location to ICM Object or from ICM Object to ICM Location.
More details on intent based navigation can be found in the below help page.