【发布时间】:2017-01-13 10:38:44
【问题描述】:
我的问题如下:
我有一份名为 Y5000112 的报告。
我的同事总是使用 selection screen variant V1 手动执行一次,然后使用 variant V2 将第一次执行的结果添加到选择中第二次执行.
在这种情况下,这些结果是PERNR。
我的目标:
自动执行此操作 - 单击一次执行该查询两次,并使用第一次执行的 PERNR 结果自动填充第二次执行的 PERNR 选择。
我发现了如何触发报告执行,然后是另一个,如何将其设置为某个变体并做到了这一点 - [编辑] 在第一个答案之后我得到了一些进一步但我仍然不知道如何循环遍历我的结果并将它们放入下一个报告提交中:
DATA: t_list TYPE TABLE OF abaplist.
* lt_seltab TYPE TABLE OF rsparams,
* ls_selline LIKE LINE OF lt_seltab.
SUBMIT Y5000114
USING SELECTION-SET 'MA OPLAN TEST'
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = t_list
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE 'Unable to get list from memory'.
ELSE.
* I want to fill ls_seltab here with all pernr (table pa0020) but I haven't got a clue how to do this
* LOOP AT t_list.
* WRITE /t_list.
* ENDLOOP.
SUBMIT Y5000114
* WITH-SELECTION-TABLE ls_seltab
USING SELECTION-SET 'MA OPLAN TEST2'
AND RETURN.
ENDIF.
附言
我对 ABAP 不是很熟悉,所以如果我没有提供足够的信息,请在 cmets 中告诉我,我会尝试找出您需要知道的任何内容来解决这个问题。
这是我想象中的 JS 代码,它可以非常概括地表达我想要完成的事情。
function submitAndReturnExport(Reportname,VariantName,OptionalPernrSelection)
{...return resultObject;}
var t_list = submitAndReturnExport("Y5000114","MA OPLAN TEST");
var pernrArr = [];
for (var i in t_list)
{
pernrArr.push(t_list[i]["pernr"]);
}
submitAndReturnExport("Y5000114","MA OPLAN TEST2",pernrArr);
【问题讨论】: