I found a way to export a hierarchical ALV like this: ABAP: Report via GUI has 18 columns, via RFC 6 (hierarchical ALV)
Unfortunately I don't know in advanced if the report uses hierarchical ALV or not.
If I apply the code of above answer to the report RFSKPL00
, then I get an exception in cl_salv_bs_runtime_info=>get_data()
here:
if t_data_line is requested.
import t_data_line to t_data_line from memory id cl_salv_bs_runtime_info=>c_memid_data_line.
if sy-subrc ne 0.
raise exception type cx_salv_bs_sc_runtime_info <=========
exporting
textid = 'ERROR'.
endif.
endif.
How can I check (via abap code) if a report uses hierarchical ALV or not?
To determine whether the ALV is a classic ALV or a hierarchical-sequential list :
You can use TRY / CATCH / ENDTRY to prevent dumps based on catchable class based exceptions:
(ST22 will always tell you which exception class you have to use.)
As all exception classes are subclasses (sub-subclasses, sub-sub-subclasses, etc.) of CX_ROOT, so you can use the methods get_text and get_longtext to get more information (implemented through interface if_message) about the problem.