Christoph Lordieck
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.

Bei diesem Webinar zum Thema „SAP Best Practice Tools – Erleichtern Sie Ihren Arbeitsalltag“ dreht sich alles rund um hilfreiche Tools im SAP-Bereich.

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.

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.

Unser E-Book zum Thema SAP Entwicklung

E-Book: SAP Entwicklung

Wir erklären Ihnen im E-Book die 3 wichtigsten Frameworks und zeigen Ihnen weitere Erfolgsbooster, die wir selbst einsetzen.

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!

Christoph Lordieck

Christoph Lordieck

Als Bereichsleiter SAP Entwicklung berate ich Unternehmen rund um das Thema SAP Individualentwicklung. Einige Jahre Projekt- und Umsetzungserfahrung haben meinen Wissenshunger noch nicht gestillt und ich suche ständig nach neuen Themen und Entwicklungen im ABAP-Umfeld.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Das Business Object Processing Framework (BOPF) bietet ein umfangreicheres Fundament, um schnell und kostengünstig neue Eigenentwicklungen mit ABAP umzusetzen. Es bietet eine einheitliche Architektur und Struktur und implementiert bereits Standardfunktionalitäten […]

weiterlesen

Mit unserer Lösung: Data Migration Tool bietet die mindsquare AG eine Softwarelösung, die es ermöglicht, beliebige Daten zwischen Excel Dateien und BOPF auszutauschen. [call2actionbox heading="Nutzen Sie unser BOPF Knowhow!" position="Mit […]

weiterlesen

Schreiben Sie einen Kommentar

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





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice