Objekt Klonen

Objektreferenzen in ABAP zu kopieren ist selbst für einen ABAP OO Anfänger keine große Sache. Referenz1 = Referenz2 und schon hat man aus einem Objekt zwei gemacht. Dem geschulten Auge wird allerdings sofort auffallen, dass hier eigentlich nicht wirklich etwas kopiert wurde.

Referenz2 besitzt nun lediglich einen Zeiger, welcher auf die gleiche Speicheradresse wie Referenz1 verweißt. Möchte man nicht nur den Zeiger eines Objektes, sondern das ganze Objekt samt seiner Parameter und Werte, in einen eigenen Speicherbereich kopieren, dann muss man etwas mehr Aufwand betreiben.

Objekte, welche geklont werden sollen, müssen das Interface IF_OS_CLONE implementieren. Ich habe hierfür eine kleine Test Klasse angelegt.

CloneObject

Mit folgendem Coding ist es nun möglich, eine echte Kopie eines Objektes zu erstellen:

DATA: obj_referenz1 TYPE REF TO y0cl_bw_clone_test,
      obj_referenz2 TYPE REF TO y0cl_bw_clone_test.

* Clone object
  SYSTEM-CALL OBJMGR CLONE obj_referenz1 TO obj_referenz2.

Posted on 20. März 2015 in ABAP, Blog

Back to Top