*&---------------------------------------------------------------------* *& Report : /EUTIN/CHK_GUI_VER *& Title : Get SAP GUI Version *& Developer : EUTINM - 20181008 12:36 *& Development Class : /EUTIN/TOOLS *& Description : *& *&---------------------------------------------------------------------* *& CHANGE HISTORY *&---------------------------------------------------------------------* *& Date Description *&---------------------------------------------------------------------* *& *& *& *& *&---------------------------------------------------------------------* REPORT /eutin/chk_gui_ver. START-OF-SELECTION. PERFORM main. *&---------------------------------------------------------------------* *& Form MAIN *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* FORM main. DATA: lt_version_table TYPE filetable, lv_rc TYPE i, lv_terminal TYPE usr41-terminal, lv_addrstr TYPE ni_nodeaddr, lv_return TYPE c, lv_timestamp TYPE timestamp. FIELD-SYMBOLS: LIKE LINE OF lt_version_table. CLEAR: lv_terminal, lv_addrstr, lv_rc. WRITE: / 'User information:'. ULINE. WRITE: /2 'System Identification ...:', sy-sysid. WRITE: /2 'Client ..................:', sy-mandt. WRITE: /2 'User name ...............:', sy-uname. WRITE: /2 'Current system date .....:', sy-datum. WRITE: /2 'Current system time .....:', sy-uzeit. CALL FUNCTION 'TH_USER_INFO' EXPORTING client = sy-mandt user = sy-uname IMPORTING terminal = lv_terminal addrstr = lv_addrstr rc = lv_rc. IF lv_rc NE 0 AND lv_terminal IS NOT INITIAL. IF lv_addrstr IS INITIAL AND lv_terminal CS '-'. *--- depending on the SAP_BASIS release: separate IP address from terminal ID SPLIT lv_terminal AT '-' INTO lv_addrstr lv_terminal. ENDIF. WRITE: /2 'Terminal name ...........:', lv_terminal. WRITE: /2 'IP address ..............:', lv_addrstr. ENDIF. SKIP 1. CLEAR: lt_version_table[], lv_rc. *--- get SAPGUI version used by current user CALL METHOD cl_gui_frontend_services=>get_gui_version CHANGING version_table = lt_version_table rc = lv_rc EXCEPTIONS get_gui_version_failed = 1 cant_write_version_table = 2 gui_no_version = 3 cntl_error = 4 error_no_gui = 5 not_supported_by_gui = 6 OTHERS = 7. IF sy-subrc EQ 0 AND lv_rc EQ 0. *--- display SAP GUI version WRITE: / 'SAP GUI version installed at current frontend'. ULINE. LOOP AT lt_version_table ASSIGNING . CASE sy-tabix. WHEN 1. WRITE: /2 'Major version ...........:', -filename. WHEN 2. WRITE: /2 'Mainor version ..........:', -filename. WHEN 3. WRITE: /2 'Patch level .............:', -filename. WHEN OTHERS. EXIT. ENDCASE. ENDLOOP. *--- what else do we found on the frontend? CALL FUNCTION 'GUI_IS_ITS' IMPORTING return = lv_return. IF lv_return IS NOT INITIAL. WRITE: /2 'SAP GUI type.............:', 'ITS: Portal'. ELSE. CALL FUNCTION 'GUI_HAS_JAVABEANS' IMPORTING return = lv_return. IF lv_return IS NOT INITIAL. WRITE: /2 'SAP GUI type.............:', 'Java SAPgui'. ELSE. CALL FUNCTION 'GUI_HAS_ACTIVEX' IMPORTING return = lv_return. IF lv_return IS NOT INITIAL. WRITE: /2 'SAP GUI type.............:', 'SAPgui for Microsoft Windows'. ENDIF. ENDIF. ENDIF. ENDIF. ENDFORM. *--- The End!