[ABAP] Angemeldete User eines Servers auslesen und IP-Adressen ermitteln

* lokale Server ermitteln
DATA: it_server_list_v4 TYPE STANDARD TABLE OF msxxlist WITH DEFAULT KEY.
DATA: it_server_list_v6 TYPE STANDARD TABLE OF msxxlist_v6 WITH DEFAULT KEY.

CALL FUNCTION 'TH_SERVER_LIST'
  TABLES
    list           = it_server_list_v4
    list_ipv6      = it_server_list_v6
  EXCEPTIONS
    no_server_list = 1
    OTHERS         = 2.

IF sy-subrc = 0.

  LOOP AT it_server_list_v6 ASSIGNING FIELD-SYMBOL(<s>).

    WRITE: / |{ <s>-host } ({ <s>-hostaddr_v4_str })|.

    DATA: it_users TYPE STANDARD TABLE OF uinfo WITH DEFAULT KEY.

* Angemeldete User einer SAP-Instanz holen
    CALL FUNCTION 'THUSRINFO' DESTINATION <s>-name
      TABLES
        usr_tabl              = it_users
      EXCEPTIONS
        system_failure        = 1
        communication_failure = 2
        OTHERS                = 3.

    IF sy-subrc = 0.
* Name, Terminal, IP-Adresse ausgeben
      LOOP AT it_users ASSIGNING FIELD-SYMBOL(<u>).

        DATA(lv_ip_user) = ||.

* IP besteht aus 4x HEX-Wert
        IF xstrlen( <u>-hostadr ) = 4.
* jeder Hex-Wert wird in Integer konvertiert
          lv_ip_user = |{ CONV i( <u>-hostadr+0(1) ) }.{ CONV i( <u>-hostadr+1(1) ) }.{ CONV i( <u>-hostadr+2(1) ) }.{ CONV i( <u>-hostadr+3(1) ) }|.
        ENDIF.

        WRITE: / '    ', <u>-bname, <u>-term, lv_ip_user.

      ENDLOOP.
    ENDIF.

  ENDLOOP.
ENDIF.

[ABAP] Angemeldete Benutzer eines Application-Servers auflisten

DATA: it_uinfo TYPE TABLE OF uinfo.
DATA: it_usrinfo TYPE TABLE OF usrinfo.

CALL FUNCTION 'TH_USER_LIST'
  TABLES
    list = it_uinfo       " wenn auskommentiert, dann wird usrlist zurückgegeben, sonst nur list
    usrlist = it_usrinfo.

LOOP AT it_uinfo INTO DATA(wa_uinfo).
  WRITE: / wa_uinfo-tid,
          wa_uinfo-mandt,
          wa_uinfo-bname,
          wa_uinfo-tcode,
          wa_uinfo-term,
          wa_uinfo-zeit,
          wa_uinfo-master,
          wa_uinfo-hostadr,
          wa_uinfo-trace,
          wa_uinfo-extmodi,
          wa_uinfo-intmodi,
          wa_uinfo-type,
          wa_uinfo-stat,
          wa_uinfo-protocol,
          wa_uinfo-guiversion,
          wa_uinfo-rfc_type.
ENDLOOP.

LOOP AT it_usrinfo INTO DATA(wa_usrinfo).
  WRITE: / wa_usrinfo-tid,
          wa_usrinfo-mandt,
          wa_usrinfo-bname,
          wa_usrinfo-tcode,
          wa_usrinfo-term,
          wa_usrinfo-zeit,
          wa_usrinfo-master,
          wa_usrinfo-trace,
          wa_usrinfo-extmodi,
          wa_usrinfo-intmodi,
          wa_usrinfo-type,
          wa_usrinfo-stat,
          wa_usrinfo-protocol,
          wa_usrinfo-guiversion,
          wa_usrinfo-rfc_type,
          wa_usrinfo-hostaddr.
ENDLOOP.