* http://sap4tech.net/handling-files-on-application-server-in-sap/
* http://abap-blog.ru/files/fajlovyj-interfejs-operacii-s-fajlami/
DATA: it_mara TYPE TABLE OF mara.
DATA: wa_mara LIKE LINE OF it_mara.
DATA: lv_string TYPE string.
PARAMETERS: p_file TYPE string DEFAULT '/usr/sap/tmp/testmara.csv' .
PARAMETERS: p_mtart TYPE mara-mtart DEFAULT 'DIEN'.
START-OF-SELECTION.
* Daten lesen
SELECT * FROM mara INTO TABLE @it_mara UP TO 50 ROWS WHERE mtart = @p_mtart.
TRY.
* Datei im Textmode zum Schreiben öffnen
* In einem Unicode-System entspricht die Angabe DEFAULT der Angabe UTF-8 und in einem Nicht-Unicode-System der Angabe NON-UNICODE
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING UTF-8 IGNORING CONVERSION ERRORS.
* Daten in die Datei schreiben
LOOP AT it_mara INTO wa_mara .
lv_string = |{ wa_mara-matnr };{ wa_mara-ersda };{ wa_mara-matkl }|.
TRANSFER lv_string TO p_file.
ENDLOOP.
* Datei schließen
CLOSE DATASET p_file.
* Datei im Textmode zum lesen öffnen
* In einem Unicode-System entspricht die Angabe DEFAULT der Angabe UTF-8 und in einem Nicht-Unicode-System der Angabe NON-UNICODE
OPEN DATASET p_file FOR INPUT IN TEXT MODE ENCODING UTF-8 IGNORING CONVERSION ERRORS.
* Daten lesen bis Dateiende
DO.
READ DATASET p_file INTO lv_string.
IF sy-subrc <> 0.
EXIT.
ELSE.
WRITE: / lv_string.
ENDIF.
ENDDO.
* Datei schließen
CLOSE DATASET p_file.
* Datei löschen
DELETE DATASET p_file.
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.