10.12.2014
Michael Baumgartner
Autor: Michael Baumgartner
Auf Xing vernetzen

Im­port von SAP® Ta­bel­len nach ACL™

Daten aus SAP® zu exportieren und in ACL™ einzulesen, kann mühsam sein. Für die Unterstützung von Audits mittels Datenanalyse benötigen wir zum Teil weit über 100 Tabellen, und haben dafür unsere Software dab:Exporter entwickelt, die das automatisch und benutzerfreundlich ermöglicht. Manchmal hat man diese Möglichkeit aber nicht, und muss manuell SAP® Daten in ACL™ einlesen, was ich Ihnen in diesem Beitrag an einem Beispiel erläutern werde.

Mein Kollege Florian Popan hat im Juli hier im Blog bereits erläutert, wie Tabellen aus der SAP® Transaktion SE16 heruntergeladen werden können. Daran anknüpfend werde ich am Beispiel der SAP® Tabelle BSAK (sie beinhaltet das „Nebenbuch Ausgeglichene Kreditorenposten“ der Finanzbuchhaltung) beschreiben, welches Downloadformat am geeignetsten ist und wie die Dateien in ACL™ importiert werden können.

Down­load­for­mat und Struk­tur der Da­tei

Wenn Sie Daten aus der Tabelle BSAK herunterladen wollen, dann gehen Sie dazu in die SAP® Transaktion SE16 und lassen sich nach der (optionalen) Eingabe der Selektionskriterien die Daten anzeigen. (Den Blogpost meines Kollegen, in dem die Transaktion SE16 im Detail beschrieben wird, finden Sie hier.) Rufen Sie im Menü „Bearbeiten --> Download“ auf und wählen dann das Format „unkonvertiert“.

Abbildung 1: Datenanzeige in der SAP® Transaktion SE16

Die Datei kann anschließend als .txt abgespeichert werden. Geben Sie den Speicherort und den Namen der Datei ein und klicken Sie auf „Erzeugen“

Abbildung 2: Downloadformat

Die erzeugte Textdatei lässt sich (wenn sie nicht zu groß ist) mit jedem beliebigem Texteditor ansehen. Unsere Beispieldatei wurde mit Microsoft Notepad geöffnet und hat folgenden Inhalt:

Abbildung 3: Struktur der heruntergeladenen Texttabelle

Wir sehen hier, dass die Datei aus drei Bereichen besteht:

  • Informationen zur Tabelle:
    • 97 von 179 Feldern wurden heruntergeladen, dies entspricht der maximalen Breite von 1023 Zeichen. Aufgrund dieser Einschränkung können nicht alle Felder der Tabelle heruntergeladen werden.
    • 11 Führungsspalten, d.h. die Tabelle BSAK beinhaltet 11 Schlüsselfelder
  • Feldnamen: Für unser Beispiel wurden die technischen Feldnamen gewählt.
  • Detaildatensätze: Dies ist der eigentliche Inhalt, der in den ACLTM Tabellen benötigt wird. Wir haben allerdings auch hier Zeichen bzw. Bereiche, die nicht zum Tabelleninhalt gehören, wie z.B. die als Separatoren genutzten „|“

Da hier die Detaildatensätze immer dieselbe Struktur haben und nicht alle Separatoren etc. berücksichtigt werden sollen, empfiehlt sich hier der Import als Druckdatei. Im nächsten Abschnitt wird dies beschrieben.

Im­port nach ACL™

Starten Sie ACL™ und öffnen Sie ein bestehendes ACL™ Projekt. Wählen Sie dann im Menü von ACL™ „Datei-> Neu -> Tabelle“, um den Import-Assistenten zu starten und zu durchlaufen. An der Stelle, an der die zu importierende Datei ausgewählt werden soll, selektieren Sie „BSAK.txt“. Das Dateiformat muss „Druckdatei“ sein.

Abbildung 4: Dateiformat für den Import nach ACL™

Wenn Sie beim Schritt „Druckdateidefinition“ angelangt sind, müssen Sie alle Felder definieren, die importiert werden sollen. Hierfür sind folgende Schritte erforderlich:

Markieren Sie einen beliebigen Feldinhalt mit der linken Maustaste. Ich habe mich hier für das Feld BUKRS (= Buchungskreis) entschieden. Nachdem das Feld markiert wurde, erscheint ein Dialogfenster, in dem Sie den Namen und Datentyp angeben können. Im Beispiel habe ich den Namen „BSAK_BUKRS“ und Datentyp „Zeichen“ für Textfelder gewählt.

Abbildung 5: Definition des ersten Feldes

Der nächste Schritt ist sehr wichtig, denn er bestimmt, wie ACL™ Detaildatensätze identifizieren kann. Im nächsten Schritt muss dann ein Erkennungszeichen / Fixpunkt bzw. Muster definiert werden, das in jedem Datensatz an derselben Stelle steht und immer den gleichen Inhalt hat. Über dieses „Muster“ kann ACL™ die Detaildatensätze identifizieren. Das Feld MANDT (= Mandant) hat in unserem Fall immer denselben Wert in jedem Datensatz, da unsere Daten nur aus einem SAP® System stammen. Daher dieser als eindeutiges Merkmal eines Datensatzes verwendet werden. Nach dem Markieren von „800“ erscheint ein Dialog, den wir ohne Änderung einfach bestätigen können. (Anmerkung: Falls wir uns nicht sicher sind, ob der Wert „800“ wirklich in jedem Datensatz ohne Ausnahme vorkommt, hätten wir auch den Dezimalpunkt wählen können, der als Trennzeichen im Datumsfeld enthalten ist. Er ist offensichtlich stets an derselben Stelle, und ist wertunabhängig immer ein Punkt.)

