*&---------------------------------------------------------------------*
*& Include ZSOFTCOPY_SYSTEM *
*& *
*&---------------------------------------------------------------------*
*& *
*& This file is part of ZSOFTCOPY. *
*& *
*& ZSOFTCOPY is free software: you can redistribute it and/or modify *
*& it under the terms of the GNU General Public License as published *
*& by the Free Software Foundation, either version 3 of the License, *
*& or any later version. *
*& *
*& ZSOFTCOPY is distributed in the hope that it will be useful, *
*& but WITHOUT ANY WARRANTY; without even the implied warranty of *
*& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
*& GNU General Public License for more details. *
*& *
*& You should have received a copy of the GNU General Public License *
*& along with ZDOWNLOAD. If not, see . *
*& *
*&---------------------------------------------------------------------*
*& *
*& Author: Ruediger von Creytz ruediger.creytz@globalbit.net *
*& Copyright: globalBIT, LLC http://www.globalbit.net *
*& *
*&---------------------------------------------------------------------*
*-----------------------------------------------------------------------
* system
*-----------------------------------------------------------------------
FORM system.
*System: Component Information
PERFORM system_component.
*System: Kernel Information
PERFORM system_kernel.
*System: Status
PERFORM system_status.
ENDFORM. "system
*-----------------------------------------------------------------------
* component System Component Info
*-----------------------------------------------------------------------
FORM system_component.
DATA:
lt_component TYPE it_component,
ls_component TYPE st_component,
lt_cvers TYPE STANDARD TABLE OF cvers,
lt_html TYPE it_string.
FIELD-SYMBOLS:
TYPE cvers.
SELECT * FROM cvers INTO TABLE lt_cvers.
LOOP AT lt_cvers ASSIGNING .
CLEAR ls_component.
ls_component-component = -component.
ls_component-release = -release.
CALL FUNCTION 'OCS_GET_COMPONENT_STATE'
EXPORTING
iv_component = -component
IMPORTING
ev_comp_level = ls_component-level
ev_last_patch = ls_component-high_package
EXCEPTIONS
OTHERS = 1.
SELECT SINGLE desc_text FROM cvers_ref INTO ls_component-desc_text
WHERE component = -component
AND langu = sy-langu.
APPEND ls_component TO lt_component.
ENDLOOP.
*HTML
PERFORM html_main_popupheader
USING
txt_component_information
CHANGING
lt_html.
* Content
PERFORM html_add_tablenodiv
USING
'MENU_COMPO'
lt_component
lt_component
CHANGING
lt_html.
* Footer
PERFORM html_main_popupfooter
CHANGING lt_html.
*Download
PERFORM download
USING
lt_html
'MENU'
'SYSTEM'
'COMPONENT'
gc_extension_htm
abap_false.
ENDFORM. "system_component
*-----------------------------------------------------------------------
* kernel System Kernel Info
*-----------------------------------------------------------------------
FORM system_kernel.
DATA:
ls_textinput TYPE st_textinput,
lt_kernel TYPE it_textinput,
lt_database TYPE it_textinput,
lt_system TYPE it_textinput,
lt_html TYPE it_string,
ls_dbinfo TYPE dbrelinfo.
FIELD-SYMBOLS:
TYPE ANY.
CALL FUNCTION 'DB_DBRELINFO'
IMPORTING
dbinfo = ls_dbinfo.
*Kernel information
* Kernel release
CLEAR ls_textinput.
ls_textinput-name = txt_kernel_release.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'kernel release'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
* Compilation
CLEAR ls_textinput.
ls_textinput-name = txt_compilation.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'kernel compiled'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
* Sup.Pkg lvl.
CLEAR ls_textinput.
ls_textinput-name = txt_sup_pkg_lvl.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'kernel patch level'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
* ABAP Load
CLEAR ls_textinput.
ls_textinput-name = txt_abap_load.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'ABAP load version'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
* CUA load
CLEAR ls_textinput.
ls_textinput-name = txt_cua_load.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'CUA load version'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
* Mode
CLEAR ls_textinput.
ls_textinput-name = txt_mode.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'kernel kind'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
* Rsyn file
CLEAR ls_textinput.
ls_textinput-name = txt_rsyn_file.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'rsyn'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_kernel.
*Database information
* DB client lib.
CLEAR ls_textinput.
ls_textinput-name = txt_db_client_lib.
ls_textinput-input = abap_true.
ls_textinput-value = ls_dbinfo-clirel.
APPEND ls_textinput TO lt_database.
* DB releases
CLEAR ls_textinput.
ls_textinput-name = txt_db_releases.
ls_textinput-input = abap_true.
ls_textinput-value = ls_dbinfo-releases.
APPEND ls_textinput TO lt_database.
* DBSL version
CLEAR ls_textinput.
ls_textinput-name = txt_dbsl_version.
ls_textinput-input = abap_true.
ls_textinput-value = ls_dbinfo-dbsl_vers.
APPEND ls_textinput TO lt_database.
* DBSL Patch Level
ASSIGN COMPONENT 'PATCHLEVEL' OF STRUCTURE ls_dbinfo
TO .
IF IS ASSIGNED.
CLEAR ls_textinput.
ls_textinput-name = txt_dbsl_patch_level.
ls_textinput-input = abap_true.
ls_textinput-value = .
APPEND ls_textinput TO lt_database.
ENDIF.
*System information
* IP address
CLEAR ls_textinput.
ls_textinput-name = txt_ip_address.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'IP address'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_system.
* SAP versions
CLEAR ls_textinput.
ls_textinput-name = txt_sap_versions.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'supported SAP vers.'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_system.
* Operating System
CLEAR ls_textinput.
ls_textinput-name = txt_operating_system.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'valid OP system'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_system.
* OP release
CLEAR ls_textinput.
ls_textinput-name = txt_op_release.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'OP system release'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_system.
*HTML
PERFORM html_main_popupheader
USING
txt_component_information
CHANGING
lt_html.
* Content
PERFORM html_add_box1ti_2tivernodiv
USING
txt_kernel_information___2
lt_kernel
txt_database_information
lt_database
txt_system_information
lt_system
CHANGING
lt_html.
* Footer
PERFORM html_main_popupfooter
CHANGING lt_html.
*Download
PERFORM download
USING
lt_html
'MENU'
'SYSTEM'
'KERNEL'
gc_extension_htm
abap_false.
ENDFORM. "system_kernel
*-----------------------------------------------------------------------
* status System Status
*-----------------------------------------------------------------------
FORM system_status.
DATA:
ls_textinput TYPE st_textinput,
lt_usage_data_r TYPE it_textinput,
lt_usage_data_l TYPE it_textinput,
lt_repository_data TYPE it_textinput,
lt_sap_system_data TYPE it_textinput,
lt_host_data TYPE it_textinput,
lt_database_data TYPE it_textinput,
lt_html TYPE it_string,
ls_last_logon TYPE st_last_logon,
l_name TYPE ad_namtext,
l_laiso TYPE laiso,
l_sptxt TYPE sptxt,
l_title TYPE rs38m-repti,
l_date TYPE sydatum,
l_db_release(10) TYPE c,
l_servername(40) TYPE c,
l_unicode TYPE c,
l_exists TYPE flag,
l_ttext TYPE ttext_stct,
l_stext(40) TYPE c,
l_repid TYPE syrepid,
lt_list TYPE STANDARD TABLE OF msxxlist.
FIELD-SYMBOLS:
TYPE msxxlist.
*Last logon
GET PARAMETER ID 'US2' FIELD ls_last_logon.
*Usage data
* Client
CLEAR ls_textinput.
ls_textinput-name = txt_client.
ls_textinput-input = abap_true.
ls_textinput-value = sy-mandt.
APPEND ls_textinput TO lt_usage_data_l.
* User
CLEAR ls_textinput.
ls_textinput-name = txt_user.
ls_textinput-input = abap_true.
ls_textinput-value = sy-uname.
PERFORM get_user
USING sy-uname
CHANGING l_name.
ls_textinput-value_text = l_name.
APPEND ls_textinput TO lt_usage_data_l.
* Language
CLEAR ls_textinput.
ls_textinput-name = txt_language.
ls_textinput-input = abap_true.
PERFORM get_spras
USING sy-langu
CHANGING l_laiso l_sptxt.
ls_textinput-value = l_laiso.
ls_textinput-value_text = l_sptxt.
APPEND ls_textinput TO lt_usage_data_l.
* Previous logon
CLEAR ls_textinput.
ls_textinput-name = txt_previous_logon.
ls_textinput-input = abap_true.
ls_textinput-has_value_ext = abap_true.
PERFORM get_date
USING ls_last_logon-date
CHANGING ls_textinput-value.
PERFORM get_time
USING ls_last_logon-time
CHANGING ls_textinput-value_ext.
APPEND ls_textinput TO lt_usage_data_r.
* Logon
CLEAR ls_textinput.
ls_textinput-name = txt_logon.
ls_textinput-input = abap_true.
ls_textinput-has_value_ext = abap_true.
PERFORM get_date
USING ls_last_logon-date_now
CHANGING ls_textinput-value.
PERFORM get_time
USING ls_last_logon-time_now
CHANGING ls_textinput-value_ext.
APPEND ls_textinput TO lt_usage_data_r.
* System time
CLEAR ls_textinput.
ls_textinput-name = txt_system_time.
ls_textinput-input = abap_true.
ls_textinput-has_value_ext = abap_true.
PERFORM get_date
USING sy-datum
CHANGING ls_textinput-value.
PERFORM get_time
USING sy-uzeit
CHANGING ls_textinput-value_ext.
APPEND ls_textinput TO lt_usage_data_r.
*SAP data - Repository data
l_repid = sy-repid.
* Transition
CLEAR ls_textinput.
ls_textinput-name = txt_transaction.
ls_textinput-input = abap_true.
ls_textinput-value = sy-tcode.
SELECT SINGLE ttext FROM tstct INTO l_ttext
WHERE sprsl = sy-langu
AND tcode = sy-tcode.
ls_textinput-value_text = l_ttext.
APPEND ls_textinput TO lt_repository_data.
* Program (screen)
CLEAR ls_textinput.
ls_textinput-name = txt_program_screen.
ls_textinput-input = abap_true.
ls_textinput-value = l_repid.
CALL FUNCTION 'PROGRAM_TITLE'
EXPORTING
program = l_repid
language = sy-langu
IMPORTING
title = l_title.
ls_textinput-value_text = l_title.
APPEND ls_textinput TO lt_repository_data.
* Screen number
CLEAR ls_textinput.
ls_textinput-name = txt_screen_number.
ls_textinput-input = abap_true.
ls_textinput-value = sy-dynnr.
APPEND ls_textinput TO lt_repository_data.
* Program (GUI)
CLEAR ls_textinput.
ls_textinput-name = txt_program_gui.
ls_textinput-input = abap_true.
ls_textinput-value = l_repid.
CALL FUNCTION 'PROGRAM_TITLE'
EXPORTING
program = l_repid
language = sy-langu
IMPORTING
title = l_title.
ls_textinput-value_text = l_title.
APPEND ls_textinput TO lt_repository_data.
* GUI status
CLEAR ls_textinput.
ls_textinput-name = txt_gui_status.
ls_textinput-input = abap_true.
ls_textinput-value = sy-pfkey.
APPEND ls_textinput TO lt_repository_data.
*SAP data - SAP System data
* Component version
CLEAR ls_textinput.
ls_textinput-name = txt_component_version.
ls_textinput-input = abap_true.
SELECT SINGLE stext FROM cvers_txt INTO l_stext
WHERE langu = sy-langu.
IF sy-subrc <> 0.
SELECT SINGLE stext FROM cvers_txt INTO l_stext
WHERE langu = 'EN'.
ENDIF.
ls_textinput-value = l_stext.
APPEND ls_textinput TO lt_sap_system_data.
* Space row
CLEAR ls_textinput.
ls_textinput-space = abap_true.
APPEND ls_textinput TO lt_sap_system_data.
* Installation number
CLEAR ls_textinput.
ls_textinput-name = txt_installation_number.
ls_textinput-input = abap_true.
CALL FUNCTION 'SLIC_GET_LICENCE_NUMBER'
IMPORTING
license_number = ls_textinput-value.
APPEND ls_textinput TO lt_sap_system_data.
* License expiration
CLEAR ls_textinput.
ls_textinput-name = txt_license_expiration.
ls_textinput-input = abap_true.
CALL FUNCTION 'SLIC_GET_LICENCE_DATE'
IMPORTING
licence_date = l_date.
PERFORM get_date
USING l_date
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_sap_system_data.
* Unicode System
PERFORM get_fuba_exists
USING 'SLDAG_CHECK_FOR_UNICODE'
CHANGING l_exists.
IF l_exists = abap_true.
CLEAR ls_textinput.
ls_textinput-name = txt_unicode_system.
ls_textinput-input = abap_true.
CALL FUNCTION 'SLDAG_CHECK_FOR_UNICODE'
IMPORTING
unicode = l_unicode.
IF l_unicode = 1.
ls_textinput-value = txt_yes.
ELSE.
ls_textinput-value = txt_no.
ENDIF.
APPEND ls_textinput TO lt_sap_system_data.
ENDIF.
*Host data
* Operating system
CLEAR ls_textinput.
ls_textinput-name = txt_operating_system.
ls_textinput-input = abap_true.
ls_textinput-value = sy-opsys.
APPEND ls_textinput TO lt_host_data.
* Machine type
CLEAR ls_textinput.
ls_textinput-name = txt_machine_type.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'machine type'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_host_data.
* Server name
CLEAR ls_textinput.
ls_textinput-name = txt_server_name.
ls_textinput-input = abap_true.
***
CALL FUNCTION 'TH_SERVER_LIST'
TABLES
list = lt_list
EXCEPTIONS
OTHERS = 1.
READ TABLE lt_list ASSIGNING INDEX 1.
IF IS ASSIGNED.
l_servername = -name.
ELSE.
* call 'C_SAPGPARAM'
* id 'NAME' field 'rdisp/myname'
* id 'VALUE' field l_servername.
* if sy-subrc <> 0.
CLEAR l_servername.
ENDIF.
ls_textinput-value = l_servername.
APPEND ls_textinput TO lt_host_data.
* Platform ID
CLEAR ls_textinput.
ls_textinput-name = txt_platform_id.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'SAP system id'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_host_data.
*Database data
* Database system
CLEAR ls_textinput.
ls_textinput-name = txt_database_system.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'database system'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_database_data.
* Release
CLEAR ls_textinput.
ls_textinput-name = txt_release.
ls_textinput-input = abap_true.
CALL FUNCTION 'DB_GET_RELEASE'
IMPORTING
release = l_db_release.
ls_textinput-value = l_db_release.
APPEND ls_textinput TO lt_database_data.
* Name
CLEAR ls_textinput.
ls_textinput-name = txt_name.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'database name'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_database_data.
* Host
CLEAR ls_textinput.
ls_textinput-name = txt_host.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'database host'
CHANGING ls_textinput-value.
ls_textinput-value = sy-host.
TRANSLATE ls_textinput-value TO UPPER CASE.
APPEND ls_textinput TO lt_database_data.
* Owner
CLEAR ls_textinput.
ls_textinput-name = txt_owner.
ls_textinput-input = abap_true.
PERFORM get_version_info
USING 'database owner'
CHANGING ls_textinput-value.
APPEND ls_textinput TO lt_database_data.
*HTML
PERFORM html_main_popupheader
USING
txt_status
CHANGING
lt_html.
* Content
PERFORM html_add_box1tidbl_box2ti_2tix
USING
txt_usage_data
lt_usage_data_l
lt_usage_data_r
txt_sap_data
txt_repository_data
txt_sap_system_data
lt_repository_data
lt_sap_system_data
txt_host_data
txt_database_data
lt_host_data
lt_database_data
CHANGING
lt_html.
* Footer
PERFORM html_main_popupfooter
CHANGING lt_html.
*Download
PERFORM download
USING
lt_html
'MENU'
'SYSTEM'
'STATUS'
gc_extension_htm
abap_false.
ENDFORM. "system_status