cl_salv_bs_runtime_info类中的SUBMIT RKAEP000命令中的问题

2020-08-23 00:29发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

使用cl_salv_bs_runtime_info类检索数据时,我遇到了SUBMIT功能的问题。

我以以下方式编写了代码:

字段符号: TYPE ANY TABLE,

类型为任意

键入任何表。

cl_salv_bs_runtime_info => set(导出

显示= abap_false元数据= abap_false数据= abap_true)。

repname ='RKAEP000'。

使用p_tcode EQ'KOB1'提交(repname)

p_kokrs ='XXX'

在rt_aufnr中使用aufnr

WITH p_disvar ='/SAP_ABAP'

导出列表以进行存储并返回。

cl_salv_bs_runtime_info => get_data_ref(导入r_data_descr = lr_data_descr)。

创建数据lr_data类型句柄lr_data_descr。

ASSIGN lr_data-> *至

cl_salv_bs_runtime_info => get_data(IMPORTING t_data = )。

现在,问题是当我执行此代码时,中不会填充任何数据。

但是,当我首先单独执行Tcode KOB1时,然后如果我从报告中执行了以上代码,我将得到正确的结果,并且已正确填充。

内存问题吗?

像使用SUBMIT一样,如何在不单独执行Tcode的情况下使内部表充满数据。

任何帮助将不胜感激。

感谢与问候,

AV

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

使用cl_salv_bs_runtime_info类检索数据时,我遇到了SUBMIT功能的问题。

我以以下方式编写了代码:

字段符号: TYPE ANY TABLE,

类型为任意

键入任何表。

cl_salv_bs_runtime_info => set(导出

显示= abap_false元数据= abap_false数据= abap_true)。

repname ='RKAEP000'。

使用p_tcode EQ'KOB1'提交(repname)

p_kokrs ='XXX'

在rt_aufnr中使用aufnr

WITH p_disvar ='/SAP_ABAP'

导出列表以进行存储并返回。

cl_salv_bs_runtime_info => get_data_ref(导入r_data_descr = lr_data_descr)。

创建数据lr_data类型句柄lr_data_descr。

ASSIGN lr_data-> *至

cl_salv_bs_runtime_info => get_data(IMPORTING t_data = )。

现在,问题是当我执行此代码时,中不会填充任何数据。

但是,当我首先单独执行Tcode KOB1时,然后如果我从报告中执行了以上代码,我将得到正确的结果,并且已正确填充。

内存问题吗?

像使用SUBMIT一样,如何在不单独执行Tcode的情况下使内部表充满数据。

任何帮助将不胜感激。

感谢与问候,

AV

付费偷看设置
发送
7条回答
大圣 - sap领域执行人,9年sap运营经验
1楼 · 2020-08-23 00:42.采纳回答

要测试假设,我建议您在后台运行KOB1,确保ALV在后台打印输出,然后临时更改程序的SUBMIT:

使用SELECTION-SET提交RKAEP000  000'并返回。  

(其中000将替换为后台作业使用的程序变量的名称)

如果有效,则显示程序变量及其所有参数,并进行更改 SUBMIT通过WITH传递程序变体的所有参数。

歪着头看世界
2楼-- · 2020-08-23 01:02

Hello Stanislas,

是的,我也是这样做的。

但是仍然没有运气。

我还使用了CALL FUNCTION'LIST_FROM_MEMORY',但仍然没有得到任何数据。

我想知道为什么当我分别运行Tcode KOB1时在我的代码中填充数据

 cl_salv_bs_runtime_info => set(
         导出显示= abap_false
                   元数据= abap_true
                   数据= abap_true)。
       提交rkaep000并返回
                   带p_tcode EQ'KOB1'
                   使用p_kokrs ='VWDS'
                   在rt_aufnr中使用aufnr
                   使用p_disvar ='/SAP_ABAP'。  ->已经在KOB1事务中创建。


       cl_salv_bs_runtime_info => get_data_ref(
       导入r_data_descr = lr_data_descr)。
       创建数据lr_data类型句柄lr_data_descr。
       ASSIGN lr_data-> * TO 。
       cl_salv_bs_runtime_info => get_data(
       输入
       t_data = 
       )。
       在处分配
大道至简
3楼-- · 2020-08-23 01:03

您可以删除要导出的导出列表吗? (AFAIK可能会触发一个良好的旧列表ALV,而不是GRID,因此不会将任何数据返回给该类)

Aaron 3364
4楼-- · 2020-08-23 01:01

@Sandra,

感谢帮助。

是的,这可能是个问题,

我将尝试通过提交命令中设置的选择

callcenter油条
5楼-- · 2020-08-23 01:02

也在调试过程中,我发现调用SUBMIT命令时不会从内存中刷新值。 标准报告rkaep000中没有清除以前的值(就像AUFNR,BUDAT一样),有什么方法可以清除。

Alawn_Xu
6楼-- · 2020-08-23 00:45

非常感谢专家。

问题已解决。

我经历过 Sandra Rossi 的方法。

安排了后台作业并检查了需要哪些参数。

发现必须在SUBMIT报告中传递RT_BUDAT范围。

可以关闭线程。

半个程序猿
7楼-- · 2020-08-23 01:01

您还忘记了一些参数(这是将程序名称放在变量中以欺骗代码检查器的原因吗?) 事务,在内存中设置了一些参数id,下一次执行成功

您可以保存报表的默认变体,并在参数之外使用SELECTION-SET在SUBMIT语句中使用它。

NB:我也曾经将元数据设置为true,但其目的是稍后重新生成网格(或稍后将其转换为XML或XLSX所见即所得格式)

# p#

一周热门 更多>