OVS Search Help for Search GUIBB

Embed Size (px)

DESCRIPTION

OVS Search help for search GUIBB

Citation preview

  • This tutorial explains how to set OVS as a search help option for the fields that are created

    through GUIBBs (Feeder class). With the normal input field which we are creating at the UI

    level we set the search help option of the particular field as OVS by setting the search help

    mode property of the context attribute that we are binding to the input field.

    In case of Generic UIBBs neither the UI element nor the context node is being created at design

    level to be modified. The UI elements and corresponding context are created through the

    configuration provided in the feeder class. Hence it takes a quite little effort more than usual to

    set the OVS Search help to those fields.

    In this tutorial I have taken a field from Search GUIBB created in earlier tutorial and set OVS

    Search help for the field carrid.

    For information on OVS search help visit the link.

    http://webdynproabap.wordpress.com/2012/07/01/ovs-search-help/

    Pre-requisites: A Search GUIBB component designed already.

    For an OVS Search help to be implemented a class needs to be constructed which implements

    the interface IF_FPM_GUIBB_OVS. This Interface contains all the four phases of OVS and is

    called at pre-defined runtime. All we need to do is fill out the logic that are carried out in each

    phases in the corresponding method.

    Write the codings in the method as follow:

    Note: Nothing is new is being done here. All the codes that are executed in the OVS Search help

    within the case statement are split into different methods. Compare with the code in OVS Search

    Help.

  • Construct a class and implement the interface IF_FPM_GUIBB_OVS.

    Write the methods in the coding as below.

    Method: HANLDE_PHASE_0.

    types : begin of lty_stru_input,

    carrid type sflight-carrid,

    end of lty_stru_input.

    types: begin of lty_stru_list,

    carrid type sflight-carrid,

    connid type sflight-connid,

    end of lty_stru_list.

    data: ls_search_input type lty_stru_input,

    lt_select_list type standard table of lty_stru_list,

    ls_text type wdr_name_value,

    lt_label_texts type wdr_name_value_list,

    lt_column_texts type wdr_name_value_list,

    lv_window_title type string,

    lv_group_header type string,

    lv_table_header type string.

    field-symbols: type lty_stru_input,

    type lty_stru_list.

    ls_text-name = `CARRID`.

    ls_text-value = `Airline ID`.

    insert ls_text into table lt_label_texts.

    ls_text-name = `CARRID`.

    ls_text-value = `Airline ID`.

    insert ls_text into table lt_column_texts.

    ls_text-name = `CONNID`.

  • ls_text-value = `Connection Number`.

    insert ls_text into table lt_column_texts.

    lv_window_title = 'OVS Search Help'.

    lv_group_header = 'Flight Information'.

    lv_table_header = 'Flight details'.

    IO_OVS_CALLBACK->set_configuration(

    label_texts = lt_label_texts

    column_texts = lt_column_texts

    group_header = lv_group_header

    window_title = lv_window_title

    table_header = lv_table_header

    col_count = 2

    row_count = 20 ).

    Method: HANDLE_PHASE_1

    types : begin of lty_stru_input,

    carrid type s_carr_id,

    end of lty_stru_input.

    data: ls_search_input type lty_stru_input.

    io_ovs_callback->context_element->get_attribute(

    exporting

    name = io_ovs_callback->context_attribute " NAME

    importing

    value = ls_search_input-carrid " DATA

    ).

    io_ovs_callback->set_input_structure( exporting input = ls_search_input ).

    Method: HANDLE_PHASE_2

    types : begin of lty_stru_input,

    carrid type sflight-carrid,

    end of lty_stru_input.

    types: begin of lty_stru_list,

    carrid type sflight-carrid,

  • connid type sflight-connid,

    end of lty_stru_list.

    data: lt_select_list type standard table of lty_stru_list.

    field-symbols: type lty_stru_input.

    assign io_ovs_callback->query_parameters->* to .

    select carrid connid from sflight into CORRESPONDING FIELDS OF table lt_sel

    ect_list where carrid = -carrid.

    io_ovs_callback->set_output_table( output = lt_select_list ).

    Method: HANDLE_PHASE_3

    types: begin of lty_stru_list,

    carrid type sflight-carrid,

    connid type sflight-connid,

    end of lty_stru_list.

    field-symbols: type lty_stru_list.

    assign io_ovs_callback->selection->* to .

    if is assigned.

    io_ovs_callback->context_element->set_attribute(

    name = IV_WD_CONTEXT_ATTR_NAME

    value = -carrid ).

    endif.

    Thats it! The implementation of the class for OVS search help is done. Now we need to assign

    this search help class as OVS to the field attribute.

    Go to the GET_DEFINITION method of the feeder class and fill the exporting parameter

    ET_FIELD_DESCRIPTION_ATTR with the component OVS_NAME for the corresponding

    attribute.

    append INITIAL LINE TO et_field_description_Attr ASSIGNING .

    -name = 'CARRID'.

    -ovs_name = 'ZCL_CSK_CARRID_OVS'.

  • Test the application: