- 4. April 2016

BOPF Archivierung: Das BO vorbereiten

In vielen zentralen Bereichen des SAP-Systems wird die Menge der erzeugten Belegen oder sonstigen Bewegungsdaten schnell so groß, dass die Systemlast bei Datenabfragen signifikant ansteigt. Im etablierten SAP-Standard ist dafür das Konstrukt der Archivierungsobjekte geschaffen worden. Nutzen Sie BOPF, gibt es dort keien STandard-Archivierung. Wie Sie vorgehen müssen, erfahren Sie in in unserer dreiteiligen Artikelreihe. In diesem Artikel lernen Sie, wie Sie das BO vorbereiten.

Zu Teil 2 der Serie: Programme erstellen.

Zu Teil 3 der Serie: Customizing vornehmen.

Archivierung mit BOPF?

Nutzen Sie jedoch das Business Object Processing Framework (BOPF), gibt es dort keine Standard-Archivierungsobjekte, die Sie bloß ein wenig konfigurieren und dann einplanen können. Üblicherweise verschalt ein Business Object (BO) in einem einfachen Szenario eine oder mehrere Datenbanktabellen und bietet die Möglichkeit, mit den darin enthaltenen Daten zu arbeiten, ohne direkte Datenbankoperationen durchzuführen.

Nutzen Sie unser BOPF Knowhow!
Mit den Business Object Processing Framework (BOPF) läuft Ihre ABAP Entwicklung schneller und günstiger. Unsere Experten wissen wie. - Ingo Biermann, Fachbereichsleiter

Als idealer Einstieg in BOPF Thema gilt unser Kickstarter Angebot

Unsere Lösung für Projekte im SAP Transportation Manangement ist die TM Datenmigration mit BOPF

Gerne spreche ich mit Ihnen auch im Detail über Ihre Ausgangslage und zeige Lösungsmöglichkeiten auf. Auf Wunsch unterbreite ich Ihnen im Anschluss ein unverbindliches Angebot.

Kontaktieren Sie mich: Telefon 0211.9462 8572-16 oder per E-Mail info@erlebe-software.de

 

Um dieses Konstrukt auch in der Archivierung zu ermöglichen, können Sie Ihre bestehenden BOs mit den nachfolgend erläuterten Schritten für die Archivierung fit machen. In Teil 1 der Serie erläutere ich Ihnen die notwendigen Tätigkeiten am BO selbst. Die Fortsetzung beschäftigt sich dann mit den benötigten Programmen zum Vorbereiten, Schreiben und Löschen der zu archivierenden Einträge und den vorzunehmenden Customizing-Einträgen.

Den Archivierungsstatus hinzufügen

Das Kriterium, ob eine Instanz des BOs archivierbar ist oder nicht, stellt in BOPF eine Statusvariable dar. Um diese zu erzeugen, braucht Ihr BO die passende Statusklasse /BOFU/CL_LIB_SAM_ADAPTER. Dafür gehen Sie in die Transaktion BOBX, wählen dort Ihr BO doppelt aus und klicken anschließend doppelt auf den obersten Knoten des BOs (Schritt 1 in Abbildung 1). Dort fügen Sie die genannte Klasse im Feld „Statusklasse“ (Schritt 2 in Abbildung 1) hinzu und bestätigen mit Enter.

BOPF Archivierung: Einrichten des Statusadapters

BOPF Archivierung: Einrichten des Statusadapters

Sofern Ihr BO diese Unterknoten nicht vorher schon hatte, erscheinen jetzt unter dem Root-Knoten die Punkte „Statusvariablen“, „Statusderivatoren“ und „Statusschemata“ (siehe Abbildung 2).

Neue Statusunterknoten

Neue Statusunterknoten