Abbildung 6: Datensatzdefinition

Das Muster für die Datensatzerkennung zu definieren, ist eine einmalige Sache, denn sobald ACL™ die Einzeldatensätze erkennt, können einfach der Reihe nach alle Felder definiert werden, die importiert werden sollen. Ich zeige nun noch an Beispielen, was bei Textfeldern, numerischen Feldern und Datumsfeldern beachtet werden muss. (Anmerkung: Informationen über den original SAP® Datentyp und die Feldlänge können in der SAP® Transaktion SE11 nachgeschlagen werden.

Das Feld BSAK_MANDT wird als Textfeld mit einer Länge von 3 definiert. Grundsätzlich ist bei einem Textfeld darauf zu achten, dass Startspalte und Feldlänge korrekt definiert sind.

Abbildung 7: Definition eines Textfeldes

Das Feld BSAK_AUGDT (Ausgleichsdatum) ist ein Datumsfeld. Hier muss darauf geachtet werden, dass das korrekte Datumsformat eingetragen ist, damit die Inhalte richtig interpretiert werden können. In unserem Fall ist das Format „TT.MM.YYYY“. Wichtig ist, dass dies beschreibt, wie ACL™ das Datum EINLESEN muss – es gibt in diesem Fall nur den einen hier beschriebenen Weg. Wie ACL™ die Daten später ANZEIGT ist unabhängig davon und kann im Nachgang in den Optionen ein- bzw. umgestellt werden.

Abbildung 8: Definition eines Datumfeldes

Bei numerischen Werten ist darauf zu achten, dass eine ausreichende Länge definiert wird, d.h. der gesamte verfügbare Bereich sollte markiert sein. Zudem müssen die Anzahl der Dezimalstellen sowie das Format korrekt definiert sein. Dies ist erforderlich, weil im deutschen Format der Punkt als Tausendertrenner und das Komma als Dezimaltrenner gilt, während im englischen Format das Komma als Tausendertrenner und der Punkt als Dezimaltrenner gilt. In unserem Beispiel wird der Punkt als Dezimalzeichen verwendet, und das Komma als Tausendertrenner. Im Format haben wir dies entsprechend angegeben, aber in den ACL™ Optionen lässt sich das bei Bedarf auch umstellen bzw. tauschen.

Abbildung 9: Definition eines numerischen Feldes

Ich habe Ihnen an drei Beispielen gezeigt, wie die Felder zu definieren sind. Sobald Sie alle erforderlichen Felder definiert haben, klicken Sie auf „Weiter“. Im darauffolgenden Schritt haben Sie die Möglichkeit, die Feldeigenschaften noch einmal nach zu justieren. Auch kann zu jedem Feld ein Spaltentitel eingetragen werden, damit der Anwender aufgrund der Beschreibung einfacher auf den Inhalt des Feldes schließen kann.

Abbildung 10: Feldeigenschaften festlegen

Anschließend kann der Import abschlossen werden.

Fa­zit

In diesem Beitrag habe ich Ihnen gezeigt, wie Textdateien, die mit der SAP® Transaktion SE16 heruntergeladen wurden, nach ACLTM importiert werden können. Wie Sie sicherlich sehen konnten, ist diese Arbeit sehr zeitintensiv und fehleranfällig. Außerdem gibt es beim Download einige Beschränkungen: Einerseits kann nur eine maximale Breite von 1023 Zeichen heruntergeladen werden, was oft zur Folge hat, dass oft eine Tabelle in mehreren Teilen gesplittet heruntergeladen und importiert werden muss, um dann in ACL™ wieder zusammengeführt zu werden. Auch kann es zu Performanceproblemen und SAP® Timeouts kommen, wenn mehrere Millionen Datensätzen mit der Transaktion SE16 heruntergeladen werden.

Die beschriebene Methode sollte nur verwendet werden, wenn kleine Datenmengen und wenige Tabellen analysiert werden sollen. Da aber in der Praxis viele SAP® Tabellen für eine Analyse benötigt werden und die Datenmengen groß sind, ist der Einsatz einer ressourcenschonenden Extraktionssoftware wie des dab:Exporters unumgänglich. Alle genannten Probleme sowie der mühsame Import nach ACL™ entfallen dann.

Viele Grüße
Michael Baumgartner

P.S. Für Fragen oder Kommentare können Sie sich gerne unter info@dab-gmbh.de an mich wenden.


Kommentare (0)
Sei der erste, der diesen Blog-Beitrag kommentiert.
Blog Anmeldung

Sie sind nicht angemeldet. Bitte melden Sie sich an um diesen Blogbeitrag zu kommentieren.

anmelden