Ein möglicher Weg Tabelleneinträge von einem Client-PC zum SAP-System zu übertragen ist die Verwendung der SAP Standard-Funktion „GUI_Upload“. Um Funktionsbausteine zu finden ist die SE84 (Repository Infosystem) hilfreich. Sie hat gegenüber der Transaktion SE37 den großen Vorteil, dass die Suchliste nicht verschwindet, wenn man einen Funktionsbaustein aufruft und dann wieder zurückgeht.
Das lokale Interface stellt die Schnittstelle zum erfolgreichen Aufrufen der Funktion dar. Die Eingaben „Exporting“ sowie „Tables“ müssen an die Funktion übertragen werden. Ausgangslage in diesem Beispiel bildet eine Tabelle die von Excel ins SAP System übertragen werden soll.
Die Tabelle muss als Textdatei (.csv) mit Trennkennzeichen (Tabstopp-getrennt) gespeichert werden. Die Beispieldatei kann hier heruntergeladen werden (Beispiel). Der Ort der Ablage sollte das Default Ablageverzeichnis sein in dem SAP Datenexporte auf Präsentationsebene ablegt werden. Alternativ kann auch der Ablageort mit Hilfe der Funktion „GET_UPLOAD_DOWNLOAD_PATH“ bestimmt werden.
Im nächsten Schritt sollte eine Tabelle mit Hilfe des Data Dictionary SE11 angelegt werden. Die Tabelle muss die gleichen Felder beeinhalten wie die zu importierende .csv Datei.
Die Funktion „GUI_UPLOAD“ übertragt die Datensätze zunächst in eine interne Tabelle, von dort aus müssen die Datensätze in eine transparente Tabelle übernommen werden. Im Debugger kann der Inhalt der internen Tabelle nach dem Funktionsaufruf eingesehen und überprüft werden.
Nach erfolgreicher Ausführung des ausführbaren Programms sind die Datensätze in der oben dargestellten Tabelle verfügbar.
Der Programmcode für dieses Beispiel:
REPORT ZTESTPROGRAMM.
*Strukur von Tabelle ZNEW3 erzeugen
TABLES ZNEW3.
*Alternatives Vorgehen mit genauer Struktur
*TYPES: BEGIN OF ty_struktur,
*Pers TYPE ZNEW3-PERSONALNR,
*Name TYPE ZNEW3-NAME,
*Geburt TYPE ZNEW3-GEBURTSTAG,
*END OF ty_struktur.
DATA itab TYPE STANDARD TABLE OF ZNEW3.
DATA wa_itab TYPE ZNEW3.
*Funktion zum Import
CALL FUNCTION ‚GUI_UPLOAD‘
EXPORTING
FILENAME = ‚Test.txt‘
* FILETYPE = ‚ASC‘
HAS_FIELD_SEPARATOR = ‚X‘
TABLES
DATA_TAB = itab
.
IF SY-SUBRC <> 0.
write: ‚Upload fehlgeschlagen‘, sy-subrc.
ENDIF.
LOOP AT itab INTO wa_itab.
INSERT ZNEW3 FROM wa_itab.
ENDLOOP.