使用索引更改不带标头的ABAP内部表

时间:2016-08-09 09:54:50

标签: sap abap

如何将旧的BW3.x代码(带有标题的表)更改为BW7.x(没有标题的表)

旧代码:

LOOP AT p_package.
  gv_tabix = sy-tabix.
  " changing header ... and more
  MODIFY p_package INDEX gv_tabix.

此处标题行已更改,并使用modifyindex

更新表格

不幸的是,我没有看到如何在没有标题的表格上使用index关键字。

到目前为止我编码:

LOOP AT p_package into p_package_line.
  gv_tabix = sy-tabix.
  " changing p_package_line ...
  MODIFY table p_package from p_package_line

但我不确定它是否正确。

1 个答案:

答案 0 :(得分:3)

使用字段符号。这消除了完全明确MODIFY表的需要:

LOOP AT p_package ASSIGNING FIELD-SYMBOL(<package_line>).
  <package_line>-foo = 'bar'.
ENDLOOP.

(或旧版本)

FIELD-SYMBOLS <package_line> TYPE LINE OF p_package.
LOOP AT p_package ASSIGNING <package_line>.
  <package_line>-foo = 'bar'.
ENDLOOP.

如果您想坚持使用MODIFY

MODIFY p_package FROM p_package_line INDEX foobarhyperprefixstuffthingy_tabix.

(是的,it's in the documentation: - ))。