wenn ich im Alv-Grid Werte ändere und auf ?Speichern? drücke, werden die Werte gespeichert. Ich bleibe in der gleichen Maske, ändere die Werte noch Mal und gehe auf 'Speichern'. Die Werte werden diesmal nicht gespeichert. Dabei wird das ALV-Grid aktualisiert (auf dem Bildschirm sehe ich neue Werte), nur meine interne Tabelle hat noch die alten Werte.
Nach dem Speichern rufe ich die Methode check_changed_data auf:
WHEN 'SAVE'.
CALL METHOD alv_grid->check_changed_data
IMPORTING
e_valid = gv_valid.
Bei erstem Mal nutzt es, bei zweitem Mal nicht. Weiß jemand, woran es liegen kann?
den event_receiver habe ich eingebaut, aber es hat nicht geholfen.
Nach langem Grübeln habe ich das Problem doch noch gelösst, ohne event_receiver.
Der Fehler war bei mir der, dass ich Alv-Grid immer neu angelegt hatte. Jetzt habe ich eine Abfrage eingebaut, die prüft, ob Alv-Grid einmal aufgerufen wurde. Falls ja, rufe ich lediglich die Methode refresh_table_display auf, und das mehrfache Speichern funktioniert:
ich gehöre auch erst seit kurzer Zeit der ABAP-Gemeinde an und habe in diesem Formum schon ne Menge Unterstützung erhalten und Anregungen gefunden. Danke dafür.
Dieser Thread hat mir auch sehr geholfen. Allerdings stellt sich mir jetzt die Frage, wie ich die Änderungen am einfachsten in die Datenbank schreibe? Gibt es da eine Automatisierung von SAP oder ist das noch echte Handarbeit?
Es muss ja irgendwie ein Vergleich der neuen Daten mit den bisher in der DB vorhandenen Daten stattfinden. Wie löst man das optimal?