Anfang des Inhaltsbereichs

Vorgehensweisen Schreibprogramme entwickeln  Dokument im Navigationsbaum lokalisieren

Verwendung

Schreibprogramme schreiben die zu archivierenden Daten in Archivdateien.

Vorgehensweise

Wichtige Informationen

Programmablauf

  1. Archivierung beginnen – ARCHIVE_OPEN_FOR_WRITE

Dieser Funktionsbaustein wird pro Archivierungslauf (und Archivierungsobjekt) nur einmal aufgerufen und liefert ein eindeutiges Archiv-Handle zurück, das für alle weiteren Archivoperationen benötigt wird. Mit Aufruf dieses Funktionsbausteins beginnt die Initialisierungsphase.

Der Funktionsbaustein führt die folgenden Aufgaben für das übergebene Archivierungsobjekt durch. ARCHIVE_OPEN_FOR_WRITE:

Achtung

Die folgenden drei Funktionsbausteine müssen, falls verwendet, direkt nach ARCHIVE_OPEN_FOR_WRITE und vor dem ersten Aufruf von ARCHIVE_NEW_OBJECT aufgerufen werden.

  1. (optional) Archivierungsklassen dynamisch einbinden – ARCHIVE_REGISTER_CLASS

Wenn Sie Archivierungsklassen verwenden möchten, und wenn diese dynamisch eingebunden werden sollen, müssen Sie diesen Funktionsbaustein aufrufen und das Handle für jede Archivierungsklasse übergeben.

  1. (optional) Strukturen und Tabellen dynamisch einbinden – ARCHIVE_REGISTER_STRUCTURES

Ab SAP Web Application Server 6.10 können Sie diesen Funktionsbaustein verwenden, um das ADK über zusätzlich zu archivierende Strukturen und Tabellen zu unterrichten. Dies ist für solche Tabellen und Strukturen nützlich, die bis zur Laufzeit unbekannt sind und nur benutzt werden sollten, wenn dies absolut notwendig ist.

  1. (optional) Initialisierungsdaten in Archivdateien speichernARCHIVE_PUT_INIT_DATA

Ab SAP Web Application Server 6.10 können Sie diesen Funktionsbaustein zum Speichern von Initialisierungsdaten in Archivdateien verwenden. Die Anwendung benötigt diese Daten - die beliebige Informationen wie z.B. Customizing- oder Statusinformationen umfassen können -, um später die archivierten Daten interpretieren zu können.

Um diese Daten in Lösch-, Lese- und Rückladeprogrammen zu lesen, rufen Sie den Funktionsbaustein ARCHIVE_GET_INIT_DATA auf. Weitere Informationen dazu finden Sie weiter unten in diesem Dokument und in der Dokumentation zum Funktionsbaustein.

Die folgenden Schritte (5 - 8) müssen in einer Schleife für alle zu archivierenden Datenobjekte durchgeführt werden.

  1. Neues Datenobjekt öffnen – ARCHIVE_NEW_OBJECT

Dieser Funktionsbaustein wird pro Datenobjekt aufgerufen. Nur dann werden die Daten an die ADK-Funktionsbausteine übergeben. Der Funktionsbaustein führt die im folgenden genannten Aufgaben durch. ARCHIVE_NEW_OBJECT:

  1. Archivierungsobjektdaten an den Datencontainer übergeben – ARCHIVE_PUT_RECORD/ARCHIVE_PUT_TABLE

Rufen Sie für jede zu archivierende Tabelle oder Struktur den ADK-Funktionsbaustein ARCHIVE_PUT_RECORD bzw. ARCHIVE_PUT_TABLE auf.

Sie müssen entscheiden, ob die übergebenen Daten vom Löschprogramm gelöscht werden sollen oder nicht. Über den Parameter RECORD_FLAGS des Funktionsbausteins ARCHIVE_PUT_RECORD können Sie ein Löschkennzeichen an das Löschprogramm übergeben, so daß es weiß, welche Daten es löschen soll. ARCHIVE_PUT_TABLE hat zu diesem Zweck die Parameter RECORD_FLAGS und RECORD_FLAGS_TABLE.

