





| Dropdown list value | Collective search help |
| 1 Business Partner | BUPA_ALL |
| 2 Persons | BUPA_PERSON |
| 3 Organization | BUPA_ORGANIZATION |
| 4 Group | BUPA_GROUP |





FUNCTION z_bupa_dialog_add_search.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IV_SEARCH) TYPE REF TO CL_BUS_LOCATOR_SEARCH
*" EXCEPTIONS
*" SEARCH_VALUES_MISSING
*"----------------------------------------------------------------------
* Local data.
DATA: ls_search_fields TYPE bus_joel_search.
* Convert generic container into specific fields.
ls_search_fields = iv_search->gv_search_fields. "#EC ENHOK
* Choose the select.
CASE iv_search->gv_search_id.
WHEN 'Z_BUPA_ALL_INDUSTRY_SECTOR'. "name of elementary search help
CALL METHOD lcl_searcher=>select_by_industry
EXPORTING iv_search = iv_search
iv_istype = ls_search_fields-zz_istype
iv_ind_sector = ls_search_fields-zz_ind_sector
EXCEPTIONS search_values_missing = 1.
WHEN OTHERS.
CLEAR sy-subrc.
ENDCASE.
*
CASE sy-subrc.
WHEN 1.
RAISE search_values_missing.
ENDCASE.
ENDFUNCTION.FUNCTION-POOL Z_BP_LOCATOR. "#EC_MG_MISS
TABLES bus_joel_search.
DATA gs_dynpro_id TYPE bus_screen-area.
CLASS lcl_searcher DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS:
select_by_industry
IMPORTING iv_search TYPE REF TO cl_bus_locator_search
iv_istype TYPE bus_joel_search-zz_istype
iv_ind_sector TYPE bus_joel_search-zz_ind_sector
EXCEPTIONS search_values_missing.
ENDCLASS.*&---------------------------------------------------------------------*
*& Include LZ_BP_LOCATORF01
*&---------------------------------------------------------------------*
CLASS lcl_searcher IMPLEMENTATION.
*---------------------------------------------------------------------
* METHOD select_by_industry
*---------------------------------------------------------------------
METHOD select_by_industry.
* Local data.
DATA: lv_partner_type TYPE bus_partner-type,
lr_ind_sector TYPE RANGE OF but0is-ind_sector,
lt_partner_guids TYPE bus_partner-guid_table.
CALL METHOD iv_search->get_range_for
EXPORTING iv_value = iv_ind_sector
IMPORTING et_range = lr_ind_sector.
* Determine the partner type to filter by.
CASE iv_search->gv_search_type.
WHEN cl_bupa_dialog_searcher=>gc_search_type_all.
lv_partner_type = space.
WHEN cl_bupa_dialog_searcher=>gc_search_type_person.
lv_partner_type = '1'.
WHEN cl_bupa_dialog_searcher=>gc_search_type_organization.
lv_partner_type = '2'.
WHEN cl_bupa_dialog_searcher=>gc_search_type_group.
lv_partner_type = '3'.
ENDCASE.
* Select the Business Partners
IF ( lv_partner_type NE space ).
IF ( iv_istype NE space ).
SELECT partner_guid INTO TABLE lt_partner_guids
FROM but000
UP TO iv_search->gv_maximum_rows ROWS
WHERE partner IN ( SELECT partner FROM but0is WHERE ind_sector IN lr_ind_sector
AND istype = iv_istype )
AND type = lv_partner_type.
ELSE.
SELECT partner_guid INTO TABLE lt_partner_guids
FROM but000
UP TO iv_search->gv_maximum_rows ROWS
WHERE partner IN ( SELECT partner FROM but0is WHERE ind_sector IN lr_ind_sector )
AND type = lv_partner_type.
ENDIF.
ELSE.
IF ( iv_istype NE space ).
SELECT partner_guid INTO TABLE lt_partner_guids
FROM but000
UP TO iv_search->gv_maximum_rows ROWS
WHERE partner IN ( SELECT partner FROM but0is WHERE ind_sector IN lr_ind_sector
AND istype = iv_istype ).
ELSE.
SELECT partner_guid INTO TABLE lt_partner_guids
FROM but000
UP TO iv_search->gv_maximum_rows ROWS
WHERE partner IN ( SELECT partner FROM but0is WHERE ind_sector IN lr_ind_sector ).
ENDIF.
ENDIF.
* Pass result table
CALL METHOD cl_bupa_dialog_searcher=>add_partner_guids_to_result
EXPORTING it_partner_guids = lt_partner_guids
iv_filter_by_search_type = space
iv_search = iv_search.
ENDMETHOD.
ENDCLASS.

PROCESS BEFORE OUTPUT.
MODULE dynpro_pbo.
*
PROCESS AFTER INPUT.
MODULE dynpro_pai.*----------------------------------------------------------------------*
***INCLUDE LZ_BP_LOCATORO01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module DYNPRO_PBO OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE dynpro_pbo OUTPUT.
* Global data.
gs_dynpro_id-program_name = sy-repid.
gs_dynpro_id-dynpro_number = sy-dynnr.
CALL METHOD cl_bus_abstract_screen=>dynpro_pbo
EXPORTING iv_program_name = gs_dynpro_id-program_name
iv_dynpro_number = gs_dynpro_id-dynpro_number.
ENDMODULE.*----------------------------------------------------------------------*
***INCLUDE LZ_BP_LOCATORI01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module DYNPRO_PAI INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE dynpro_pai INPUT.
gs_dynpro_id-program_name = sy-repid.
gs_dynpro_id-dynpro_number = sy-dynnr.
CALL METHOD cl_bus_abstract_screen=>dynpro_pai
EXPORTING iv_program_name = gs_dynpro_id-program_name
iv_dynpro_number = gs_dynpro_id-dynpro_number.
ENDMODULE.*---------------------------------------------------------------------*
* FORM bus_locator_get_search_fields *
*---------------------------------------------------------------------*
FORM bus_locator_get_search_fields "#EC CALLED
USING iv_search_application TYPE bus_locator-search_application
CHANGING ev_search_fields TYPE bus_locator-search_fields.
CASE iv_search_application.
WHEN cl_bupa_dialog_searcher=>gc_search_application_bupa.
ev_search_fields = bus_joel_search."#EC ENHOK
ENDCASE.
ENDFORM.
*---------------------------------------------------------------------*
* FORM bus_locator_set_search_fields *
*---------------------------------------------------------------------*
FORM bus_locator_set_search_fields "#EC CALLED
USING iv_search_application TYPE bus_locator-search_application
iv_search_fields TYPE bus_locator-search_fields.
CASE iv_search_application.
WHEN cl_bupa_dialog_searcher=>gc_search_application_bupa.
bus_joel_search = iv_search_fields. "#EC ENHOK
ENDCASE.
ENDFORM.


You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 27 | |
| 22 | |
| 15 | |
| 14 | |
| 12 | |
| 12 | |
| 10 | |
| 10 | |
| 10 | |
| 10 |