Als nächsten Schritt gehen Sie in die Datenstruktur des ROOT-Knotens Ihres BOs und fügen dort ein Feld „ARCHIVING_STATUS“ mit dem Datentyp /BOFU/ARCHIVING_STATUS_CODE hinzu. Diese Änderung speichern und aktivieren Sie. Um diesen Archivierungs-Status jetzt auch in BOPF bekannt zu machen, legen Sie anschließend ein Statusschema mit beliebigem Namen und eine Statusvariable mit Bezug zum soeben angelegten Element „ARCHIVING_STATUS“ der Datenstruktur an. Dazu können Sie auf die jeweiligen Unterknoten rechtsklicken und „Anlegen“ drücken. Bei der Statusvariable wählen Sie „Standardstatus“ und unter „Zugehör. Attributname“ das angelegte Attribut aus (siehe Abbildung 3). Anschließend speichern Sie die Änderungen.

Statusvariable anlegen

Statusvariable anlegen

Action und Query für die Archivierung definieren

Um anhand des gerade angelegten Archivierungsstatus auch die Archivierung sicherzustellen, benötigen wir noch zwei wichtige Zugriffe auf das BO. Diese werden über die in der Fortsetzung beschriebenen Programme im Archivierungslauf aufgerufen, um die geeigneten Datensätze festzulegen und anschließend für die tatsächliche Archivierung abzufragen.

Zuerst definieren Sie bitte eine Action am BO. Der Sinn und Zweck dieser Action ist es, vor der eigentlichen Archivierung die Datensätze zu prüfen und anhand der von Ihnen in dieser Action definierten Kriterien den Archivierungsstatus auf den Wert „02“, d.h. „zu archivieren“ zu setzen. Die Implementierung dieser Action wird hier nicht dargestellt. Dennoch ein Hinweis: In dieser Action sollte mindestens eine Meldung zurückgegeben werden, auch im Erfolgsfall! Ansonsten kann es später zu einem Fehler bei der Archivierung kommen und die Daten werden nicht weggeschrieben.

Für die Einstellungen der Action wählen Sie bitte wie in Abbildung 4 zu sehen die Kardinalität „Mehrere Knoteninstanzen“ aus und setzen zudem im Reiter „Trigger für Eigenschaftsänderungen“ den Haken für Ihre Knoten und beim Event „Aktualisieren“.

Action am BO modellieren

Action am BO modellieren

Änderungstrigger festlegen

Abschließend erstellen Sie wie gewohnt noch eine Query am BO, die Sie entweder über eine Query-Klasse implementieren oder als Standard-Query definieren können. Wählen Sie den Weg der Standard-Query, können Sie über die Angabe eines Datentyps die Selektionsparameter spezifizieren, mit denen die in Frage kommenden Elemente selektiert werden sollen.

Query für die Archivierungsabfrage

Query für die Archivierungsabfrage

Vorbereitung des BOs abgeschlossen

Damit ist die reine Vorbereitung des BOs abgeschlossen. Um die Statusänderungen und mögliche Werte der Statusvariable zu definieren, bedarf es noch der Konfiguration des BOs bzw. vielmehr des Statusschemas in der Transaktion SAMDT. Dort können Sie festlegen, welche Action für eine Statusänderung sorgt und welche Werte die Statusvariable annehmen darf.

Bei einigen Installationen ist diese Transaktion nicht nutzbar aufgrund eines Konflikts mit oder einer fehlenden Installation von JNet. Dann können Sie alternativ über die SM34 den Viewcluster /BSAM/VC_STM aufrufen und die notwendigen Werte dort pflegen (siehe Abbildung 7). Bitte beachten Sie: Wenn Sie einen neuen Eintrag auf der Ebene „Statusschema“ hinzufügen, können Sie das Feld „Schema-GUID“ leer lassen. Dieses wird automatisch ermittelt.

Statusvariable festlegen

Statusvariable festlegen

Damit haben Sie die Vorbereitung Ihres BOs abgeschlossen. In den folgenden Teilen der Artikelserie zeige ich Ihnen, wie Sie die notwendigen Programme für die Archivierung erzeugen und sowohl die BOPF-spezifischen als auch die bereits bekannten Archivierungscustomizing-Einträge pflegen können.

Zu Teil 2 der Serie: Programme erstellen.

Zu Teil 3 der Serie: Customizing vornehmen.

Sie haben bereits Fragen oder eigene Erfahrungen zur Archivierung mit BOPF? Kommen Sie gerne direkt auf mich zu oder hinterlassen Sie mir einen Kommentar!


SHARE



Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.