Field-Symbol und löschen von Tabellenzeilen

Getting started ... Alles für einen gelungenen Start.
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Field-Symbol und löschen von Tabellenzeilen

Beitrag von UserBC (ForumUser / 61 / 0 / 1 ) »
Hallo Zusammen,

ich bin von der Verwendung von Workareas auf die Verwendung von Field-Symbols umgestiegen.

Allerdings habe ich ein Problem bei internen Tabellen - wie kann ich bei der Verwendung von Field-Symbols
eine Zeile der internen Tabelle löschen?

Bei WA geht's ja einfach ;
loop itab into wa.
...
delete itab from wa.
...
endloop.

Bei field-symbols funktioniert dies ja nicht;
loop at itab assinging fs.
...
delete ...??? -> Was muss hier stehen bei delete itab from fs - würde ja die Zuweisung verloren gehen und ein Dump produziert werden.
...
endloop.

Wäre euch echt dankbar für eure Tips.

Danke
UserBC

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
UserBC hat geschrieben:Hallo Zusammen,

ich bin von der Verwendung von Workareas auf die Verwendung von Field-Symbols umgestiegen.

Allerdings habe ich ein Problem bei internen Tabellen - wie kann ich bei der Verwendung von Field-Symbols
eine Zeile der internen Tabelle löschen?

Bei WA geht's ja einfach ;
loop itab into wa.
...
delete itab from wa.
...
endloop.

Bei field-symbols funktioniert dies ja nicht;
loop at itab assinging fs.
...
delete ...??? -> Was muss hier stehen bei delete itab from fs - würde ja die Zuweisung verloren gehen und ein Dump produziert werden.
...
endloop.

Wäre euch echt dankbar für eure Tips.

Danke
UserBC
Hallo,

Du musst bei Verwendung von Feldsymbolen nach einem DELETE nur sicherstellen (z.B. durch ein CONTINUE oder EXIT), dass Du nicht mehr auf das Feldsymbol zugreifst, da es ja nicht mehr gesetzt ist. Der DELETE selbst kann dabei problemlos wie auch bei der Workarea-Variante geschrieben werden.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von frankiescat (ForumUser / 6 / 0 / 0 ) »
Also ich weiss das Thema ist älter aber ich habe da meine eigne Vorgehensweise die ich gerne benutze:

LOOP AT itab ASSIGNING <fs_fields>.
IF ... Wert <> Bedingung.
CLEAR <fs_fields>
ENDIF.
ENDLOOP.
DELETE itab WHERE tabkey = ' '.

Ich clear das Field Symbol gerne vorher, weiss nicht ob das einen riesen Unterschied macht!

Viele Grüße

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
loop itab into wa.
...
delete itab index sy-tabix.
...
endloop.

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von michlbartl (ForumUser / 17 / 0 / 0 ) »
ewx hat geschrieben:loop itab into wa.
...
delete itab index sy-tabix.
...
endloop.
Was hat diese Lösung mit Feldsymbolen zu tun?

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
michlbartl hat geschrieben:Was hat diese Lösung mit Feldsymbolen zu tun?
Das war die Frage:
userBC hat geschrieben:wie kann ich bei der Verwendung von Field-Symbols
eine Zeile der internen Tabelle löschen?
Das ist die Antwort:
ewx hat geschrieben:delete itab index sy-tabix.
:!:

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von michlbartl (ForumUser / 17 / 0 / 0 ) »
ewx hat geschrieben:
michlbartl hat geschrieben:Was hat diese Lösung mit Feldsymbolen zu tun?
Das war die Frage:
userBC hat geschrieben:wie kann ich bei der Verwendung von Field-Symbols
eine Zeile der internen Tabelle löschen?
Das ist die Antwort:
ewx hat geschrieben:delete itab index sy-tabix.
:!:
Der Loop war nur verwirrend. Wollte Dir nicht zu nahe treten.

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von frankiescat (ForumUser / 6 / 0 / 0 ) »
ich vertraue dem sy-tabix trotzdem nicht, deshalb clear ich das field symbol gerne. Ist paranoid, ich weiss!

Viele Grüße

Re: Field-Symbol und löschen von Tabellenzeilen

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
frankiescat hat geschrieben:ich vertraue dem sy-tabix trotzdem nicht, deshalb clear ich das field symbol gerne. Ist paranoid, ich weiss!
...
Sy-Tabix ist wahrscheinlich nur selten die richtige Wahl.
Erst recht wenn man Tabellen parallel oder geschachtelt verarbeitet.

Also muß man sich für jede Tabelle oder Situation den Sy-Tabix extra merken. Macht ja auch Sinn:

Man loopt die Tabelle und entsorgt fallweise den gemerkten Tabelleneintrag.

Code: Alles auswählen.

LOOP AT lt_itab ASSIGNING <lt_itab>.
  lx_itab = sy-tabix. "<<--gleich hier und sofort den aktuellen Index merken

  IF ... Wert <> Bedingung.
    delete lt_itab index lx_itab. "<<-- hier den aktuellen Satz dieser Tabelle löschen 
  ENDIF. 
ENDLOOP.
Viel Erfolg ...

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

10
Antw.
3061
Views
Probleme mit Field Symbol
von Kenny » 03.04.2013 17:11 • Verfasst in ABAP® für Anfänger
3
Antw.
2904
Views
Dump bei Field-symbol
von tho_died » 24.06.2008 14:43 • Verfasst in ABAP® für Anfänger
2
Antw.
2343
Views
IMPORT FROM MEMORY mit Field-Symbol
von Somani » 09.09.2013 17:14 • Verfasst in ABAP® Core
1
Antw.
1269
Views
Field-Symbol als Importing Parameter
von tekko » 12.06.2021 18:23 • Verfasst in ABAP Objects®
3
Antw.
14043
Views
Wie Field Symbol für Struktur generisch typisieren?
von Michael71 » 14.02.2012 16:03 • Verfasst in ABAP Objects®

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.