[ABAP] Zwischenablage (Clipboard) verwenden

DATA: itab TYPE STANDARD TABLE OF sflight.
DATA: i_rc TYPE i.

...

* Export-Tabellen dürfen nicht generischen Typs und keine String-Tables sein
cl_gui_frontend_services=>clipboard_export( EXPORTING
                                              no_auth_check        = abap_true
                                            IMPORTING
                                              data                 = itab
                                            CHANGING
                                              rc                   = lv_rc
                                            EXCEPTIONS
                                              cntl_error           = 1
                                              error_no_gui         = 2
                                              not_supported_by_gui = 3
                                              OTHERS               = 4 ).

IF sy-subrc = 0.
  ...
ENDIF.

[ABAP] Popup-Dialog anzeigen

DATA: ret TYPE string.

* Ersetzt alle anderen obsoleten 'POPUP_TO_...' Funktionsbausteine
* kann für Ja, Nein, Abbrechen, Zurück, Weiter, Infos usw. genutzt werden
CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    titlebar              = 'Frage'
    text_question         = 'Alles klar?'
    display_cancel_button = abap_true
  IMPORTING
    answer                = ret.

CASE ret.
  WHEN '1'.
* Ja
  WHEN '2'.
* Nein
  WHEN 'A'.
* Abbruch
ENDCASE.

Weiterführender Link: Link

[ABAP] Fortschrittsanzeige anzeigen

Variante 1 (cl_progress_indicator)

PARAMETERS: p_times1 TYPE i DEFAULT 15.

DO p_times1 TIMES.
  cl_progress_indicator=>progress_indicate( i_text               = |Fortschritt { sy-index } / { p_times1 }|
                                            i_processed          = sy-index     " Wert
                                            i_total              = p_times1     " Maximum
                                            i_output_immediately = abap_true ). " true -> sofort, false -> aller 10s darstellen

  WAIT UP TO 1 SECONDS.
ENDDO.

Variante 2 (cl_akb_progress_indicator)

CONSTANTS: co_max TYPE i VALUE 1000000.

START-OF-SELECTION.
  DATA(o_progress) = cl_akb_progress_indicator=>get_instance( ).

  DO co_max TIMES.
    o_progress->display( force_display = abap_false
                         total         = co_max
                         processed     = sy-index
                         message       = 'Bitte warten...' ).
  ENDDO.

Variante 3 (SAPGUI_PROGRESS_INDICATOR)

DATA: index TYPE i.
DO 20 TIMES.
  index = sy-index * 5.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = index
      text       = 'Bitte warten ...'.

  WAIT UP TO 1 SECONDS.
ENDDO.

[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.