Immer wenn ein Archivierungsobjekt mit der Archiving Workbench (CA-GTF-TS-GMA) erzeugt wurde, müssen Sie als Entwickler der entsprechenden Anwendung, deren Daten archiviert werden sollen, die Anbindung an Ihre Anwendung sicherstellen.
Sie sind anwendungsseitig für Folgendes zuständig:
für die Programmierung der betriebswirtschaftlichen Prüfung, mit deren Hilfe das System feststellt, ob die vorliegenden Daten archivierbar sind oder nicht.
Hierzu müssen Sie sicherstellen, dass nur solche Daten archiviert werden, die im operativen System nicht mehr gebraucht werden.
Typische Fragestellungen für eine solche Prüfung sind:
Hat der Eintrag der führenden Tabelle ein Status-Attribut, von dessen Werten sich die Archivierbarkeit bzw. die Nicht-Archivierbarkeit eines Datenobjekts ableiten lässt?
Sind Datenobjekte anderer Anwendungen vom zu prüfenden Datenobjekt abhängig?
(legt implizit eine Archivierungsreihenfolge zwischen Datenobjekten verschiedener Archivierungsobjekte fest)
Muss eine lückenlose zeitliche Archivierung der Datenobjekte einer Anwendung garantiert werden? Gibt es mehrere Datenobjekte desselben Archivierungsobjektes, die gleichzeitig archiviert werden müssen?
(legt implizit eine Archivierungsreihenfolge zwischen Datenobjekten desselben Archivierungsobjektes fest)
für die Berechnung des Wiedervorlagedatums, anhand dessen das System feststellt, ob die Datenbankzugriffe vor dem Hintergrund des Archivierungsstatus des betroffenen Datensatzes noch erlaubt sind.
Hinweis
Dieses Dokument enthält eine Auflistung dessen, worauf Sie bei der Integration des Archivierungsobjekts in seine Anwendung achten sollten. Sie sollten es auch dann lesen, wenn Sie der Entwickler des Archivierungsobjekts und nicht der Anwendung sind.
Bevor Sie aktiv werden können, muss das entsprechende Archivierungsobjekt mit der Archiving Workbench bereits erzeugt worden sein.
Der Prüfbaustein wird durch den Analyseprozess der Archivierung aufgerufen. In ihm übergibt das System Einträge der führenden Tabelle, für die die Residenzzeit abgelaufen ist.
Geben Sie für die Schnittstelle in der Registerkarte
Changing
des entsprechenden Funktionsbausteins folgende Daten an:
Parametername
: s[Präfix]_[Archivierungsobjektname]_CHECK_ARCHIVE
Typisierung
: TYPE
Bezugstyp
: [Präfix]_tab_[Name der führenden Tabelle]_rt
Sorgen Sie dafür, dass der Prüfbaustein in einer Funktionsgruppe Ihrer Anwendung liegt, da Sie für diesen Funktionsbaustein verantwortlich sind.
Hinweis
Der Tabellentyp [Präfix]_tab_[Name der führenden Tabelle]_rtist hingegen im Paket enthalten, das die Archiving Workbench für das vorliegende Archivierungsobjekt generiert hat. Dieser Tabellentyp enthält neben Feldern zur Steuerung der Archivierung einige oder alle Felder der führendenden Tabelle des Archivierungsobjekts.
Klären Sie, welche Felder für Ihre Prüfung erforderlich sind. Eine Verkürzung der Struktur auf ausschließlich benötigte Felder kann einen deutlichen Performancegewinn bringen. Sie sollten jedoch alle Felder mit aufnehmen , die der Kunde im Rahmen einer Kundenerweiterung nutzen könnte.
Wenn die Prüfungen für einen Datensatz der übergebenen Tabelle ergeben, dass dieser
nicht
archivierbar ist, stellen Sie sicher, dass das System das Kennzeichen
ARCHIVE_STATUS
von
2 (archivierbar)
auf
1 (nicht archivierbar)
ändert.
Wenn die Prüfungen ergeben, das der Datensatz archivierbar ist, brauchen Sie nicht aktiv werden.
Stellen Sie weiterhin Folgendes sicher:
dass das System keine Sätze aus der internen Tabelle entfernt oder ihr Sätze hinzufügt.
dass das System keine Attribute außer
ARCHIVE_STATUS
ändert. Dies gilt insbesondere auch für das Wiedervorlagedatum
ARCHIVE_FLUD
. Letzteres berechnet das System archivierungsseitig, d.h. anwendungsübergreifend.
Hinweis
Diese Regeln gelten auch für das Programmieren der Kundenerweiterung (BTE, BadI).
Verwenden Sie das Include
AFX_GLOBAL_ARCHSTAT_PUBLIC
für die Konstanten
g_con_archive_status_arch
und
g_con_archive_status_noarch
.
Hinweis
Führen Sie selektive und/oder billige Prüfungen vor unselektiven und/order teuren durch.
Stellen Sie sicher, dass das System alle weiteren Prüfungen überspringt, sobald das System die Nichtarchivierbarkeit eines Datensatzes feststellt.
Nehmen Sie Kundenerweiterungen (BTE, BAdi) an das Ende der Prüfungskette auf.
Stellen Sie sicher, dass das System die Datensätze als
nicht archivierbar
kennzeichnet, wenn es im Rahmen der Prüfung eines Datensatzes zu einem Fehler kommt. Ist der Fehler gravierend, d.h. führt dieser zu inkonsistenten Daten, dann protokollieren Sie wie folgt:
Schreiben Sie pro Datensatz nur eine Meldung in das Fehlerprotokoll.
Sorgen Sie dafür, dass nur der Prüfbaustein selbst und keine von ihm aufgerufenen Funktionsbausteine Meldungen in das Protokoll schreiben. Schalten Sie das Protokoll vor dem Aufrufen anderer Funktionsbausteine aus.
Stellen Sie sicher, dass die Fehlermeldung neben einer kurzen Fehlerinformation den Objektschlüssel und den Hinweis enthält, dass das System diesen Datensatz als nicht archivierbar gekennzeichnet hat.
Schreiben Sie keine Statusmeldungen in das Protokoll. Das Nichteintreten einer betriebswirtschaftlichen Voraussetzung für die Archivierbarkeit ist kein Fehler. Stellen Sie sicher, dass das System für schwerwiegende Fehler einen Systemabbruch verursacht, wenn dieser für alle nachfolgenden Datensätze Auswirkungen haben kann.
Sofern in Ihrem Projekt das Paketkonzept (d. h. Definition von Paketschnittstellen und Verwendungserklärungen) zum Einsatz kommt, beachten Sie, dass Sie eine Verwendungserklärung gegen die Paketschnittstelle
_ABA_PLUS_DEFAULT
und gegen die am Paket des Archivierungsobjektes definierte Paketschnittstelle abgeben.
Füllen Sie bei Neuanlage eines Datenobjekts mit Hilfe des Funktionsbausteins
[Präfix]_API_AR_[Kürzel des Archivierungsobjekts]_FLU_STA_GET
die beiden neu hinzugefügten Felder
ARCHIVE_STATUS
und
ARCHIVE_FLUD
der führenden Tabelle .
Hinweis
Beachten Sie, dass die
Workbench
diesen Funktionsbaustein in ihrer aktuellen Version noch nicht generiert. Wenn Sie diesen Funktionsbaustein erstellen, achten Sie darauf, dass dieser die Residenzzeit korrekt berechnet (hier können Sie das Coding des Analyseprogramms wiederverwenden.). Beachten Sie zudem, dass Sie den Wert des
ARCHIVE_STATUS
auf
1 (nicht archivierbar)
setzen, da das System hier keine betriebswirtschaftliche Prüfung durchläuft.
Hinweis
Beachten Sie, dass es je nach betriebswirtschaftlichem Kontext erforderlich sein kann, das Wiedervorlagedatum auch bei Datenbankaktualisierungen des betreffenden Datenobjekts durch das System berechnen zu lassen .In Einzelfällen kann es sogar sinnvoll sein, diese Berechnung ausschließlich bei Updates durchführen zu lassen.
Beachten Sie hier Folgendes:
Da das Archivierungsobjekt, so wie es generiert wurde, nicht an einer Sperrlogik teilnimmt, die Sie evtl. in Ihrem Projekt realisiert haben, ist es wichtig, dass Sie zu Beginn einer Logischen Verarbeitungseinheit (Logical Unit of Work)
und
vor einer Datenbankaktualisierung den Wert des Feldes
ARCHIVE_STATUS
prüfen.
Hinweis
Der Einsatz von Sperren im Rahmen des Archivierungsprozesses kann sich besonders im Massendatenumfeld als performancekritisch erweisen. Prüfen Sie daher für Ihr Projekt, ob das Setzen von Sperren unbedingt erforderlich ist.
Beim Start der Logischen Verarbeitungseinheit (Logical Unit of Work) dürfen Sie zu ändernde Daten nur dann selektieren, wenn der Wert des Attributs
ARCHIVE_STATUS
der führenden Tabelle
g_con_archive_status_noarch
1 (nicht archivierbar)
lautet.
Vor jeder Aktualisierung eines Eintrags der führenden Tabelle müssen Sie die Prüfung erneut durchführen.
Stellen Sie sicher, dass das System die Verarbeitung mit einer Fehlermeldung abbricht, wenn einer der beiden folgenden Fälle eintritt:
Fall 1: Das Attribut
ARCHIVE_STATUS
hat den Wert
2
(archivierbar), weil das System den Eintrag der führenden Tabelle inzwischen analysiert und für archivierbar befunden hat.
Fall 2: Der Datensatz ist nicht mehr vorhanden, weil das System diesen zwischenzeitlich analysiert, archiviert und gelöscht hat.
Wenn Sie alle beschriebenen Arbeitsanweisungen ausgeführt haben, ist das Archivierungsobjekt von der Anwendungsseite entwicklungstechnisch abgeschlossen. Es sind jedoch noch verwaltungstechnische Aktivitäten offen (wie z,B. das Einhängen der Transaktionen), die der Entwickler des Archivierungsobjekts zusammen mit einigen anderen manuellen Nacharbeiten durchführen sollte. Weitere Informationen hierzu finden Sie im Abschnitt Manuelle Nacharbeiten durchführen (Archiving Workbench) der SAP-Bibliothek.