Objektinstanzen löschen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Objektinstanzen löschen

Beitrag von abapjunior (ForumUser / 9 / 1 / 0 ) »
Hallo zusammen,

ich würde gerne Objektinstanzen löschen.

Hierzu merke ich mir die entsprechenden Instanzreferenz in einer Tabelle.

Im Anschluss versuche ich die Instanzen dieser Tabelle zu löschen...

Code: Alles auswählen.

METHOD init_deleteable_references.

  FIELD-SYMBOLS:
        <fs_ref_master>   TYPE ycaa4987_save_data_manager_s.

  LOOP AT mt_deletable_references ASSIGNING <fs_ref_master>.
    IF <fs_ref_master>-data_dto_ref IS BOUND.
      FREE <fs_ref_master>-data_dto_ref .
    ENDIF.
  ENDLOOP.

ENDMETHOD.
Die jeweiligen Referenzen sind im Anschluss auch Initial, jedoch wenn ich die Instanz im Debugger direkt eingeben z.B. {O:3244*\CLASS=YCL_CAA4987_TZS_MSTONES_DTO} ist diese noch immer vorhanden.

Wie kann ich diese Instanz vollständig löschen?

Vielen Dank im Voraus,
abapjunior
Zuletzt geändert von abapjunior am 04.09.2014 09:47, insgesamt 1-mal geändert.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Objektinstanzen löschen

Beitrag von black_adept (Top Expert / 3947 / 105 / 886 ) »
Hallo abapjunior,

eine Instanz wird erst dann gelöscht, wenn es keine Referenz mehr darauf gibt.
Häufig kannst du das recht gut damit hinbekommen, dass du eine hoffentlich vorhandene "FREE"-Methode des Objekts aufrufst.

Falls tatsächlich alle Referenzen gelöscht sind und die Instanz immer noch vorhanden sein sollte, könntest du auch versuchen den GarbageCollector direkt aufzurufen um zu schauen, dass dieser das Objekt auch wirklich entfernen würde wenn möglich.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Objektinstanzen löschen

Beitrag von abapjunior (ForumUser / 9 / 1 / 0 ) »
Hallo Black_Adept,

danke für deine Antwort. Du hast recht...
The FREE statement deletes all rows from an internal table and releases the memory area that the rows occupied.
Ich befürchte, dass ich lediglich den allokierten Speicher gelöscht habe, der auf die Referenz gezeigt hat... Die ursprüngliche Referenz war noch immer vorhanden, ich habe dies jetzt gelöst, in dem im ein Löschfunktion im entsprechenden DTO Objekt implementiert habe.

Beste Grüße,
Abap_Junior

Re: Objektinstanzen löschen

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
abapjunior hat geschrieben:danke für deine Antwort. Du hast recht...
The FREE statement deletes all rows from an internal table and releases the memory area that the rows occupied.
Das war nicht gemeint.
Sondern eine echte FREE-Methode in deiner Klasse um alle Datenfelder zu löschen. (Siehe z.B.: CL_GUI_CONTROL=>FREE)
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.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1752
Views
Wie ~150.000.000 DS löschen
von c0lt.seavers » 17.07.2007 08:03 • Verfasst in ABAP® für Anfänger
4
Antw.
6504
Views
Mandanten löschen
von horo » 10.11.2006 15:20 • Verfasst in SAP - Allgemeines
1
Antw.
1757
Views
PO Texte löschen
von teerock » 24.12.2005 11:00 • Verfasst in Sonstige Module
0
Antw.
1528
Views
MEAN - Anlieferadresse löschen
von Carol » 11.11.2005 11:47 • Verfasst in Material Management & Produktionsplanung
1
Antw.
1367
Views
einträge aus der DB löschen!
von Handeglo » 15.01.2008 15:44 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.