Skip to Content
author's profile photo Former Member
Former Member

Navigation from RAD application to standard component BP_HEAD

I created custom UI component based on RAD (Rapid Application Framework), and i wanted to navigate from it to standard component BP_HEAD (BP partner overview page). I tried to use dynamic navigation. In line when i'am trying to get root entity, program generates error with message that 'BuilHeader' is an object that is not accessible. What I'am doing wrong? Do my approach to the problem is correct? Following code was included to event method triggered by click on hyperlink in result list:

DATA: lr_nav_descr TYPE REF TO if_bol_bo_property_access,

lr_core TYPE REF TO cl_crm_bol_core,

lr_nav_serv TYPE REF TO if_crm_ui_navigation_service,

lr_header TYPE REF TO cl_crm_bol_entity,

lr_entity TYPE REF TO cl_crm_bol_entity,"cl_bsp_wd_value_node,

lv_partner_guid TYPE crmt_genil_object_guid,

lr_col TYPE REF TO cl_crm_bol_bo_col.

DATA: lv_partner TYPE bu_partner,

lv_index TYPE sytabix,

lv_guid TYPE crmt_genil_object_guid.

* Let's get current row info

CALL METHOD cl_thtmlb_util=>get_event_info

EXPORTING

iv_event = htmlb_event_ex

IMPORTING

ev_index = lv_index.

* Get entity for the current row

CLEAR: lv_guid.

lr_entity ?= typed_context->searchresultnode->collection_wrapper->find( iv_index = lv_index ).

IF lr_entity IS BOUND.

lv_partner = lr_entity->get_property_as_string( iv_attr_name = 'ZZPARTNER' ).

ENDIF.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = lv_partner

IMPORTING

output = lv_partner.

SELECT SINGLE partner_guid FROM but000 INTO lv_partner_guid WHERE partner = lv_partner.

* Get the BOL Core Instance

lr_core ?= cl_crm_bol_core=>get_instance( ).

* get the BuilHeader object

lr_header = lr_core->get_root_entity( iv_object_name = 'BuilHeader'

iv_object_guid = lv_partner_guid ).

* add the Builheader to the collection

CREATE OBJECT lr_col.

lr_col->if_bol_bo_col~add( iv_entity = lr_header

iv_set_focus = abap_true ).

cl_crm_ui_descriptor_obj_srv=>create_ui_object_based(

EXPORTING

iv_ui_object_type = 'BP_ACCOUNT'

iv_ui_object_action = 'B'

RECEIVING rr_result = lr_nav_descr ).

lr_nav_serv = cl_crm_ui_navigation_service=>get_instance( ).

* check if navigation is possible

IF lr_nav_serv->is_dynamic_nav_supported( ir_descriptor_object = lr_nav_descr ) = abap_true.

lr_col->if_bol_bo_col~insert( iv_bo = lr_nav_descr

iv_index = 1 ).

* start the navigation

lr_nav_serv->navigate_dynamically( iv_data_collection = lr_col ).

ENDIF.

Add a comment
10|10000 characters needed characters exceeded

Related questions

2 Answers

  • Best Answer
    Posted on Jul 20, 2016 at 12:12 AM

    Hello,

    Please check loading the component for BP before calling the GET_ROOT_ENTITY.

    LR_CORE->LOAD_COMPONENT_SET( 'BP_APPL' ).

    Thanks

    Deepak Sharma

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 18, 2016 at 09:16 AM

    Hello,

    it seems, that model with BP data is not loaded. I suppose, that you test it directly, otherwise complete model should be loaded.

    Which model do you have in BSP in your application on tab repository in model node? If it is empty, add there BP_APPL.

    With regards,

    Jiri

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.