Ich habe festgestellt, dass ich wohl bisschen was anderes brauche. Ich hab mein ALV mit den Referenzen. Dort kann ich jedoch keine Änderungen machen, da ich die Liste wiederherstellen möchte, wenn die Aktion nicht gespeichert wird. Bisher hatte ich es so, dass ich mit MOVE mein ALV kopiert hatte (einschließlich der Referenzen) und diese in ein temporäres ALV überführt habe. Problem natürlich, dass wenn ich in einer der beiden Änderungen mache, beide verändert sind. =/ Und ein wiederherstellen dann natürlich keinen Sinn macht.
Nun habe ich das Interface IF_OS_CLONE gefunden, mit dem ich Objekte und nicht deren Referenzen kopieren kann. Das klappt auch so weit. Code:
Code: Alles auswählen.
method IF_OS_CLONE~CLONE.
SYSTEM-CALL OBJMGR CLONE me TO result.
endmethod.
Beispielhaft die Zuweisung:
Code: Alles auswählen.
CREATE OBJECT object1.
CREATE OBJECT object2.
object2 ?= object1->if_os_clone~clone( ).
Nur hab ich nun das Problem, dass ich nicht weiß, wie ich das auf meine ALVs anwende. Mit MOVE kopiere ich das gesamte erste ALV in das zweite, inklusive der Referenzen. Ich würde aber gerne das erste ALV in das zweite ALV kopieren, nur leider nicht die Referenzen, sondern mit Kopien der Objekte. Gibt es dafür ein Statement (ähnlich dem MOVE) oder muss ich dann wirklich alles durchloopen, ein neues temporäres ALV erzeugen und dann eben meine Objekte hinzufügen?