Kundenauftrag aus Excel oder CSV anlegen

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

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

Kundenauftrag aus Excel oder CSV anlegen

Beitrag von 82kolu1bma (ForumUser / 60 / 5 / 0 ) »
Hallo Leute,
ich bin ein ganz neuer ABAP-Entwickler und habe nun meine erste "größere" Aufgabe bekommen und hoffe Ihr könnt mir helfen.

Es dreht sich darum das ich einen Kundenauftrag aus Excel oder CSV anlegen soll. Die Dateien kann ich selbst gestalten.
Frage Nummer 1. Wie bekomme ich Zugriff auf meine Excel Daten?

Danach versuch ich erst einmal selbst weiter.

Vielen lieben Dank.

Lukas

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


Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Moin,

du musst die Datei vom Client auf den SAP-Server lesen, mit cl_gui_frontend_services=>gui_upload.

Verbuchen solltet du die Aufträge mit Funktionsbaustein BAPI_SALESDOCU_CREATEFROMDATA1.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Hallo Lukas,

1.) wo liegen denn die Daten - auf dem Frontend oder Backend?

Zugriff auf Dateien vom Backend: Siehe Doku zum Befehl "OPEN DATASET".
Zugriff auf Dateien vom Frontend: Methode CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD

2.) welches Format willst du vorgeben?
Am einfachsten sind CSV-Dateien, wenn du sowohl vom Frontend als auch vom Backend lesen willst - diese musst du nur zeilenweise einlesen und dann aufsplitten. Größter Nachteil, wenn du Felder mit Zeilenumbrüchen hast - die machen dir immer Probleme.
Alternative wäre das OpenSource-Projekt ABAP2XLSX, falls das auf eurem Sytem installiert ist. In dem Fall würde ich dies dem CSV vorziehen.
Wenn du ausschließlich am Frontend arbeitest könntest du auch den FuBa ALSM_EXCEL_TO_INTERNAL_TABLE verwenden - da braucht man nur eine Zieltabelle und die Daten werden aus dem Excel dort hineingestellt.

Wenn du ein wenig Zeit hast solltest du alle Vorschläge ausprobieren um selber herauszufinden, was die Vor- bzw. Nachteile der jeweiligen Vorgehensweise sind, da das Einlesen von Dateien dir noch zig Mal über den Weg laufen wird, falls du den Usern erst einmal ein schickes Progrämmchen zur Verfügung gestellt hast und sie Blut geleckt haben.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
black_adept hat geschrieben:Wenn du ausschließlich am Frontend arbeitest könntest du auch den FuBa ALSM_EXCEL_TO_INTERNAL_TABLE verwenden - da braucht man nur eine Zieltabelle und die Daten werden aus dem Excel dort hineingestellt.
Bei großen Datenmengen sollte man da einen Bogen drum machen - hab ich mir sagen lassen von jemandem, der den öfters verwendet.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von 82kolu1bma (ForumUser / 60 / 5 / 0 ) »
Hallo Leute,
danke für die vielen Rückmeldungen.
Ich hab es jetzt mal so versucht. Jetzt gibt es das Problem, dass meine interne Tabelle falsch befüllt wird (siehe Abbildungen)

Code: Alles auswählen.

REPORT  zzz_CSV.
TYPES:

BEGIN OF ty_tab,
f1 TYPE char10,
f2 TYPE char10,
f3 TYPE char10,
END OF ty_tab.

DATA: file_path_list LIKE rlgrap OCCURS 1 WITH HEADER LINE,
tab TYPE STANDARD TABLE OF ty_tab,
datei(60) TYPE c .

datei = 'D:\CSVTEST2.csv'.

FILE_PATH_LIST-FILENAME = Datei.
APPEND FILE_PATH_LIST.

CALL FUNCTION 'UPLOAD_FILES'
  EXPORTING

    i_filetype       = 'DAT'
    i_xpc            = 'X'
  TABLES
    file_all         = tab
    tab_file         = file_path_list
          .
IF sy-subrc <> 0.

ENDIF.
Im Anhang noch die Bilder.


Nochmal danke.

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von Niels (ForumUser / 77 / 18 / 9 ) »
Hallo,

du musst dir eine Lokale Tabelle anlegen und mit dem Befehl "SPLIT" dann die Tabelle befüllen.

Code: Alles auswählen.

LOOP AT itab into ls_itab.
split ls_itab at ';' into ls_itab2-col1
ls_itab2-col2
ls_itab2-col3.
APPEND ls_itab2 to itab2.
ENDLOOP.

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Ich würde immer versuchen, Tab-getrennte Dateien zu verwenden. Da ist das Risiko am kleinsten, dass das Trennzeichen in den Feldinhalten verwendet wird.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Wenn man faul ist könnte man auch den FuBa TEXT_CONVERT_CSV_TO_SAP verwenden
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von 82kolu1bma (ForumUser / 60 / 5 / 0 ) »
Hallo zusammen,

habt ihr euch das so vorgestellt?

Code: Alles auswählen.

TYPE-POOLS: truxs.

TYPES:
BEGIN OF ty_tab,
f1 TYPE char10,
f2 TYPE char10,
f3 TYPE char10,
END OF ty_tab.

DATA:
tab TYPE STANDARD TABLE OF ty_tab,
datei(60) TYPE c .


datei = 'D:\CSVTEST2.csv'.

CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
EXPORTING
i_filename = datei
i_servertyp = 'PRS'
i_fileformat = 'CSV'
i_field_seperator = ';'
i_line_header = 'X'
* IMPORTING
* E_BIN_FILELENGTH =
TABLES
i_tab_receiver = tab
EXCEPTIONS
file_not_found = 1
close_failed = 2
authorization_failed = 3
open_failed = 4
conversion_failed = 5
OTHERS = 6
.
IF sy-subrc <> 0.
ENDIF.

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von Niels (ForumUser / 77 / 18 / 9 ) »
Hallo,

ja so müsste es funktionieren.
Würde die Tabelle eventuell nicht tab nennen da es mein ich ein schlüsselwort ist aber sonst sieht es gut aus.

Gruß

Niels

Re: Kundenauftrag aus Excel oder CSV anlegen

Beitrag von 82kolu1bma (ForumUser / 60 / 5 / 0 ) »
Niels hat geschrieben:Hallo,

ja so müsste es funktionieren.
Würde die Tabelle eventuell nicht tab nennen da es mein ich ein schlüsselwort ist aber sonst sieht es gut aus.

Gruß

Niels
Danke für den Tipp!

Lukas

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1060
Views
2
Antw.
588
Views
Lieferung zum Kundenauftrag mit SHP_DELIVERY_CREATE_FROM_SLS anlegen
von niermaj » 01.09.2021 11:54 • Verfasst in ABAP® Core
1
Antw.
1656
Views
Umbuchung Kosten von Kundenauftrag A an Kundenauftrag B
von Matthias_L. » 22.04.2005 11:44 • Verfasst in Financials
0
Antw.
2181
Views
Planprimärbedarf anlegen von Excel-file
von holderda » 24.04.2017 11:02 • Verfasst in ABAP Objects®
5
Antw.
4047
Views
Benutzertextfeld Kundenauftrag
von christof » 02.12.2016 14:46 • 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.