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/PurchasesThis 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
FIELD-SYMBOLS
FIELD-SYMBOLS
* 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
* header
WHEN 'ZESH_PUSH_INDEXH'.
ASSIGN
APPEND INITIAL LINE TO
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
DO 5 TIMES.
APPEND INITIAL LINE TO
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 )






