[ABAP] Serverinfo holen

TRY.
    DATA(o_server_info) = NEW cl_server_info( ).

    DATA(lv_startup_time) = o_server_info->get_startup_time( ).

    WRITE: / '       startup time:', lv_startup_time.

    WRITE: / '             worker:'.
    LOOP AT o_server_info->get_worker_list( ) ASSIGNING FIELD-SYMBOL(<w>).
      WRITE: / '                  ',  <w>-logon_id, <w>-logon_type, <w>-logon_hdl, <w>-application, <w>-user_name, <w>-main_program, <w>-wp_program.
    ENDLOOP.

    DATA(lv_release_info) = o_server_info->get_release_info( ).

    WRITE: / '        server name:', lv_release_info->server_name.
    WRITE: / '            release:', lv_release_info->release.
    WRITE: / '       compile date:', lv_release_info->compile_date.
    WRITE: / '       compile time:', lv_release_info->compile_time.
    WRITE: / '         patchlevel:', lv_release_info->patchlevel.
    WRITE: / '        patchnumber:', lv_release_info->patchnumber.
    WRITE: / '           sourceid:', lv_release_info->sourceid.
    WRITE: / 'compatibility_level:', lv_release_info->compatibility_level.
    WRITE: / '       make_variant:', lv_release_info->make_variant.
    WRITE: / '              dblib:', lv_release_info->dblib.
    WRITE: / '       supportlevel:', lv_release_info->supportlevel.

    WRITE: / '       supported OS:'.
    LOOP AT lv_release_info->supported_os ASSIGNING FIELD-SYMBOL(<os>).
      WRITE: / '                    ', <os>.
    ENDLOOP.

    WRITE: / '     supported ABAP:'.
    LOOP AT lv_release_info->supported_abap ASSIGNING FIELD-SYMBOL(<a>).
      WRITE: / '                    ', <a>.
    ENDLOOP.

    WRITE: / '       supported DB:'.
    LOOP AT lv_release_info->supported_db ASSIGNING FIELD-SYMBOL(<db>).
      WRITE: / '                    ', <db>.
    ENDLOOP.

    WRITE: / '      patch comment:'.
    LOOP AT lv_release_info->patchcomment ASSIGNING FIELD-SYMBOL(<p>).
      WRITE: / '                    ', <p>.
    ENDLOOP.
  CATCH cx_root INTO DATA(e_txt).
    WRITE: / e_txt->get_text( ).
ENDTRY.