GUI_UPLOAD-Problem oder kein Durchblick

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

GUI_UPLOAD-Problem oder kein Durchblick

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo zusammen,

auch auf die Gefahr hin, dass ich gesteinigt und gevierteilt werde: Aber in den Threads im Forum habe nichts gefunden, was mir helfen könnte.

Ich habe ein Problem mit dem FuBa GUI_UPLOAD. Ich bekomme Dateien mit einem Pipe-Zeichen als Trennung und donnere jedes Mal mit dem GUI_UPLOAD in einen Kurzdump, weil irgendetwas etwas falsch läuft. Am Ende jeden Satzes dieser Dateien steht auch noch mal das Trennzeichen. Ich hatte schon vermutet, dass es damit zusammenhängt und daher das letzte Trennzeichen versuchsweise aus der Datei gelöscht. Aber das war's auch nicht. Als filetype gebe ich 'ASC' an und has_field_separator = '|'. Möglicherweise liegt ja der (berühmte) Hase hier im Pfeffer...
Die Anzahl Felder in der zu füllenden Tabelle und die in der Datei stimmen überein.

Danke für Eure Hilfe und Geduld.

Gruß
:)

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


Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
hallo kbit100,

nur so eine vermutung, hast du nummerische Felder definiert?

wenn dem so ist, setze mal alle deine Felder der Tabelle wo die daten reinlaufen auf type c.

wenn dem nicht so ist, dann bitte mal die abbruchnachricht aus dem dump und edtwas coding posten.


MfG

Thomas

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hi Thomas,

nein, numerische Felder sind nicht definiert.

Das ist der Ausschnitt aus dem Kurzdump, wo's gerappelt hat:

Code: Alles auswählen.

ABAP-Laufzeitfehler    CALL_FUNCTION_CONFLICT_TYPE    
       aufgetreten am  18.12.2007 um 14:07:29         
....
Ausschnitt Source-Code                                             
                                                                   
                                                                   
003720   *               sy-datum                                  
003730   *               gd_startzeit                              
003740   *               space                                     
003750   *               space.                                    
003760                                                             
003770                                                             
003780     CALL FUNCTION 'GUI_UPLOAD'                              
003790          EXPORTING                                          
003800               filename                = gd_importdatei      
003810               filetype                = 'ASC'               
003820               has_field_separator     = '| '                 
003830          TABLES                                             
003840               data_tab                = gt_i_account        
003850          EXCEPTIONS                                         
003860               file_open_error         = 1                   
003870               file_read_error         = 2                 
003880               no_batch                = 3                 
003890               gui_refuse_filetransfer = 4                 
003900               invalid_type            = 5                 
003910               no_authority            = 6                 
003920               unknown_error           = 7                 
003930               bad_data_format         = 8                 
003940               header_not_allowed      = 9                 
003950               separator_not_allowed   = 10                
003960               header_too_long         = 11                
003970               unknown_dp_error        = 12                
003980               access_denied           = 13                
003990               dp_out_of_memory        = 14                
004000               disk_full               = 15                
004010               dp_timeout              = 16                
----->               OTHERS                  = 17.               
004030     IF sy-subrc <> 0.                                     
004040       BREAK-POINT.                                        
004050   *    gd_msgtext1 = 'Fehler beim Einlesen Importdatei!'. 
004060   *    mac_msg_putx 'E'                                   
004070   *                 gc_nachricht                          
004080   *                 gc_nklasse                            
004090   *                 gd_msgtext1                           
004100   *                 sy-datum                              
004110   *                 gd_startzeit                          
004120   *                 space                                 
004130   *                 space.                                
004140   *    LEAVE PROGRAM.                                     
004150     ENDIF.                                                
004160                                                           
Und das ist die Definition der internen Tabelle.

Code: Alles auswählen.

