Registration

Dear SAP Community Member,
In order to fully benefit from what the SAP Community has to offer, please register at:
http://scn.sap.com
Thank you,
The SAP Community team.
Skip to end of metadata
Go to start of metadata

Applies to:

CRM 6.0/7.0

Summary

You have created a custom BSP component. Now you would like to enable dynamic navigation to your component via links or other ways. This wiki will show you how...

Author(s):

Arun prakash Karuppanan
Company: Accenture
Created on: 18 March 2010
Author(s) Bio
Arun Prakash is a senior programmer with Accenture, working on CRM implementations.

Navigation to components in CRM WEB UI can be entity based or BOR based or UI object based. You may have a custom BSP component and might want to enable navigation to this component. Obviously, BOR based and entity based navigations are out of question. And we are not speaking about navigation links. This is more dynamic that doesn't require messing with the run time repository. You should first "expose" your component. For this follow step 1 from the wiki Add custom BSP component as a link in a Work center. Search for this wiki if the link becomes invalid. We can now proceed.

Step1 - Create a custom UI object

Go to the IMG node "Define UI Object Types" as shown below




Add a new entry as shown below.



Now, you have created a new UI object "ZCUSTUIOBJ"

Step 2 - Maintain entry in Component repository

Go to the IMG node "Define Work Area Component Repository" as shown below





Maintain a new entry for your custom BSP component.


Specify an inbound plug for the new entry. Put the newly create UI object here and choose appropriate actions.



Step 3 - Enabling navigation for selected profiles

Go to the IMG node "Define Navigation bar Profile" as shown below




Select the desired business profile and click on "Define Generic OP mapping"

Maintain a new entry taking care to use the same object actions.




Step 4 - Coding part

You have to use this coding snippet in your event handlers or outbound plugs. If your window is not at the top level, you may have to delegate its outbound plug to a parent window plug and make necessary adjustments.

  DATA: lv_descriptor_object   TYPE REF TO if_bol_bo_property_access,
             lr_navigation          TYPE REF TO if_crm_ui_navigation_service,
             lr_data_collection   TYPE REF TO if_bol_bo_col,
             lr_window            type ref to cl_bsp_wd_window.
  lr_navigation = cl_crm_ui_navigation_service=>get_instance( ).
  CALL METHOD CL_CRM_UI_DESCRIPTOR_OBJ_SRV=>CREATE_UI_OBJECT_BASED
    EXPORTING
      IV_UI_OBJECT_TYPE   = 'ZCUSTUIOBJ'
      IV_UI_OBJECT_ACTION = 'B'
      IV_COMPONENT        = 'ZMULTI_CU_DEMO'
    RECEIVING
      RR_RESULT           = lv_descriptor_object.

  IF lv_descriptor_object IS BOUND AND lr_navigation->is_dynamic_nav_supported( lv_descriptor_object ) = abap_true.
    create object lr_data_collection type cl_crm_bol_bo_col.
*Use lr_data_collection to pass data to the called component, prepare it as per your need
*It will be collected by the inbound plug of the called component's window

    lr_window ?= me->view_manager->get_window_controller( ).
    lr_window->call_outbound_plug( iv_outbound_plug = 'DOCFLOW' iv_data_collection = lr_data_collection ).
  ENDIF.

Useful Information

CRM - Dynamic navigation to custom BSP component in WEbUI

1 Comment

  1. Former Member

    Nice and very informative.