Quantcast
Channel: SCN: Message List - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 7775

Re: How to Optimize ALV Report which causes low Performance in Production System

$
0
0

Hi,

 

TRy using the below code for fetching the data. It would improve the performance.

 

Tables : CRMD_ORDERADM_H, BUT000.

 

TYPES: BEGIN OF lty_objid,

        sign(1)   TYPE c,

        option(2) TYPE c,

        low       TYPE crmt_object_id_db,

        high      TYPE crmt_object_id_db,

      END OF lty_objid.

 

TYPES: BEGIN OF lty_date,

        sign(1)   TYPE c,

        option(2) TYPE c,

        low       TYPE crmt_object_id_db,

        high      TYPE crmt_object_id_db,

      END OF lty_date.

 

TYPES: BEGIN OF lty_partner,

        sign(1)  TYPE c,

        option(2) TYPE c,

        low       TYPE bu_partner,

        high      TYPE bu_partner,

      END OF lty_partner.

 

DATA: lr_core    TYPE REF TO cl_crm_bol_core,    

lr_qs      TYPE REF TO cl_crm_bol_dquery_service,    

lr_result  TYPE REF TO if_bol_entity_col,    

lr_iter    TYPE REF TO if_bol_entity_col_iterator,   

lr_entity  TYPE REF TO cl_crm_bol_entity,   

ls_param   TYPE        crmt_name_value_pair,   

lt_param   TYPE        crmt_name_value_pair_tab,    

lv_low     TYPE string,  

  lv_high    TYPE string,    

ls_objid   TYPE lty_objid,  

  ls_date    TYPE lty_date,  

  ls_partner TYPE lty_partner.

 

SELECTION-SCREEN BEGIN OF BLOCK cr WITH FRAME.

SELECT-OPTIONS : s_cr    FOR crmd_orderadm_h-object_id,

                s_pdate FOR crmd_orderadm_h-posting_date,

                s_pat   FOR but000-partner NO INTERVALS.

SELECTION-SCREEN END OF BLOCK cr.

 

* Loading Component Set,

lr_core = cl_crm_bol_core=>get_instance( ).

 

lr_core->load_component_set( 'BT' ).

 

lr_qs ?= cl_crm_bol_dquery_service=>get_instance( 'BTQ1Order' ).

 

LOOP AT s_cr[] INTO ls_objid.

 

lv_low = ls_objid-low.

lv_high = ls_objid-high.

 

  lr_qs->add_selection_param( iv_attr_name = 'OBJECT_ID'

                             iv_sign   = ls_objid-sign

                             iv_option = ls_objid-option

                             iv_low    = lv_low

                             iv_high   = lv_high ).

ENDLOOP.

 

CLEAR : lv_low , lv_high.

 

LOOP AT s_pdate[] INTO ls_date.

 

lv_low = ls_date-low.

lv_high = ls_date-high.


lr_qs->add_selection_param( iv_attr_name = 'POSTING_DATE'

                             iv_sign   = ls_date-sign

                             iv_option = ls_date-option

                             iv_low    = lv_low

                             iv_high   = lv_high ).

ENDLOOP.

 

CLEAR : lv_low , lv_high.,

,

LOOP AT s_pat[] INTO ls_partner.,

 

lv_low = ls_partner-low.

  lv_high = ls_partner-high.

 

  lr_qs->add_selection_param( iv_attr_name = 'BU_PARTNER'

                             iv_sign   = ls_partner-sign

                             iv_option = ls_partner-option

                             iv_low    = lv_low

                             iv_high   = lv_high ).

ENDLOOP.

 

lr_result = lr_qs->get_query_result( ).

 

*Use Iterator to access entities in query result

lr_iter ?= lr_result->get_iterator( ).

 

* Get the first record from Collection.

lr_entity = lr_iter->get_first( ).

 

WHILE lr_entity IS BOUND.

 

lr_entity = lr_iter->get_next( ).

 

ENDWHILE.

 

 

Thanks

Deepak Sharma


Viewing all articles
Browse latest Browse all 7775

Trending Articles



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