Guten Abend,
ich habe folgende Situation:
Ich loope über die Tabelle HRP. Ich möchte wenn <ls_z>-type_key 'A11' oder 'A12' ist den Inhalt löschen. Wenn ich Clear <ls_z>-appl und Clear <ls_z>-Pppl nehme, klappt es nicht. Testweise habe ich 123 und 4567 zugeordnet. Das hat geklappt. Was muss ich machen, das bei dieser Konstellation der Inhalt der zellen gelöscht wird ?
LOOP AT hrdt ASSIGNING <ls_z>
WHERE pay IS INITIAL.
CASE <ls_z>-type_key.
WHEN 'AB11'.
CONTINUE.
WHEN 'A11' OR 'A12'.
<ls_z>-appl = ' 123'.
<ls_z>-Pppl = ' 4567'.
ENDCASE.
ENDLOOP.
Ich kann auf die schnelle keinen Fehler an deinem Coding erkennen. (Das CONTINUE kannst du übrigens weglassen, da danach eh nichts passiert)
Was genau willst du machen? Soll wirklich nur der Inhalt aus APPL und PPPL gelöscht werden oder willst du aus der Tabelle die ganze Zeile entfernen?
Das Löschen der Felder kannst du eben mit dem CLEAR bewerkstelligen. (Ich galub du hast in dem Fall irgendwoanders einen Fehler gehabt)
Das Entfernen der Zeile geht ganz einfach mit "DELETE hrdt."
Du brauchst nicht mal einen Index mitzugeben, da dieser implizit aufgrund des umgebenden Loops angenommen wird.
Aber Achtung: Dannach ist das Feldsymbol NOT ASSIGNED.
Übrigens könntest du das Entfernen (aus Performancegründen) auch mit DELETE ... WHERE ... ohne den Loop erledigen.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
ich weiß grad nicht, wie deine interne Tabelle definiert ist, aber evtl. sind die Felder Keyfelder?
Hast du schonmal versucht, ob es möglich ist, die Werte im Debugger zu löschen?
Was meinst du genau mit "es lässt sich nicht leeren"?
Die einzige Möglichkeit eine Variable im Debugger zu "schützen" ist, dass sie irgendwie auf READ ONLY gesetzt wird. Das passiert nur dann wenn der Wert z.b. durch einen Importing-Parameter läuft oder wenn es sich, wie schon erwähnt, um das Key-Feld einer Tabelle handelt.
Nur heißt das aber auch, dass sich der Wert im Debugger nicht ändern lässt.
Poste mal bitte die Definition deines Tabellentyps um den Fehler nachvollziehen zu können.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Das ist eine Zahl. Die kann nicht "leer" sein. Nur 0.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.