PBS archive add on CUSTOM Handbuch Teil B – Administration – Kompatibel mit SAP R/3 4.6c SAP R/3 Enterprise SAP ERP 5.0 SAP ERP 6.0 SAP ERP 6.17 24. Mai 2016 PBS archive add on CUSTOM - Administration - 2 © 1999 - 2016 PBS Software GmbH Schwanheimer Straße 144a 64625 Bensheim, Germany Phone: +49 - 6251 - 174 0 Fax: +49 - 6251 - 174 174 E-Mail: [email protected] Internet: www.pbs-software.com PBS archive add ons® ist eingetragenes Warenzeichen der Firma PBS Software GmbH, Bensheim. SAP, R/3, SAP ERP, SAP NetWeaver, ABAP und andere sind eingetragene Warenzeichen der Firma SAP SE, Walldorf/Baden. Acrobat Reader ist eingetragenes Warenzeichen der Firma Adobe Systems Incorporated. PBS archive add on CUSTOM - Administration - 3 Einführung in das PBS ILM-Konzept Information Lifecycle Management Unter Information Lifecycle Management (ILM) versteht man die Verwaltung von Informationen bezogen auf den Zeitpunkt ihrer Nutzung und unter Berücksichtigung ihrer Gesamtkosten und Gesetzeskonformität. Ein schlüssiges, funktionierendes ILM-Konzept muss demnach sowohl das Datenwachstum kontrollieren, Aufbewahrungsregeln verwalten sowie für eine revisionssichere Datenablage sorgen. Darüber hinaus ist auch ein komfortabler Zugriff auf die archivierten Daten von entscheidender Bedeutung sowie deren einfache Weitergabe beispielsweise bei internen und externen Prüfungen. PBS ILM-Konzept PBS Software bietet SAP-Bestandskunden umfangreiche Lösungen zur Umsetzung der oben aufgeführten Anforderungen an ein stringentes, erfolgreiches ILM-Konzept. Dabei gilt PBS seit vielen Jahren als ausgewiesener Experte für komplexe, integrierte Datenzugriffe auf archivierte- und Datenbankdaten sowie inzwischen auch auf Daten still gelegter SAP-Systeme. Neben der klassischen SAP-Datenarchivierung wird auch das SAP BI-spezifische Nearline-Storage unterstützt. PBS archive add ons® PBS archive add ons setzen stets auf einer erfolgreich durchgeführten SAPArchivierung auf. Diese ist die Grundlage für ein dauerhaft leistungsstarkes SAPSystem. Zwar können Sie verbuchte Belege in der SAP-Datenbank dank großer Datenbankkapazität prinzipiell sehr lange aufbewahren. Dies kann allerdings, je nach Belegaufkommen, über kurz oder lang zu massiven Performance-Einbußen und stark ansteigenden Betriebskosten führen. Beispielsweise wird bei großen Datenbeständen die tägliche Sicherung schwierig. Eine komfortable Anzeige und Auswertung archivierter Bewegungsdaten, wie sie der SAP-Anwender bei Datenbankdaten gewohnt ist, kann mit SAP-Standardmittel je nach Anwendungsmodul oft nur eingeschränkt realisiert werden. Dies trifft vor allem für große Archivdatenbestände zu. Hier setzen die PBS archive add ons an, die für nahezu alle SAP-Module und Release-Stände zur Verfügung stehen und denen in der Bezeichnung ein „C“ (für Complete) voran steht, z.B. PBS archive add on CCOPA für das SAP-Modul COPA. Mit den PBS archive add ons können Sie auch nach einer Datenarchivierung während Ihres Tagesgeschäfts schnell und einfach auf Ihre archivierten Daten zugreifen. Realisiert wird der uneingeschränkte Datenzugriff durch ein intelligentes Indizierungskonzept. Dieses erweitert die SAP-Archivinfrastrukturkomponenten und integriert sich optimal in die SAP-Archivierung. Einmal indizierte Archivdaten stehen Ihnen auch nach einem Release-Upgrade sofort, uneingeschränkt und ohne Migrationsaufwand weiter zur Verfügung. Der PBS-Archivindex wird, ebenso wie die SAP-Archivdaten, in sequentiellen Dateien des SAP-Dateisystems abgelegt. Danach können Sie über gewohnte Transaktionen online auf die Archivdaten zugreifen. Der SAP-Nutzer erhält zeitgleich die Daten aus der SAPDatenbank sowie die Archivdaten über den Index der PBS archive add ons. Dem PBS archive add on CUSTOM - Administration - 4 Anwender scheint es, als seien die archivierten Daten immer noch in der SAPDatenbank vorhanden. Die tiefe Integration der PBS-Transaktionen erlaubt auch eine direkte Navigation sowohl zu Folge- und Vorgängerbelegen sowohl innerhalb des indizierten SAPModuls als auch zu verknüpften Belegen aus anderen SAP-Modulen. Dies gilt sowohl für residente als auch uneingeschränkt für archivierte Daten. Der Nutzen für den Anwender potenziert sich, je mehr PBS archive add ons eingesetzt werden. Das Nutzenpotential des ILM-Konzepts erhöht sich zudem erheblich, berücksichtigt man den Einspareffekt, der sich durch die SAP-Spiegelsysteme ergibt. In der Regel gibt es davon mindestens zwei, d. h. dass sich der eingesparte Plattenplatz durch eine Datenarchivierung verdreifacht. Damit einher geht die Zeitersparnis für die Datensicherung. PBS archive add on CUSTOM - Administration - 5 Inhaltsverzeichnis 1 Einleitung ................................................................................. 9 1.1 Zu diesem Handbuch ...................................................................................... 9 1.2 Grundlegendes zum PBS archive add on CUSTOM .................................... 10 2 Aufbau des PBS archive add on CUSTOM .......................... 11 2.1 Architektur ..................................................................................................... 11 2.2 Vorgehensweise ........................................................................................... 12 2.2.1 Archivierungsobjekt 12 2.2.2 ADK-Indizierung 13 3 Das PBS archive add on CUSTOM ....................................... 16 3.1 Generierung von Archivierungsobjekten....................................................... 19 3.1.1 Archivdateistatistik 19 3.1.2 Tabellenauswahl 19 3.1.3 Datenselektion 22 3.1.4 Dateiaufbau 24 3.1.5 User Exit für die Archivierbarkeitsprüfung 25 3.1.6 User Exit für Archivierungsklassen 27 3.1.7 Löschjobs 27 3.1.8 Ablage 28 3.2 Kundeneigene Archivierungsobjekte ............................................................ 29 3.3 Datenarchivierung ......................................................................................... 29 PBS archive add on CUSTOM - Administration - 6 3.3.1 Datensatzsperre prüfen 29 3.3.2 Parallellauf 30 3.4 Archivdateistatistik ........................................................................................ 30 3.5 Technische Sicht auf die Archivdatei ............................................................ 30 3.6 Aufbau der ADK-Indexinfrastruktur ............................................................... 30 3.6.1 Übernahme von Datenbankindizes 32 3.6.2 Indizes für Positionstabellen 32 3.7 Aufbau der Infrastruktur ................................................................................ 32 3.8 Das Administration Board unter ECC 5.0 ..................................................... 33 3.9 Generierung der Indizes ............................................................................... 34 3.10 Erster Generierungslauf ................................................................................ 37 3.11 Aktivieren der Indizes.................................................................................... 38 3.12 Weitere Generierungsläufe ........................................................................... 40 3.13 Erstellen von Langzeitarchiven ..................................................................... 41 3.14 Archiv-Utilities ............................................................................................... 42 3.15 Alternative Indexgenerierung bei großem Indexzugang ............................... 43 3.15.1 Sortierung via Datenbank-Indextabelle 44 3.15.2 Sortierung via interne Tabelle 44 3.15.3 Wo ist der 'Automatik-Modus' geblieben? 44 3.16 Indexmodifikation .......................................................................................... 45 3.16.1 Vorgehensweise zur Indexmodifikation 45 3.16.2 Löschen nicht mehr benötigter Versionen 46 3.17 Export/Import in andere R3-Systeme ........................................................... 46 PBS archive add on CUSTOM - Administration - 7 3.17.1 Export von Archivierungsobjekt- und Indexdefinition 46 3.17.2 Import von Archivierungsobjekt- und Indexdefinition 48 3.18 Plattenplatzbedarf ......................................................................................... 49 3.19 Einsatz mehrerer Applikationsserver ............................................................ 49 3.20 Performancetuning........................................................................................ 50 3.21 Allgemeines Customizing der Transaktion SARA ........................................ 52 4 Selektion von archivierten Daten ......................................... 53 4.1 Generierte Funktionsbausteine ..................................................................... 53 4.1.1 Der Funktionsbaustein ’<ArchObj>_SELECT’ 54 4.1.2 Der Funktionsbaustein ’<ArchObj>_SEQUENTIAL’ 57 4.2 Archivierungsklassen .................................................................................... 58 4.3 Generischer Funktionsbaustein für den Massendatenzugriff (ab SAP R/3 Enterprise) .............................................................................................. 60 4.4 Die Selektionstabelle ’IT_RSSELECT’ ......................................................... 61 4.5 Die Selektionstabelle ’CT_DYN_RENGES’ .................................................. 62 4.6 Beispielreport zur Datenselektion aus dem Archiv ....................................... 62 4.7 Strukturierte Datenanzeige (ab SAP R/3 Enterprise) ................................... 65 4.7.1 Die Tabelle ’IT_DD05Q’ 66 4.7.2 Die Tabelle ’IT_TABLE_DATA’ 66 4.8 SQL-Zugriffe suchen ..................................................................................... 68 4.9 PBS Archive Browser.................................................................................... 69 5 NAI Index Administration Board .......................................... 70 5.1 Indexdefinition und Indexaufbau ................................................................... 70 5.2 Archivdatenselektion ..................................................................................... 70 PBS archive add on CUSTOM - Administration - 8 5.2.1 Klasse /PBS/IDK_NAI Methode SELECT_INTO_TABLE 70 5.2.2 Klasse /PBS/IDK_SEQ Methode SELECT_INTO_TABLE 72 5.3 Archive Keys aus der NAI-Tabelle ermitteln ................................................. 73 5.3.1 Klasse /PBS/IDK_NAI Methode GET_ARCHIVE_KEYS 73 5.3.2 Interface /PBS/UTIL_IF_NAU_SELECT 74 6 Datenextraktion ..................................................................... 75 6.1 Allgemeines .................................................................................................. 75 6.2 Datenquelle ................................................................................................... 76 6.3 Extraktdefinition ............................................................................................ 76 6.4 Ausgabeoptionen .......................................................................................... 77 6.5 Freie Abgrenzungen ..................................................................................... 78 PBS archive add on CUSTOM - Administration - 9 1 Einleitung 1.1 Zu diesem Handbuch Die modularen Handbücher der PBS archive add ons® umfassen folgende Teilhandbücher: - Teil A: Installation - Teil B: Administration, Archivaufbau und -pflege Das vorliegende Handbuch beschreibt den Teil B der Handbücher. Es werden hier die administrativen Tätigkeiten, wie der Aufbau der PBS archive add ons und die Pflege, beschrieben. Sollten Sie Frage zu den PBS archive add ons® bzw. Probleme haben, wenden Sie sich bitte direkt an die Service-Hotline der PBS Software GmbH: Telefon: +49 - 6251 - 174 110 Telefax: +49 - 6251 - 174 174 E-Mail: [email protected] Releaseverträglichkeit Das in diesem Handbuch beschriebene PBS archive add on CUSTOM ist mit den Basisprogrammen der SAP SE, 69190 Walldorf/Baden, SAP Entwicklungsstand R/3 4.6C, R/3 Enterprise, SAP ERP 2004, SAP ERP 6.0 ablauffähig. PBS archive add on CUSTOM 1.2 - Administration - 10 Grundlegendes zum PBS archive add on CUSTOM Das PBS archive add on CUSTOM ist eine SAP-ADK-basierte Softwarelösung für SAP, die es ermöglicht, kundeneigenen Tabellen (Z-Tabellen) zu archivieren und einen transparenten Zugriff auf archivierte Daten erlaubt. Hierzu wird für die zu archivierenden Tabelle und deren abhängige Tabellen ein Archivierungsobjekt generiert. Gegebenenfalls können auch kundeneigene Archivierungsobjekte verwendet werden. In einem zweiten Schritt lässt sich für das Archivierungsobjekt die PBS-Infrastruktur zur Erzeugung von PBS-Indizes und die zugehörigen Zugriffsroutinen erstellen. Damit können die eigenen Programme an den Zugriff auf die Archivdaten angepasst werden. Die archivierten Daten können auch mit dem PBS Archive Browser angezeigt werden (Transaktion /PBS/SE16). Falls Sie in Ihrem SAP-System die PBS Nearline Analytic Infrastructure installiert ist, können die PBS-Indizes auch über das PBS NAI Index Administration Board definiert und aufgebaut werden. Dieses Verfahren ersetzt das in dieser Dokumentation beschriebene Verfahren zur ADK-Indexgenerierung. (Das Verfahren zur Archivierungsobjekt-Generierung bleibt dasselbe.) Die Indexgenerierung via NAI bietet gegenüber den herkömmlichen ADK-Indizes mehrere Vorteile. Die Indexgenerierung erfolgt zentral für alle PBS archive add ons über das NAI Index Administration Board. Lesen Sie bitte hierzu Kapitel 5 und die Dokumentation zum PBS NAI Index Administration Board (nai_index_administrator.doc). Durch den Einsatz des PBS archive add on CUSTOM kann ein starkes Wachstum kundeneigener Tabellen reduziert und kontrolliert werden. Dieser Prozess führt zu einer signifikanten Einsparung von Plattenplatz und Wartungsleistungen bei gleichzeitiger Verfügbarkeit aller Informationen. Haben Sie ein SAP-R/3 System Release 4.6C im Einsatz, wird das PBS archive add on CUSTOM im SAP-Transportformat ausgeliefert und mit Hilfe des SAPTransporttools tp installiert. Zur Erstellung der PBS archive add ons ab dem Enterprise Release wird das Add-On Assembly Kit (AAK) von SAP verwendet. Das Final Release eines add ons wird in einem OCS-Paket des Typs Add-On Installation Package (AOI) bzw. Add-On Upgrade Package (AOU) ausgeliefert, für das der Import mit Hilfe der SAP-Transaktion SAINT erfolgt. Ein etwaiger Customer Patch hat den Pakettyp Add-On Support Package und wird mit der Transaktion SPAM in das SAP-System importiert. Die Einzelheiten hierzu finden sie im Handbuch Teil A (Installation). Nach der Installation kann das Produkt sofort eingesetzt werden. PBS archive add on CUSTOM - Administration - 11 2 Aufbau des PBS archive add on CUSTOM Falls Sie in Ihrem SAP-System die PBS Nearline Analytic Infrastructure installiert ist, nutzen Sie bitte nur das Verfahren zur Generierung von Archivierungsobjekten (Kapitel 3.1 bis 3.5). Das Verfahren der ADK-Indexgenerierung (Kapitel 2.2.2, 3.6 bis 3.15) kann durch das PBS NAI Index Administration Board ersetzt werden. Lesen Sie bitte hierzu Kapitel 5 und die Dokumentation zum PBS NAI Index Administration Board (nai_index_administrator.doc). 2.1 Architektur Das PBS archive add on CUSTOM enthält Softwarekomponenten für die Archivierungsobjektgenerierung, die Indexdefinition, die Indexgenerierung und die Datenselektion von archivierten Daten. Sämtliche Softwarekomponenten sind in der Programmiersprache ABAP geschrieben und werden mit Hilfe der SAPTransportinfrastruktur implementiert. Alle Programme liegen im PBS Namensraum (/PBS/), wodurch Namenskonflikte mit SAP- oder kundeneigenen Programmen vermieden werden. Die generierten Programme liegen mit dem Präfix „ZIDK_“ im Z-Namensraum. Alle Softwarekomponenten liegen additiv im SAP-System, d. h. es werden keinerlei Modifikationen von SAP-Programmen vorgenommen. Für das Archiv-Daten-Retrieval werden spezielle PBS-Indizes verwendet, deren Definition im Kundensystem erfolgen muss. Anschließend wird ein darauf abgestimmtes Indexgenerierungsprogramm angelegt, mit dessen Hilfe die PBSIndizes im Dateisystem erzeugt werden können. Die Indizes werden außerhalb der SAP-Datenbank im Dateisystem im SAP-ADK-Format gespeichert. Zur Analyse der Archivdaten wird ein Funktionsbaustein generiert, der über die PBS Indizes eine performante Datenselektion aus dem Archiv erlaubt. Archivierungsobjekte Generierung durch PBS archive add on CUSTOM •Schreibprogramm •Löschprogramm •Leseprogramm Kundeneigene Archivierungsobjekte •Schreibprogramm •Löschprogramm •Leseprogramm R/3 Archiv-Dateien (ADK) PBS Archiv-Komponenten •Indexdefinition durch Kunde •Generierung: - Ladeprogramm usw. - Funktionsbaustein zur Datenselektion Abbildung 1: Programmstruktur (ADK-Indizierung) PBS IndexDateien (ADK) PBS archive add on CUSTOM Lesen aus der Datenbank SELECT * FROM zzrk_ltak INTO TABLE itab_ltak WHERE lgnum IN s_lgnum AND tanum IN s_tanum. - Administration - 12 Lesen aus dem Archiv mit generiertem Funktionsbaustein CALL FUNCTION 'ZZRK_LTAK_SELECT' EXPORTING table_name = 'ZZRK_LTAK' index_type_in = 'KEY' TABLES IT_RSSELECT = IT_RSSELECT it_zzrk_ltak = itab_ltak. it_zzrk_ltap = itab_ltap. PBS Index-Dateien PBS ADK Interface R3 Datenbank R3 ArchivDateien Abbildung 2: 2.2 Zugriff auf Datenbank- und Archivdaten Vorgehensweise 2.2.1 Archivierungsobjekt Um Daten aus den Tabellen der Datenbank zu entfernen benötigt man zunächst ein Archivierungsobjekt. Hierzu stellt das PBS archive add on CUSTOM eine Komponente bereit, die ein Archivierungsobjekt generiert. Falls eigene Archivierungsobjekte vorhanden sind, können diese vom PBS archive add on CUSTOM ohne weiteres verwendet werden. Zur Archivierung von SAP-Daten wird das SAP-Archivierungstool verwendet, um die Daten aus der SAP-Datenbank zu entfernen. Der Aufruf des Tools erfolgt über die Transaktion SARA. Die archivierten Daten werden von dem Archivierungsprogramm in sequentielle Dateien außerhalb der Datenbank geschrieben. Die reorganisierten Daten sind nur sequentiell auswertbar. PBS archive add on CUSTOM - Administration - 13 2.2.2 ADK-Indizierung Vor dem Aufbau der für den Direktzugriff benötigten Indizes müssen diese zuerst individuell für jede Tabelle definiert werden. Mit Hilfe des PBS archive add on CUSTOM werden die Tabellenfelder ausgewählt, für die ein Index aufgebaut werden soll. Da die Strukturen der SAP-Objekte kundenspezifisch ausgeprägt sind, müssen neben der eigentlichen Indexgenerierung und -aktivierung noch weitere Schritte durchgefügt werden. Diese Schritte dienen zum Beispiel der Definition und Generierung von DDIC-Strukturen und Programmen. All diese Schritte werden zentral über das PBS archive add on CUSTOM gesteuert. Diese Aktionen sind nur beim Erstaufbau sowie bei Änderungen der Indexstruktur nötig und werden komplett im PBS archive add on CUSTOM durchgeführt (Details siehe Kapitel 3.6 und 3.7). Vor der Verwendung eines PBS-Datenzugriffs über Indizes müssen folgende Ablaufschritte wie in Abbildung 3 dargestellt eingehalten werden: Erstaufbau 1. Generieren eines Archivierungsobjektes 1 0F 2. Kundenspezifische Datenarchivierung 3. Generierung von PBS Archiv-Komponenten 4. Generierung der PBS-Indexdaten 5. Aktivierung der PBS-Indexdaten Periodischer Aufbau (z.B. monatlich) 1. Kundenspezifische Datenarchivierung 2. Generierung der PBS-Indexdaten 3. Aktivierung der PBS-Indexdaten Abbildung 3: 1Wenn Schematische Darstellung der Vorgehensweise beim Aufbau des PBS archive add on CUSTOM. kein kundeneigenes Archivierungsobjekt vorhanden ist. PBS archive add on CUSTOM - Administration - 14 Nach dem Aufbau kann das Generieren der PBS-Indizes und deren anschließende Aktivierung durchgeführt werden (siehe Abbildung 4). 1. Daten archivieren SAP Archiv-/LöschProgramm (SARA) R/3 DB R/3 Archivdateien (ADK Format) Dateisystem/Archiv-Server 2. Daten löschen PBS-Archiv-Index generieren PBS-Index-Dateien ADK-Format Dateisystem/Archiv-Server R/3 Archivdateien ADK-Format Dateisystem/Archiv-Server PBS-Archiv-Index aktivieren PBS-Index-Dateien ADK-Format Dateisystem/Archiv-Server Abbildung 4: Verwaltungsdaten In R/3 Datenbank Vorgehensweise beim Erstaufbau von PBS-Archiv-Indizes Das Indexgenerierungsprogramm liest die SAP-Archivdateien ein und erzeugt die ausgewählten Sekundärindizes. Die Sekundärindizes werden in einem eigenen, über das PBS archive add on CUSTOM generierten Archivierungsobjekt im SAP ADK-Format abgelegt. Das physische Verzeichnis, bzw. die Dateien, in denen sich diese Daten befinden, ergeben sich aus dem logischen Pfad, der dem jeweiligen Archivierungsobjekt zugeordnet wurde. Voreinstellung ist der logische Standardpfad ARCHIVE_DATA_FILE. Wir empfehlen jedoch, im Rahmen des Archivobjektcustomizings für PBS-Archivierungsobjekte eigene logische Pfade zu definieren. Nach erfolgtem Aufbau der Indizes sowie anschließender Aktivierung stehen die archivierten Daten zur Verfügung und können bequem mit den generierten Funktionsbausteinen ausgewertet werden. Da die archivierten Daten nicht mehr verändert werden, ist eine regelmäßige Datensicherung des Archivs nicht erforderlich. Das bei der nächsten Reorganisation der Datenbank erzeugte SAP-Archivfile kann mit Hilfe des Indexgenerierungsprogramms zu dem bestehenden Indexbestand hinzugefügt werden (siehe Abbildung 5). Der Aufruf des Indexgenerierungsprogramms kann menügesteuert über das PBS archive add on CUSTOM erfolgen (Menüpunkt „PBS-Index generieren“). In PBS archive add on CUSTOM - Administration - 15 produktiven Umgebungen werden jedoch oftmals eigene Job Scheduler verwendet, denen der Name des entsprechenden Programms bekannt gemacht werden muss. Um den Programmnamen zu ermitteln, starten Sie das entsprechende Programm wie beschrieben und wählen den Menüpunkt „System/Status...“. Unter „Repository-Daten“ finden Sie den Programmnamen. PBS-Archiv-Index generieren R/3 Archivdateien ADK-Format Dateisystem/Archiv-Server PBS-Archiv-Index abmischen Alte PBS-Index-Dateien ADK-Format Dateisystem/Archiv-Server Abbildung 5: Neue PBS-Index-Dateien ADK-Format Dateisystem/Archiv-Server Vorgehensweise beim periodischen Aufbau von PBS-ArchivIndizes PBS archive add on CUSTOM - Administration - 16 3 Das PBS archive add on CUSTOM Der erste Schritt zum Aufbau der Archiv-Indizes ist das Erzeugen einer dazu geeigneten Infrastruktur. Diese besteht zuerst aus der Definition des Archivierungsobjekts. Falls kundeneigene Archivierungsobjekte vorhanden sind, können dies hier zur Benutzung mit dem PBS archive add on CUSTOM registriert werden. Als zweites werden die Indextypen und deren Indexfelder definiert. Nach dem Anlegen des Indexobjekts, der Strukturen und der objektspezifischen Programme ist der Aufbau der Infrastruktur abgeschlossen. Abbildung 6: Selektionsbild des PBS archive add on CUSTOM. PBS archive add on CUSTOM - Administration - 17 Mit der Transaktion /PBS/IDK wird das PBS archive add on CUSTOM gestartet. Das nach dem Aufruf erscheinende Menü (siehe Abbildung 6) ist in vier Bereiche eingeteilt: Generierung bzw. Auswahl der Archivierungsobjekte Hier wird das Archivierungsobjekt generiert bzw. ausgewählt, für die die Indizes aufgebaut werden. Alle Aktionen in den anderen Bereichen ’Aufbau’, ’Verwaltung’ und ’Funktionsbausteine zur Datenselektion’ beziehen sich dann auf das ausgewählte Archivierungsobjekt. Aufbau Dieser Menüpunkt dient dazu, die Indizes festzulegen und die Infrastruktur (DDIC-Objekte, Programme, Funktionsbausteine) aufzubauen, die zum Aufbau der Indizes sowie zum späteren Zugriff auf die archivierten Daten notwendig ist. Die Ampeln zeigen den aktuellen Status des jeweiligen Unterpunkts an. Verwaltung Hiermit werden die Indizes generiert und anschließend aktiviert. Reports zur Indexverwaltung sowie ein Browser mit einer technischen Sicht sind ebenfalls vorhanden. Ab ECC 5.0 werden alle Verwaltungsprogramme über das Administration Board gestartet (Kapitel 3.8). Funktionsbausteine zur Datenselektion Hier wird lediglich der Name der Funktionsbausteine zur Datenselektion angezeigt. Der erst Funktionsbaustein geht über die PBS-Indizes in die Archivdatei, der zweite Funktionsbaustein liest die Archivdatei sequentiell ohne PBS-Indizes. Im Weiteren werden die Unterpunkte der einzelnen Bereiche erläutert. Der Bereich ’Aufbau’ besteht aus den folgenden Punkten: PBS-Indizes definieren Für alle archivierten Tabellen können mehrere Indizes aufgebaut werden. Dabei werden hier die gewünschten Indizes über eine Auswahlliste festgelegt (Details siehe Kapitel 3.6). Dieser Punkt ist die Grundvoraussetzung für alle folgenden Aktionen. PBS-Indexobjekte und Strukturen generieren Nach der Festlegung der Indizes und deren Struktur muss die Indexstruktur im Data Dictionary angelegt werden. Anschließend wird ein Archivierungsobjekt (Indexobjekt) erzeugt, über das die Indizes verwaltet werden. Das Archivierungsobjekt wird benötigt, da die Indizes über die ADK-Schnittstelle auf dem Dateisystem abgelegt werden. PBS-Verwaltungsprogramme generieren Hier werden die Reports zur Generierung, Aktivierung und Verwaltung der PBSIndizes generiert. PBS archive add on CUSTOM - Administration - 18 Der Bereich ’Verwaltung’ besteht aus folgenden Punkten: PBS-Index generieren Dieser Punkt startet den Report der die PBS-Indizes generiert. Dabei wird zwischen dem Erstlauf und allen nachfolgenden Läufen unterschieden, da jene Läufe immer auch ein Abmischen der neuen Indizes (Zugang) mit den bereits durch frühere Läufe hinzugefügten Indizes (Bestand) beinhalten. Daher werden alle nachfolgenden Indexgenerierungsläufe auch Mischläufe genannt. Eine ausführliche Beschreibung ist in den Kapiteln 3.9, 3.10 und 3.12 enthalten. PBS-Index aktivieren Hiermit wird der Report gestartet, der den im vorigen Punkt generierten Indexbestand aktiviert. Bei der Aktivierung werden Pointer-Informationen der zu ’Clustern’ gruppierten Indizes in eine Verwaltungstabelle geschrieben. Diese Information wird für den späteren Zugriff auf die Indizes benötigt. Der Platzbedarf in der Datenbank beträgt hierfür lediglich zirka 0.1% des Indexbestands. Eine ausführliche Beschreibung befindet sich in den Kapiteln 3.11 und 3.13. Dort wird auch ausführlich auf das Konzept der Haupt- und Langzeitarchive eingegangen. PBS-Indexlauf löschen Diese Funktion startet den Report, mit dem PBS-Indexgenerierungsläufe vollständig gelöscht werden können (siehe auch Kapitel 3.14). PBS-Indexbrowser Hiermit wird der Report gestartet, der einen technischen Blick auf die aufgebauten PBS-Indizes ermöglicht. Insbesondere ist es möglich, die Statistiken des aktuellen sowie aller vorangegangenen Indexgenerierungsläufe anzusehen. (siehe auch Kapitel 3.14). PBS archive add on CUSTOM - Administration - 19 3.1 Generierung von Archivierungsobjekten Das PBS archive add on CUSTOM generiert Archivierungsobjekte mit allen dazugehörigen Programmen wie z.B. Schreib- und Löschprogramm und sonstigen erforderlichen Objekten. Alle Eigenschaften für das Archivierungsobjekt werden über die Programmoberfläche des PBS archive add on CUSTOM eingestellt. Eine Bearbeitung über die Transaktion AOBJ ist nicht erforderlich bzw. nicht empfehlenswert. Unter keinen Umständen darf mit der Transaktion AOBJ die Strukturdefinition geändert werden. 3.1.1 Archivdateistatistik Die Archivdateistatistik (siehe Abbildung 7) dient der Performance-Steigerung beim sequentiellen Lesen der Archivdateien. Die Statistik wird parallel zum Löschjob aufgebaut. Bei kundeneigenen Archivierungsobjekten wird die Statistik parallel zur Indexgenerierung aufgebaut. Für bereits archivierte Daten, für die noch keine Statistik existiert, kann sie auch nachträglich mit dem Programm /PBS/IDK_STATS aufgebaut werden. Beim Statistikaufbau werden zu jeder Archivdatei die Min./Max.Werte zu jedem Tabellenfeld gespeichert. So kann anhand der Selektionskriterien vor dem sequentiellen lesen bestimmt werden, ob eine Archivdatei gelesen werden muss. 3.1.2 Tabellenauswahl Hier werden die zu archivierenden kundeneigenen Tabellen ausgewählt. Pro Archivierungsobjekt ist eine Basistabelle mit beliebig vielen abhängigen Tabellen erlaubt. Es sind nur transparente Tabellen zulässig. Nach Auswahl einer abhängigen Tabelle muss zusätzlich noch ihre Abhängigkeit zur übergeordneten Tabelle definiert werden. Dies geschieht über die Zuordnung der Schlüsselfelder beider Tabellen. Die Auswahl der Tabellen und die Definition deren Beziehungen untereinander müssen mit größter Sorgfalt erfolgen! Nach dem Erzeugen der ersten Archivdatei, sind Änderungen nur noch bedingt möglich. Achten Sie darauf, dass hier alle abhängigen Tabellen angegeben werden. Abbildung 7: Basistabelle mit einer abhängigen Tabelle PBS archive add on CUSTOM Abbildung 8: 3.1.2.1 - Administration - 20 Definition der Tabellenbeziehung über Schlüsselfelder Nachträgliches Hinzufügen einer Tabelle Nachträgliches hinzufügen einer untergeordneten Tabelle, bei bestehenden Archiven, ist ohne weiteres möglich. Gehen Sie bitte hierzu wie folgt vor: 1. Transaktion /PBS/IDK starten 2. Archivierungsobjekt ändern 3. Übergeordnete Tabelle markieren 4. Tabelle einfügen 5. Beziehung festlegen 6. Dialog mit [Ok] verlassen -> Schreib-/ Löschprogramm wird neu generiert 7. Unter Sektion "Aufbau" Button "Index-Verwaltungsprogramme generieren" ausführen 3.1.2.2 Tabellenbeziehung via BAdI Falls die Tabellenbeziehung mittels Schlüsselfelder nicht abzubilden ist, kann zur Beziehungsdefinition das Business Add In /PBS/IDK_DB_CURSOR benutzt werden. Wenn die Checkbox „Tabellenbeziehung via BadI“ (Abbildung 7) gewählt wird, müssen für dieses Archivierungsobjekt alle Beziehungen über die Methode GET_DB_CURSOR definiert werden. Mit dieser Methode wird ein DatenbankCursor an das aufrufende Archivierungsprogramm übergeben. Den Cursor müssen Sie via ABAP-Code erstellen. Für die oben gezeigte Beziehung ZZRK_LTAK / ZZRK_LTAP würde dies wie folgt aussehen: OPEN CURSOR WITH HOLD item_cursor FOR SELECT * FROM zzrk_ltap WHERE lgnum = zzrk_ltak-lgnum AND tanum = zzrk_ltak-tanum ORDER BY PRIMARY KEY. PBS archive add on CUSTOM - Administration - 21 Der Datenbank-Cursor wird für alle abhängigen Tabellen angefordert. Der Cursor der Basistabelle wird vom Archivierungsprogramm selbst, mit den in Kapitel 3.1.2 beschriebenen Selektionskriterien, erstellt. Um in der beschriebenen Weise zu verfahren, starten Sie Transaktion SE18 mit dem BAdI /PBS/IDK_DB_CURSOR und legen eine neue Implementierung an. Durch Doppelklick auf die Methode GET_DB_CURSOR (Abbildung 9) gelangen Sie in den APAP-Editor. Schreiben Sie hier den erforderlichen Code. Ein Beispiel finden Sie in Transaktion SE18 unter dem Menüpunkt „Springen / Beispiel-Coding / Anzeigen“. Neben der Methode GET_DB_CURSOR gibt es auch die Methode LOCK_RECORD. Mit dieser Methode können Sie die Datensätze mittels SperrBaustein (Transaktion SE11: Sperrobjekte) sperren bzw. prüfen, ob diese momentan gesperrt sind. Dies kann nicht im Archivierungsprogramm erfolgen, da hier die Tabellenbeziehung nicht bekannt ist. Die Records der Basistabelle werden wie gehabt vom Archivierungsprogramm selbst gesperrt. Das Prüfen der Records ist nicht zwingend erforderlich, wird aber empfohlen, da gesperrte Records nicht archiviert werden sollten. Die Methoden des BAdI /PBS/IDK_DB_CURSOR sind Archivierungsobjektübergreifend. Der Name des aktuellen Archivierungsobjekts wird mit dem Parameter ARCHIVE_OBJ übergeben, so dass mit der Anweisung „CASE archive_obj“ entsprechend verzweigt werden kann. Falls die Archivierungsobjekte verschiedenen Fachbereichen zugeordnet sind, macht es Sinn, den DatenbankCursor über fachbereichsspezifische Methoden oder Funktionsbausteine bereitzustellen. Abbildung 9: SE18, BAdI Implementierung anlegen PBS archive add on CUSTOM - Administration - 22 3.1.3 Datenselektion Zur Datenarchivierung werden in der Transaktion SARA Varianten gepflegt. Die Variante legt fest, mit welchen Parametern das Archivierungsprogramm gestartet wird. Unter dem Punkt Datenselektion werden die Selektionsparameter des Archivierungsprogramms definiert. Wenn Ihre Tabelle ein Datumsfeld enthält, ist es sinnvoll dieses Feld zur Datenselektion zu verwenden, da eine Archivierung zeitabhängig sein sollte. Die Daten können nach bestimmten Kriterien sortiert werden. Die Sortierung kann allerdings bei großen Datenmengen zu Performance-Problemen führen. In diesem Fall ist es empfehlenswert, die Daten nicht zu sortieren. Falls im User-Exit (Kapitel 3.1.5) zusätzliche Parameter oder Select-Options benötigt werden, können Sie dies in einem kundeneigenen Include definieren. Geben Sie den Namen des Include im entsprechenden Feld an. Auf die DBSelektion haben die Parameter keinen Einfluss. Abbildung 10: Definition der Select-Options im Archivierungsprogramm PBS archive add on CUSTOM 3.1.3.1 - Administration - 23 Zusätzliche kundeneigene Parameter Um kundeneigene Parameter optisch von den generierten Parametern abzugrenzen, ist es sinnvoll die Parameter im Include in einen „Selection Block“, wie im folgenden Beispiel, einzuschließen. *&----------------------------------------------------------* *& Include ZZRK_TEST_INCL *&----------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-inc. PARAMETERS p_param1 TYPE zz_param1 AS CHECKBOX. SELECTION-SCREEN END OF BLOCK bl2. Als Frame Title ist der Text „INC“ zu benutzen. Damit die Parameter bzw. SelectOptions auf dem Selektionsscreen mit einem Text angezeigt werden, sind diese mit einem Datenelement oder Tabellenfeld zu typisieren. Außerdem kann mit der Hilfetaste [F1] ein entsprechender Langtext angezeigt werden. Das Include kann auch Ereignisse zur Parameterprüfung oder für Wertehilfen erhalten. Abbildung 11: Kundeneigene Parameter Im User-Exit können Sie alle Parameter und Select-Options mit der Klasse /PBS/IDK_CL_REPORT_SELECTIONS und deren statischen Methoden abfragen. Folgend ein Beispiel: PBS archive add on CUSTOM FIELD-SYMBOLS <tab> FIELD-SYMBOLS <param> RANGES rg_lgnum DATA ref DATA param - Administration - 24 TYPE STANDARD TABLE. TYPE STANDARD TABLE. FOR ltak-lgnum. TYPE REF TO data. TYPE c. * --- Parameter -------/pbs/idk_cl_report_selections=>get_parameter( EXPORTING i_name = 'P_TEST' IMPORTING e_param = param ). * or via referece ref = /pbs/idk_cl_report_selections=>get_reference( 'P_TEST' ). ASSIGN ref->* TO <param>. * --- Select-Options --/pbs/idk_cl_report_selections=>get_select_options( EXPORTING i_name = 'S_LGNUM' IMPORTING e_sel_opt = rg_lgnum[] ). * or via referece ref = /pbs/idk_cl_report_selections=>get_reference( 'S_LGNUM' ). ASSIGN ref->* TO <tab>. 3.1.4 Dateiaufbau Analog zur Transaktion AOBJ werden hier der logische Dateiname, die maximale Dateigröße und die maximale Anzahl der Datenobjekte einer Archivdatei festgelegt. Logischer Dateiname Der logische Dateiname ist ein plattformunabhängiger Name für eine Datei, die im Dateisystem abgelegt werden soll. Zu einem logischen Dateinamen wird zur Laufzeit ein vollständiger plattformspezifischer Dateiname einschließlich Pfad ermittelt. Voreinstellung ist der logische Standardpfad ARCHIVE_DATA_FILE. Wir empfehlen jedoch, im Rahmen des Archivobjektcustomizings für PBSArchivierungsobjekte eigene logische Pfade zu definieren. Der logische Dateiname gilt mandantenübergreifend. Er kann jedoch mit der Transaktion SF01 zusätzlich noch spezifisch für den aktuellen Mandanten definiert werden. Maximale Dateigröße Dieser Parameter steuert die maximale Größe einer Archivdatei. Bevor ein Objekt in eine Archivdatei geschrieben wird, wird überprüft, ob dabei die maximal zulässige Größe überschritten würde. Ist dies der Fall, wird die aktuelle Archivdatei geschlossen und eine neue geöffnet, welche das Objekt aufnimmt. Ist ein Archivsystem am SAP System angeschlossen, dann sollten Sie hier die maximal zulässige Größe anhand des Archivsystems nicht überschreiten. Geben Sie hier keinen Wert oder einen Wert an, welcher zwei Gigabyte übersteigt, so wird die maximale Größe einer Archivdatei automatisch auf zwei Gigabyte begrenzt. PBS archive add on CUSTOM - Administration - 25 Maximale Anzahl der Objekte in einer Archivdatei Dieser Parameter steuert die maximale Anzahl von Datenobjekten pro Archivdatei. Bevor ein Datenobjekt in eine Archivdatei geschrieben wird, wird überprüft, ob dabei die maximal zulässige Anzahl überschritten würde. Ist dies der Fall, dann wird die aktuelle Archivdatei geschlossen und eine neue geöffnet, welche das Datenobjekt aufnimmt. Geben Sie hier keinen Wert ein, findet keine Prüfung statt. Abbildung 12: Dateiaufbau 3.1.5 User Exit für die Archivierbarkeitsprüfung Um Ihnen die volle Kontrolle über die Archivierbarkeit eines Datensatzes zu geben, wird vom Programm ein Funktionsbaustein (User Exit) erzeugt. Der Importparameter enthält den aktuell zu archivierenden Datensatz der Basistabelle. Die internen Tabellen der Tabellendeklaration (falls vorhanden) enthalten alle abhängigen Datensätze der Basistabelle. In den Funktionsbaustein muss vom Softwareentwickler ABAP-Code eingefügt werden, welcher die Archivierbarkeit der Daten prüft. Beispielsweise sollte hier eine Prüfung auf abhängige Daten in anderen Tabellen stattfinden zu denen keine Tabellenbeziehung definiert ist. Wenn ein Datumsfeld vorhanden ist, ist hier eine Prüfung auf Mindestalter sinnvoll. Sind kundeneigene Parameter für die Prüfung nötig, können diese mit der Klasse /PBS/IDK_CL_REPORT_SELECTIONS abgefragt werden (siehe Kapitel 3.1.3.1). Falls ein Datensatz nicht archiviert werde darf, muss der Error ‚ARCHIVING_NOT_ALLOWED’ ausgelöst werden. Das Aufrufende Archivierungsprogramm schreibt den Datensatz somit nicht in die Archivdatei und geht zum nächsten Datensatz. Alternativ kann der Error mittels Message-Anweisung ausgelöst werden. Dabei wird ein beschreibender Text übergeben, welcher später im Protokoll als Hinweis dient. Wenn Ihre Tabellenstruktur ein Archivkennzeichen besitzt, kann dieses im Funktionsbaustein gesetzt werden. PBS archive add on CUSTOM - Administration - 26 FUNCTION zzrk_ltak_check. *"----------------------------------------------------------------*"*"Lokale Schnittstelle: *" TABLES *" IT_ZZRK_LTAP STRUCTURE ZZRK_LTAP *" CHANGING *" VALUE(WA_ZZRK_LTAK) LIKE ZZRK_LTAK STRUCTURE ZZRK_LTAK *" EXCEPTIONS *" ARCHIVING_NOT_ALLOWED *"----------------------------------------------------------------DATA: max_year(4) TYPE n, ltak_year(4) TYPE n. * check by zzrk_ltak-bdatu max_year = sy-datum(4) - 2. ltak_year = wa_zzrk_ltak-bdatu(4). IF ltak_year >= max_year. MESSAGE i398(00) WITH 'BDATU:' wa_zzrk_ltak-bdatu wa_zzrk_ltak-lgnum wa_zzrk_ltak-tanum RAISING archiving_not_allowed. ENDIF. * Is confirmation complete? LOOP AT it_zzrk_ltap. IF it_zzrk_ltap-kzqui IS INITIAL. MESSAGE i398(00) WITH 'Confirmation not complete:' wa_zzrk_ltak-lgnum wa_zzrk_ltak-tanum RAISING archiving_not_allowed. ENDIF. ENDLOOP. * set archive flag wa_zzrk_ltak-archive = 'X'. MODIFY zzrk_ltak FROM wa_zzrk_ltak. ENDFUNCTION. Abbildung 13: Beispiel zur Datensatzprüfung Ein vom Programm neu erzeugter Funktionsbaustein löst den Error ‚ARCHIVING_NOT_ALLOWED’ aus Sicherheitsgründen ohne Prüfung standardmäßig aus, d.h. es werden keine Daten archiviert. Der Softwareentwickler muss also den Funktionsbaustein modifizieren, damit Daten archiviert werden können. Der Funktionsbaustein wird in der Funktionsgruppe ‚ZIDK_USER_EXIT’ generiert. Aus technischen Gründen liegt diese Funktionsgruppe in der lokalen Entwicklungsklasse ‚$TMP’. Um den Funktionsbaustein in andere SAP-System zu transportieren, kann er in eine beliebige transportfähige Funktionsgruppe umgehängt werden. PBS archive add on CUSTOM - Administration - 27 3.1.6 User Exit für Archivierungsklassen Wenn Sie Daten mit Archivierungsklassen archivieren wollen, ist dies mit dem User Exit für Archivierungsklassen möglich. Als User Exit muss eine ABAP-Klasse mit Transaktion SE24 angelegt werden. Die Klasse wird mit beliebigem Namen angelegt und muss das PBS-Interface /PBS/IDK_IF_ARCHIVING_CLASS implementieren. Tragen sie den Namen Ihrer Klasse in das Feld 'ABAP-Klasse' ein. Sie erhalten eine Online-Hilfe, wenn Sie die Taste [F1] betätigen. In der Hilfe wird exemplarisch beschrieben, wie die Klasse zu erstellen ist. Das Beispiel zeigt die Archivierung mit der Archivierungsklasse 'CHANGEDOCU' 3.1.7 Löschjobs Analog zur Transaktion AOBJ kann hier ein Ereignis für den Löschjob angegeben werden. Ereignis Name des Ereignisses, mit dem ein Job verkettet ist. Ein Ereignis, oder "Event", ist ein Signal dafür, dass ein vordefinierter Zustand im System erreicht worden ist. Das Hintergrund-Verarbeitungssystem empfängt Ereignisse und startet dann den/die Hintergrundjob/jobs, die mit einem Ereignis verkettet sind. Sie können vordefinierte Ereignisse der SAP-Anwendungen angeben bzw. Ereignisse angeben, die selbst definiert wurden. Parameter Wenn ein Ereignis einen Parameter erfordert, tragen Sie den gewünschten Parameter in diesem Feld ein. Ein Parameter qualifiziert ein Ereignis. Beim Ereignis SAP_END_OF_JOB werden zum Beispiel Jobname und Jobnummer als Parameter mit ausgegeben. Abbildung 14: Löschjobs PBS archive add on CUSTOM - Administration - 28 3.1.8 Ablage Analog zur Transaktion AOBJ kann hier ein Ablageort für physische Dokumente angegeben werden. Content Repository Das Repository ist eine SAP Knowledge Provider Verwaltungseinheit zur Abbildung physischer Speichermedien. Es können unterschiedliche physische Speichermedien angesprochen werden (Datenbank, Archiv,..), die jeweils unterschiedliche Typen von Content Repositories darstellen. Einem Content Repository ist immer genau ein Content Server zugeordnet. Zu einem Content Server kann es mehrere Content Repositories geben. Automatischer Start Kennzeichnet, dass Archivdateien nach erfolgreichem Abarbeiten automatisch an ein angeschlossenes Ablagesystem übergeben werden. Löschphase vor Ablage Die Ablage in das Content Repository erfolgt, nachdem das Löschprogramm die Datei im Produktivmodus bearbeitet hat. Läuft das Löschprogramm dagegen im Testmodus, findet im Anschluss daran keine automatische Ablage statt. Ablage vor Löschphase Die Ablage in das Content Repository erfolgt, nachdem das Schreibprogramm eine Archivdatei erstellt hat, aber noch vor dem Start des Löschprogramms für diese Datei. Löschprogramm liest aus Archivsystem Der Wert dieses Ankreuzfelds ist relevant, wenn Archivdateien in ein angeschlossenes Ablagesystem abgelegt werden müssen, bevor sie vom Löschprogramm bearbeitet werden können. Setzen Sie das Ankreuzfeld, so liest das Löschprogramm die Datei im Ablagesystem. Anderenfalls wird die Datei vom Löschprogramm im Dateisystem gelesen. Abbildung 15: Ablage PBS archive add on CUSTOM - Administration - 29 3.2 Kundeneigene Archivierungsobjekte Falls Sie eigene Archivierungsobjekte erstellt haben, können Sie dies für die Benutzung mit dem PBS archive add on CUSTOM registrieren. Die Strukturdefinition Ihres Archivierungsobjekts ist dabei völlig frei. Bei der Definition mit der Transaktion AOBJ ist darauf zu achten, dass die Vater/Sohn-Beziehung der Tabellen richtig angegeben ist, da bei der Definition der PBS-Indizes und der Generierung der Verwaltungsprogramme auf dies Struktur zurückgegriffen wird. Für Tabellen welche mit Archivierungsklassen archiviert werden können keine Indizes definiert werden, jedoch ist das Lesen der Daten über den Archivekey möglich. Weitere Informationen hierzu finden Sie im Kapitel 4.2. Abbildung 16: Registrierung kundeneigener Archivierungsobjekte 3.3 Datenarchivierung Über den Button „Archivadministration“ in der Statuszeile des PBS archive add on CUSTOM gelangen Sie direkt zur Transaktion SARA. Die Archivadministration ist Teil des SAP Archive Development Kit (ADK). Sie können damit Ihre Archivierungsprogramme verwalten und Hintergrundjobs zur Ausführung dieser Programme (Schreibund Löschprogramme) einplanen. Über die Archivadministration können Sie darüber hinaus Ihre Archivierungsläufe verwalten, Archivinhalte sequentiell lesen und tabellarisch anzeigen. 3.3.1 Datensatzsperre prüfen Generell sollte für jeden zu archivierenden Datensatz die Schreibsperre geprüft bzw. gesetzt werden, da Daten, die gerade durch andere Transaktionen verarbeitet werden, nicht archiviert werden dürfen. Die Option ist daher standardmäßig eingeschaltet. Bei sehr großen Datenmengen kann es beim Sperren zu Performance-Problemen kommen und die Archivierung dauert zu lange. Auf eigene Verantwortung kann der Sperrmechanismus, mit Abwählen der Checkbox, umgangen werden. Wenn Sie dies tun, stellen Sie bitte im User Exit sicher, dass keine aktuellen Daten archiviert werden können. PBS archive add on CUSTOM - Administration - 30 3.3.2 Parallellauf Bei gesetztem Parameter ist die parallele Ausführung der Archivierung erlaubt. ACHTUNG: Bei paralleler Ausführung ist die Gefahr hoch, Datensätze doppelt zu archivieren. Es ist sorgfältig darauf zu achten, dass durch Varianten die Datenselektion so eingeschränkt wird, dass Datensätze nicht doppelt archiviert werden können. Aus Sicherheitsgründen sollte der Parameter "Datensatzsperre prüfen" gesetzt sein. 3.4 Archivdateistatistik Die Archivdateistatistik dient der Performance-Steigerung beim sequentiellen Lesen der Archivdateien (siehe Kapitel 4.1.2 und 4.3). Die Statistik ist optional und wird parallel zum Löschjob aufgebaut. Bei kundeneigenen Archivierungsobjekten wird die Statistik parallel zur Indexgenerierung aufgebaut. Für bereits archivierte Daten, für die noch keine Statistik existiert, kann sie auch nachträglich mit dem Programm /PBS/IDK_STATS aufgebaut werden. Beim Statistikaufbau werden zu jeder Archivdatei die Min./Max.-Werte zu jedem Tabellenfeld gespeichert. So kann anhand der Selektionskriterien vor dem sequentiellen lesen bestimmt werden, ob eine Archivdatei gelesen werden muss. 3.5 Technische Sicht auf die Archivdatei Über den Menüpunkt ’Springen / Archivanzeige’ wird ein Programm gestartet, welches die Archivdaten sequentiell liest und in einer technischen Sicht anzeigt. 3.6 Aufbau der ADK-Indexinfrastruktur Falls Sie in Ihrem SAP-System die PBS Nearline Analytic Infrastructure installiert ist, kann das Verfahren der ADK-Indexgenerierung (Kapitel 2.2.2, 3.6 bis 3.15) durch das PBS NAI Index Administration Board ersetzt werden. Lesen Sie bitte hierzu Kapitel 5 und die Dokumentation zum PBS NAI Index Administration Board (nai_index_administrator.doc). Bevor die Indizes aufgebaut werden können, muss zuerst festgelegt werden, für welche Felder Indizes definiert werden. Das erste Feld ist hierbei das Indexschlüsselfeld. Zusätzlich können dem Indexschlüsselfeld noch weitere Indexattribute hinzugefügt werden, um bei komplexeren WHERE-Bedingungen die Auswahl der Archivdaten möglichst vollständig über den Index abzuwickeln. Für den Fall, dass alle Tabellenfelder bereits im Index enthalten sind, kann dadurch sogar der Zugriff auf die Archivdaten eingespart werden. Der Zusammenhang zwischen Index, Indexstruktur und Archivdaten wird in diesem Abschnitt anhand eines Beispiels erläutert. In Abbildung 17 ist die Struktur einer ADK-Datei mit extrahierten SAP-Einkaufsbelegen dargestellt. Für die drei Felder ’Belegnummer’ ’Lieferant’ und ’Material’ sollen nun Indizes aufgebaut werden. Jede PBS archive add on CUSTOM - Administration - 31 Indexstruktur besteht aus dem jeweiligen Tabellenfeld als Indexschlüsselfeld an erster Stelle, den Indexattributen sowie dem Pointer auf den dazugehörigen Datensatz im Archiv. Durch die Indexattribute können bei der Archivdatenselektion, die zum Beispiel die Selektionsfelder ’Lieferant’ und/oder ’Material’ enthalten, die komplette Auswahl bereits auf Index-Ebene durchgeführt werden. So werden beim anschließenden Archivzugriff nicht mehr Datensätze selektiert als nötig. Schlüsselfeld ADK Datei Belegnummer Lieferant Material Nettopreis Lieferant Material Lieferant Material Archiv-Pointer Archiv-Pointer Archiv-Pointer Indexschlüssel Index 1 Index 2 Index 3 Belegnummer Lieferant Material Abbildung 17: Struktur von SAP-ADK-Daten und der dazugehörigen PBS-Indizes Der erste Schritt besteht jetzt darin, die Felder auszuwählen, für die jeweils Indizes aufgebaut werden. Durch Starten des Punktes ’PBS-Indizes definieren’ gelangt man in ein Auswahlbild wie in Abbildung 18, wo alle Tabellen des Archivierungsobjekts aufgelistet sind. Für jede Tabelle können hier mehrere Indizes definiert werden. Um einen neuen Index anzulegen, markieren Sie die entsprechende Tabelle und betätigen die Funktionstaste F5. Es erscheint der Dialog zur Feldauswahl (Abbildung 19). Abbildung 18: Tabelle und deren Indizes PBS archive add on CUSTOM - Administration - 32 Abbildung 19: Indexdefinition Der technische Name in Abbildung 19 identifiziert den Index eindeutig. Er dient auch als Eingabeparameter für den Funktionsbaustein zur Datenselektion (Details siehe Kapitel 4.1.1). Die Priorität dient der automatischen Indexermittlung für, vom Aufbau her, ähnlichen Indizes. Für bereits aufgebaute Indizes kann die Indexpriorität auch nachträglich noch geändert werden. Die Indexbezeichnung ist nur ein beschreibender Text und für die Datenselektion unbedeutend. 3.6.1 Übernahme von Datenbankindizes Unter anderem können in der Datenbank definierte Indizes als Vorlage herangezogen werden. Gegebenenfalls sollte hier die Feldreihenfolge verändert werden, so dass eindeutige Felder am Anfang stehen. 3.6.2 Indizes für Positionstabellen Schüsselfeld-Indizes können für Positionstabellen eingespart werden. In der Regel wird man einen Schüsselfeld-Index für die Kopftabelle erstellen. Über diesen gelangt man dann an die abhängigen Positionen, da beim Einlesen eines ADKObjekts immer das ganze Datenobjekt gelesen wird. 3.7 Aufbau der Infrastruktur Nachdem die Definition der Indizes und der Indexstruktur abgeschlossen ist, muss PBS archive add on CUSTOM - Administration - 33 die Infrastruktur zur Indexverwaltung und anschließenden Archivzugriff aufgebaut werden. Der Punkt 2 ’PBS-Indexobjekt und Struktur generieren’ ist Voraussetzung für Aufbau und Verwaltung der Indizes. Zuerst werden die Indexstrukturen im Data Dictionary angelegt. Anschließend wird ein Archivierungsobjekt erzeugt, über das die Indizes verwaltet werden. Das Archivierungsobjekt wird benötigt, da die Indizes über die ADK-Schnittstelle auf dem Dateisystem abgelegt werden. Der Name ist dabei so gewählt, dass er im Z*Namensraum liegt, aber dem des Daten-Archivierungsobjekts weitgehend entspricht (z.B.: ZZRK_LTAK ergibt ZZRK_LTAK1). Unter Punkt 3 ’PBS-Verwaltungsprogramme generieren’ werden die Reports zur Generierung, Aktivierung und Verwaltung der PBS-Indizes angelegt. Die generierten Reports liegen im Z-Namensraum und sind der lokalen Entwicklungsklasse ’$TMP’ zugeordnet. 3.8 Das Administration Board unter ECC 5.0 Ab ECC 5.0 wird der PBS-Archivindex mit dem Administration Board verwaltet. Alle für Aufbau, Pflege und Analyse der Indizes notwendigen Programme und Tools können direkt über dieses Cockpit angesteuert werden. Abbildung 20: Administration Board Im Folgenden werden die einzelnen Funktionen, die auch über das Menü ausgeführt werden können, erläutert. Der Hauptindex wird in einen Langzeitindex umgewandelt (Kapitel 3.13). Durch Aktivieren eines Indexbereiches werden die Indizes dem Benutzer zur Verfügung gestellt (Kapitel 3.11). Deaktivieren eines Indexbereiches bedeutet, dass auf die Indizes nicht PBS archive add on CUSTOM - Administration - 34 mehr zugegriffen werden kann. Das Ladeprotokoll zu einem Lauf gibt Auskunft über die verarbeiteten Archive und Indizes. Das Löschen eines Indexbereiches hat zur Folge, dass alle abhängigen Tabelleninhalte und die physischen Dateien gelöscht werden. Mit dem Archivtool wird der Inhalt eines Indexbereichs angezeigt (Kapitel 3.14). Indexgenerierung bedeutet, dass ADK-Dateien indiziert werden. Die Indizes werden ebenfalls in ADK-Dateien abgelegt. (Kapitel 3.9) 3.9 Generierung der Indizes Die Generierung der Indizes geschieht mit dem Index-Generierungsprogramm und den SAP-Archivdateien des entsprechenden Archivierungsobjekts. Das Programm wird am einfachsten aus der Oberfläche des PBS archive add on CUSTOM heraus über den Punkt ’PBS-Index generieren’ gestartet. Ab ECC 5.0 wird das Programm über das Administration Board gestartet. Das Selektionsbild des Programms mit seinen Abgrenzungen ist in Abbildung 21 dargestellt. PBS archive add on CUSTOM - Administration - 35 Abbildung 21: Selektionsbild des Programms zur PBS-Indexgenerierung Im Folgenden werden die Abgrenzungen des Selektionsbildes sowie ihre Auswirkungen erläutert. Manuell auswählen Automatisch auswählen Alten Lauf löschen Ist der Auswahlknopf 'Manuell auswählen' aktiv, so wird bei Bestätigung des Anforderungsbildes ein Fenster eingeblendet, das eine Liste der zur Verfügung stehenden SAP-Archive anzeigt, die an oder nach dem eingegebenen Datum erstellt worden sind (siehe Abbildung 22). PBS archive add on CUSTOM - Administration - 36 Abbildung 22: Vorschlagsliste derjenigen SAP-Archive, die Sie in das PBS-IndexArchiv aufnehmen können. Wählen Sie nun diejenigen SAP-Archive aus (), die Sie in Ihren PBS-Index aufnehmen möchten. Im automatischen Modus werden ohne Einblenden der Liste alle SAP-Archive des jeweiligen Archivierungsobjekts selektiert, die an oder nach dem hier eingegebenen Datum erstellt worden sind. Bereits in aufgenommene SAP-Archive aus diesem Zeitraum werden hierbei nicht selektiert. Der Parameter 'Alten Lauf löschen' ermöglicht Ihnen komplette Generierungsläufe wieder aus dem PBS-Indexdatei zu entfernen. Bei Drücken der Lauf-Taste wird eine Übersicht der bisher erfolgten Läufe eingeblendet, aus der Sie dann den zu löschenden Lauf auswählen können (siehe Abbildung 23). Abbildung 23: Übersicht der bisher durchgeführten Läufe Alle Belege verarbeiten Ist dieser Auswahlknopf aktiv, so werden die selektierten SAP-Archive komplett in das PBS-Indexdatei aufgenommen. Mehrmaliges Aufnehmen des selben SAP- PBS archive add on CUSTOM - Administration - 37 Archivs wird durch interne Sicherheitsmechanismen verhindert. Folgenummernintervall verarbeiten Bei sehr großen SAP-Archiven kann es wünschenswert sein, den Generierungslauf in mehrere kleinere Portionen aufzuteilen. In diesem Fall muss der Auswahlknopf 'Folgenummernintervall verarbeiten' aktiviert und die entsprechenden Intervallgrenzen gesetzt werden. Verwaltungsindizes erzeugen Setzen dieses Parameters bewirkt, dass im Anschluss an den eigentlichen Generierungsvorgang die Verwaltungstabelle /PBS/IDK_FILE aktualisiert wird. Möchten Sie mehrere Generierungsläufe in Folge durchführen, so sollte dieser Parameter erst beim letzten Durchgang gesetzt werden. Wurde dieser Parameter nicht gesetzt oder wurden die Einträge in der Verwaltungstabelle /PBS/IDK_FILE beschädigt, so können Sie jederzeit die Verwaltungsindizes separat über den Menüpunkt ’PBS-Index aktivieren’ aufbauen. Vorlauf löschen Setzen dieses Parameters bewirkt, dass nach erfolgreichem Abschluss des aktuellen Generierungslaufs die Daten aus dem vorhergegangenen Lauf automatisch gelöscht werden. Im Normalfall sollte dieser Parameter immer gesetzt sein. In der Einführungsphase ist es oft sinnvoll, diesen Parameter nicht zu setzen und den Vorlauf noch zur Sicherheit aufzubewahren. Ältere Läufe können dann zu einem späteren Zeitpunkt über den Menüpunkt ’PBS-Indexlauf löschen’ im PBS archive add on CUSTOM auch separat gelöscht werden. 3.10 Erster Generierungslauf Wurden alle erforderlichen Angaben im Selektionsbild des IndexgenerierungsReports gemacht, kann das Selektionsbild als Selektionsvariante für den Erstaufbau des Online-Archivs abgelegt und der Report als Hintergrundprozess gestartet werden. Nach erfolgreicher Generierung des Index-Archivs gibt das Programm eine ArchivSelektionsstatistik (siehe Abbildung 24) aus. PBS archive add on CUSTOM - Administration - 38 Abbildung 24: Selektionsstatistik der PBS-Indexgenerierung 3.11 Aktivieren der Indizes Wurde beim Aufbau des Index-Archivs der Schalter ’Verwaltungsindizes erzeugen‘ nicht gesetzt, so können diese jederzeit separat über den Menüpunkt ’PBS-Index aktivieren’ im PBS archive add on CUSTOM erzeugt werden. Das Selektionsbild dieses Vorgangs ist in Abbildung 25 dargestellt. PBS archive add on CUSTOM - Administration - 39 Abbildung 25: Selektionsbild für den Aufbau der Verwaltungsindizes Letzten Lauf verwenden Setzen dieses Parameters bewirkt, dass zur Erzeugung der Indizes automatisch der zuletzt durchgeführte Lauf verwendet wird. Lauf manuell auswählen Gerade in der Einführungs- und Testphase kann es sinnvoll sein, ältere Generierungsläufe nicht zu löschen, sondern zunächst vorzuhalten. Mittels des Parameters ‚‚Lauf manuell auswählen‘‘ können Sie dann jederzeit auch einen früheren Lauf wieder aktivieren und die entsprechenden Verwaltungsindizes aufbauen. Abbildung 26 zeigt eine Auswahlliste, wie sie nach Starten im manuellen Modus angezeigt wird. Abbildung 26: Auswahlliste für den Aufbau der Verwaltungsindizes zu einem beliebigen Generierungslauf PBS archive add on CUSTOM - Administration - 40 Nach erfolgtem Aufbau der Verwaltungsindizes wird ein Protokoll angezeigt (siehe Abbildung 27). Abbildung 27: Protokoll eines Aufbaus der Verwaltungstabelle Hauptarchiv deaktivieren Dieser Parameter erlaubt Ihnen die aktuellen Indizes zu deaktivieren, ohne gleichzeitig Indizes zu einem anderen Generierungslauf aktivieren zu müssen. 3.12 Weitere Generierungsläufe Mit dem ersten Generierungslauf wurde eine PBS-Indexdatei (siehe Kapitel 3.10) erzeugt. Sollen nun weitere Archivdaten der bereits bestehenden PBS-Indexdatei hinzugefügt werden, so geschieht dies in ähnlicher Weise wie zuvor beschrieben – mit einem Mischlauf. Beim Einspielen von weiteren SAP-Archivdateien sind im Selektionsbild des Reports in der Abgrenzung ‘Archive auswählen’ (siehe Abbildung 22) diejenigen SAP-Archivdateien zu markieren, die zur bestehenden PBS-Indexdatei hinzugemischt werden sollen. Wurde bereits eine SAP-Archivdatei im vorhergehenden Lauf in das IDK-Index-Archiv geladen, so wird dies vom Report erkannt und eine Warnung ausgegeben. Es ist nicht möglich, dass derselbe Datensatz mehrmals im Index-Archiv referenziert wird. Das Programm zur Indexgenerierung ist wieder als Batchprozess zu starten. Aus dem bestehenden Index-Archiv und dem Zugang wird eine neue PBS-Indexdatei aufgebaut. Die Vorgängerdatei wird automatisch gelöscht, wenn der Schalter ‚‚Vorlauf löschen‘‘ gesetzt ist. Die Dateien aus früheren Läufen können aber auch separat zu einem späteren Zeitpunkt über den Menüpunkt ’PBS-Indexlauf löschen’ im PBS archive add on CUSTOM gelöscht werden. Sind alle weiteren Ladevorgänge abgeschlossen, so ist, wie bereits im Kapitel 3.11 beschrieben, mit Hilfe des Menüpunkts ’PBS-Index aktivieren’ die Verwaltungstabelle /PBS/IDK_FILE in das SAP-System zu laden. Dieser Schritt kann entfallen, wenn bei der Durchführung des letzten Laufes der Schalter ‚‚Verwaltungsindizes erzeugen‘‘ gesetzt war. Abbildung 28 zeigt eine typische Selektionsstatistik nach PBS archive add on CUSTOM - Administration - 41 einem Mischlauf. Abbildung 28: Selektionsstatistik nach dem ersten Mischlauf 3.13 Erstellen von Langzeitarchiven Mit zunehmender Zahl von Datensätzen im IDK-Index-Archiv erhöht sich die Laufzeit des Indexgenerierungsprogramms auf ein oft nicht mehr erträgliches Maß (z.B. > 10 h). Um solche Laufzeiten zu vermeiden, gibt es die Möglichkeit, das derzeit aktive Hauptarchiv mittels des Indexaktivierungsprogramms (siehe Kapitel 3.11) in ein sogenanntes Langzeitarchiv umzuwandeln und beim nächsten Indexgenerierungslauf mit dem Aufbau eines neuen Hauptarchivs zu beginnen. Dadurch wird die Laufzeit wieder auf das Minimum reduziert. Die alte PBSIndexdatei ist jetzt als Langzeitarchiv aktiv und wird nicht mehr verändert. Bei den Lesezugriffen werden stets das aktuelle Hauptarchiv sowie alle aktiven PBS archive add on CUSTOM - Administration - 42 Langzeitarchive berücksichtigt. Da die PBS-Indexdateien im ADK-Format abgelegt sind, besteht darüber hinaus die Möglichkeit, ältere Langzeitarchive, auf die nicht mehr so oft zugegriffen wird, in ein optisches Archiv auszulagern. Weiterhin können Langzeitarchive deaktiviert und bei Bedarf wieder aktiviert werden. Diese Eigenschaft gibt dem Administrator die Möglichkeit, bestimmte Daten für die Selektion auszusparen und so den Zugriff zu beschleunigen. Umwandeln in Langzeitarchiv Setzen dieses Parameters bewirkt, dass das derzeit aktuelle Hauptarchiv deaktiviert und gleichzeitig als Langzeitarchiv aktiviert wird. Langzeitarchive aktivieren / deaktivieren Diese beiden Parameter ermöglichen es, in Langzeitarchive umgewandelte PBSIndexdateien zu aktivieren, bzw. zu deaktivieren. Über den Button „Auswahlliste“ erhält man eine Übersicht über die vorhandenen Archive. Aktivierbare bzw. deaktivierbare Archive sind hierbei mit einer Checkbox zum Anklicken versehen (siehe Abbildung 29). Abbildung 29: Auswahlliste für Aktivierung Langzeitarchiv 3.14 Archiv-Utilities Zum Test des PBS archive add ons CUSTOM stehen folgende ABAP/4-Reports zur Verfügung (siehe auch Kapitel 3). Report ZIDK_<ArchObj><n>_DELR Dieser Report ermöglicht das Löschen eines oder mehrerer PBSIndexgenerierungsläufe. Der Report wird über den Bereich ’Verwaltung’ Funktion ’PBS-Indexlauf löschen’ gestartet. Report ZIDK_<ArchObj><n>_SCAN Dieser Report ermöglicht einen technischen Blick auf die aufgebauten Indizes im PBS archive add on CUSTOM. Insbesondere ist es möglich, die Statistiken des aktuellen sowie aller vorangegangenen Indexgenerierungsläufe anzusehen. Der Report wird über den Bereich ’Verwaltung’ Funktion ’PBS-Indexbrowser’ gestartet. PBS archive add on CUSTOM - Administration - 43 3.15 Alternative Indexgenerierung bei großem Indexzugang Wie in Kapitel 3.18 zu lesen ist, wird bei der Indexgenerierung (Kapitel 3.9) der ABAP-Extrakt zum Sortieren des Indexzugangs verwendet. Ist der Zugang sehr groß, beispielsweise bei einem Erstaufbau, reicht der Speicherplatz für den Extrakt oft nicht aus. Um den Speicherplatzbedarf in den zur Verfügung stehenden Grenzen zu halten, wird der Indexgenerierungsvorgang automatisch in mehrere Läufe aufgeteilt. Dies kann die Laufzeit extrem verlängern. Um das zeitaufwändige Aufteilen in mehrere Indizierungsläufe zu vermeiden, können Sie alternativ die Transaktion /PBS/IDK2 für den Indexaufbau verwenden. Die Transaktion ist archivierungsobjektübergreifend. Für das Indizieren gibt es zwei grundlegende Optionen wie der Indexzugang sortiert wird (Abbildung 30: Abschnitt 'Steuerung der Indexgenerierung'). Abbildung 30: Transaktion /PBS/IDK2 PBS archive add on CUSTOM - Administration - 44 3.15.1 Sortierung via Datenbank-Indextabelle Die Indizes werden zunächst mit einem synchronen Update Task in einer temporär angelegten Datenbanktabelle gespeichert. Ein Update Task läuft in einem eigenen Prozess und ist für den Import von Massendaten konzipiert. Die DB-Tabelle wird mit den CUSTOM spezifischen DB-Indizes erzeugt. Anschließend werden die Indizes sortiert ausgelesen und wie gewohnt mit dem vorherigen ADKIndexbestand zusammen in eine neue ADK-Datei geschrieben. Die Datenbanktabelle wird nach dem Indexgenerierungsvorgang wieder gelöscht. Das Schreiben der Indizes in eine DB-Tabelle ist selbstverständlich langsamer als der Extrakt-Sort oder die Sortierung via Interner Tabelle. Bei der DB-Sortierung kann dafür der DB-Schreibvorgang parallelisiert werden, so dass die Verarbeitung mit drei Prozessen nahezu genauso schnell ist wie die anderen zwei Verfahren. Vorteile des DB-Sort sind: Große Indexzugänge können auf einmal verarbeitet werden. Bei Jobabbruch kann neu aufgesetzt werden, ohne dass die bis dahin erzeugten Indizes verloren gehen. Der Extended Memory wird nicht belastet. 3.15.2 Sortierung via interne Tabelle Die Sortierung erfolgt mit einer im Extended Memory gehaltenen internen Tabelle. Der Speicherverbrauch ist mit Transaktion ST02 ersichtlich. Damit für andere Prozesse nicht der ganze Speicher zur Indizierung verbraucht wird, gibt es einen Parameter mit dem Sie festlegen müssen, wieviel Speicher freizuhalten ist. Wird diese Grenze überschritten, wird der bis dahin erzeugte Indexzugang abgeschlossen und mit dem Indexbestand abgemischt. Eine mehrstufige Verarbeitung ist möglich. Wir empfehlen allerdings bei einem frühzeitigen Programmabschluss, den weiteren Aufbau mit dem DB-Sort fortzuführen um lange Abmischvorgänge mit dem Indexbestand zu vermeiden. Vorteile der Sortierung mit einer internen Tabelle: Schneller als DB-Sort Abhängig vom Extended Memory können im Vergleich zum Extrakt-Sort mehr Archivdateien verarbeitet werden. 3.15.3 Wo ist der 'Automatik-Modus' geblieben? Bei der Indizierung, wie unter Kapitel 3.9 beschrieben, gibt es die Optionen 'Manuelle auswählen' und 'Automatisch auswählen'. In Transaktion /PBS/IDK2 existieren diese Optionen nicht. Selbstverständlich erkennt auch dieses Programm welche Dateien noch nicht verarbeitet sind. Wenn für die Archive keine Einschränkungen vorgenommen werden, entspricht dies dem Automatik-Modus. Ob eine Datei bereits verarbeitet und der zu gehörige Index aktiv ist, wird grundsätzlich immer geprüft. PBS archive add on CUSTOM - Administration - 45 3.16 Indexmodifikation Unter Umständen wollen Sie für einen bestehenden PBS-Indexlauf einen oder mehrere Indizes hinzufügen oder ändern. Da bei bestehenden PBS-Indexläufen eine Indexmodifikation unter keinen Umständen möglich ist, müssten also die Indexdateien gelöscht und neu aufgebaut werden. Dies würde einige Zeit in Anspruch nehmen. In dieser Zeit wäre kein Datenzugriff möglich weil die PBSIndexdateien nicht vorhanden bzw. nicht vollständig wären. Um dieses Zeitproblem zu umgehen gibt es die Versionsverwaltung. Dabei wird die bestehende Indexdefinition in eine neue Version kopiert, welche parallel zur alten Version besteht. Während die Archivselektion noch über die alte Version lauft, kann in der neuen Version die Indexdefinition modifiziert (siehe Kapitel 3.6) und danach der Index neu aufgebaut werden. Ist der Indexaufbau abgeschlossen kann die Datenselektion auf die neue Version umgeschaltet werden. Die Funktionsbausteine zur Datenselektion werden hierbei neu generiert was nur wenige Sekunden in Anspruch nimmt. Die PBS-Indexdateien der ersten Version sowie die Version selbst kann nun gelöscht werden. Abbildung 31: Indexdefinition kopieren Hinweis: Der Name des Indexobjekts setzt sich aus Archivierungsobjektname und einer Nummer zusammen. Die Aktualität einer Version richtet sich nicht nach dieser Nummer, da für eine neue Version immer die nächste freie Nummer ab der Nummer 1 verwendet wird. Wenn Sie also Version 2 kopieren und keine Version 1 vorhanden ist, wird für die neue Version die Nummer 1 verwendet. 3.16.1 Vorgehensweise zur Indexmodifikation Aufbau / Version: Indexdefinition kopieren Indexdefinition modifizieren PBS-Indexobjekt und Strukturen generieren PBS archive add on CUSTOM - Administration - 46 PBS-Verwaltungsprogramme generieren Verwaltung / Version: Auf neue Version umschalten PBS-Index generieren und aktivieren Funktionsbausteine / Version: Auf neue Version umschalten 3.16.2 Löschen nicht mehr benötigter Versionen Verwaltung / Version: Auf alte Version umschalten Alle Indexläufe zur alten Version löschen Aufbau / Version: Alte Version löschen 3.17 Export/Import in andere R3-Systeme Da alle vom PBS archive add on CUSTOM generierten Objekte und Programme der temporären Entwicklungsklasse des SAP-Systems zugeordnet sind, können dies nicht mit dem SAP-Transportformat transportiert werden. Um dennoch alle erforderlichen Objekte und Programme in anderen SAP-Systemen bereitzustellen, gibt es im PBS archive add on CUSTOM die Menüpunkte ’Transport \ Export’ und ’Transport \ Import’. Hierbei werden nicht die Objekte und Programme exportiert sondern deren Definition. Mit Hilfe dieser Daten werden die Objekte und Programme im Zielsystem neu generiert. 3.17.1 Export von Archivierungsobjekt- und Indexdefinition Um Archivierungsobjekt- und/oder die Indexdefinition zu exportieren wählen sie den Menüpunkt ’Transport \ Export’. Das Programm erzeugt einen Transportauftrag der mit dem normalen SAP-Transportverfahren transportiert werden kann. Bei Export der Archivierungsobjektdefinition wird der dazugehörige Funktionsbaustein zur Archivierbarkeitsprüfung (User Exit) in den Transport übernommen. Da der Funktionsbaustein individuellen Programmcode enthält, kann dieser nicht im Zielsystem generiert werden. Der Funktionsbaustein wurde ursprünglich in der lokalen Entwicklungsklasse ’$TMP’ erzeugt. Um den Funktionsbaustein transportfähig zu machen, muss er zuvor vom Softwareentwickler in eine transportfähige Funktionsgruppe umgehängt (Transaktion SE80) werden. PBS archive add on CUSTOM - Administration - 47 Abbildung 32: Export von Archivobjekt- und Indexdefinition Wenn Sie die Option „Import im Zielsystem automatisch starten“ wählen, wird in den Transport ein XPRA-Eintrag eingefügt. Dieser Eintrag startet die Objektgenerierung nach dem Import automatisch. Das unter Kapitel 3.17.2 beschriebene Vorgehen entfällt hierbei. Nach Auswahl der zu exportierenden Daten starten Sie den Export über den Button ’Export’. Es erscheint ein Dialog zur Eingabe einer Transportnummer. Wählen Sie hier ’Auftrag anlegen’ (Funktionstaste F8). Danach kann der Transport direkt freigegeben werden. PBS archive add on CUSTOM - Administration - 48 Falls Sie Ihre Indizes via PBS NAI Index Administration Board definiert haben, entfällt der Transport der Indexdefinition an dieser Stelle. Lesen Sie bitte hierzu Kapitel 6.3.2 in der Dokumentation zum PBS NAI Index Administration Board (nai_index_administrator.doc). 3.17.2 Import von Archivierungsobjekt- und Indexdefinition Nachdem der Transport wie unter Punkt 3.16.1 erstellt und mit Hilfe des SAPTransporttools ’tp’ in das Ziel eingespielt wurde, kann nun der Import über den Menüpunkt ’Transport \ Import’ des PBS archive add on CUSTOM gestartet werden. Es wird eine Liste mit den anstehenden Exporten angezeigt. Abbildung 33: Anstehende Exportdaten Durch den Importstart werden alle erforderlichen Objekte und Programme generiert. Dabei werden auch einige Konsistenzprüfungen vorgenommen. Wenn z.B. die Indexdefinition für ein PBS-Indexobjekt importiert wird für das bereits Indexdaten aufgebaut sind, wird automatisch eine neue Indexversion erstellt. Am Ende des Imports wird eine technische Statusliste ausgegeben. Abbildung 34: Statusliste nach Generierung der Objekte und Programme PBS archive add on CUSTOM - Administration - 49 3.18 Plattenplatzbedarf Falls Sie Ihre Indizes via PBS NAI Index Administration Board definiert haben, entfallen die folgenden Ausführungen zu ADK-Indizes. Das PBS archive add on CUSTOM wird in datenbankunabhängigen Dateisystemen aufgebaut. Für den Systemadministrator besteht an dieser Stelle die Aufgabe, freie Speicherkapazitäten zum Aufbau des Archivs zu reservieren. Die bereitzustellende Plattenplatzkapazität richtet sich nach der Anzahl der Datensätze, die im Archiv gehalten werden sollen, der Anzahl der Indizes pro Datensatz sowie der Anzahl der Indexattribute. Bei Verwendung einer minimalen Indexstruktur ist mit einer Belegung von ca. 5 bis 10 Bytes pro Index zu rechnen. Bei Verwendung von Indexattributen, zum Beispiel in einer maximalen Indexstruktur, kann hier keine genaue Aussage getroffen werden, da dies von der Größe der Archivstruktur und der Anzahl der verwendeten Indexattribute abhängt. Während eines Indexgenerierungslaufs ist für Extrakt und Sort zusätzlicher temporärer Plattenplatz vorzuhalten. In der Praxis hat sich gezeigt, dass man bei einem Indexgenerierungslauf für eine 10 MB große Archivdatei zirka 0,4 bis 0,6 GB Plattenplatz pro Index für Extrakt und Sort reservieren sollte. Im Extremfall erfordert eine Archivdatei von 100 MB oder mehr eine sehr große Plattenkapazität. Um solch große Datenmengen zu vermeiden, kann man einen großen Indexgenerierungslauf auf mehrere kleine Läufe verteilen. Da nur der Zugang an Archivdaten bei jedem Lauf für Extrakt und Sort zählt, wird lediglich der entsprechende Bruchteil an Plattenplatz benötigt. 3.19 Einsatz mehrerer Applikationsserver Bei größeren SAP-Systemen laufen die Datenbank sowie die Applikationen in der Regel auf unterschiedlichen Rechnern ab, die entsprechend als Datenbank- sowie Applikationsserver bezeichnet werden. Oft empfiehlt sich aus Performancegründen auch der Einsatz mehrerer Applikationsserver. Da jedoch das PBS archive add on CUSTOM in datenbankunabhängigen Dateisystemen aufgebaut wird, müssen alle Applikationsserver direkten Zugriff auf diese Dateisysteme haben. Für den Systemadministrator besteht an dieser Stelle die Aufgabe, die Applikationsserver so einzurichten, dass die Dateisysteme des PBS archive add ons CUSTOM immer über dieselbe Pfadangabe zu erreichen sind. Unter Unix bietet NFS (Network File System) eine elegante Lösung. Im Folgenden wird am Beispiel einer dreistufigen Client/Server-Architektur gezeigt, wie hier vorzugehen ist. Das System soll aus jeweils einem Datenbank- und einem Applikationsserver (und mehreren Präsentationsservern) bestehen, wobei das PBS archive add on auf dem Datenbankserver angelegt sein soll. Dann ist folgendermaßen vorzugehen: Die Dateisysteme, die das PBS archive add on beinhalten, müssen auf dem Datenbankserver zuerst freigegeben werden. Dazu wird das Kommando share verwendet. Das folgende Kommando (Syntax von Sun/Solaris) gibt z.B. das Da- PBS archive add on CUSTOM - Administration - 50 teisystem /pbs/idk frei: share –F nfs /pbs/idk . Die freigegebenen Dateisysteme können anschließend auf dem Dateisystem des Applikationsservers gemountet werden. Voraussetzung dafür ist, dass Verzeichnisse, die als Mount-Point dienen, vorhanden sind. Das folgende Beispielkommando mountet das freigegebene Dateisystem /pbs/idk des Datenbankservers sun20 am Mount-Point /archiv/idk: mount –F nfs sun20:/pbs/idk /archiv/idk . Hierbei ist zu beachten, dass bei mehreren Applikationsservern für alle derselbe Mount-Point verwendet wird, da dem PBS archive add on nur ein einziger Pfad zugewiesen werden kann (hier z. B. /archiv/idk). Hinweis: Der Rechner, der die Daten des PBS archive add ons enthält, muss auch ein NFSServer sein, damit sich Applikationsserver als NFS-Clients an diesem anmelden können. Unter Windows NT muss, soweit hier nicht auch NFS installiert wurde, das lokale Laufwerk des Datenbankservers freigegeben werden, auf welchem sich das PBS archive add on befindet. Dazu dient in den Eigenschaften des jeweiligen Laufwerks der Bereich „Freigabe“. Nach erfolgter Freigabe kann das Laufwerk auf dem Applikationsserver zum Beispiel mit Hilfe des Explorers (Extras Netzlaufwerk verbinden) angemeldet werden. 3.20 Performancetuning Die folgenden Ausführungen treffen nur für die ADK-Indizierung zu. Falls Sie Ihre Indizes via PBS NAI Index Administration Board definiert haben, ignorieren Sie dieses Kapitel bitte. Beim Einsatz des PBS archive add on CUSTOM spielen zwei Laufzeitbetrachtungen eine Rolle. Bei einem sehr hohen Datenaufkommen muss die Laufzeit für die Indexgenerierung möglichst gering gehalten werden. Der Zugriff auf die Archivdaten kann in Abhängigkeit von der Struktur der Indexdaten mit unterschiedlichen Laufzeiten erfolgen. Darüber hinaus beeinflusst die Struktur der Indexdaten auch die Größe der Indexdateien. Die Laufzeit beim Indexaufbau entsteht im Wesentlichen durch das Abmischen bereits vorhandener Indexbestände mit neu hinzugekommenen Indexdaten. Aber auch die Anzahl der pro Datensatz erstellten Indizes sowie die Größe der Indexstruktur haben einen Einfluss auf die Laufzeit. PBS archive add on CUSTOM - Administration - 51 Bei der Größe der Indexdateien sind mehrere Faktoren entscheidend. Dies sind zum einen die ADK-Technik selbst, die Anzahl der ausgewählten Indizes sowie die Anzahl der Indexattribute. Die Verwendung der ADK-Technik zum Abspeichern der Indexdaten bietet den Vorteil der Kompression um zirka einen Faktor 5. Mit der wichtigste Faktor ist jedoch die Anzahl der ausgewählten Indizes, da die Größe der Indexdateien direkt proportional zu dieser Anzahl ist. Das bedeutet, zehn Indizes pro Datensatz benötigen auch den zehnfachen Platz für die Indexdateien. Im allgemeinen bedeutet das, je mehr Indizes angelegt werden für eine optimale Performance beim späteren Zugriff, eventuell auch mit einer hohen Anzahl Indexattribute, umso mehr Platz muss für die Indexdateien bereitgestellt werden. Die Performance beim Zugriff hängt grundsätzlich von der Art der Indizierung ab. Die Indizes sollten so gewählt sein, dass für jede Archivselektion mindestens ein Index verwendet werden kann. Wenn dazu noch alle Tabellenfelder in der Indexstruktur enthalten sind, so resultiert daraus eine optimale Performance, da hier ein Zugriff auf die SAP-Datenarchive eingespart werden kann. Wenn sich dagegen der Zugriff nicht allein auf die PBS-Indizes beschränkt, sondern zusätzlich auf die SAP-Datenarchive zugegriffen werden muss, ist die Zugriffszeit zirka um einen Faktor 3 bis 5 größer. PBS archive add on CUSTOM - Administration - 52 3.21 Allgemeines Customizing der Transaktion SARA Unter dem Button ’Customizing / Technische Einstellungen’ erscheint folgender Selektionsbildschirm: Abbildung 35: Allgemeine technische Einstellungen der Transaktion SARA Hier ist die Checkbox ’Verifikationszeitpunkt / Lesen’ zu deaktivieren. Ist dies nicht der Fall, wird bei jedem Belegeinzelzugriff das Archiv sequentiell gelesen. PBS archive add on CUSTOM - Administration - 53 4 Selektion von archivierten Daten Falls Sie das NAI Index Administration Board im Einsatz haben, verwenden Sie bitte anstelle der generierten Funktionsbausteine die NAI spezifischen ZugriffsMethoden. Diese sind in Kapitel 5.2 und 5.3 beschrieben. Bestehende Reports, welche die generierten Funktionsbausteine zur Archivdatenselektion nutzen, müssen nicht geändert werden. Es reicht, die Funktionsbausteine neu zu generieren, so dass sie fortan in der Lage sind, via ADK- oder NAI-Index Archivdaten zu lesen. Die Zugriffsart richtet sich nach der Einstellung in Transaktion /PBS/NAU03 (Indexdefinition). 4.1 Generierte Funktionsbausteine Das PBS archive add on CUSTOM generiert pro Archivierungsobjekt zwei Funktionsbausteine zur Datenselektion aus dem Archiv. Voraussetzung für die Generierung ist eine ADK-Indexstruktur. Die Namen der Funktionsbausteine setzen sich zusammen aus: <ArchObj>_SELECT <ArchObj>_SEQUENTIAL Abbildung 36: Namen der generierten Funktionsbausteine Wichtige Hinweise: Archivierte Daten sind grundsätzlich nur zur Anzeige bestimmt und dürfen nicht in die Datenbank zurück geschrieben werden. Achten Sie bitte in DialogTransaktionen darauf, dass für archivierte Daten die Dynpro-Felder nur für die Anzeige aktiv gesetzt sind. Die INSERT- und MODIFY-Anweisung Datenbenutzt werden. In der Regel kann mit der UPDATE-Anweisung kein archivierter Datensatz in die Datenbank zurückgeschrieben werden. Wenn die archivierten Daten allerdings noch nicht gelöscht sind, kann es hier zur Inkonsistenzen kommen. darf NICHT für archivierte PBS archive add on CUSTOM - Administration - 54 4.1.1 Der Funktionsbaustein ’<ArchObj>_SELECT’ Der Funktionsbaustein selektiert über die generierten PBS-Indexdaten die SAPArchivdaten (siehe Abbildung 2). Nachfolgend sehen Sie ein Beispiel für das Archivierungsobjekt ’ZZRK_LTAK’ welches die Basistabelle ’ZZRK_LTAK’ und die abhängige Tabelle ’ZZRK_LTAP’ selektiert. Der Aufruf sieht wie folgt aus: Call Function 'ZZRK_LTAK_SELECT' Exporting table_name = 'ZZRK_LTAK' index_type_in = index_type_in read_document = 'X' read_all_obj_data = read_all_obj_data only_first_record = '' max_row_count = 2147483647 Importing index_type_out = index_type_out end_of_archive_file = end_of_archive_file count_zzrk_ltak = count_zzrk_ltak count_zzrk_ltap = count_zzrk_ltap Tables IT_RSSELECT = IT_RSSELECT CT_DYN_RANGES = CT_DYN_RANGES it_zzrk_ltak = it_zzrk_ltak it_zzrk_ltap = it_zzrk_ltap Exceptions index_not_exist = 1 index_not_found = 2 rsselect_is_initial = 3 table_not_exist = 4 data_not_found = 5 Others = 6. Funktionsparameter: EXPORTING o table_name Name der Tabelle aus der selektiert werden soll. Mögliche Werte im Beispiel sind hier ’ZZRK_LTAK’ und ’ZZRK_LTAP’ o index_type_in (optional) Technischer Name des Index der zur Selektion benutzt werden soll (siehe Kapitel 3.6). Ist ’index_type_in’ initial, wird anhand der Selektionskriterien der beste Index gesucht. o read_document (optional; default = ’X’) read_document = ‘X’: Die Daten werden aus der SAP-Archivdatei gelesen. read_document = initial: Die Ergebnistabelle wird nur über den Index gefüllt. Dieser Weg liefert schnelle Ergebnisse da der Archivzugriff eingespart wird. Selektionen PBS archive add on CUSTOM - Administration - 55 welche nicht über den Index bzw. die Indexattribute abgewickelt werden können, werden hierbei nicht berücksichtig. o read_all_obj_data (optional; default = ’X’) Der Parameter gilt nur für generierte Archivierungsobjekte! Ferner ist er irrelevant wenn der Parameter read_document initial ist. red_all_obj_data = ‘X’: Entspricht ein Datensatz der Selektion, wird das gesamte Datenobjekt der SAP-Archivdatei in die Ergebnistabellen geschrieben. red_all_obj_data = initial: Es werden nur die Abhängigen Daten der Selektion in die Ergebnistabellen geschrieben. Diese Einstellung macht nur Sinn, wenn die Daten über Positionen gelesen werden. Bei Selektion von Kopfdaten sind immer alle Positionen von den Kopfdaten abhängig. o only_first_record (optional) Es wird nur der erste Datensatz eines ADK-Datenobjekts zurückgegeben. Der erste Datensatz ist in der Regel der Kopfdatensatz. Der Parameter kann bei Selektion großer Datenmengen Geschwindigkeitsvorteile bringen. Er sollte nur für mehrstufige Archivierungsobjekte verwendet werden. Bei einstufigen Archivierungsobjekten sind jeweils 1000 Datensätze pro ADK-Objekt zusammengefasst. Der Parameter bietet nur geringe Geschwindigkeitsvorteile, da beim Einlesen des ADK-Objekts mit dem Funktionsbaustein ’ARCHIVE_READ_OBJECT’ immer das gesamte Objekt gelesen wird. Es wird nur der Aufruf von ’ARCHIVE_GET_NEXT_RECORD’ für Positionsdatensätze eingespart. o max_row_count (optional; default = 2147483647) Mit diesem Parameter wird die Ergebnismenge der Basistabelle eingeschränkt. Wird max_row_count = 1 gesetzt entspricht dies einem ’SELECT SINGLE’. IMPORTING o index_type_out Wenn ’index_type_in’ nicht angegeben wird, enthält ’index_type_out’ den ermittelten technischen Indexname. Für den Fall, dass ’index_type_in’ angegeben wurde und die Selektion für diesen Index keinen Sinn ergibt, wird der nächst beste Index gesucht. ’index_type_out’ enthält dann den gefundenen Indexname. o end_of_archive_file Wurde mit dem Parameter ’max_row_count’ die Ergebnismenge eingeschränkt, gibt ’end_of_archive_file’ an, ob das Ende der SAPArchivdatei erreicht wurde. Der Parameter ’end_of_archive_file’ macht nur Sinn wenn read_document = ‘X’. o count_<TabName> Gibt die Anzahl der Zeilen der internen Tabelle ’it_<TabName>’ an. PBS archive add on CUSTOM - Administration - 56 TABLES o IT_RSSELECT (Export) Die interne Tabelle ’IT_RSSELECT’ Enthält die Selektionsparameter für die Archivdatenselektion (siehe Kapitel 4.4). o ct_dyn_range (Export; optional) Die interne Tabelle ’ct_dyn_range’ ist bei logischen Datenbanken mit dynamischer Selektion zu verwenden. o it_<TabName> (Import; optional) Die Tabellen enthalten die selektierten Daten. EXCEPTIONS o index_not_exist Der unter ’index_type_in’ angegebene technische Indexname existiert nicht für die unter ’table_name’ angegebene Tabelle. o index_not_found Anhand der internen Tabelle ’IT_RSSELECT’ konnte kein Index ermittelt werden. o rsselect_is_initial Die internen Tabelle ’IT_RSSELECT’ enthält keine Selektionsparameter. o table_not_exist Die unter ’table_name’ angegebene Tabelle existiert nicht. o data_not_found Mit den Selektionsparametern aus ’IT_RSSELECT’ bzw. ’ct_dyn_range’ wurden keine Daten selektiert. PBS archive add on CUSTOM - Administration - 57 4.1.2 Der Funktionsbaustein ’<ArchObj>_SEQUENTIAL’ Der Funktionsbaustein Selektiert direkt aus den SAP-Archivdaten ohne über den PBS-Index zu gehen. Die Selektion erfolgt sequentiell für alle Archivdaten für die der PBS-Index aktiv ist (siehe Kapitel 3.13) und nutzt die unter Kapitel 3.4 beschriebene Archivdateistatistik. So können anhand der Selektionskriterien die zu lesenden Archivdateien reduziert werden. Nachfolgend sehen Sie ein Beispiel für das Archivierungsobjekt ’ZZRK_LTAK’ welches die Basistabelle ’ZZRK_LTAK’ und die abhängige Tabelle ’ZZRK_LTAP’ selektiert. Der Aufruf sieht wie folgt aus: Call Function 'ZZRK_LTAK_SEQUENTIAL' Exporting table_name = 'ZZRK_LTAK' read_all_obj_data = read_all_obj_data only_first_record = '' max_row_count = max_row_count Importing end_of_archive_file = end_of_archive_file count_zzrk_ltak = count_zzrk_ltak count_zzrk_ltap = count_zzrk_ltap Tables IT_RSSELECT = IT_RSSELECT CT_DYN_RANGES = CT_DYN_RANGES it_zzrk_ltak = it_zzrk_ltak it_zzrk_ltap = it_zzrk_ltap Exceptions error_in_read_arch = 1 table_not_exist = 2 data_not_found = 3 Others = 4. Funktionsparameter: EXPORTING o table_name Name der Tabelle aus der selektiert werden soll. Mögliche Werte im Beispiel sind hier ’ZZRK_LTAK’ und ’ZZRK_LTAP’ o read_all_obj_data (optional; default = ‘X’) Der Parameter gilt nur für generierte Archivierungsobjekte! red_all_obj_data = ‘X’: Entspricht ein Datensatz der Selektion, wird das gesamte Datenobjekt der SAP-Archivdatei in die Ergebnistabellen geschrieben. red_all_obj_data = initial: Es werden nur die Abhängigen Daten der Selektion in die Ergebnistabellen geschrieben. Diese Einstellung macht nur Sinn, wenn die Daten über Positionen gelesen werden. Bei Selektion von Kopfdaten sind immer alle Positionen von den Kopfdaten abhängig. o only_first_record (optional) Es wird nur der erste Datensatz eines ADK-Datenobjekts zurückgegeben. Der erste Datensatz ist in der Regel der Kopfdatensatz. Der Parameter kann bei Selektion großer Datenmengen Geschwindigkeitsvorteile PBS archive add on CUSTOM - Administration - 58 bringen. Er sollte nur für mehrstufige Archivierungsobjekte verwendet werden. Bei einstufigen Archivierungsobjekten sind jeweils 1000 Datensätze pro ADK-Objekt zusammengefasst. Der Parameter bietet nur geringe Geschwindigkeitsvorteile, da beim Einlesen des ADK-Objekts mit dem Funktionsbaustein ’ARCHIVE_READ_OBJECT’ immer das gesamte Objekt gelesen wird. Es wird nur der Aufruf von ’ARCHIVE_GET_NEXT_RECORD’ für Positionsdatensätze eingespart. o max_row_count (optional; default = 2147483647) Mit diesem Parameter wird die Ergebnismenge der Basistabelle eingeschränkt. Wird max_row_count = 1 gesetzt entspricht dies einem ’SELECT SINGLE’. IMPORTING o end_of_archive_file Wurde mit dem Parameter ’max_row_count’ die Ergebnismenge eingeschränkt, gibt ’end_of_archive_file’ an, ob das Ende der SAPArchivdatei erreicht wurde. o count_<TabName> Gibt die Anzahl der Zeilen der internen Tabelle ’it_<TabName>’ an. TABLES o IT_RSSELECT (Export) Die interne Tabelle ’IT_RSSELECT’ Enthält die Selektionsparameter für die Archivdatenselektion (siehe Kapitel 4.4). o CT_DYN_RANGES (Export; optional) Die interne Tabelle ’ct_dyn_range’ ist bei logischen Datenbanken mit dynamischer Selektion zu verwenden. o it_<TabName> (Import; optional) Die Tabellen enthalten die selektierten Daten. EXCEPTIONS o Error_in_read_arch Nicht näher spezifiziert o table_not_exist Die unter ’table_name’ angegebene Tabelle existiert nicht. o data_not_found Mit den Selektionsparametern aus ’IT_RSSELECT’ bzw. ’ct_dyn_range’ wurden keine Daten selektiert. 4.2 Archivierungsklassen Archivierungsobjekte können Archivierungsklassen enthalten. Der Funktionsbaustein <ArchObj_SELECT> gibt die Daten allerdings nicht direkt zurück. Zum Lesen der Daten übergibt der Funktionsbaustein die Tabelle ‚IT_OFFSET’. Diese beinhaltet die Archivekeys mit denen die Daten direkt über PBS archive add on CUSTOM - Administration - 59 den ADK-Funktionsbaustein 'ARCHIVE_READ_OBJECT' gelesen werden können. Das folgende Beispiel zeigt den Zugriff auf Daten der Archivierungsklasse ‚CHANGEDOCU’. * get archive key + offset ----------------------------CALL FUNCTION 'ZZRK_LTAK_SELECT' EXPORTING table_name = c_tabname index_type_in = index_type_in read_document = '' TABLES IT_RSSELECT = IT_RSSELECT it_offset = it_offset EXCEPTIONS index_not_found = 1 rsselect_is_initial = 1 index_not_exist = 2 OTHERS = 3. IF sy-subrc = 2. MESSAGE x398(00) WITH 'Index not exist!' index_type_in. ENDIF. CHECK sy-subrc = 0. * read archive --------------------------------------LOOP AT it_offset. * read object -------------------------------------CALL FUNCTION 'ARCHIVE_READ_OBJECT' EXPORTING object = c_aobj archivkey = it_offset-archivekey offset = it_offset-archiveofs IMPORTING archive_handle = archive_handle. * archiving class: Change documents ---------------REFRESH: it_cdhdr, it_cdpos. CALL FUNCTION 'CHANGEDOCU_READ_ARCHIVE_OBJECT' EXPORTING archive_handle = archive_handle TABLES icdhdr = it_cdhdr icdpos = it_cdpos. Mit der Transaktion /PBS/IDK können Sie sich ein ausführliches Beispiel generieren lassen, welches die Zugriffe der Archivierungsklassen ‚CHANGEDOCU’ (Änderungsbelege) und ‚TEXT’ (SAPscript-Texte) zeigt. Bitte lesen Sie hierzu auch Kapitel 4.6. PBS archive add on CUSTOM - Administration - 60 4.3 Generischer Funktionsbaustein für den Massendatenzugriff (ab SAP R/3 Enterprise) Der generische Funktionsbaustein ‘/PBS/IDK_SEQUENTIAL’ dient zum sequentiellen Massendatenzugriff. Um die Performance zu steigern wird hier die unter Kapitel 3.4 beschriebene Archivdateistatistik genutzt. So können anhand der Selektionskriterien die zu lesenden Archivdateien reduziert werden. Der Funktionsbaustein besitzt den Exportparameter ’PACKAGESIZE’. Hiermit kann ein Überlaufen der Ergebnistabelle verhindert werden, da die Tabelle ’tab_data’ in der vorgegebene Größe zurückgegeben wird. Der Funktionsbaustein muss in einer Schleife ausgeführt werden, bis das Dateiende erreicht ist. Mit der Transaktion /PBS/IDK können Sie sich ein ausführliches Beispiel generieren lassen, welches den Zugriff des Funktionsbausteins ‘/PBS/IDK_SEQUENTIAL’ zeigt. Bitte lesen Sie hierzu auch Kapitel 4.6. first_call = 'X'. CLEAR end_of_file. WHILE end_of_file IS INITIAL. CALL FUNCTION '/PBS/IDK_SEQUENTIAL' EXPORTING object = 'ZZRK_LTAK' table_name = 'ZZRK_LTAK' packagesize = 100 check_index_activation = '' IMPORTING end_of_archive_file = end_of_file TABLES IT_RSSELECT = IT_RSSELECT * CT_DYN_RANGES = CT_DYN_RANGES tab_data = <fs_tab> CHANGING first_call = first_call EXCEPTIONS table_not_exist = 1 error_set_archive = 2 OTHERS = 3. ... ENDWHILE. "end_of_file "for log. DB Funktionsparameter: EXPORTING o object Name des Archivierungsobjekts. o table_name Name der Tabelle aus der selektiert werden soll. Mögliche Werte im Beispiel sind hier ’ZZRK_LTAK’ oder ’ZZRK_LTAP’ o packagesize Größe der Rückgabetabelle ’tab_data’ PBS archive add on CUSTOM - Administration - 61 o check_index_activation (optional; default = ’X’) check_index_activation = ’X’: Es werden nur Archivdateien berücksichtigt, zu denen Indizes aktiv sind und der Archivdateistatistik entsprechen. check_index_activation = initial: Es werden alle Archivdateien gelesen welche der Archivdateistatistik entsprechen. IMPORTING o end_of_archive_file Gibt an ob das Dateiende erreicht ist. TABLES o IT_RSSELECT (Export) Die interne Tabelle ’IT_RSSELECT’ enthält die Selektionsparameter für die Archivdatenselektion (siehe Kapitel 4.4). o CT_DYN_RANGES (Export; optional) Die interne Tabelle ’ct_dyn_range’ ist bei logischen Datenbanken mit dynamischer Selektion zu verwenden. o tab_data (import) Die Ergebnistabelle. Sie kann als Feldsymbol oder normal als interne Tabelle deklariert sein. CHANGING o first_call first_call = ’X’ initialisiert den Funktionsbaustein. 4.4 Die Selektionstabelle ’IT_RSSELECT’ Es gibt drei Funktionsbausteine die zum Aufbau der Selektionstabelle ’IT_RSSELECT’ zu verwenden sind. Der Aufbau der Tabelle muss mit diesen Funktionsbausteinen erfolgen! Funktionsbaustein ‘/PBS/IDK_ADD_PARAM_TO_RSSELECT’ Nimmt Einzelwerte bzw. ’PARAMETERS’ in die Selektionstabelle auf. Funktionsbaustein ‘/PBS/IDK_ADD_SELOP_TO_RSSELECT Nimmt ’SELECT-OPTIONS’ bzw. RANGES in die Selektionstabelle auf. Funktionsbaustein ‘/PBS/IDK_ADD_REPORT_SELECTIONS’ Nimmt alle ’PARAMETERS’ und ’SELECT-OPTIONS’ des aktuellen Selektionsbildschirms für den angegebenen Tabellennamen in die Selektionstabelle auf. PBS archive add on CUSTOM 4.5 - Administration - 62 Die Selektionstabelle ’CT_DYN_RENGES’ In logischen Datenbanken besteht die Möglichkeit, zur Datenselektion freie Abgrenzungen anzugeben. Hierzu ist im Selektions-Include die Anweisung ‚SELECTION-SCREEN DYNAMIC ...’ erforderlich. Im Programm stehen die vom Benutzer eingegebenen Abgrenzungen während der Programmausführung in der internen Tabelle ’DYN_SEL’ der Struktur ’RSDS_TYPE’ zur Verfügung. Die Tabelle DYN_SEL wird an den Parameter ’CT_DYN_RANGES’ des Funktionsbausteins zur Archivdatenselektion übergeben. In den generierten Beispielprogrammen (Kapitel 4.6) des PBS archive add on CUSTOM besteht ebenfalls die Möglichkeit der freien Abgrenzung (ohne logische Datenbank). Die Abgrenzungen stehen hier in der Tabelle ’IT_RANGES’. Auch diese Tabelle ist vom Typ ’RSDS_TYPE’ und wird an ’CT_DYN_RANGES’ übergeben. 4.6 Beispielreport zur Datenselektion aus dem Archiv Über den Menüpunkt ’Springen / Beispielreport für Archivzugriff’ wird ein Programm gestartet, das einen Report mit typischem Archivzugriff generiert. Falls Sie das NAI Index Administration Board im Einsatz haben, werden optional die NAI- spezifischen Zugriffe verwendet (Kapitel 5.2 und 5.3). Zur Weiterverarbeitung kann der Report modifizieren und auf eigenen Anforderungen angepasst werden. Für bestehende kundeneigene Reports sollte der generierte Archivzugriff als Vorlage dienen. PBS archive add on CUSTOM - Administration - 63 Abbildung 37: Beispielreport anlegen Das Generierungsprogramm behandelt alle Variationen zum Archivdatenzugriff des PBS archive add on CUSTOM. In den generierten Programmen wird außerdem gezeigt, wie freie Abgrenzungen in ein Programm implementiert werden, ohne eine logische Datenbank zu verwenden. Die freie Abgrenzung (auch als dynamische Selektion bezeichnet) kann als Variante gesichert werden, so dass das Programm auch im Batch-Modus alle Selektionskriterien berücksichtigt. Abbildung 38: Generierter Report PBS archive add on CUSTOM Abbildung 39: Selektionsbild des Beispielreports Abbildung 40: Ergebnisliste - Administration - 64 PBS archive add on CUSTOM 4.7 - Administration - 65 Strukturierte Datenanzeige (ab SAP R/3 Enterprise) Zur strukturierten Datenanzeige steht im Archive add on CUSTOM der Funktionsbaustein ’/PBS/IDK_DISPLAY_TABLE_DATA’ zu Verfügung. Wie in Abbildung 39 zu sehen ist, verwenden einige generierten Beispielreports diese Anzeige. Folgend wird der Aufruf des Funktionsbausteins erklärt. CALL FUNCTION '/PBS/IDK_DISPLAY_TABLE_DATA' EXPORTING title_txt = title_txt expand_level = expand_level detail_button = 'X' TABLES it_dd05q = it_dd05q it_table_data = it_arch_def EXCEPTIONS batch_mode = 1 OTHERS = 2. EXPORTING o title_txt Titel der Anzeige o expand_level Knotenebene bis zu der, bei der ersten Anzeige, expandiert werden soll. o detail_button Das Setzen des Flags hat die Anzeige des Detail-Button [F7] im GUIStatus zur Folge. Bei Betätigung wird die Callback Form ’idk_node_select’ aufgerufen, welche sich im Aufrufenden Programm befinden muss. Hier kann z.B. ein Screen oder eine Transaktion gestartet werden. TABLES o it_dd05q (Export) Die interne Tabelle ist vom Typ DD05Q (View) und enthält die Beziehungen der Fremdschlüsselfelder (siehe 4.7.1). o it_table_data (Export) Die interne Tabelle beinhaltet die Tabellenbeziehungen und mittels Referenzen deren anzuzeigende Daten (siehe 4.7.2). EXCEPTIONS o Batch_mode Der Funktionsbaustein wurde im Batch-Modus aufgerufen. Dies ist nicht zulässig. PBS archive add on CUSTOM - Administration - 66 4.7.1 Die Tabelle ’IT_DD05Q’ In der Tabelle ’IT_DD05Q’ sind die Fremdschlüsselbeziehungen definiert. Sie ist nötig, damit die Positions-Datensätze den entsprechenden Kopf-Datensätzen zugeordnet werden können. Die Zuordnung der Datensätze findet innerhalb des Funktionsbausteins statt. Wenn Daten angezeigt werden sollen, für die ein mit dem PBS archive add on CUSTOM generiertes Archivierungsobjekt vorhanden ist, kann ’IT_DD05Q’ aus der Datenbanktabelle ’/PBS/IDK_TABLREL’ gefüllt werden. Diese wird durch Definition des Archivierungsobjekts verwaltet (Kapitel 3.1.1, Abbildung 8). Falls mit der Transaktion SE11 eine Tabellenbeziehung definiert wurde kann auch der View ‚’DD05Q’ verwendet werden. SELECT * FROM /pbs/idk_tablrel INTO CORRESPONDING FIELDS OF TABLE it_dd05q WHERE object = object ORDER BY primpos. 4.7.2 Die Tabelle ’IT_TABLE_DATA’ Die interne Tabelle ’IT_TABLE_DATE’ besitzt den folgenden Typ: TYPES: BEGIN OF struc_arch_def, father TYPE son TYPE ref_itab TYPE base_node_key TYPE item_table TYPE END OF struc_arch_def. arch_def-father, arch_def-son, REF TO data, tm_nodekey, treemlitab, Der Typ ist nicht im Data Dictionary definiert, da ’ref_itab’ den Typ ’REF TO DATA’ besitzt. Referenzen können im Data Dictionary nicht angegeben werden. father / son Mit ’father/son’ wird die Beziehung der Tabellen untereinander angegeben. Diese ist in der Tabelle ’ARCH_DEF’ gespeichert und wird beim Anlegen eines Archivierungsobjekts definiert. ref_itab ’ref_itab’ ist eine Referenz auf die interne Tabelle mit den anzuzeigenden Daten. base_node_key / item_table Das Füllen der Felder ’base_node_key’ und ’item_table’ ist nicht zwingend erforderlich. Durch Zuweisung eines Wertes können die Daten zusätzlich gesplittet werden, beispielsweise in Archiv- und Datenbankdaten. PBS archive add on CUSTOM - Administration - 67 Folgend wird der Aufbau der Tabelle ’IT_TABLE_DATA’ anhand eines Beispiels gezeigt, wie er auch in den generierten Beispielprogrammen zur Verwendung kommt. *&----------------------------------------------------------* *& Form get_it_arch_def *&----------------------------------------------------------* FORM get_it_arch_def. DATA: item TYPE treemlitem. FIELD-SYMBOLS: <table> TYPE STANDARD TABLE. * get table relation SELECT * FROM arch_def INTO CORRESPONDING FIELDS OF TABLE it_arch_def WHERE object = 'ZZRK_LTAK' ORDER BY sequence. * assign tables LOOP AT it_arch_def INTO wa_arch_def. CREATE DATA wa_arch_def-ref_itab TYPE STANDARD TABLE OF (wa_arch_def-son). ASSIGN wa_arch_def-ref_itab->* TO <table>. wa_arch_def-base_node_key = 'ARCHIVE'. CASE wa_arch_def-son. WHEN 'ZZRK_LTAK' . <table>[] = it_zzrk_ltak[] . CLEAR item. item-item_name = 1. item-class = cl_list_tree_model=>item_class_text. item-text = wa_arch_def-base_node_key. item-alignment = cl_list_tree_model=>align_auto. APPEND item TO wa_arch_def-item_table. WHEN 'ZZRK_LTAP' . <table>[] = it_zzrk_ltap[] . ENDCASE. MODIFY it_arch_def FROM wa_arch_def. ENDLOOP. ENDFORM. " get_it_arch_def PBS archive add on CUSTOM 4.8 - Administration - 68 SQL-Zugriffe suchen Um Datenbankzugriffe in kundeneigenen Reports zu suchen, wählen Sie den Menüpunkt ’Springen \ SQL-Zugriffe suchen’. Die Transaktion durchsucht alle angegebenen Programme nach den ABAP-Anweisungen SELECT, INSERT, MODIFY und UPDATE. Bei der Tabellensuche genügt die Angabe von Archivierungsobjekten. Alle in der Strukturdefinition der Transaktion AOBJ zugeordneten Tabellen werden in die Suche einbezogen. Views welche die einbezogenen Tabellen verwenden, werden ebenfalls aufgelistet. Durch einen Doppelklick gelangt man direkt zum Code-Editor. Abbildung 41: Selektionsbild PBS archive add on CUSTOM - Administration - 69 Abbildung 42: Suchergebnis 4.9 PBS Archive Browser Über den Button ’PBS Archive Browser’ gelangen Sie direkt zur Transaktion /PBS/SE16. Der PBS Archive Browser ist das Pendant zum SAP Data Browser, Transaktion SE16. Der Archive Browser ermöglicht die Anzeige von Tabelleneinträgen. Der Anwender kann dabei auswählen, ob er nur Daten aus der Datenbank oder nur aus dem Archiv oder aus beiden Datenquellen sehen möchte. Nähere Informationen zum PBS Archiv Browser finden sie in der Dokumentation ’PBS_ArchiveBrowser.pdf’. PBS archive add on CUSTOM - Administration - 70 5 NAI Index Administration Board Die PBS Nearline Analytic Infrastructure steht derzeit in folgenden SAP Releases zur Verfügung: SAP R/3 4.7 SAP ERP 6.0 PBS NAI ist ein Softwarepaket, das die direkte Nutzung eines spaltenbasierten Servers innerhalb operativer SAP-Systeme erlaubt. Als NAI-Datenbank wird der spaltenbasierte Analyseserver Sybase IQ verwendet, der aufgrund seines Reifegrades und der großen Anzahl von Installationen ein hohes Maß an Stabilität und Skalierbarkeit aufweist. Mit Hilfe des PBS NAI-Interfaces lassen sich Anwendungsdaten von einem SAP-System in die NAI-Datenbank übertragen und umgekehrt Daten über den Analyseserver direkt in SAP auswerten. Das NAI Index Administration Board nutzt die NAI-Datenbank für die Speicherung und Analyse der Indizes. Über die aus der NAI-Datenbank ermittelten Archivekeys werden die entsprechenden ADK-Archivdateien gelesen. 5.1 Indexdefinition und Indexaufbau Die Indexdefinition und Indexgenerierung erfolgt zentral für alle PBS archive add ons über das NAI Index Administration Board. Daher ist das Vorgehen zur Indexdefinition und zum Indexaufbau in der Dokumentation des NAI Index Administration Board erklärt (nai_index_administrator.doc). 5.2 Archivdatenselektion 5.2.1 Klasse /PBS/IDK_NAI Methode SELECT_INTO_TABLE Zur Archivdatenselektion steht die generische Klasse /PBS/IDK_NAI zur Verfügung. Unabhängig vom Archivierungsobjekt kann die Methode SELECT_INTO_TABLE, via NAI-Index, alle zugehörigen Tabellen selektieren. Wie in Kapitel 4.6 gezeigt, können sie sich ein Beispielzugriff generieren lassen. Der Aufruf der Methode SELECT_INTO_TABLE sieht wie folgt aus: PBS archive add on CUSTOM data: r_adk_nai gt_tab_data gs_tab_data - Administration - 71 type ref to /pbs/idk_nai, type /pbs/idk_t_tab_ref, type /pbs/idk_tab_ref. * Create instance for ADK selection via NAI index create object r_adk_nai exporting i_arch_object = arch_obj-object i_tabname = 'ZRK_SFLIGHT' exceptions index_not_generated = 1 connection_not_defined = 2 others = 3. if sy-subrc <> 0. message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif. * Read archive via NAI index call method r_adk_nai->select_into_table exporting it_rsds_trange = it_ranges it_rsselect = it_rsselect i_read_document = p_doc i_only_first_record = p_head i_maximum_rows = max_row_count changing ct_tab_data = gt_tab_data exceptions index_not_exist = 1 others = 2. Das Ergebnis wird mit dem Changing Parameter CT_TAB_DAT übergeben. Die Struktur der Tabelle ist von Typ /PBS/IDK_TAB_REF und besitzt folgende Felder: TABNAME Name der Ergebnistabelle TAG Technisches Feld (ohne weitere Bedeutung) TAB_REF Referenz auf die Ergebnistabelle TAB_COUNT Anzahl der Datensätze in der Ergebnistabelle STRUC_REF Referenz auf eine Struktur vom Typ der Referenztabelle ARCHIVE_FLAG_NAME Falls vorhanden, Name des Feldes mit dem Archivkennzeichen (optional) PBS archive add on CUSTOM - Administration - 72 Wenn die Tabelle CT_TAB_DATA bei Übergabe an die Methode keine Zeilen enthält, wird sie innerhalb der Methode initialisiert. Sie können die Tabelle CT_TAB_DATA aber auch selbst initialisieren. Die Struktur der Ergebnisstabelle ist dabei völlig frei. Nachfolgend ein Beispiel: TYPES BEGIN OF type_sflight. INCLUDE STRUCTURE zrk_sflight. TYPES archive TYPE c. TYPES END OF type_sflight. DATA: lt_zrk_sflight lt_zrk_sbook lt_tab_data ls_tab_data TYPE TYPE TYPE TYPE TABLE OF type_sflight, TABLE OF zrk_sbook, /pbs/idk_t_tab_ref, /pbs/idk_tab_ref. ls_tab_data-archive_flag_name = 'ARCHIVE'. ls_tab_data-tabname = 'ZRK_SFLIGHT'. GET REFERENCE OF lt_zrk_sflight[] INTO ls_tab_data-tab_ref. APPEND ls_tab_data TO lt_tab_data. CLEAR ls_tab_data-archive_flag_name. ls_tab_data-tabname = 'ZRK_SBOOK'. GET REFERENCE OF lt_zrk_sbook[] INTO ls_tab_data-tab_ref. APPEND ls_tab_data TO lt_tab_data. Nach Aufruf der Methode SELECT_INTO_TABLE LT_ZRK_SFLIGHT und LT_SBOOK gefüllt. sind die Tabellen 5.2.2 Klasse /PBS/IDK_SEQ Methode SELECT_INTO_TABLE Die Klasse /PBS/IDK_SEQ funktioniert analog zur Klasse /PBS/IDK_NAI mit dem Unterschied, dass die Methode SELECT_INTO_TABLE die Archivdaten sequentiell, ohne Indizes selektiert. PBS archive add on CUSTOM - Administration - 73 5.3 Archive Keys aus der NAI-Tabelle ermitteln Mit Hilfe der Archive Keys können Sie mit dem ADK-Funktionsbaustein ARCHIVE_READ_OBJECT das Archiv direkt öffnen und mit den Funktionsbausteinen ARCHIVE_GET_NEXT_RECORD oder ARCHIVE_GET_TABLE die Archivdaten lesen. Dieses Verfahren macht bei Massendatenverarbeitung Sinn. 5.3.1 Klasse /PBS/IDK_NAI Methode GET_ARCHIVE_KEYS Nachfolgend ein Beispiel zur Methode GET_ARCHIVE_KEYS: DATA DATA DATA DATA DATA DATA DATA lt_rsselect ls_rsselect lt_dyn_ranges lr_idk max lt_arch_offs ls_arch_offs TYPE TYPE TYPE TYPE TYPE TYPE TYPE rsselect_tab. rsselect. rsds_trange. REF TO /pbs/idk_nai. i. /pbs/idk_t_arch_offs. arch_offs. CREATE OBJECT lr_idk EXPORTING i_arch_object i_tabname EXCEPTIONS index_not_generated connection_not_defined OTHERS IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE WITH sy-msgv1 ENDIF. = 'ZRK_FL' = 'ZRK_SFLIGHT' = 1 = 2 = 3. sy-msgty NUMBER sy-msgno sy-msgv2 sy-msgv3 sy-msgv4. CALL METHOD lr_idk->get_archive_keys EXPORTING i_maximum_rows = max it_rsds_trange = lt_dyn_ranges it_rsselect = lt_rsselect IMPORTING et_arch_offs = lt_arch_offs. LOOP AT lt_arch_offs INTO ls_arch_offs. WRITE:/ ls_arch_offs-archivekey, ls_arch_offs-archiveofs. ENDLOOP. PBS archive add on CUSTOM - Administration - 74 5.3.2 Interface /PBS/UTIL_IF_NAU_SELECT Mit der Methode FETCH_NEXT_NAI_PACKAGE können die Archive Keys und/oder die Indexfelder ermittelt werden. Die Daten werden Packetweise gelesen. Nachfolgend ein Beispiel zur Ermittlung der Archive Keys. Die Struktur des Feldsymbols <LT_NAI> ist dynamisch und kann auch Indexfelder enthalten. In diesem Beispiel sind die Felder PBS_ARCHIVEKEY und ARCHDOBJID_SID enthalten (ARCHDOBJID_SID entspricht dem Offset). Dies wird mit dem Parameter I_GET_ARCHIVE_KEYS der Methode OPEN_CURSOR festgelegt. Den folgenden Code können Sie sich auch, wie in Kapitel 4.6 beschrieben, generieren lassen. Wählen Sie hierzu die Zugriffsart = „Einzelzugriff über Indizes und Archive Keys“ und Indexart = „NAI-Index“. CREATE OBJECT r_nai TYPE ('/PBS/NAU_CL_SELECT') EXPORTING i_pbs_module = 'CUSTOM' i_arch_object = c_aobj i_tabname = c_tabname EXCEPTIONS index_not_generated = 1 connection_not_defined = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * open NAI cursor ------------------------------------------CALL METHOD r_nai->open_cursor EXPORTING it_sel_opt = it_rsselect i_get_archive_key = 'X'. * get NAI table --------------------------------------------DO. TRY. r_nai->fetch_next_nai_package( 1000 ). ASSIGN r_nai->data_ref_t_nai->* TO <lt_nai>. LOOP AT <lt_nai> ASSIGNING <ls_nai> . MOVE-CORRESPONDING <ls_nai> TO s_arkey. PERFORM archive_read_object. ENDLOOP. CATCH /pbs/cx_util_no_more_data . r_nai->close_cursor( ). EXIT. ENDTRY. ENDDO. PBS archive add on CUSTOM - Administration - 75 6 Datenextraktion Die Datenextraktion steht ab SAP Release ECC 5.0 zur Verfügung. 6.1 Allgemeines Für das Extrahieren von residenten und archivierten Daten gibt es das Extraktionsprogramm /PBS/IDK_VAR_LIS_ITEM, das über die Transaktion SE38 gestartet werden kann. Dieser Extraktor bietet vielfältige Möglichkeiten, Daten ‚on demand’ zu extrahieren und als Datei im AIS-Format abzulegen (auch als BW Extrakt). Für kleinere Extraktionsmengen gibt es auch die Möglichkeit der Bildschirmanzeige (Anzeigen/Drucken). Abbildung 43: Selektionsbild des CUSTOM Extraktors Die Oberfläche des Extraktors ist in drei Bereiche aufgeteilt: Datenquelle Extraktdefinition Ausgabeoptionen PBS archive add on CUSTOM - Administration - 76 6.2 Datenquelle Im Bereich Datenquelle können über die F4-Hilfe des Feldes ‚Archivierungsobjekt’ alle kundeneigenen Archivierungsobjekte ausgewählt werden. Mit Hilfe von Radiobuttons wird der zu extrahierende Bereich gewählt. Entweder archivierte Daten oder residente. Beides zugleich ist nicht möglich. Ist der Zugriff aufs Archiv gewünscht, kann der Anwender entweder mit Hilfe der Archivstatistik Daten extrahieren (die Archivstatistik muss vorher durchgeführt worden sein) oder die Archivdateien manuell auswählen. Über den Button ‚Archivstatistik’ auf der Drucktastenleiste kann der Anwender direkt zur Statistik verzweigen. 6.3 Extraktdefinition Alle zu extrahierenden Daten müssen pro Archivierungsobjekt als Layout hinterlegt werden. Hierbei sind beliebig viele Layouts unter einem Archivierungsobjekt möglich. Abbildung 44: Definition des Layouts Es können Felder aus allen Tabellen extrahiert werden, die dem ausgewählten Archivierungsobjekt zugeordnet sind. Hierbei sind einzelne Tabellen möglich oder Vater-Sohn Tabellen. Ein gleichzeitiger Extraktionslauf von Tabellen auf gleicher Ebene ist nicht möglich. Abbildung 45: Vater-Sohn Tabellen Aus den so angezeigten Tabellen können beliebige Felder als Extraktionsfelder ausgewählt und abgespeichert werden. PBS archive add on CUSTOM - Administration - 77 Abbildung 46: Feldauswahl 6.4 Ausgabeoptionen Im Selektionsbereich ‚Ausgabeoptionen’ gibt es drei Möglichkeiten des Outputs: ‚Anzeigen/Drucken’ bringt die extrahierten Informationen in Listenform auf den Bildschirm. Abbildung 47: Listausgabe ‚Anzeigen/Drucken’ PBS archive add on CUSTOM - Administration - 78 ‚Export in Datei’ erzeugt eine Extraktdatei im Format AIS. Dieses Format kann beispielsweise vom Steuerprüfungsprogramm IDEA eingelesen und ausgewertet werden oder von PBS ECS. Abbildung 48: Extraktdatei im Format AIS ‚Erzeugen BW-Extrakt’ stellt eine Extraktionsdatei zur Verfügung, die in ein BWSystem exportiert werden kann. Über ‚Anzahl Treffer’ kann die Ausgabe eingeschränkt werden. Bleibt dieses Feld leer, gibt es keine Einschränkung. Die Ablage der Dateien erfolgt über einen logischen Dateinamen. 6.5 Freie Abgrenzungen Über den Button ‚Freie Abgrenzungen’ in der Drucktastenleiste können einschränkende Selektionskriterien festgelegt werden. Hierbei erhält der Anwender eine frei zu wählende Liste aller Felder, auf denen Einschränkungen angegeben werden können. PBS archive add on CUSTOM - Administration - 79 Abbildung 49: Freie Abgrenzungen Auf der linken Seite erscheinen alle Felder, die per Doppelklick zur Eingabe von Einschränkungen ausgewählt werden dürfen. Nach Doppelklick auf ein Feld erscheint dieses im rechten Bereich des Bildschirmes. Die blau hinterlegten Texte sind die Kurzbeschreibungen zu den Tabellen.
© Copyright 2024 ExpyDoc