这个代码已经运行了好几个月了:
SUBMIT (IV_REPORT_NAME)
WITH SELECTION-TABLE selection_table
USING SELECTION-SET IV_SELECTION_SET_VARIANT
AND RETURN.
DATA lr_data_descr TYPE REF TO cl_abap_datadescr.
DATA lr_data_line_descr TYPE REF TO cl_abap_datadescr.
cl_salv_bs_runtime_info=>get_data_ref( r_data_descr = lr_data_descr
r_data_line_descr = lr_data_line_descr ).
IF lr_data_descr IS NOT BOUND.
ev_result_json = '[]'.
EXIT.
ENDIF.
但在其中一种情况下,它是通过RFC调用并抛出的
lr\u data\u descr未绑定
它通过SE37工作得很好,但是如果通过RFC执行,就会抛出错误,尽管我对RFC和SE37使用了完全相同的用户(类型“service”),相同的输入和相同的代码。
为什么会有区别?有没有办法得到一些错误信息?
如果我能弄清楚为什么它不受约束的话,这真的很有帮助。我调试到get\u data\u ref()中,发现这行的行为不同:
import t_component to lt_component from memory id
cl_salv_bs_runtime_info=>c_memid_data_def.
if sy-subrc eq 0.
如果我测试se37中的功能模块
sy-subrc
是0,如果我对同一个用户进行外部调试
这是一份临时报告,它的名字是
AQZZZMM=========ZME80FN=======