Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
Abapanfänger • ewx
Ich versichere dir das habe ich schon probiert ...erp-bt hat geschrieben:Gib doch einfach mal den Funktionsbaustein bei Gockel ein. Der erste Treffer sollte Dir weiter helfen.
Liebe Grüße,
Danke ich probiers gleich ausblack_adept hat geschrieben:Alternativ zu dem FuBa kann ich die Klasse CL_RSDA_CSV_CONVERTER empfehlen, welche sehr! einfach bedienbar ist und welche beide Richtungen ( CSV->Struktur und Struktur -> CSV ) anbietet.
???Abapanfänger hat geschrieben:
Ich versichere dir das habe ich schon probiert ...
Das Problem bei den moisten Beispiele sind das sie beim Ausführen nicht funktionieren oder mit der Heaxadezimale schreibart geschrieben wurde und deshalb nicht mehr nutzbar ist.
Hey cool, kannte ich auch noch nicht. Sieht gut aus.black_adept hat geschrieben:Alternativ zu dem FuBa kann ich die Klasse CL_RSDA_CSV_CONVERTER empfehlen, welche sehr! einfach bedienbar ist und welche beide Richtungen ( CSV->Struktur und Struktur -> CSV ) anbietet.
erp-bt hat geschrieben:Hey cool, kannte ich auch noch nicht. Sieht gut aus.black_adept hat geschrieben:Alternativ zu dem FuBa kann ich die Klasse CL_RSDA_CSV_CONVERTER empfehlen, welche sehr! einfach bedienbar ist und welche beide Richtungen ( CSV->Struktur und Struktur -> CSV ) anbietet.
Hi Erp-BT,erp-bt hat geschrieben:erp-bt hat geschrieben:Hey cool, kannte ich auch noch nicht. Sieht gut aus.black_adept hat geschrieben:Alternativ zu dem FuBa kann ich die Klasse CL_RSDA_CSV_CONVERTER empfehlen, welche sehr! einfach bedienbar ist und welche beide Richtungen ( CSV->Struktur und Struktur -> CSV ) anbietet.
Hab' jetzt festgestellt, das die Methode CSV_TO_STRUCTURE der Klasse CL_RSDA_CSV_CONVERTER das Datum nicht korrekt in das interne Format umsetzen kann. Aus "20.01.2016" wird "20.01.20" und nicht "20160120". Also dafür besser SAP_CONVERT_TO_CSV nehmen.
Viele Grüße,
Code: Alles auswählen.
lcl_report=>process( exporting i_filename = p_file i_tabname = 'TABNAME' ).
Code: Alles auswählen.
method process.
* types:
* y_csv_data(4096) type c,
* y_csv_data_table type standard table of y_csv_data with non-unique default key.
data:
filename type string,
csv_data_table type y_csv_data_table.
field-symbols:
<csv_data> type y_csv_data.
filename = i_filename.
lcl_report=>upload_csv_data( exporting i_filename = filename
importing e_csv_data_table = csv_data_table ).
data:
converted_data type ref to data,
converted_data_tab type ref to data.
field-symbols:
<converted_data_tab> type standard table,
<converted_data> type any.
* Erstelle Datenreferenzen und weise diese den entsprechenden Feldsymbolen zu
create data:
* converted_data type (i_tabname),
converted_data_tab type standard table of (i_tabname) with non-unique default key.
assign:
* converted_data->* to <converted_data>,
converted_data_tab->* to <converted_data_tab>.
call function 'TEXT_CONVERT_CSV_TO_SAP'
exporting
i_field_seperator = ';'
i_line_header = abap_true
i_tab_raw_data = csv_data_table
* I_FILENAME = I_FILENAME
tables
i_tab_converted_data = <converted_data_tab>
exceptions
conversion_failed = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endmethod.
Code: Alles auswählen.
method upload_csv_data.
cl_gui_frontend_services=>gui_upload(
exporting
filename = i_filename
filetype = 'ASC'
has_field_separator = ''
dat_mode = ''
changing
data_tab = e_csv_data_table
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
not_supported_by_gui = 17
error_no_gui = 18
others = 19 ).
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endmethod. "upload_csv_data
Code: Alles auswählen.
method get_filename.
data:
desktop_directory type string.
data:
files type standard table of file_table,
file type file_table,
rc type i.
call method cl_gui_frontend_services=>get_desktop_directory
changing
desktop_directory = desktop_directory
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
call method cl_gui_frontend_services=>file_open_dialog
exporting
window_title = 'Selektiere CSV-Datei'
default_extension = 'CSV'
file_filter = 'CSV Dateien (*.CSV)' "'Excel files (*.XLS)|*.XLS| Excel files (*.XLSX)|*.XLSX|' cl_gui_frontend_services=>filetype_text
initial_directory = desktop_directory
changing
file_table = files
rc = rc
exceptions
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
others = 5.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
elseif sy-subrc = 0 and rc = 1.
read table files into file index 1.
r_filename = file-filename.
endif.
endmethod. "get_filename