ABAP Keyword Documentation → ABAP − Reference → Data Interfaces and Communication Interfaces
Access to the Presentation Server
Programs that are executed in dialog and from SAP GUI can use the methods of the class CL_GUI_FRONTEND_SERVICES to access the current presentation server.
They can use
- the methods GUI_UPLOAD and GUI_DOWNLOAD to read and write to files,
- the methods FILE_... to scan and edit files,
- the methods DIRECTORY_... to scan and edit directories,
- the method EXECUTE to execute operating system statements.
The function module GUI_IS_AVAILABLE can be used in advance to determine whether a SAP GUI is available.
Other versions:
7.31 | 7.40 | 7.54
Note
The methods of the class CL_GUI_FRONTEND_SERVICES replace older function modules with similar functions, such as GUI_UPLOAD, GUI_DOWNLOAD, WS_UPLOAD, or WS_DOWNLOAD.
Example
Writes to and reads a file on a presentation server with the operating system MS Windows. The directory is created on request. The SAP GUI availability prompt prevents runtime errors if the programs does not run in dialog processing.
DATA gui TYPE c LENGTH 1.
CALL FUNCTION 'GUI_IS_AVAILABLE'
IMPORTING
return = gui.
IF gui IS INITIAL.
RETURN.
ENDIF.
DATA(dir) = `C:\temp\my_temp\`.
DATA(name) = `myfile.dat`.
IF cl_gui_frontend_services=>directory_exist( dir ) = abap_false.
DATA rc TYPE i.
cl_gui_frontend_services=>directory_create(
EXPORTING
directory = dir
CHANGING
rc = rc
EXCEPTIONS
OTHERS = 4 ).
IF sy-subrc <> 0 OR
rc <> 0 OR
cl_gui_frontend_services=>directory_exist( dir ) = abap_false.
MESSAGE 'Directory could not be created' TYPE 'I' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
ENDIF.
DATA(file) = dir && name.
IF cl_gui_frontend_services=>file_exist( file ) = abap_true.
DATA ans TYPE c LENGTH 1.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
text_question = 'Overwrite existing file?'
text_button_1 = 'Yes'
text_button_2 = 'No'
IMPORTING
answer = ans.
ENDIF.
TYPES data_line TYPE x LENGTH 255.
DATA data_tab TYPE STANDARD TABLE OF data_line WITH EMPTY KEY.
CALL TRANSFORMATION id SOURCE text = `Test data`
RESULT XML data_tab.
IF ans <> 2.
cl_gui_frontend_services=>gui_download(
EXPORTING
filename = file
filetype = 'BIN'
CHANGING
data_tab = data_tab
EXCEPTIONS
OTHERS = 4 ).
IF sy-subrc <> 0.
MESSAGE 'File could not be written' TYPE 'I' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
ENDIF.
...
CLEAR data_tab.
cl_gui_frontend_services=>gui_upload(
EXPORTING
filename = file
filetype = 'BIN'
CHANGING
data_tab = data_tab
EXCEPTIONS
OTHERS = 4 ).
IF sy-subrc <> 0.
MESSAGE 'File could not be read' TYPE 'I' DISPLAY LIKE 'E'.
RETURN.
ENDIF.