GUI_UPLOAD

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

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

GUI_UPLOAD

Beitrag von dyv (ForumUser / 53 / 18 / 0 ) »
Hallo zusammen,

brauche eine Expertenhilfe mit dem FuBa 'GUI_UPLOAD' und zwar wird bei mir in dem Fall:

Code: Alles auswählen.

  DATA: ta_csv_data     TYPE STANDARD TABLE OF zst_preisupload,
             wa_csv_data     LIKE LINE OF ta_csv_data.

  DATA v_string          TYPE string.

  v_filename = p_fname.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename = v_filename
      filetype = 'ASC'
    TABLES
      data_tab = ta_csv_data.
  LOOP AT ta_csv_data INTO v_string.
    SPLIT v_string AT ' , '
          INTO
          wa_csv_data-matnr
          wa_csv_data-kschl
          wa_csv_data-vorg.
    APPEND ta_csv_data.
    CLEAR: ta_csv_data.
  ENDLOOP.
der Inhalt der ganzen Tabelle in die Erste Spalte geschrieben. Wie kann ich die Daten separieren?

Was habe ich in dem Fall vergessen?
Danke

Denis

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


Re: GUI_UPLOAD

Beitrag von MrBojangles (Specialist / 367 / 3 / 30 ) »
Hallo Denis,
nimm mal als Separator ',' also ohne ummantelnde Leerzeichen. Zudem solltest Du nochmal Deinen Append-Befehl prüfen. M.E. müsste er lauten: APPEND wa_csv_data TO ta_csv_data. Wundert mich, dass Du da keinen Syntaxfehler bekommst, weil die int. Tab. als Tabelle ohne Kopfzeile deklariert ist.
Weiterhin viel Freude mit SAP...
Cheers
MrB.

Re: GUI_UPLOAD

Beitrag von dyv (ForumUser / 53 / 18 / 0 ) »
Hallo,

danke für das schnelle Feedback.

Den Fehler hatte ich tatsächlich aber der Separator ',' hilft leider nicht, es wird jetzt gar keine Information im ALV angezeigt.

Habe folgendes (has_field_separator) versucht:

v_filename = p_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename
filetype = 'ASC'
has_field_separator = ','
TABLES
data_tab = ta_csv_data.
LOOP AT ta_csv_data INTO v_string.
SPLIT v_string AT ','
INTO
wa_csv_data-matnr
wa_csv_data-vorg.
APPEND wa_csv_data to ta_csv_data.
CLEAR ta_csv_data.

funktioniert leider auch nicht

Re: GUI_UPLOAD

Beitrag von zzcpak (Expert / 673 / 5 / 67 ) »
bist du dir eigentlich darüber im Klaren, was du da machst?

Erst liest du eine Datei in die interne Tablle TA_CSV_DATA.

Dann ein LOOP über eben diese interne Tabelle.

Innerhalb diese LOOP dann ein APPEND auf die gleiche Tabelle

zum krönenden Abschluss noch ein CLEAR auf TA_CSV_DATA, welcher dann deine interne Tabelle löscht

Am besten sieh dir die Tabelle TA_CSV_DATA nach dem Aufruf von GUI_UPLOAD mal im Debugger an. Vielleicht wird es dann klarer, was noch zu tun ist. So wie jetzt dürfte wohl nichts sinnvolles rauskommen.

Re: GUI_UPLOAD

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Sehr viel mehr verkehrt machen kann man eigentlich wirklich nicht mehr.

has_field_separator = 'X' --> nimmt man bei TAB delimted Textfiles. Also kommt fuer Dich hier nicht in Frage.

Ausserdem liest Du die Daten erst in eine strukturierte Tabelle. Loops dann ueber diese Tabelle mit Feldern alles in einen String um dann von dort wieder alles zurueck in die Felder zu schreiben. Dazu kommt noch das von ZZPACK geschriebene.

Du musst die Daten mit dem Upload in eine "String-Tabelle" lesen. Dann ueber diese Strings loopen und dann in die Felder spliten.

Re: GUI_UPLOAD

Beitrag von dyv (ForumUser / 53 / 18 / 0 ) »
Danke für die Antworten,

habe mein Fehler verstanden und habe folgenden Code jetzt:

v_filename = p_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename
filetype = 'ASC'
TABLES
data_tab = ta_csv_data.
LOOP AT ta_csv_data INTO v_string.
split v_string at ' , '
into
wa_csv-matnr
wa_csv-vorg.
APPEND wa_csv TO ta_csv.
CLEAR ta_csv_data.

Aber trotzdem kriege keine Information angezeigt

Re: GUI_UPLOAD

Beitrag von zzcpak (Expert / 673 / 5 / 67 ) »
sorry, aber ich glaube nicht, daß du die Fehler wirklich vestanden hast.

