CL_ESH_IF_DATA_PROVIDER_PUSH - Push Interface for Changed Data

Fill RESBD Structure from EBP Component Structure   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
This documentation is copyright by SAP AG.

Functionality

SAP Enterprise Search offers a search service that calls "Search Connectors". These use TREX servicesto retrieve data matching the search query. The TREX indexes are filled with data provided by applications (data extraction).

Data extraction usually takes place via a pull mechanism, which means Enterprise Search calls the application via an indexing BAdI. For real-time data, a push mechanism is provided. This class is the push data provider.

To use push indexing, you need to know the software component and template name (object type).

Call the methods in this order:

  • GET_INSTANCE
  • GET_EXTRACTION_OBJECT_INSTANCE
  • PUSH

Relationships

Example

REPORT  zesh_push_indexing.

DATA lt_extr_nodes           TYPE esh_t_if_extract_nodes.
DATA lo_push_provider        TYPE REF TO cl_esh_if_data_provider_push.
DATA lv_timestamp            TYPE timestamp.
DATA ls_push_indexh          TYPE zesh_push_indexh.
DATA ls_push_index           TYPE zesh_push_index.
DATA lv_object_id            TYPE esh_e_if_general_id.

FIELD-SYMBOLS         TYPE data.
FIELD-SYMBOLS        TYPE table.
FIELD-SYMBOLS         LIKE LINE OF lt_extr_nodes.


* get instance of push-indexing provider
lo_push_provider ?= cl_esh_if_data_provider_push=>get_instance( ).

* fill extraction tables
DO 3 TIMES.
* get extraction table structure (from runtime data buffer / blueprint)
  GET TIME STAMP FIELD lv_timestamp.
  lv_object_id = `T_` && `_` && lv_timestamp && syst-index.
  lo_push_provider->get_extraction_object_instance(

                         EXPORTING

                          iv_sw_comp_id,,   = '_MICHAEL_B'
                         iv_object_type_id  = 'PUSH_INDEXING'
                          iv_object_id,,   = lv_object_id
                          iv_change_type     =cl_esh_co_changepointer=>sc_change_type_update

                         IMPORTING

                          et_extr_nodes,,   = lt_extr_nodes ).

  LOOP AT lt_extr_nodes ASSIGNING .
    CASE -node_type_id.
*     header
      WHEN 'ZESH_PUSH_INDEXH'.
        ASSIGN -modify_table_ref->* TO .
        APPEND INITIAL LINE TO ASSIGNING .
        ls_push_indexh-id = lv_object_id.
        ls_push_indexh-uname = syst-uname.
        ls_push_indexh-mandt = syst-mandt.
        ls_push_indexh-cr_timestamp = lv_timestamp.
        MOVE-CORRESPONDING ls_push_indexh TO .
*     item
      WHEN 'ZESH_PUSH_INDEX'.
        ASSIGN -modify_table_ref->* TO .
        DO 5 TIMES.
          APPEND INITIAL LINE TO ASSIGNING .
          ls_push_index-mandt = syst-mandt.
          ls_push_index-id = lv_object_id.
          ls_push_index-item_id = sy-index.
          ls_push_index-data_c = `This is a character of length 1024`.
          ls_push_index-data_string = `This is a string`.
          ls_push_index-data_dats = syst-datlo.
          ls_push_index-data_tims = syst-timlo.
          ls_push_index-data_dec = '23.45'.
          ls_push_index-data_i = 64.
          ls_push_index-data_raw = 1024.
          GET TIME STAMP FIELD ls_push_index-data_timestamp.
          MOVE-CORRESPONDING ls_push_index TO .
        ENDDO.
    ENDCASE.
  ENDLOOP.
ENDDO.

* push data
lo_push_provider->push( ).

Notes

To ensure robust indexing, make sure the call of method "push" and the point in time when you commit your data are as close together as possible.

SAP recommends committing your data "in update task" and call method "push" at the end of your update task module.

Further information

None.


BAL_S_LOG - Application Log: Log header data   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
This documentation is copyright by SAP AG.


Length: 7052 Date: 20120526 Time: 120530     triton ( 131 ms )