运行时错误“;系统“ABAP访问被拒绝”;使用“通过自定义报告提交”时

运行时错误“;系统“ABAP访问被拒绝”;使用“通过自定义报告提交”时,abap,Abap,我试图使用cl_salv_bs_runtime_info,以便在标准报告中使用SUBMIT之后在内存中获取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

我试图使用cl_salv_bs_runtime_info,以便在标准报告中使用SUBMIT之后在内存中获取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( ).
报告ztest1。
字段符号可键入任何表格。
数据lr_pay_数据类型参考数据。
cl_salv_bs_运行时_信息=>set(
导出显示=abap\U false
metadata=abap\U false
数据=abap_真)。
提交rfts7000
然后返回。
尝试
cl_salv_bs_运行时_info=>get_data_ref(
导入r_数据=lr_支付数据)。
将lr_pay_数据->*分配给。
捕获cx\u salv\u bs\u sc\u runtime\u信息。
消息`无法检索ALV数据`类型'E'。
结束。
cl_salv_bs_runtime_info=>清除所有()。
运行时,程序rfts7000运行并提示选择数据

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

ST22摘录:
有什么想法吗?

根据相关评论进行研究后,案例如下

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

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

因此SAP Note 2392358准确地说:“根据S/4HANA简化列表,经典CM的总计表已完成删除,因此不能再访问。”

为了使这种保护发挥作用,SAP有一个黑名单,其中列出的程序是为了不被使用

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

该说明建议首先获得SAP的批准,然后按照步骤将该计划从黑名单中删除


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

这个问题在论坛上有一些有趣的评论。确实如此。我将根据我在那里的发现回答这个问题。哇,哇,多么有趣的错误。从不知道HANA正在维护黑名单:)@Suncatcher我相信黑名单的来源是ERP本身,因为SAP在40年后正努力进入一个新时代,他们试图让人们放弃旧习惯和流程。