Verwendung
Aus Gründen der Datensicherheit darf das Schreibprogramm keine Daten in der Datenbank löschen. Die Daten werden während der Löschphase von einem separaten Löschprogramm aus der Datenbank gelöscht. Dadurch wird sichergestellt, daß während der Schreibphase keine Daten verlorengehen können, so daß eine Archivierung im Onlinemodus möglich ist.
Das Löschprogramm liest die Archivdateien mit Hilfe der ADK-Funktionsbausteine (FB) und löscht danach die Daten in der Datenbank. Die Verarbeitung der Archivdateien durch das Löschprogramm erfolgt stets dateiweise. Es können aber mehrere Löschprogramme parallel laufen, wobei jedes eine einzige Archivdatei verarbeitet.
Wichtige Informationen
Aufgrund der Unicode-Fähigkeit des ADK sind bestimmte Änderungen in vorhandenen Löschprogrammen erforderlich, speziell für ARCHIVE_GET_NEXT_RECORD. Diese neuen Richtlinien gelten natürlich auch für alle neuen Löschprogramme, die Sie entwickeln.
Vorgehensweise
Reihenfolge beim Aufruf der Funktionsbausteine
Dieser Funktionsbaustein:
Mit diesem Funktionsbaustein rufen Sie den Wert des Commit-Zählers ab, der über die Transaktion AOBJ im Customizing festgelegt wurde.
Ab SAP Web Application Server 6.10 können Sie diesen Funktionsbaustein dazu verwenden, die Strukturen der Initialisierungsdaten, die Sie mit ARCHIVE_PUT_INIT_DATA im Schreibprogramm übergeben haben, zu besorgen.
Ab SAP Web Application Server 6.10 können Sie diesen Funktionsbaustein dazu verwenden, die Initialisierungsdaten, die Sie mit ARCHIVE_PUT_INIT_DATA im Schreibprogramm übergeben haben, zu besorgen.
Die folgenden Schritte (5 - 8) müssen in einer Schleife für alle zu löschenden Datenobjekte durchgeführt werden.
Mit diesem Funktionsbaustein lesen Sie das nächste Datenobjekt aus der zum Löschen geöffneten Archivdatei.
Dieser Funktionsbaustein:
Der Parameter OBJECT_ID muß syntaktisch vom Typ CHAR sein.
Dieser Funktionsbaustein muß nach jedem ARCHIVE_GET_NEXT_OBJECT aufgerufen werden und kann nicht entsprechend < commit counter > nach Datenobjekten gruppiert werden.
Mit diesem Funktionsbaustein besorgen Sie die Archivierungsobjektdaten aus dem Datencontainer des ADK und speichern sie pro Struktur bzw. Tabelle in einer internen Tabelle. Rufen Sie diesen Funktionsbaustein innerhalb der in Schritt 5 geöffneten Schleife so lange auf, bis aus dem Datencontainer keine Sätze mehr gelesen werden können.
Falls Ihr Schreibprogramm Informationen im Feld RECORD_FLAGS gespeichert hat, können Sie diese im Löschprogramm dazu benutzen zu ermitteln, welche Daten tatsächlich aus der Datenbank gelöscht werden sollen.
Im Unicode-Kontext gibt es zwei Möglichkeiten, diesen Funktionsbaustein aufzurufen:
Im Unicode-Kontext kann die CHAR-Datensatzpuffervariable für das generische Lesen von Sätzen in Strukturen, die Felder im Nicht-Zeichen-Format enthalten, nicht mehr verwendet werden.
Erhöhen Sie nach jedem ARCHIVE_GET_NEXT_OBJECT einen Zähler um eins. Läuft das Löschprogramm im Produktivmodus, so rufen Sie Ihre Subroutine immer dann auf, wenn der Wert des Zählers gleich dem des im Customizing eingestellten Commit-Zählers ist. Rufen Sie diese Subroutine nicht im Testmodus auf.
Ihre Subroutine muß:
Sie müssen diesen Funktionsbaustein aufrufen, anderenfalls funktioniert die Statistikfunktion nicht einwandfrei.
Ende der Schleife
Bei Löschprogrammen funktioniert ARCHIVE_GET_STATISTICS nur im Produktivmodus.
Mit diesem Funktionsbaustein besorgen Sie die vom ADK gesammelten Statistikdaten. Diese Daten können Sie dann zur Erstellung eines eigenen spezifischen Protokolls verwenden. Dieser Funktionsbaustein kann zusätzlich zu ARCHIVE_WRITE_STATISTICS oder allein verwendet werden.
Bei Löschprogrammen funktioniert ARCHIVE_WRITE_STATISTICS nur im Produktivmodus.
Mit diesem Funktionsbaustein können Sie das Standard-Statistikprotokoll mit den entsprechenden Informationen zum Löschprogramm ausgeben. Der Funktionsbaustein muß direkt vor ARCHIVE_CLOSE_FILE aufgerufen werden.
Dieser Funktionsbaustein:
Ergebnis
Nachdem Sie die Entwicklung Ihres Löschprogramms abgeschlossen haben, tragen Sie es für Ihr Archivierungsobjekt in der Transaktion AOBJ ein.
Beispiel
Beispiele für Löschprogramme bieten die Programme SBOOKD und SFLIGHTD (Beispiel für die Verwendung von Archivierungsklassen).