通过自定义报告使用SUBMIT时出现运行时错误“ SYSTEM_ABAP_ACCESS_DENIED”

时间:2019-08-08 08:15:05

标签: sap abap

在标准报告中使用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将运行并提示选择数据。

提交选择屏幕后,我得到:

Error

ST22提取物: ST22 text 有什么想法吗?

1 个答案:

答案 0 :(得分:5)

根据亲戚SCN Question中的评论进行了一些研究之后,情况如下。

系统抛出此错误是为了防止我运行过时和过时(或即将过时)的程序。

我通过SUBMIT调用的特定程序是Cash Management(CM)模块的一部分,虽然该模块在S4 / HANA中仍处于活动状态,但我认为它将被替换。

因此, SAP注释2392358 确切地说:“根据S / 4HANA简化列表,经典CM的总计表已消除,因此不再可以访问。 “

为了使此保护起作用,SAP列出了黑名单,列出了不使用的程序。

但是,正如 SAP Note 2249880 中所述,这可能存在“后门”。后门只是从黑名单中删除程序的一种方法。

该注释建议先获得SAP的批准,然后按照步骤从黑名单中删除该程序。

作为一个旁注,我更担心我们已经在一个过时的模块中实施了现金管理,而不是担心毕竟的错误...