Rückladeprogramme entwickeln (optional)
Verwendung
Mit einem Rückladeprogramm werden archivierte Daten aus Archivdateien in die Datenbank zurückgeladen; das Rückladeprogramm muß dabei alle archivierten Daten eines Archivierungslaufs verarbeiten. Falls nicht alle Daten eines Archivierungslaufs zurückgeladen werden, wird ein neuer Archivierungslauf mit den restlichen Daten erzeugt. Nachdem ein Archivierungslauf zurückgeladen wurde, ist er aus der Archivverwaltung nicht mehr zugreifbar.
Das Rückladeprogramm liest die Archivdateien mit Hilfe der ADK-Funktionsbausteine (FB) und lädt dann die Daten in die Datenbank zurück. Ein Rückladeprogramm kann gleichzeitig immer nur einen Archivierungslauf verarbeiten.
Vorgehensweise
Reihenfolge beim Aufruf der Funktionsbausteine
Dieser Funktionsbaustein erzeugt einen neuen Archivierungslauf im Produktivmodus und übergibt zwei Archiv-Handle:
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 - 9) müssen in einer Schleife für alle archivierten Datenobjekte durchgeführt werden.
Dieser Funktionsbaustein:
Der Parameter OBJECT_ID muß syntaktisch vom Typ CHAR sein.
Mit diesem Funktionsbaustein besorgen Sie die Archivierungsobjektdaten aus dem Datencontainer des ADK und speichern sie für jede 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.
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.
Entscheiden Sie, ob das Datenobjekt in die Datenbank zurückgeladen werden soll. Falls ja, führen Sie nur die Schritte 7 und 8 durch; falls nein, nur Schritt 9.
Dieser Funktionsbaustein muß nach jedem ARCHIVE_GET_NEXT_OBJECT aufgerufen werden.
Erhöhen Sie nach jedem ARCHIVE_GET_NEXT_OBJECT einen Zähler um eins. Läuft das Rückladeprogramm im Produktivmodus, so rufen Sie Ihre Subroutine immer dann auf, wenn der Wert des Zählers gleich dem des in Schritt 2 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.
Rufen Sie ARCHIVE_GIVE_STATISTICS nicht über das Schreib-Handle auf.
Wenn Sie ARCHIVE_SAVE_OBJECT nicht aufrufen, sind die nicht zurückgeladenen Daten aus der Archivverwaltung nicht mehr zugreifbar.
Falls für das betreffende Archivierungsobjekt in der AOBJ das Kennzeichen Kein neuer Lauf beim Zurückladen gesetzt ist, hat der Aufruf von ARCHIVE_SAVE_OBJECT keine Wirkung.
Ende der Schleife
Verwenden Sie für diesen Funktionsbaustein nur das Read-Handle.
Bei Rückladeprogrammen 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.
Bei Rückladeprogrammen 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.
Mit diesem Funktionsbaustein beenden Sie den Rückladevorgang.
Dieser Funktionsbaustein:
Falls für das betreffende Archivierungsobjekt in der AOBJ das Kennzeichen Kein neuer Lauf beim Zurückladen gesetzt ist, wird der Status des Archivierungslaufs nicht auf Ersetzt gesetzt. Das bedeutet, daß der Archivierungslauf in der Archivverwaltung noch zugreifbar ist und erneut in die Datenbank zurückgeladen werden könnte. Sie müssen daher sicherstellen, daß ein erneutes Rückladen des Archivierungslaufs ausgeschlossen ist und daß er, z.B. bei der Belegsuche, in der Datenbank nicht mitgelesen wird. Es könnte sonst passieren, daß zwei identische Belege gefunden werden.
Mit dem Aufruf müssen Sie nur eines der beiden Archiv-Handle übergeben. Das zweite wird vom ADK automatisch ermittelt.
Ergebnis
Nachdem Sie die Entwicklung Ihres Rückladeprogramms abgeschlossen haben, tragen Sie es für Ihr Archivierungsobjekt in der Transaktion AOBJ ein.
Beispiel
Beispiele für Löschprogramme bieten die Programme SBOOKL und SFLIGHTL (Beispiel für die Verwendung von Archivierungsklassen).