Löschen von archivierten Daten 
Der Name dieses Unterprogramms beginnt mit dem Namen der Archivierungsklasse und endet immer mit "_DELETE_ARCHIVE_OBJ".
Aufgaben
Jede Archivierungsklasse muß ein Unterprogramm bereitstellen, das die archivierten Daten in der Datenbank löscht. Ob diese Daten tatsächlich gelöscht werden oder eventuell nur eine Referenz gelöscht werden darf, entscheidet die Archivierungsklasse. Inkonsistenzen werden damit vermieden.
Da die Archivierungsklassen automatisch wissen, welche Daten archiviert wurden, braucht dies den Klassen nicht mehr mitgeteilt zu werden. Es werden automatisch die Daten gelöscht, die durch den Funktionsbaustein ARCHIVE_GET_NEXT_OBJECT als letztes eingelesen wurden und während des Schreibens des Archivs mit einem Löschkennzeichen versehen wurden.
Die Daten zum Löschen erhält die Klasse über den Aufruf des Unterprogramms class_PUT_DATA durch die Archivierung. Das Format der Daten entspricht exakt dem Format, wie es zum Archivierungszeitpunkt mit dem Unterprogramm class_GET_DATA an die Archivierung übergeben wurde.
Aufrufzeitpunkt
Das Unterprogramm wird automatisch vom Funktionsbaustein ARCHIVE_DELETE_OBJECT_DATA aufgerufen. Dieser Funktionsbaustein wird nur einmal für jedes mit ARCHIVE_GET_NEXT_OBJECT eingelesene Datenobjekt aufgerufen.
Schnittstelle
FORM |
class_DELETE_ARCHIVE_OBJ |
USING |
HANDLE |
Parameter
Die Schnittstelle dieses Unterprogramms besteht nur aus dem Parameter ARCHIVE_HANDLE, um den Zusammenhang mit dem Archivierungsobjekt festzulegen.

Das Unterprogramm muß die zu löschenden Daten in globalen Tabellen ablegen und ein weiteres Unterprogramm (keine Namenskonvention) mit PERFORM ON COMMIT aufrufen, das vom R/3-System dann abgearbeitet, wenn im Löschprogramm ein COMMIT WORK abgesetzt wird. In dem aufgerufenen Unterprogramm sollten dann die tatsächlichen Löschoperationen an die Datenbank übergeben werden.
Das R/3-System ruft dieses Unterprogramm je COMMIT WORK nur ein einziges Mal auf, egal, wie oft dieses per PERFORM ON COMMIT abgesetzt wurde. Bei einem ROLLBACK WORK, das durch einen Aufruf des Funktionsbausteins ARCHIVE_ROLLBACK_WORK ausgelöst werden muß, wird das PERFORM-Kommando nicht ausgeführt.