Löschen aus interner Tabelle

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Hallo zusammen,

ich bekomme es einfach nicht hin Datensätze aus einer internen Tabelle zu löschen. Also in der Regel schon, aber in diesem Falle leider nicht.

Und zwar habe ich eine IT, in der alle Daten aus einem Excel File stehen (Matnr, Werk, etc.....)

Diese Tabelle soll bei Bestätigen der Selektion im Dynpro in einem ALV Grid angezeigt werden. So weit so gut. Nun möchte ich aber vorher noch abprüfen ob in der Tabelle Materialnummern enthalten sind, die es in Wirklichkeit gar nicht gibt.

Code: Alles auswählen.

*Loop über meine interne Tabelle mit den Excel Daten
LOOP AT it_outtab INTO wa_outtab.

    SELECT matnr FROM marc APPENDING TABLE it_marc
      WHERE matnr = wa_outtab-matnr.

    IF sy-subrc <> 0.

      wa_itab-matnr = wa_outtab-matnr.

      IF wa_itab-matnr IS NOT INITIAL.

        wa_itab-text = 'Material existiert nicht'(008).

      ENDIF.

      APPEND wa_itab TO gt_itab.
      CLEAR wa_itab.

    ENDIF.
    
  ENDLOOP.
So. Nun habe ich eine Tabelle in der die Datensätze stehen die es nicht gibt. Aber wie bekomme ich nun genau diese Zeilen (gt_itab) aus meiner ersten internen Tabelle (it_outtab) gelöscht? Habe mit DELETE schon rumprobiert, aber leider funktioniert es nicht so, wie ich mir das vorstelle.

Danke für eure Hilfe!
Zuletzt geändert von Beginner014 am 21.11.2014 10:29, insgesamt 1-mal geändert.

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


Re: Löschen aus interner Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Posting ist ein bisschen wirr.....

Warum schreibst Du die Materialien denn in eine interne Tabelle, wenn Du die Eintraege dann doch nur wieder loeschst?

Wenn die Tabelle nur "geloeschte" enthaelt, mach einfach ein clear auf die Tabelle und sie ist leer, oder pack die Tabelle einfach nicht mehr an.

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »

Code: Alles auswählen.

IF sy-subrc <> 0.

      wa_itab-matnr = wa_outtab-matnr.

      IF wa_itab-matnr IS NOT INITIAL.

        wa_itab-text = 'Basic Data missing.'(008).

      ENDIF.
Also anstatt die Datensätze hier in eine neue interne Tabelle zu schreiben könnte ich sie gleich löschen, da hast du natürlich recht. Die Frage ist nur wie?

Re: Löschen aus interner Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
mit

Code: Alles auswählen.

*      APPEND wa_itab TO gt_itab.
Der '*' muss an der 1. Stelle der Zeile stehen

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Danke für deine Hilfe, so habe ich es vorhin auch schon versucht, allerdings ohne Erfolg. :(

Code: Alles auswählen.

LOOP AT it_outtab INTO wa_outtab.

    SELECT matnr FROM marc APPENDING TABLE it_marc
      WHERE matnr = wa_outtab-matnr.

    IF sy-subrc <> 0.

        CLEAR wa_outtab.

    ENDIF.

  ENDLOOP.
In it_outtab sind trotzdem noch alle Datensätze drin.

Re: Löschen aus interner Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Beginner014 hat geschrieben: In it_outtab sind trotzdem noch alle Datensätze drin.
WAS genau steht denn in der it_outtab drin. NUR Saetze die geloescht werden sollen oder alle oder was GENAU?

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Nein, also nochmal von vorn:

In der it_outtab stehen sämtliche Datensätze aus einer Excel Datei.

Dann möchte ich auf die Matnr abprüfen, welche Sätze aus dieser Tabelle nicht existieren.

Und diese möchte ich dann rausschmeißen.

Re: Löschen aus interner Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ist es wirklich so schwer mal die <F1> zu benutzen?

http://help.sap.com/abapdocu_70/de/ABAPDELETE_ITAB.htm

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Warum gleich so unfreundlich?

Hättest du meinen Beitrag richtig gelesen, hättest du folgendes entdeckt und somit festgestellt, dass ich sehr wohl F1 gedrückt habe:
Habe mit DELETE schon rumprobiert, aber leider funktioniert es nicht so, wie ich mir das vorstelle.
Habe entschieden es nun mit einer Ampel im ALV zu lösen, also hat sich das löschen aus der IT erübrigt.

Re: Löschen aus interner Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Beginner014 hat geschrieben:Warum gleich so unfreundlich?

Hättest du meinen Beitrag richtig gelesen, hättest du folgendes entdeckt und somit festgestellt, dass ich sehr wohl F1 gedrückt habe:
Habe mit DELETE schon rumprobiert, aber leider funktioniert es nicht so, wie ich mir das vorstelle.
Habe entschieden es nun mit einer Ampel im ALV zu lösen, also hat sich das löschen aus der IT erübrigt.
Das "Ist es wirklich so schwer mal die <F1> zu benutzen? " nennst Du unfreundlich :D

Du hast nicht geschrieben, dass Du die F1-Hilfe benutzt hast, sondern lediglich dass Du mit DELETE "rumprobiert" hast.

Wenn Du wirklich die F1 Hilfe gelesen hast und es dann nicht hinbekomm hast, solltest Du ueber eine berufliche Aenderung nachdenken. Ich meine es nur Gut mit Dir.

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Ganz ehrlich, ich dachte dieses Forum ist für Anfängerfragen da?

Wenn es jemandem nervt, dass hier simple und manchmal vielleicht auch blöde Fragen gestellt werden, der soll hier halt nicht reinschauen. Ich bin froh, so ein Forum gefunden zu haben, weil ich dachte blöde Fragen gibt es nicht und man kann sich nur verbessern.

Aber anscheinend muss ich da eines besseren belehrt werden.

Mir eine berufliche Veränderung ans Herz zu legen finde ich ganz schön dreist, denn du hast keine Ahnung von mir und meinem beruflichen Werdegang bisher.

Also für sowas habe ich wirklich kein Verständnis. :down:
Zuletzt geändert von Beginner014 am 21.11.2014 11:40, insgesamt 1-mal geändert.

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Das "Ist es wirklich so schwer mal die <F1> zu benutzen? " nennst Du unfreundlich :D
Ja ich empfinde das als unfreundlich, aber vermutlich ist das einfach ein normaler Umgangston unter Männern - nichts für ungut ;)

