Skip to content

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 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.