I haven’t found any standard SAP function modules to read the protocols of batch input session created
by transaction SM35. These protocols are contained in TemSe – a store for temporary sequential data.
There can be many protocols associated with one map. The protocols in TemSe consist of message class,
number and a field which stores values of possible variables. The format of this field with values of variables
is quite inconvenient to handle, I’m really missing the standard SAP function module to read it.
The example below shows how to read batch input protocol with maximal utilization of standard coding from the includes. Please change the value of variable ‘lv_queueid’ for a valid queue id in your system.
INCLUDE rsbdcil1.
INCLUDE rsbdcil2.
INCLUDE rsbdcil3.
START-OF-SELECTION.
DATA:
lv_queueid TYPE apq_quid VALUE '11091214143070865804',
lt_protocol TYPE string_table,
ls_protocol TYPE string.
PERFORM get_sm35_log USING lv_queueid
CHANGING lt_protocol.
LOOP AT lt_protocol INTO ls_protocol.
WRITE: / ls_protocol.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form get_sm35_log
*&---------------------------------------------------------------------*
FORM get_sm35_log USING pi_queueid TYPE apq_quid
CHANGING pt_protocol TYPE string_table.
DATA:
lt_apql TYPE TABLE OF apql,
ls_apql TYPE apql.
CALL FUNCTION 'BDC_PROTOCOL_SELECT_QID'
EXPORTING
queue_id = pi_queueid
TABLES
apqltab = lt_apql
EXCEPTIONS
invalid_data = 1
OTHERS = 2.
ASSERT sy-subrc = 0.
ASSERT LINES( lt_apql ) > 0.
READ TABLE lt_apql INTO ls_apql INDEX 1.
bdcld-temseid = ls_apql-temseid.
bdcld-mandant = ls_apql-mandant.
PERFORM log_mes.
LOOP AT bdclm.
PERFORM get_text.
APPEND mtext TO lt_protocol.
ENDLOOP.
ENDFORM. "get_sm35_log
See other related notes on my website: