Quantcast
Viewing all articles
Browse latest Browse all 9071

Re: BT115IT_SLSO enhance - copy line item EH_ONCOPY - refresh collection?

Hi David,

 

Please try below code. Redefine event EH_ONCOPY and copy the below code. Dont call Super method as I have inserted them in the below code.

 

  

  lr_cuco  ?= me->get_custom_controller(

                controller_id = 'BT115IT_SLSO/SOItemCuCo' ).

  lr_btitem ?= lr_cuco->typed_context->btitems->collection_wrapper->get_current( ).

 

***************EH_ONCOPY Code is copied*********************************************

 

  " the method will be redefined for excluding product proposal dummy entries

  DATA: lr_btitems  TYPE REF TO cl_crm_bol_entity,

     lr_admini  TYPE REF TO cl_crm_bol_entity,
     ls_paramTYPE crmt_name_value_pair,
     lt_paramTYPE crmt_name_value_pair_tab,
     lr_guid TYPE REF TO crmt_object_guid,
     lr_cw   TYPE REF TO cl_bsp_wd_collection_wrapper,
     lr_cw_items TYPE REF TO cl_bsp_wd_collection_wrapper,
     lr_col  TYPE REF TO if_bol_bo_col,
     lr_cn   TYPE REF TO cl_bsp_wd_context_node,
     lr_msg_srv         TYPE REF TO cl_bsp_wd_message_service,
     lv_entity_key      TYPE crmt_genil_object_id,
     lv_entity_key_string   TYPE string,
     lv_is_ee_prodprop  TYPE string,
     lr_bt_admini_ctxtnode  TYPE REF TO cl_bt115it__items_cn00.

 

  TRY.

 

  CHECK me->is_entity_changeable( ) = abap_true.

 

* copy current selected item

  lr_cw   = get_collection_wrapper( gc_context_node_admini ).
  lr_cw_items = get_collection_wrapper( gc_context_node_items ).
  lr_bt_admini_ctxtnode ?= get_context_node('BTADMINI').

 

  CHECK lr_cw IS BOUND AND lr_cw_items IS BOUND.

 

  lr_btitems ?= lr_cw_items->get_current( ).
  CHECK lr_btitems IS BOUND.

 

  lr_col = lr_cw->get_marked( ).
  CHECK lr_col IS BOUND.
  lr_admini ?= lr_col->get_first( ).
  WHILE lr_admini IS BOUND.
    lv_entity_key = lr_admini->get_key( ).
    lv_entity_key_string = lv_entity_key.
    lv_is_ee_prodprop = lr_bt_admini_ctxtnode->get_is_ee_prodprop( attribute_path = lv_entity_key_string ).

 

    lr_guid ?= lr_admini->get_property( 'GUID' ).
    IF ( lr_guid->* IS INITIAL ) OR ( lv_is_ee_prodprop EQ abap_true )..
      lr_admini ?= lr_col->get_next( ).
      CONTINUE.
    ENDIF.
    ls_param-name = 'ITEM_GUID'.                    "#EC NOTEXT
    ls_param-value = lr_guid->*.
    APPEND ls_param TO lt_param.
    lr_admini ?= lr_col->get_next( ).
  ENDWHILE.

 

  CHECK lt_param IS NOT INITIAL. " only empty lines selected
  lr_btitems->execute( iv_method_name = 'copyItems' "#EC NOTEXT
                       it_param   = lt_param ).

 

CATCH cx_crm_genil_model_error cx_crm_bol_meth_exec_failed
      cx_crm_genil_general_error cx_sy_move_cast_error.

 

  lr_msg_srv = me->view_manager->get_message_service( ).

 

  CHECK lr_msg_srv IS BOUND.
  lr_msg_srv->add_message( iv_msg_type = 'E'
                           iv_msg_id   = 'CRM_UIU_BT'
                           iv_msg_number = '005'
                           iv_msg_level  = '1'
                           iv_important_info = abap_true ).

 

  RETURN.

  ENDTRY.

 

******************End of EH_ONCOPY Code****************************

 

   lr_btitem->reread( ).

* Inform dependent nodes that BTItems has changed

  lr_cuco->typed_context->btitems->collection_wrapper->publish_current( ).

 

 

Regards,

Karthik


Viewing all articles
Browse latest Browse all 9071

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>