我是ABAP
的新手。昨天我问了一个类似但不同的问题。
我将一个表(= table
(复制到一个本地表(= localTable
(并删除其中的所有重复项,这很好(前3个代码行(
现在,我想在这个本地表上循环,并将所有匹配的数据发送到具有INTO CORRESPONDING FIELDS OF
的结构中——不幸的是,我总是收到以下错误:
Internal tables cannot be used as work areas.
信息:我正在一个方法内部工作!
这是我使用的代码:
DATA localTable TYPE STANDARD TABLE OF table.
SELECT columnName FROM table INTO TABLE localTable.
DELETE ADJACENT DUPLICATES FROM localTable COMPARING columnName.
LOOP AT localTable ASSIGNING FIELD-SYMBOL(<fs_table>).
SELECT * FROM anotherTable as p
WHERE p~CN1 = @localVariable
AND p~CN2 = @<fs_table>-columnName
INTO CORRESPONDING FIELDS OF @exportStructure "<-- Here I always get my error
ENDSELECT.
ENDLOOP.
第一:我读到在使用命令DELETE ADJACENT DUPLICATES FROM localTable COMPARING columnName.
之前必须对internal table
进行排序,所以我在两者之间添加了以下代码行:
SORT localTable BY columnName ASCENDING.
第二:我使用的不是INTO CORRESPONDING FIELDS OF TABLE
,而是APPENDING CORRESPONDING FIELDS OF TABLE
,因为INTO用它自己覆盖每一行,所以我导出的结构中总共只有一行。
APPENDING每次我的陈述为真时都会添加一行新行。