我的SAP系统中没有任何开发人员权限,但我找到了一种方法,可以在一个小小的“用户退出”框中编写一些ABAP代码(我不知道这是否就是你所说的)一份报告。
我正在尝试提交一份人力资源报告,并将其即将发布的PERNR再次插入同一份报告中。
有一个语法错误告诉我t_list
没有名称为PERNR
的组件。
我需要做些什么才能让它发挥作用?
DATA: t_list TYPE TABLE OF abaplist WITH HEADER LINE,
seltab TYPE TABLE OF rsparams,
selline LIKE LINE OF seltab.
*I found out that the name of the selection field in the Report-GUI is "PNPPERNR" and tested it
selline-selname = 'PNPPERNR'.
selline-sign = 'I'.
selline-option = 'EQ'.
SUBMIT Y5000112
USING SELECTION-SET 'V1_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.
LOOP AT t_list.
*The Problem is here: how do I get the pnppernr out of t_list, it's the first column of the report output
selline-low = t_list-pernr.
append selline to seltab.
ENDLOOP.
SUBMIT Y5000112
WITH SELECTION-TABLE seltab
USING SELECTION-SET 'V2_TEST'
AND RETURN.
ENDIF.
答案 0 :(得分:3)
使用功能模块LIST_TO_ASCI
将t_list的内容解码为可读的内容。 This answer包含一些示例代码,包括所需的数据类型。此时,您要查找的数据可能会出现在输出中的相同列范围内。使用standard substring access methods - e。 G。 line+42(21)
获取您需要的部分内容。
答案 1 :(得分:0)
vwegert的回答非常有用!
在my previous answer我忘记提及LIST_TO_ASCI FM :)
我唯一可以添加的是解析结果行没有通用的解决方案,并且很大程度上取决于它的结构。通常它就像:
LOOP AT t_list.
SPLIT t_list AT '|' INTO <required_structure>.
selline-low = <required_structure>-pernr.
APPEND selline TO seltab.
ENDLOOP.
其中&lt;`required_structure&gt;是你的Y5000112输出结构。但这可能不是那么简单,可能需要额外的操作。