在标准报告中使用SUBMIT后,我试图使用cl_salv_bs_runtime_info来获取内存中的ALV数据。
以上代码为:
REPORT ztest1.
FIELD-SYMBOLS <lt_pay_data> TYPE ANY TABLE.
DATA lr_pay_data TYPE REF TO data.
cl_salv_bs_runtime_info=>set(
EXPORTING display = abap_false
metadata = abap_false
data = abap_true ).
SUBMIT rfts7000
AND RETURN.
TRY.
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING r_data = lr_pay_data ).
ASSIGN lr_pay_data->* TO <lt_pay_data>.
CATCH cx_salv_bs_sc_runtime_info.
MESSAGE `Unable to retrieve ALV data` TYPE 'E'.
ENDTRY.
cl_salv_bs_runtime_info=>clear_all( ).
运行时,程序rfts7000将运行并提示选择数据。
提交选择屏幕后,我得到:
答案 0 :(得分:5)
根据亲戚SCN Question中的评论进行了一些研究之后,情况如下。
系统抛出此错误是为了防止我运行过时和过时(或即将过时)的程序。
我通过SUBMIT
调用的特定程序是Cash Management(CM)模块的一部分,虽然该模块在S4 / HANA中仍处于活动状态,但我认为它将被替换。
因此, SAP注释2392358 确切地说:“根据S / 4HANA简化列表,经典CM的总计表已消除,因此不再可以访问。 “
为了使此保护起作用,SAP列出了黑名单,列出了不使用的程序。
但是,正如 SAP Note 2249880 中所述,这可能存在“后门”。后门只是从黑名单中删除程序的一种方法。
该注释建议先获得SAP的批准,然后按照步骤从黑名单中删除该程序。
作为一个旁注,我更担心我们已经在一个过时的模块中实施了现金管理,而不是担心毕竟的错误...