CSV Dateien sind bis heute eine immer noch beliebte und einfache Methode, um Daten in SAP zu importieren bzw. aus SAP zu exportieren.

Wir haben ein Framework entwickelt mit dem es möglich ist jede Art von CSV Datei in eine ‚Interne Tabelle‘ einzulesen. Die einzige Voraussetzung ist, die Tabellenstruktur der ‚Internen Tabelle‘ im ABAP-Dictionary anzulegen.

Die Daten werden im ersten Schritt entweder lokal vom PC oder vom Applikationsserver in eine Stringtabelle eingelesen. Im zweiten Schritt erfolgt die Umwandlung der Daten in die ‚Interne Tabelle‘.

Auf Grund der Felddefinition im ABAP-Dictionary findet automatisch eine syntaktische Prüfung auf den jeweiligen Datentyp statt. So können z.B. ganzzahlige Werte und Gleitkommazahlen (Betragsfelder) auf Inhalt und deren minimale- und maximale- Länge bzw. Gültigkeitsbereich geprüft werden. Ebenso Datum- / Zeitfelder, Sprache und Währung, CHAR-Felder und deren definierte Länge.
Ein spezielles Augenmerk gilt dabei dem Datum. Beim Import von CSV Dateien finden die verschiedensten Datumsformate Einzug welche in das SAP-Interne Format umgewandelt werden wollen. Sollte ein Datumsformat benutzt werden welches nicht in SAP bzw. am ausführenden Benutzer (Tabelle USR01) definiert ist können Sie ein eigenes Datumsformat global bzw. über die Felddefinition (siehe unten) pro Feld mitgeben. So kann z.B. das Datum 15/16/1 in Form TT/JJ/MM als 15.01.2016 erkannt werden.

Darüber hinaus ist es möglich, aus dem aufrufenden Programm, eine Liste mit Felddefinitionen zu übergeben. Damit können für einzelne Datenfelder der ‚Internen Tabelle‘ kundeneigene Prüfungen ausgelöst werden.
Es ist möglich die Struktur der Felddefinitionen über ein Customer-Include (CI_) mit kundeneigenen Feldern zu erweitern. Hier stehen Ihnen mit eigener Programmierung weitere Möglichkeiten der Datenprüfung zur Verfügung.

Während der Umwandlung aufgetretene Fehler werden in Form einer BAPIRET2 Tabelle inkl. Zeilennummer und Feldname geloggt und zurückgeliefert.

Bezeichnung Beschreibung
Feldname Name eines Felder aus der ‚Internen Tabelle‘ für welches die Prüfung stattfindet
Muss/Kann Definiert das Feld als Muss- oder Kannfeld. Ein Mussfeld darf nicht initial (leer) sein.
Initial Erlaubt Ermöglicht es ein Mussfeld auch initial einzulesen. Dieses ist z.B. bei einer Checkbox nötig bei dem auch ein leerer Wert eingelesen werden soll.
Pflichtfeld wenn Referenzfeld nicht leer Feldname eines Referenzfeldes aus der ‚Internen Tabelle‘. Wenn das Referenzfeld mit einem Wert gefüllt ist wird das aktuelle Feld zum Pflichtfeld.
Z.B. Betrag und Währung… Wenn das Referenzfeld ‚Betrag‘ einen Wert enthält wird das aktuelle Feld ‚Währung‘ zum Pflichtfeld.
Standardwert Wenn ein Feld initial ist wird es mit dem angegebenen Standardwert gefüllt.
Werte ersetzen Ein eingelesener Wert kann durch einen anderen ersetzt werden. Z.B. kann das Wort ‚ja‘ oder ‚yes‘ mit einer ‚1‘ ersetzt werden. Eine Mehrfachangabe von Ersetzungen ist möglich.
Gültige Werte Der eingelesene Wert kann mit den hier angegebenen, gültigen Werten geprüft werden.
So können z.B. beim Import ‚Ergänzender Zahlungen‘ (Infotyp 0015) nur bestimmte Lohnarten als Gültig definiert werden.
Format Nur bei Datumsfeldern.
Definition eines Datumsformates zur Erkennung des korrekten Datums.
Die Form TT/JJ/MM lässt das zu importierende Datum 15/16/1 als 15.01.2016 erkennen.

Umgekehrt können Sie auch Daten aus SAP exportieren. Hierzu werden die Daten einer ‚Internen Tabelle‘ in eine Stringtabelle umgewandelt und lokal auf dem PC oder auf dem Applikationsserver als CSV Datei abgelegt.

Bei der Umwandlung findet ebenso wie beim Import eine syntaktische wie auch über die Felddefinition einzustellende, kundeneigene Prüfung statt. Auch hier wird ein Datum in das entsprechende Zielformat laut Felddefinition umgewandelt.

Zusätzlich beinhaltet das Framework weitere Hilfsmethoden mit denen es möglich ist verschiedene Verzeichnis- und Dateioperationen durchzuführen.

  • Auswahl von Verzeichnissen und Dateien
  • Existenzprüfung von Verzeichnissen und Dateien
  • Lesen von Kundenverzeichnissen auf dem Applikationsserver