Hinweis

Um auf mögliche Probleme mit den zur Archivierung selektierten Daten reagieren zu können, haben Sie die Möglichkeit, eine IF "Fehler"-Anweisung einzufügen, die mit der nächsten Schleife fortfährt, bevor ARCHIVE_SAVE_OBJECT ausgeführt wird. ARCHIVE_NEW_OBJECT wird erneut aufgerufen; die bereits übergebenen Daten werden verworfen.

  1. Archivierungsklassen mitteilen, welche Daten zu archivieren sind – <CLASS>_ARCHIVE_OBJECT

Sie müssen entscheiden, ob die übergebenen Daten vom Löschprogramm gelöscht werden sollen oder nicht. Zu diesem Zweck stellt der Funktionsbaustein der Archivierungsklasse den Parameter OBJECT_DELETE_FLAG zur Verfügung. Der Funktionsbaustein <CLASS>_ARCHIVE_OBJECT selektiert die Daten und optimiert den Datenbankzugriff. Zuerst sammelt er die Schlüssel für die angeforderten Daten und greift nur dann auf die Datenbank zu, wenn der Funktionsbaustein ARCHIVE_SAVE_OBJECT aufgerufen wird. Dieser Funktionsbaustein erkennt das Datenobjekt, zu dem die Daten gehören, anhand des Handles. Dieses muß dazu an die Funktionsbausteinschnittstelle übergeben werden.

  1. Datenobjekt in die Archivdatei sichern – ARCHIVE_SAVE_OBJECT

Zum eigentlichen Sichern des Datenobjekts in einer Archivdatei müssen Sie den Funktionsbaustein ARCHIVE_SAVE_OBJECT aufrufen. ARCHIVE_SAVE_OBJECT:

Im Produktivmodus übernimmt der Funktionsbaustein ARCHIVE_SAVE_OBJECT darüber hinaus weitere Aufgaben. ARCHIVE_SAVE_OBJECT:

Achtung

Ab SAP Web Application Server 6.10 können Sie Archivierungsläufe unterbrechen und fortsetzen (siehe Archivierungsläufe unterbrechen und fortsetzen). Dazu muß Ihr Schreibprogramm in der Lage sein, Unterbrechungsanforderungen des ADK über die Ausnahme TERMINATION_REQUESTED zu verarbeiten.

Ende der Schleife

  1. (optional) Statistikdaten vom ADK besorgen – ARCHIVE_GET_STATISTICS

Mit diesem Funktionsbaustein rufen Sie die vom ADK gesammelten Statistikdaten ab. Diese Daten können Sie dann zur Erstellung eines eigenen, spezifischen Protokolls verwenden.

  1. (optional) Standard-Statistikprotokoll ausgeben – ARCHIVE_WRITE_STATISTICS

Mit diesem Funktionsbaustein steuern Sie die Ausgabe des Standardprotokolls für Archivierungsstatistikdaten am Ende der Schreibphase. Der Aufruf dieses Funktionsbausteins muß direkt vor ARCHIVE_CLOSE_FILE erfolgen.

  1. Schreibphase beenden – ARCHIVE_CLOSE_FILE

Sie beenden die Schreibphase, indem Sie diesen Funktionsbaustein aufrufen. Dadurch wird das Archiv-Handle ungültig und kann nicht mehr benutzt werden.

Achtung

Dieser Funktionsbaustein muß aufgerufen werden, sonst geht die letzte zu verarbeitende (physische) Archivdatei verloren, und die Schreibphase ist unvollständig.

ARCHIVE_CLOSE_FILE:

Ergebnis

Nachdem Sie die Entwicklung Ihres Schreibprogramms abgeschlossen haben, tragen Sie es für Ihr Archivierungsobjekt in der Transaktion AOBJ ein.

Beispiel

Beispiele für Schreibprogramme bieten die Programme SBOOKA und SFLIGHTA (Beispiel zur Verwendung von Archivierungsklassen).