[ABAP] SAP-User zu einem Familiennamen suchen

TYPES: BEGIN OF ty_user,
         bname      TYPE usr21-bname,
         name_first TYPE adrp-name_first,
         name_last  TYPE adrp-name_last,
       END OF ty_user.

DATA: lv_nlast TYPE adrp-name_last.
DATA: it_user TYPE STANDARD TABLE OF ty_user.

SELECT-OPTIONS: so_nlast FOR lv_nlast.

START-OF-SELECTION.

  SELECT u~bname, a~name_first, a~name_last
    FROM adrp AS a
    INNER JOIN usr21 AS u
    ON a~persnumber = u~persnumber
    INTO CORRESPONDING FIELDS OF TABLE @it_user
    WHERE a~name_last IN @so_nlast.

  IF sy-subrc = 0.
    SORT: it_user BY bname.

    LOOP AT it_user ASSIGNING FIELD-SYMBOL(<fs_line>).
      WRITE: / <fs_line>-name_last, <fs_line>-name_first, <fs_line>-bname.
    ENDLOOP.
  ELSE.
    WRITE: / 'Keine Suchergebnisse.'.
  ENDIF.

[ABAP] SMTP-Email-Adresse von Benutzer (User) lesen

Variante 1 (Select)

PARAMETERS: p_uname TYPE usr21-bname.

SELECT u~bname,
       u~persnumber,
       u~addrnumber,
       a~smtp_addr
  FROM usr21 AS u
  INNER JOIN adr6 AS a  ON ( a~persnumber = u~persnumber AND a~addrnumber = u~addrnumber )
  INTO TABLE @DATA(it_userdata)
  WHERE u~bname = @p_uname.

LOOP AT it_userdata ASSIGNING FIELD-SYMBOL(<u>).
  WRITE:/ <u>-bname, <u>-smtp_addr.
ENDLOOP.

Variante 2 (Funktionsbaustein)

DATA: rc    TYPE                   sy-subrc,
      email TYPE                   string,
      err   TYPE STANDARD TABLE OF rpbenerr.

CALL FUNCTION 'HR_FBN_GET_USER_EMAIL_ADDRESS'
  EXPORTING
    user_id       = sy-uname
    reaction      = sy-msgty
  IMPORTING
    subrc         = rc
    email_address = email
  TABLES
    error_table   = err.

WRITE: / sy-uname, email.