Final d Query

download Final d Query

If you can't read please download the document

description

Final d Query

Transcript of Final d Query

METHOD if_genil_appl_intlay~get_dynamic_query_result. DATA: lt_result TYPE TABLE OF zst_ar_result_attr, "lt_result1 TYPE TABLE OF zST_AR_result_attr, ls_result TYPE zst_ar_result_attr, " lv_search_guid TYPE crmt_object_guid, lr_search TYPE REF TO if_genil_cont_root_object, lv_msg_cont TYPE REF TO cl_crm_genil_global_mess_cont, ls_parameter LIKE LINE OF it_selection_parameters. DATA: lv_query TYPE string,lv_query1 TYPE string, ls_param LIKE LINE OF it_selection_parameters. DATA lv_count TYPE i VALUE 0. LOOP AT it_selection_parameters INTO ls_param. IF lv_count 0. CONCATENATE lv_query ' or ' INTO lv_query . ENDIF. "CONCATENATE lv_query LS_PARAM-attr_name LS_PARAM-option INTO lv_query SEPARATED BY ' '. IF ls_param-attr_name = 'CAT_ID' OR ls_param-attr_name = 'CAT_NAME'. CONCATENATE 'A~' lv_query ls_param-attr_name INTO lv_query. CONCATENATE lv_query1 ls_param-attr_name INTO lv_query1. CONCATENATE lv_query1 ls_param-option INTO lv_query1 SEPARATED BY ' '. CONCATENATE lv_query1 ''' ' ls_param-low ' ''' INTO lv_query1 . ELSE. CONCATENATE 'B~' lv_query ls_param-attr_name INTO lv_query. ENDIF. CONCATENATE lv_query ls_param-option INTO lv_query SEPARATED BY ' '. CONCATENATE lv_query ''' ' ls_param-low ' ''' INTO lv_query . lv_count = lv_count + 1. ENDLOOP. IF iv_query_name = 'arDSearch'. SELECT * FROM zar_sub_cat AS b INNER JOIN zar_cat AS a ON a~cat_id = b~cat_id INTO CORRESPONDING FIELDS OF TABLE lt_result WHERE (lv_query). ELSEIF iv_query_name = 'arDCSearch'. SELECT * FROM zar_cat INTO CORRESPONDING FIELDS OF TABLE lt_result WHERE (lv_query1). ENDIF. LOOP AT lt_result INTO ls_result. CALL FUNCTION 'GUID_CREATE' IMPORTING ev_guid_16 = ls_result-auto_unique. MODIFY lt_result FROM ls_result. ENDLOOP. IF lt_result IS NOT INITIAL. LOOP AT lt_result INTO ls_result. TRY. iv_root_list->add_object( EXPORTING iv_object_name = 'arResult' " External Name of Object is_object_key = ls_result-auto_unique " Object ID in Generic Interaction Layer RECEIVING rv_result = lr_search " Data Container - Root Object Interface ). lr_search->set_attributes( ls_result ). lr_search->set_key( ls_result-auto_unique ). CATCH cx_crm_genil_duplicate_rel. " Defect Class: Duplicate Entry 1:1 Relationship CATCH cx_crm_genil_model_error. " Error when Accessing Object Model ENDTRY. ENDLOOP. ELSE. lv_msg_cont = iv_root_list->get_global_message_container( ). lv_msg_cont->add_message( iv_msg_type = if_genil_message_container=>mt_error iv_msg_id = '' iv_msg_number = 000 iv_msg_v1 = 'No records found' iv_show_only_once = abap_true ). ENDIF.ENDMETHOD.