Re: Löschen aus interner Tabelle

Beitrag von inab (ForumUser / 69 / 0 / 6 ) »
Was wohl in Deinem Posting fehlt ist WIE hast Du mit delete rumprobiert !!!

Wenn Du das Coding gepostet hättest, mit dem Du den delete probiert hast könnte man Dir mit Sicherheit helfen :wink:

Re: Löschen aus interner Tabelle

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
Beginner014 hat geschrieben:Ganz ehrlich, ich dachte dieses Forum ist für Anfängerfragen da?
Ist es auch und man wird dir helfen, wenn man dich versteht. Ich hatte die Frage/das Problem nicht verstanden, deshalb bisher keine Antwort von mir.
Wenn du den probierten DELET Befehl mit gepostet hättest und drei Worte zum Fehler gesagt hättest, hätte man direkt helfen können.
In der IT ist "da kommt ein Fehler" nicht sehr hilfreich, da braucht man schon ein paar Details. Die gibt man beim Arzt ja auch für die Diagnose raus und sagt nicht "bin Krank" und lässt den Arzt mal rumdocktern.

Ein RTFM ist nicht nur hier, sondern im iNet weitverbreitet, sollte man nicht als unfreundlich sondern als Schubs in die richtige Richtung verstehen.

Code: Alles auswählen.

IF sy-subrc <> 0.
*  Alle Sätze löschen, die das Material beinhalten:
   DELETE it_outab WHERE matnr = wa_outtab-matnr.
* Den aktuellen Satz löschen:
  DELETE TABLE it_outab FROM wa_outtab.
ENDIF.
Gruß Hendrik

Re: Löschen aus interner Tabelle

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Danke euch beiden, ihr habt natürlich Recht, ich hatte mich etwas wirr ausgedrückt im Eifer des Gefechts und ja, ich hätte natürlich meinen Delete Versuch mit posten können.

Also:

Ich lösche weiter vorn im Programm schon die erste Zeile dieser IT mit Delete, was auch wunderbar funktioniert:

Code: Alles auswählen.

DELETE it_outtab index 1.
IF sy-subrc <> 0.
* Alle Sätze löschen, die das Material beinhalten:
DELETE it_outab WHERE matnr = wa_outtab-matnr.
ENDIF.
Danke, genau das hatte ich vorhin schon dastehen und es hat nicht funktioniert - kann ja auch nicht wenn man unten zum testen noch eine andere IT ausgibt. Danke dafür, hast mir auf die Sprünge geholfen, auch wenn ich es nun doch anders lösen werde :)

Seite 1 von 1

Vergleichbare Themen

17
Antw.
4507
Views
Sätze aus interner Tabelle löschen
von woddstock99 » 31.01.2019 18:22 • Verfasst in ABAP® für Anfänger
1
Antw.
2467
Views
daten aus interner tabelle lòschen
von slim » 12.06.2007 14:54 • Verfasst in ABAP® Core
6
Antw.
1825
Views
DB aus interner Tabelle ohne Kopfzeile löschen
von kibani » 05.03.2020 09:15 • Verfasst in ABAP® für Anfänger
7
Antw.
4303
Views
Performance beim Löschen in interner Tabelle mit Ranges
von ernst » 12.01.2006 17:50 • Verfasst in ABAP® Core
7
Antw.
4329
Views
Concatenate in interner Tabelle
von wenigerABAP » 16.09.2016 12:47 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 29 Minuten von msfox 2 / 34
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

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.

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 29 Minuten von msfox 2 / 34
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141