Code: Alles auswählen.
METHOD put_kunde.
* Erstmal prüfen, ob der Kunde überhaupt in der Datenbank ist.
LOOP AT it_kunde INTO wa_kunde
WHERE nummer = kunde-nummer.
ENDLOOP.
IF sy-subrc = 0.
* ja: Kunde vorhanden: Datensatz überschreiben
MODIFY TABLE it_kunde FROM kunde.
ELSE.
* nein: kunde nicht vorhanden
RAISE kunde_nicht_vorhanden.
ENDIF.
ENDMETHOD.
Aber da defintiv eine passende Zeile vorhanden ist, sonst wäre der vorgelagerte Loop ja nicht mit sy-subrc = 0 beendet wurden, kann ich mir darauf einfach keinen Reim machen.Es wurde keine Zeile geändert, da beim Einfügen über Tabellenschlüssel bzw. bei logischer Bedingung keine passende Zeile gefunden wurde oder beim Einfügen über den Tabellenindex der angegebene Index größer als die aktuelle Anzahl von Zeilen war.
Code: Alles auswählen.
NUMMER Z_KUNDENNUMMER CHAR 4
NAME Z_KUNDENNAME CHAR 40
VORNAME Z_KUNDENVORNAME CHAR 40
STRASSE Z_KUNDENSTRASSE CHAR 40
PLZ Z_KUNDENPLZ NUMC 5
ORT Z_KUNDENWOHNORT CHAR 40
TELEFON Z_KUNDENTELEFON CHAR 15
EMAIL Z_KUNDENEMAIL CHAR 40
SONST Z_KUNDENSONSTIGES CHAR 40
Code: Alles auswählen.
METHOD put_kunde.
* Erstmal prüfen, ob der Kunde überhaupt in der Datenbank ist.
LOOP AT it_kunde INTO wa_kunde
WHERE nummer = kunde-nummer.
* ja: Kunde vorhanden: Datensatz überschreiben
MODIFY it_kunde FROM kunde.
ENDLOOP.
IF sy-subrc <> 0.
* nein: kunde nicht vorhanden
RAISE kunde_nicht_vorhanden.
ENDIF.
ENDMETHOD.
Code: Alles auswählen.
MODIFY it_kunde FROM wa_kunde.