Funktionsbaustein GUI_UPLOAD oder gleichnamige Methode der globalen Klasse CL_GUI_FRONTEND_SERVICES.behnm hat geschrieben:Ich hab mir schon viele Sachen in Richtung Dateischnittstelle ABAP angeschaut, bin aber leider noch aus keinem so richtig schlau geworden.
Kann mir da wer weiterhelfen ?
Das glaube ich nichtbehnm hat geschrieben:Nur in der F1 Hilfe sind die Befehle GUI_DOWNLOAD usw nicht verzeichnet.
D.h., es sind keine Abap-Befehle zu denen es eine F1-Hilfe gibt, sondern es ist ein Funktionsbaustein bzw. eine Methode, alsoralf.wenzel hat geschrieben: Funktionsbaustein GUI_UPLOAD oder gleichnamige Methode der globalen Klasse CL_GUI_FRONTEND_SERVICES.
Ralf
Code: Alles auswählen.
CALL FUNCTION 'GUI_DOWNLOAD' ...
Code: Alles auswählen.
CALL METHOD cl_gui_frontend_services=>gui_download ...
Ich habe aber in der Hilfe diese Programme gefunden. Mit der Suche in der Hilfe hätte man sie finden können.GastX hat geschrieben:D.h., es sind keine Abap-Befehle zu denen es eine F1-Hilfe gibt, sondern es ist ein Funktionsbaustein bzw. eine Methode, also
Richtig. Dein Dateiinhalt, also der String, ist in in einer (internen) Tabelle mit einer Zeile oder muss eine werden. Mit der Überlegung kannst du dein Problem lösen.behnm hat geschrieben:Die ganzen Beispiele und Erklärung beziehen sich immer auf Tabellen usw.
anbei ein kurzer Beispielreport für die Dateiablage wahlweise auf Applikation- oder Präsentationserver oder als Listausgabe.behnm hat geschrieben:Hat jemand vllt kurz zeit mir einen Code Schnippsel hinzuschreiben wie ich am besten den string in eine durch das programm erstellte txt datei schreiben kann ? Ich glaub ein kurzer Anstoss reicht mir schon.
Code: Alles auswählen.
REPORT ztest_file.
************************************************************************
* DATA-DEFINITION *
************************************************************************
DATA: gw_file TYPE string,
gt_file TYPE TABLE OF string,
* helfer
g_index TYPE string,
* file operations
gt_file_tab TYPE filetable,
g_rc TYPE i,
g_file TYPE string,
g_filename TYPE string,
g_path TYPE string,
g_fullpath TYPE string.
************************************************************************
* SELECTION SCREEN *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: rb_list RADIOBUTTON GROUP rb2 USER-COMMAND push.
PARAMETERS: rb_filea RADIOBUTTON GROUP rb2.
PARAMETERS: p_filea TYPE c LENGTH 1024 MODIF ID fa LOWER CASE.
PARAMETERS: rb_filep RADIOBUTTON GROUP rb2.
PARAMETERS: p_filep TYPE c LENGTH 1024 MODIF ID fp.
SELECTION-SCREEN END OF BLOCK b1.
************************************************************************
* AT SELECTION-SCREEN *
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_filep.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = 'Bitte Speicherort auswählen'
default_extension = 'TXT'
CHANGING
filename = g_filename
path = g_path
fullpath = g_fullpath.
p_filep = g_fullpath.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CHECK screen-group3 = 'PAR' OR
screen-group3 = 'LOW' OR
screen-group3 = 'HGH'.
CASE screen-group1.
WHEN 'FA'.
IF rb_filea = 'X'.
screen-input = '1'.
ELSE.
screen-input = '0'.
ENDIF.
WHEN 'FP'.
IF rb_filep = 'X'.
screen-input = '1'.
ELSE.
screen-input = '0'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
AT SELECTION-SCREEN ON p_filep.
IF sy-ucomm = 'ONLI' OR sy-ucomm = 'PRIN'.
IF rb_filep = 'X'.
IF p_filep IS INITIAL.
MESSAGE 'Bitte geben Sie einen Pfad ein!' TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
************************************************************************
* START-OF-SELECTION *
************************************************************************
START-OF-SELECTION.
*** Daten aufbauen
DO 20 TIMES.
g_index = sy-index.
CONCATENATE 'Das ist die'
g_index
'Zeile meines Textes'
INTO gw_file
SEPARATED BY space.
APPEND gw_file TO gt_file.
ENDDO.
************************************************************************
* END-OF-SELECTION *
************************************************************************
END-OF-SELECTION.
*** Ausgabe
CASE 'X'.
WHEN rb_filea.
* Daten in File auf Applicationserver schreiben
OPEN DATASET p_filea FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc <> 0.
MESSAGE s398(00) DISPLAY LIKE 'E'
WITH 'Beim öffnen der Datei ist Fehler: '
sy-subrc
' aufgetreten!'.
EXIT.
ENDIF.
LOOP AT gt_file INTO gw_file.
* Zeile ausgeben
TRANSFER gw_file TO p_filea.
IF sy-subrc <> 0.
MESSAGE s398(00) DISPLAY LIKE 'E'
WITH 'Beim schreiben in die Datei ist Fehler: '
sy-subrc
' aufgetreten!'.
EXIT.
ENDIF.
ENDLOOP.
CLOSE DATASET p_filea.
IF sy-subrc = 0.
MESSAGE s398(00) WITH 'Datei: '
p_filea
'erfolgreiche erzeugt.'.
ENDIF.
WHEN rb_filep.
* Daten in File auf Präsentationserver schreiben
g_file = p_filep.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = g_file
CHANGING
data_tab = gt_file
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE s398(00) DISPLAY LIKE 'E'
WITH 'Beim Datei-Speichern ist Fehler: '
sy-subrc
' aufgetreten!'.
EXIT.
ENDIF.
WHEN rb_list.
* Daten als Liste ausgeben.
LOOP AT gt_file INTO gw_file.
WRITE / gw_file.
ENDLOOP.
ENDCASE.