MODIFY itab [FROM workarea]
[INDEX Index]
[TRANSPORTING fieldlist | (field_with_fieldname)
[WHERE condition]].
Ändern von Datensätzen einer internen Tabelle. Dieses
Kommando dient nur zum Ändern. Das Einfügen von neuen
Datensätzen wie beim
MODIFY-Kommando
für Datenbanktabellen
ist nicht möglich! Die Daten werden entweder der Kopfzeile
der Tabelle oder einem mit dem Zusatz
FROM anzugebenden Arbeitsbereich
entnommen. Mit dem Zusatz
TRANSPORTING kann eine Auswahl der zu
übertragenden Felder erfolgen, alle nicht in der Feldliste
aufgeführten Felder werden nicht vom Arbeitsbereich in die
Tabelle transportiert. Die Felder können als Konstante oder
dynamisch angegeben werden.
Der oder die zu bearbeitenden Datensätze können auf
unterschiedliche Weise festgelegt werden. Ohne
INDEX- oder WHERE-Zusatz
kann das Kommando nur innerhalb einer
LOOP-Schleife über
eine interne Tabelle benutzt werden. Geändert wird in diesem
Fall der gerade aktuelle Datensatz. Außerhalb von
LOOP-Schleifen
wird ein einzelner Datensatz durch die Angabe der Datensatznummer
mit
INDEX identifiziert. Dieser Index kann beispielsweise bei
einer vorangegangenen
READ-Anweisung
ermittelt werden. Der
WHERE-Zusatz
ermöglicht einen Massen-Update der internen Tabelle. In allen
Datensätzen der internen Tabelle, die der Bedingung genügen,
werden die mit
TRANSPORTING benannten Felder auf den aktuellen
Wert der entsprechenden Felder des Arbeitsbereiches oder der Kopfzeile
gesetzt. Da sich dadurch identische Feldinhalte in mehreren Datensätzen
ergeben, ist der Einsatz der
TRANSPORTING-Option zwingend erforderlich.