Einlesen einer csv-Datei in SAP R/3

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Einlesen einer csv-Datei in SAP R/3

Beitrag von Mary ( / / 0 / 3 ) »
Hallo zusammen,

ich möchte gerne eine csv-Datei per BI ins SAP-System spielen.
Hat jemand kurz zusammenfassend einen Beispielcode?
Finde nur große, komplizierte Programme als Beispiel, bin aber noch nicht so fit darin!

Danke!

:( :? :cry:

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Tommad (ForumUser / 81 / 0 / 0 ) »
Wenn es sich um eine einmaligen Input handelt würde ich die die LSMW empfehlen. BI aufzeichnen > Felder zuweisen > einlesen und abspielen.

Falls es ein Programm sein soll werd ich versuchen was entsprechendes zu finden !

lg

Beitrag von Gast ( / / 0 / 3 ) »
Morsche,


REPORT Z_TEST.

TABLES: COAS, RLGRAP.

TYPES: BEGIN OF GETTYP,
AUFNR LIKE COAS-AUFNR,
ABKRS LIKE COAS-ABKRS,
FELDF1(20) TYPE C,
END OF GETTYP.


* ITAB, in der das TXT-File eingelesen wird

DATA: ITAB_GET TYPE STANDARD TABLE OF GETTYP,
WA_ITAB_GET LIKE LINE OF ITAB_GET.

* Mit der Maske kann das TXT-File ausgesucht werden

DATA: BEGIN OF MASKE,
',',
F01(30),
',',
'*.txt',
',',
F02(30),
',',
'*.*',
'.',
END OF MASKE.

* Dir-Name

PARAMETERS FRNT_NAM LIKE RLGRAP-FILENAME DEFAULT 'C:\TEMP\'.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR FRNT_NAM.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_PATH = 'C:\'
MASK = MASKE
* MODE = 'O'
* TITLE = ' '
IMPORTING
FILENAME = FRNT_NAM
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.

END-OF-SELECTION.


* Upload des TXT-Files


CALL FUNCTION 'WS_UPLOAD'
EXPORTING
* CODEPAGE = ' '
FILENAME = FRNT_NAM
FILETYPE = 'DAT'
* HEADLEN = ' '
* LINE_EXIT = ' '
* TRUNCLEN = ' '
* USER_FORM = ' '
* USER_PROG = ' '
* DAT_D_FORMAT = ' '
* IMPORTING
* FILELENGTH =
TABLES
DATA_TAB = ITAB_GET
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.


In der Itab_GET hast Du dann Deine Daten und
kannst dann den Batch Input schreiben!
Bitte beachte, dass hier nur ein TXT-File eingelesen wird, und kein CSV.
Du kannst das CSV ja als txt (mit TABS getrennt) abspeichern.

Beitrag von Mary (ForumUser / 2 / 0 / 0 ) »
Hi,

danke Tommad, aber es soll ein Programm werden, das später als Job eingeplant werden kann! Vielleicht findest du ja noch was, wäre echt nett!

danke "Gast" für den Quellcode, ich werd mir den mal ansehen. Da ich aber gerade im Projekt stecke und dort Anforderung ist, daß eine csv-Datei eingelesen wird, muß ich das auch einhalten!

Grüße,

Mary :wink:

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hallo Mary,

hier ein kl. Beispiel in 40 Zeilen
(Code für BI aus einer Aufzeichnung für die TA FK02 mit
dem Transaktionsrekorder)

Code: Alles auswählen.

report ZTESTCSV no standard page heading line-size 255.
parameters file like rlgrap-filename.
DATA: WA(2000).
FIELD-SYMBOLS <FS1>.
DATA IDX  LIKE SY-INDEX.
Data trenn value ';'.
DATA: BEGIN OF SPTAB OCCURS   0, CHAR40(40), END OF SPTAB.
DATA: BEGIN OF ITAB occurs 0, LIFNR TYPE LFA1-LIFNR,
        BRSCH TYPE LFA1-BRSCH, END OF ITAB.
include bdcrecx1.
start-of-selection.
  OPEN DATASET FILE FOR INPUT IN TEXT MODE.
  DO.
    READ DATASET FILE INTO WA.
    IF SY-SUBRC <> 0. EXIT. ENDIF.
    CHECK WA CN ' ;'.                  "Leersätze raus
    REFRESH SPTAB.
    CLEAR: SPTAB, ITAB, idx.
    SPLIT WA AT trenn INTO TABLE SPTAB.
    LOOP AT SPTAB.
      add 1 to IDX.
      ASSIGN COMPONENT IDX OF STRUCTURE ITAB TO <FS1>.
      <FS1> = SPTAB-CHAR40.
    ENDLOOP.
    APPEND ITAB.
  ENDDO.
perform open_group.
 loop at itab.
*Einstieg
    perform bdc_dynpro      using 'SAPMF02K' '0106'.
    perform bdc_field       using 'BDC_OKCODE' '/00'.
    perform bdc_field       using 'RF02K-LIFNR' itab-lifnr.
    perform bdc_field       using 'RF02K-D0120' 'X'.
*D120
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_OKCODE' '=UPDA'.
    perform bdc_field       using 'LFA1-BRSCH' itab-brsch.
    perform bdc_transaction using 'FK02'.
  endloop.
  perform close_group.

Gruß Andreas

Beitrag von Mary (ForumUser / 2 / 0 / 0 ) »
Hi,

leider kann ich nicht so oft online gehen, deshalb jetzt eine kurze Antwort!

Danke Asaph, denke ich habe den Code soweit verstanden. Ich werd mal sehen, ob ich das hin kriege!

Leider muß ich das Programmieren in meinem Projekt jetzt etwas hinten anstellen, wenn ich später doch wieder hängen sollte weiß ich ja jetzt wo ich Hilfe kriege! :-)

:) :D :)

Gruß, Mary

Beitrag von Gast ( / / 0 / 3 ) »
nur so nebenbei... es lassen sich auch lsmw projekte als job einplanen.

Beitrag von Niekohle (ForumUser / 37 / 0 / 1 ) »
Wie lässt sich denn ein LSMW als Job einplanen??
LG
Nicole

Als guter Berater muss man auch mal
den Kunden vor seinen eigenen Wünschen beschützen...

Seite 1 von 1

Vergleichbare Themen

0
Antw.
3691
Views
xml Datei einlesen
von Rabea1103 » 05.03.2009 13:58 • Verfasst in ABAP® Core
4
Antw.
2216
Views
Datei Paketweise einlesen?
von killa12 » 12.10.2010 12:03 • Verfasst in ABAP® Core
2
Antw.
3718
Views
XML Datei in ABAP einlesen
von Zubasa » 31.03.2011 10:53 • Verfasst in ABAP Objects®
19
Antw.
13623
Views
Excel-Datei einlesen
von Zubasa » 01.10.2010 14:16 • Verfasst in ABAP Objects®
7
Antw.
3163
Views
externe Datei einlesen
von BesenWesen » 09.08.2004 14:40 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.