DATA: BEGIN OF gt_i_account OCCURS 1,
  caperson(40)           TYPE c,
  varechnungseinheit(40) TYPE c,
  vavertrag(40)          TYPE c,
  vamengenpunkt(40)      TYPE c,
END OF gt_i_account.
Dabei ist es wurscht, ob das bspw. gt_i_account LIKE <irgendeine Z-Tabelle ohne numerische Felder> ist.

Und noch ein Stück Coding:

Code: Alles auswählen.

  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename                = gd_importdatei
            filetype                = 'ASC'
            has_field_separator     = '|'
       TABLES
            data_tab                = gt_i_account
       EXCEPTIONS
            file_open_error         = 1
            file_read_error         = 2
            no_batch                = 3
            gui_refuse_filetransfer = 4
            invalid_type            = 5
            no_authority            = 6
            unknown_error           = 7
            bad_data_format         = 8
            header_not_allowed      = 9
            separator_not_allowed   = 10
            header_too_long         = 11
            unknown_dp_error        = 12
            access_denied           = 13
            dp_out_of_memory        = 14
            disk_full               = 15
            dp_timeout              = 16
            OTHERS                  = 17.
  IF sy-subrc <> 0.
    gd_msgtext1 = 'Fehler beim Einlesen Importdatei!'.
    mac_msg_putx 'E'
                 gc_nachricht
                 gc_nklasse
                 gd_msgtext1
                 sy-datum
                 gd_startzeit
                 space
                 space.
    LEAVE PROGRAM.
  ENDIF.
Und so sieht die Datei aus:

Code: Alles auswählen.

10067|62|20064|DE700793382260019027419013000G002
10083|78|20083|DE700793382260019027419017000G001
10139|106|20125|DE700793382260019027419027000G001
Wenn ich die Pipes durch Tabs ersetze und unter has_field_separator ein '#' eingebe, dann funktioniert es.
Ich bin völlig ratlos (kopfkratz)....

Danke für deine Mühe.

Gruß

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
in deinen ersten Coding -Auszug, sehe ich keine Feldseparator, dort steht ' ' drin.

Um die Feldlängen zu ignorieren, kann man die Tabellenfelder auch als String definieren. Wenn ich richtig liege, wäre dann der DUMP weg und im ersten Feld steht alles drin, weil der Separatot fehlt.


Thomas

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Ich probier's mal aus. Danke!

Gruß

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo kbit100,

nur um es mal anzumerken:
Der Parameter HAS_FIELD_SEPARATOR bedeutet grob 'hat die Datei ein Feldtrennzeichen?'. Daraus folgt, dass nur die Werte ABAP_TRUE ('X') oder ABAP_FALSE (' ') zulässig sind, denn es handelt sich um ein Parameter mit BOOL'schen Inhalt (Ja/Nein, wahr/falsch).

Wenn Du Dir den Quelltext zum GUI_UPLOAD anschaust, wirst feststellen, dass in der Subroutine WRITE_LINE_TO_DATA_TAB als Trennzeichen die Konstante CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB (Hex 0009) verwendet, was einem Tabulatorzeichen entspricht.

PS:
die Konstanten ABAP_TRUE und ABAP_FALSE, sowie der Typ ABAP_BOOL, sind im Typ-Pool ABAP deklariert.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1697
Views
GUI Upload Problem
von Kristian » 17.08.2005 11:09 • Verfasst in ABAP® Core
2
Antw.
2546
Views
Problem beim Upload von Unicode-txt-Dateien
von TorstenH83 » 23.10.2006 14:53 • Verfasst in ABAP® Core
3
Antw.
3703
Views
PDF Upload
von kaim77 » 26.06.2012 16:16 • Verfasst in ABAP Objects®
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

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 59 Minuten von msfox 2 / 35
Interne Tabelle
vor 18 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

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

Zugriff auf Daten via Webdav
vor 59 Minuten von msfox 2 / 35
Interne Tabelle
vor 18 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

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