Was soll denn deine Anweisung "CLEAR ta_csv_data." innerhalb des LOOP bewirken? Mit dieser Anweisung löschst du die komplette interne Tabelle, die deine Daten enthält. Ergo enthält deine Zieltabelle TA_CSV nur einen Eintrag.

Dann übergibst du dem Baustein 'GUI_DOWNLOAD' gleich deine strukturierte Zieltabelle. GUI_DOWNLOAD kann mit dieser Struktur aber nichts anfangen. Es wird zwar eine Datei eingelesen und die interne Tabelle TA_CSV_DATA erzeugt, aber alle Inhalte werden nur in das erste Feld der internen Tabelle geschrieben.

Sinnvollerweise würde man wohl erst mal die Datei in eine String-Tabelle einlesen. (Testdatei "daten.txt" ist angehängt)

Code: Alles auswählen.

DATA:
  gt_file_content TYPE table_of_strings,
  gv_line TYPE string.


START-OF-SELECTION.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename = 'c:\temp\daten.txt'
      filetype = 'ASC'
    TABLES
      data_tab = gt_file_content.
Anschließend kann man diese Strings dann in die Zielstruktur splitten. Da ich nicht weiss, wie deine Zielstruktur aussieht, habe ich hier nur beispielhaft eine einfache erstellt.

Code: Alles auswählen.

TYPES:
  BEGIN OF ts_data,
    matnr TYPE char30,
    kschl TYPE kschl,
    vkorg TYPE vkorg,
  END OF ts_data.

DATA:
  gt_data TYPE STANDARD TABLE OF ts_data,
  gs_data TYPE ts_data.

  LOOP AT gt_file_content INTO gv_line.
    CLEAR gs_data.
    SPLIT gv_line AT space
      INTO gs_data-matnr gs_data-kschl gs_data-vkorg.
    APPEND gs_data TO gt_data.
  ENDLOOP.

  LOOP AT gt_data INTO gs_data.
    WRITE: / gs_data-matnr, gs_data-kschl, gs_data-vkorg.
  ENDLOOP.

Re: GUI_UPLOAD

Beitrag von dyv (ForumUser / 53 / 18 / 0 ) »
Ja, ich habe mein Fehler verstanden und diese so behoben, dass ich jetzt problemlos meine Datei auch hochladen kann:

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename
filetype = 'ASC'
TABLES
data_tab = ta_csv_data.
LOOP AT ta_csv_data INTO v_string.
SPLIT v_string AT ';'
INTO
wa_csv-matnr
wa_csv-vkorg
wa_csv-preis.
APPEND wa_csv TO ta_csv.
CLEAR wa_csv.

Aber eine kleine Frage hätte ich vielleicht noch und zwar, wie könnte ich die Datei OHNE die erste Zeile hochladen? Hätte jemand bereits Erfahrung damit?

Gruß

Denis

Re: GUI_UPLOAD

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Du laedst die komplette Datei hoch und beim LOOP sortierst Du die erste Zeile aus, wenn gewuenscht:

Code: Alles auswählen.

CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename = v_filename
      filetype = 'ASC'
    TABLES
      data_tab = ta_csv_data.
  LOOP AT ta_csv_data INTO v_string.
================================================
     if sy-tabix eq 1.    "Erste Zeile der Tabelle?
          continue.         Mache nichts, gehe zurueck zum LOOP AT und bearbeite die zweite Zeile 
*** FYI: Die erste Zeile beinhaltet z.B. oft die Spaltennamen. Man koennte damit z.B. eine dynamische interne Tabelle erstellen
     endif.
================================================
    SPLIT v_string AT ';' INTO wa_csv-matnr
                               wa_csv-vkorg
                               wa_csv-preis.
    APPEND wa_csv TO ta_csv.
    CLEAR wa_csv.
   ENDLOOP.

Re: GUI_UPLOAD

Beitrag von dyv (ForumUser / 53 / 18 / 0 ) »
Super!

Vielen Dank!

Seite 1 von 1

Vergleichbare Themen

3
Antw.
3703
Views
PDF Upload
von kaim77 » 26.06.2012 16:16 • Verfasst in ABAP Objects®
1
Antw.
1697
Views
GUI Upload Problem
von Kristian » 17.08.2005 11:09 • Verfasst in ABAP® Core
1
Antw.
1817
Views
Excel upload
von will » 07.11.2005 11:30 • Verfasst in ABAP® für Anfänger
1
Antw.
1164
Views
CSV-Upload Innenauftragsbeplanung
von tml » 12.01.2007 12:48 • Verfasst in Financials
2
Antw.
2148
Views
Excel upload
von will » 25.10.2005 16:31 • Verfasst in ABAP® für Anfänger

Ü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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140