Sie sind auf Seite 1von 3

******METHOD if_genil_appl_intlay~get_objects.

******
****** DATA lt_sub_cat_guid TYPE crmt_object_guid_tab.
****** DATA lv_sub_cat_guid LIKE LINE OF lt_sub_cat_guid .
****** DATA: lr_cat TYPE REF TO if_genil_container_object,
****** lr_children TYPE REF TO if_genil_container_objectlist,
****** lr_sub_cat TYPE REF TO if_genil_container_object,
****** lv_root_obj_name TYPE crmt_ext_obj_name,
****** lv_cat_key TYPE crmt_object_guid,
****** ls_cat_attr TYPE zst_ar_cat_attr,
****** ls_sub_cat_attr TYPE zst_ar_sub_cat_attr,
****** ls_req_obj LIKE LINE OF it_request_objects.
****** DATA lv_obj_key TYPE crmt_object_guid.
****** DATA lob_cat TYPE REF TO if_genil_container_object.
****** DATA lob_cat_att TYPE REF TO if_genil_obj_attr_properties.
****** DATA lt_relation TYPE crmt_relation_name_tab.
****** DATA lv_relation TYPE crmt_relation_name.
****** DATA lv_order_key TYPE crmt_object_guid.
****** DATA lt_order_key TYPE crmt_object_guid_tab.
******
******
****** "Returns First Object
****** lr_cat = iv_root_list->get_first( ).
****** CHECK lr_cat IS BOUND.
****** "Returns the Object Name
****** lv_root_obj_name = lr_cat->get_name( ).
****** IF lv_root_obj_name = 'arCat'.
****** WHILE lr_cat IS BOUND.
****** READ TABLE it_request_objects INTO ls_req_obj INDEX 1.
****** "get_object call for root object
****** IF ls_req_obj-object_name = 'arCat'.
****** "Returns the Object Key
****** CALL METHOD lr_cat->get_key
****** IMPORTING
****** es_key = lv_cat_key.
****** "Returns Flag Indicating Whether Attributes Should Be Read
****** IF lr_cat->check_attr_requested( ) = abap_true.
****** "calling method to read the values from catagory table
****** CREATE OBJECT gr_api_class.
****** CALL METHOD gr_api_class->read
****** EXPORTING
****** iv_cat_key = lv_cat_key
****** IMPORTING
****** es_cat_attr = ls_cat_attr.
****** "Sets the Object's Attribute Structure in the Container
****** lr_cat->set_attributes( ls_cat_attr ).
****** "sets attribute prorerties to dispaly
****** set_attr_props( iv_object = lr_cat ).
******
******
****** "reading sub_catagory table guid values
****** zcl_ar_api=>read(
****** EXPORTING
****** iv_cat_key = lv_cat_key
****** IMPORTING
****** et_sub_cat_guid = lt_sub_cat_guid ).
****** LOOP AT lt_sub_cat_guid INTO lv_sub_cat_guid.
****** "Add a Direct Subordinate Object to add children
****** lr_cat->add_child(
****** EXPORTING
****** iv_relation_name = 'SUB_CAT'
****** is_child_key = lv_sub_cat_guid
****** RECEIVING
****** rv_result = lr_sub_cat ).
****** "reading sub_catatogry table entries
****** zcl_ar_api=>read(
****** EXPORTING
****** iv_cat_key = lv_sub_cat_guid
****** IMPORTING
****** es_sub_cat_attr = ls_sub_cat_attr
****** ).
****** TRY.
****** "Sets the Object's Attribute Structure in the Container
****** lr_sub_cat->set_attributes( ls_sub_cat_attr ).
****** set_attr_props( iv_object = lr_sub_cat ).
****** CATCH cx_crm_genil_duplicate_rel .
****** CATCH cx_crm_genil_model_error .
****** ENDTRY.
****** ENDLOOP.
****** ENDIF.
******
******
******
******
******
****** "get_object call for child object
****** ELSE.
****** "returns a List Object of Direct Subordinate Objects
****** lr_children = lr_cat->get_children( iv_as_copy = abap_false ).
****** "Returns First Object
****** lr_sub_cat = lr_children->get_first( ).
****** " "Returns the Object Key
****** CALL METHOD lr_sub_cat->get_key
****** IMPORTING
****** es_key = lv_cat_key. " sub_cat-key
****** "reading sub_catagaory table entries
****** CALL METHOD gr_api_class->read
****** EXPORTING
****** iv_cat_key = lv_cat_key " sub_cat-key
****** IMPORTING
****** es_sub_cat_attr = ls_sub_cat_attr.
****** "Sets the Object's Attribute Structure in the Container
****** lr_sub_cat->set_attributes( ls_sub_cat_attr ).
****** set_attr_props( iv_object = lr_sub_cat ).
******
****** ENDIF.
****** "returns next object
****** lr_cat = iv_root_list->get_next( ).
******
****** ENDWHILE.
****** ENDIF.
****** " *****************
****** IF lv_root_obj_name = 'arCResult'.
****** CALL METHOD lr_cat->if_genil_cont_simple_object~get_key
****** IMPORTING
****** es_key = lv_cat_key.
****** IF lr_cat->check_rels_requested( ) = abap_true.
******
****** lt_relation = lr_cat->get_foreign_relations( ).
****** READ TABLE gt_search_cat_guid INTO gs_search_cat_guid WITH KEY searc
h_guid = lv_cat_key.
****** IF sy-subrc = 0.
****** lv_order_key = gs_search_cat_guid-cat_guid.
****** ENDIF.
****** INSERT lv_order_key INTO TABLE lt_order_key.
******
****** LOOP AT lt_relation INTO lv_relation.
****** IF lv_relation EQ 'rel_cr_cat'.
****** TRY.
****** CALL METHOD lr_cat->set_foreign_relation
****** EXPORTING
****** iv_relation_name = 'rel_cr_cat'
****** it_child_keys = lt_order_key.
****** CATCH cx_crm_cic_no_entry cx_crm_cic_duplicate_entry.
****** CONTINUE.
****** ENDTRY.
****** ENDIF.
******
****** ENDLOOP.
************************
****** ENDIF.
******
****** ENDIF.
******
****** IF lv_root_obj_name = 'ARSub_Cat'.
****** CALL METHOD lr_cat->get_key
****** IMPORTING
****** es_key = lv_cat_key.
****** IF lr_cat->check_rels_requested( ) = abap_true.
****** lt_relation = lob_cat->get_foreign_relations( ).
******
****** LOOP AT lt_relation INTO lv_relation.
****** IF lv_relation EQ 'rel_cr_cat'.
****** TRY.
****** CALL METHOD lob_cat->set_foreign_relation
****** EXPORTING
****** iv_relation_name = 'rel_cr_cat'
****** it_child_keys = lt_order_key.
****** CONTINUE.
****** ENDTRY.
****** ENDIF.
****** ENDLOOP.
******
******ENDIF.
****** ENDIF.
******
******
****** ENDMETHOD.

Das könnte Ihnen auch gefallen