Get SDDLB

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

METHOD get_sddlb.

DATA: lr_catego TYPE REF TO if_crm_erms_catego_aspect, ls_ddlb_tabs TYPE ycon_cat_ddlb, lt_ddlbs TYPE crmt_erms_cat_ddlb_tabs, lv_crguid TYPE crmt_object_guid, ls_asp_tab TYPE ycon_cat_asp, lv_created_at TYPE timestamp, lr_cat TYPE REF TO cl_crm_erms_catego_as_default, lv_aspguid TYPE crm_erms_cat_guid. CHECK iv_current IS BOUND. * IF iv_current->get_property_as_string( 'SEQ_NO' ) GE '02'. * lv_crguid = iv_current->get_property_as_string( 'GUID_SECONDARY' ). * ELSE. lv_crguid = iv_current->get_property_as_string( 'GUID' ). * ENDIF. IF sy-uname EQ 'A68115'. IF iv_current->get_property_as_string( 'GUID_SECONDARY' ) IS NOT INITIAL AND iv_current->get_property_as_string( 'SEQ_NO' ) NE '01'. IF iv_current->get_property_as_string( 'GUID' ) NE iv_current->get_propert y_as_string( 'GUID_SECONDARY' ). lv_crguid = iv_current->get_property_as_string( 'GUID_SECONDARY' ). ENDIF. ENDIF. ENDIF. * IF gr_cat_default IS INITIAL. * CALL METHOD cl_crm_erms_catego_ma_default=>if_crm_erms_catego_manager~get_a spect * EXPORTING * iv_asp_id = owner->gv_asp_id ** iv_asp_state = lv_asp_state ** iv_asp_tstamp = lv_asp_tstamp * iv_asp_guid = owner->gv_asp_guid * IMPORTING * ev_instance = lr_catego. * * CHECK lr_catego IS BOUND. * * gr_cat_default ?= lr_catego. * ENDIF. READ TABLE gt_ddlb_tabs INTO ls_ddlb_tabs WITH KEY cat_guid = iv_cat_guid cr_g uid = lv_crguid. IF sy-subrc EQ 0. READ TABLE ls_ddlb_tabs-ddlb INDEX iv_level INTO et_ddlb. IF sy-subrc EQ 0. ENDIF. ELSE. IF sy-uname EQ 'A68115'. TRY. CREATE OBJECT lr_cat EXPORTING iv_asp_guid = lv_aspguid. IF lr_cat IS BOUND. CALL METHOD lr_cat->get_ddlb_coupled EXPORTING it_ddlb_config = lt_ddlb_config iv_max_items = '1500'

* * *

* * * *

iv_max_exit = gv_ddlb_max_exit iv_resolve_unique = gv_resolve_unique ir_cat_checker = gr_cat_checker iv_cat_guid = iv_cat_guid iv_levels = '5' IMPORTING et_ddlb_tables = lt_ddlbs. ENDIF. CATCH: cx_crm_erms_cat_create_failed. ENDTRY. ENDIF. READ TABLE gt_asp_tabs INTO ls_asp_tab WITH KEY guid = lv_crguid. IF sy-subrc EQ 0. IF ls_asp_tab-asp_ref IS BOUND. CALL METHOD ls_asp_tab-asp_ref->get_ddlb_coupled EXPORTING it_ddlb_config = lt_ddlb_config iv_max_items = '1500' iv_max_exit = gv_ddlb_max_exit iv_resolve_unique = gv_resolve_unique ir_cat_checker = gr_cat_checker iv_cat_guid = iv_cat_guid iv_levels = '5' IMPORTING et_ddlb_tables = lt_ddlbs.

READ TABLE lt_ddlbs INTO et_ddlb INDEX iv_level. IF sy-subrc EQ 0. ENDIF. ls_ddlb_tabs-cat_guid = iv_cat_guid. ls_ddlb_tabs-cr_guid = lv_crguid. ls_ddlb_tabs-ddlb = lt_ddlbs. APPEND ls_ddlb_tabs TO gt_ddlb_tabs. ENDIF. ELSE. get_created_at( EXPORTING iv_guid = lv_crguid IMPORTING ev_created_at = lv _created_at ). get_aspguid( EXPORTING iv_created_at = lv_created_at iv_subject_profile = owner->gv_subject IMPORTING ev_aspguid = lv_aspguid ). IF lv_aspguid IS NOT INITIAL. CALL METHOD cl_crm_erms_catego_ma_default=>if_crm_erms_catego_manager~ge t_aspect EXPORTING iv_asp_guid = lv_aspguid IMPORTING ev_instance = lr_catego. ls_asp_tab-guid = lv_crguid. ls_asp_tab-asp_guid = lv_aspguid. ls_asp_tab-asp_ref ?= lr_catego. APPEND ls_asp_tab TO gt_asp_tabs. CLEAR ls_asp_tab. CHECK lr_catego IS BOUND. CALL METHOD ls_asp_tab-asp_ref->get_ddlb_coupled EXPORTING it_ddlb_config = lt_ddlb_config iv_max_items = '1500' iv_max_exit = gv_ddlb_max_exit iv_resolve_unique = gv_resolve_unique ir_cat_checker = gr_cat_checker iv_cat_guid = iv_cat_guid

* * * *

iv_levels IMPORTING et_ddlb_tables

= '5' = lt_ddlbs.

READ TABLE lt_ddlbs INTO et_ddlb INDEX iv_level. IF sy-subrc EQ 0. ENDIF. ls_ddlb_tabs-cat_guid = iv_cat_guid. ls_ddlb_tabs-cr_guid = lv_crguid. ls_ddlb_tabs-ddlb = lt_ddlbs. APPEND ls_ddlb_tabs TO gt_ddlb_tabs. ENDIF. ENDIF. ENDIF. ENDMETHOD.

You might also like