Verwendung
Schreibprogramme schreiben die zu archivierenden Daten in Archivdateien.
Vorgehensweise
Wichtige Informationen
Programmablauf
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:
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.
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.
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.
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.
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:
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.
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.
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.
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:
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
Mit diesem Funktionsbaustein rufen Sie die vom ADK gesammelten Statistikdaten ab. Diese Daten können Sie dann zur Erstellung eines eigenen, spezifischen Protokolls verwenden.
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.
Sie beenden die Schreibphase, indem Sie diesen Funktionsbaustein aufrufen. Dadurch wird das Archiv-Handle ungültig und kann nicht mehr benutzt werden.
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).