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

[ABAP] Popup zur Auswahl von Monat und Jahr anzeigen

DATA: lv_actmonth TYPE isellist-month.
DATA: lv_sel_month TYPE isellist-month.
DATA: lv_subrc TYPE sy-subrc.
  
lv_actmonth = |{ 2016 }{ 06 }|. " Eingabemonat: 06/2016

CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
  EXPORTING
    actual_month               = lv_actmonth
*     factory_calendar           = 'X'
*     holiday_calendar           = 'X'
    language                   = sy-langu
    start_column               = 8
    start_row                  = 5
  IMPORTING
    selected_month             = lv_sel_month
    return_code                = lv_subrc
  EXCEPTIONS
    factory_calendar_not_found = 1
    holiday_calendar_not_found = 2
    month_not_found            = 3
    OTHERS                     = 4.
    
IF sy-subrc NE 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
  IF lv_subrc EQ 0.
    " ...
  ENDIF.
ENDIF.

[ABAP] Tag, Monat, Jahr zu Datumswert zusammenfügen

DATA: lv_date TYPE sy-datum.
DATA: lv_i_day TYPE cms_dte_oms_day.
DATA: lv_i_month TYPE cms_dte_oms_month.
DATA: lv_i_year TYPE cms_dte_oms_year.

lv_i_day = 01.
lv_i_month = 06.
lv_i_year = 2016.

CALL FUNCTION 'CMS_API_GENERAL_DDMMYY_TO_DATE'
  EXPORTING
    i_day   = lv_i_day
    i_month = lv_i_month
    i_year  = lv_i_year
  IMPORTING
    e_date  = lv_date.

[ABAP] Datumswert in Tag, Monat, Jahr zerlegen

DATA: lv_day TYPE char2.
DATA: lv_month TYPE char2.
DATA: lv_year TYPE char4.
DATA: lv_stext TYPE t247-ktx.
DATA: lv_ltext TYPE t247-ltx.
DATA: lv_userdate TYPE char10.
    
CALL FUNCTION 'HR_IN_GET_DATE_COMPONENTS'
  EXPORTING
    idate                         = sy-datum    " Eingabedatum
  IMPORTING
    day                           = lv_day
    month                         = lv_month
    year                          = lv_year
    stext                         = lv_stext
    ltext                         = lv_ltext
    userdate                      = lv_userdate " Datumsstring abhängig vom Userprofil
  EXCEPTIONS
    input_date_is_initial         = 1
    text_for_month_not_maintained = 2
    OTHERS                        = 3.

IF sy-subrc NE 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

[ABAP] Monatsnamen ermitteln (sprachabhängig)

DATA: it_month_names TYPE STANDARD TABLE OF t247.
DATA: rc TYPE sy-subrc.

CALL FUNCTION 'MONTH_NAMES_GET'
  EXPORTING
    language              = sy-langu
  IMPORTING
    return_code           = rc
  TABLES
    month_names           = it_month_names
  EXCEPTIONS
    month_names_not_found = 1
    OTHERS                = 2.

IF sy-subrc NE 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
  IF rc = 0.
    LOOP AT it_month_names INTO DATA(wa).
      WRITE: / wa-spras, wa-mnr, wa-ktx, wa-ltx.
    ENDLOOP.
  ENDIF.
ENDIF.

[ABAP] Popup mit einspaltige Auswahl (Tabelle) anzeigen

TYPES: BEGIN OF t_line,
         vorname TYPE char255,
         name    TYPE char255,
         age     TYPE i,
       END OF t_line.

DATA: it_selection TYPE STANDARD TABLE OF t_line.
DATA: lv_choise TYPE i.

it_selection = VALUE #( ( vorname = 'Horst' name = 'Lehmann' age = '70' )
                        ( vorname = 'Udo' name = 'Beyer' age = '50' )
                        ( vorname = 'Heinz' name = 'Schmidt' age = '50' ) ).

CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
  EXPORTING
    endpos_col   = 20
    endpos_row   = 20
    startpos_col = 3
    startpos_row = 3
    titletext    = 'Auswahl'
  IMPORTING
    choise       = lv_choise
  TABLES
    valuetab     = it_selection
  EXCEPTIONS
    break_off    = 1
    OTHERS       = 2.

IF sy-subrc <> 0.
ELSE.
  IF lv_choise EQ 0.
    WRITE 'Nichts ausgewählt.'.
  ELSE.
    WRITE: / 'Zeile: ', lv_choise.
    WRITE: / 'Wert:', it_selection[ lv_choise ]-name.
  ENDIF.
ENDIF.