2016-08-09 7 views
1

Wie BW7.x (Tabellen ohne Kopf)ändern ABAP interne Tabelle ohne Kopf Index mit

OLD Code den alten BW3.x ​​Code (Tabellen mit Kopf) zu ändern:

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

Hier ist die Kopfzeile wird geändert und die Tabelle wird aktualisiert mit modify und index

Leider sehe ich nicht, wie Sie das index Schlüsselwort auf Tabellen ohne eine Überschrift verwenden.

Bisher habe ich codiert:

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

Aber ich bin nicht sicher, ob es richtig ist.

Antwort

3

Verwenden Sie ein Feldsymbol. Dadurch entfällt die Notwendigkeit, explizit die Tabelle MODIFY vollständig:

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

(oder für ältere Versionen)

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

Wenn Sie auf die Verwendung von MODIFY haften möchten:

MODIFY p_package FROM p_package_line INDEX foobarhyperprefixstuffthingy_tabix. 

(Und ja, it's in the documentation :-)).

Verwandte Themen