[ABAP] User-Logondaten lesen

DATA: lv_uslogond TYPE uslogond.

* Benutzer: Lesen Logondaten aus Puffer
CALL FUNCTION 'SUSR_USER_LOGONDATA_GET'
  EXPORTING
    user_name           = sy-uname
  IMPORTING
    user_logondata      = lv_uslogond
  EXCEPTIONS
    user_name_not_exist = 1
    OTHERS              = 2.

IF sy-subrc = 0.
  cl_demo_output=>write_data( lv_uslogond ).

* HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'User-Loon-Daten'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.
ENDIF.

[ABAP] SAPscript-Texte: Clusterdaten ohne READ_TEXT direkt aus Tabelle STXL lesen

TYPES: BEGIN OF ty_s_stxl_raw,
         clustr TYPE stxl-clustr,
         clustd TYPE stxl-clustd,
       END OF ty_s_stxl_raw.

TYPES: ty_t_stxl_raw TYPE STANDARD TABLE OF ty_s_stxl_raw.

PARAMETERS: p_tdobj TYPE ttxob-tdobject DEFAULT 'TEXT'.
PARAMETERS: p_tdname TYPE stxh-tdname MATCHCODE OBJECT icl_stxh DEFAULT 'ADDRESS'.
PARAMETERS: p_tdid TYPE ttxid-tdid DEFAULT 'ST'.

START-OF-SELECTION.

* STXD SAPscript Text-Datei Header
  SELECT FROM stxh
    FIELDS
      tdname,
      tdobject,
      tdid
    WHERE tdobject = @p_tdobj
      AND tdname   = @p_tdname
      AND tdid     = @p_tdid
      AND tdspras  = @sy-langu
    INTO TABLE @DATA(it_stxh).

  IF sy-subrc = 0.

* STXD SAPscript Text-Datei Lines
    SELECT FROM stxl
      FIELDS
        tdname,
        clustr,
        clustd
      FOR ALL ENTRIES IN @it_stxh
      WHERE relid    = 'TX'
        AND tdobject = @it_stxh-tdobject
        AND tdname   = @it_stxh-tdname
        AND tdid     = @it_stxh-tdid
        AND tdspras  = @sy-langu
      INTO TABLE @DATA(it_stxl)
      PACKAGE SIZE 3000. " Datenmenge bei SELECT begrenzen, um Laufzeitfehler zu vermeiden

      DATA: it_stxl_raw TYPE ty_t_stxl_raw.
      CLEAR: it_stxl_raw.

      LOOP AT it_stxl ASSIGNING FIELD-SYMBOL(<stxl>).

        APPEND VALUE ty_s_stxl_raw( clustr = <stxl>-clustr
                                    clustd = <stxl>-clustd ) TO it_stxl_raw.

        DATA(it_lines) = VALUE tline_t( ).

* Zeilen aus Datencluster lesen
        IMPORT tline = it_lines FROM INTERNAL TABLE it_stxl_raw.

        LOOP AT it_lines ASSIGNING FIELD-SYMBOL(<l>).
          WRITE: / <stxl>-tdname, <l>-tdformat, <l>-tdline.
        ENDLOOP.

      ENDLOOP.

    ENDSELECT.

  ENDIF.

Links

[ABAP] Benutzerparameter lesen/setzen

* Benutzerparameter
DATA: lv_parid TYPE memoryid VALUE 'ME_USE_GRID'.
* Parameterwert
DATA: lv_parvalue TYPE xuvalue.

* Benutzerparameter lesen
CALL FUNCTION 'ACC_USER_PARAMETER_GET'
  EXPORTING
    i_param_id    = lv_parid
  IMPORTING
    e_param_value = lv_parvalue.

WRITE: / lv_parvalue.

* Benutzerparameter setzen
CALL FUNCTION 'ACC_USER_PARAMETER_SET'
  EXPORTING
    i_param_id          = lv_parid
    i_param_value       = lv_parvalue.

Links

[ABAP] Workflow: Inhalt (Workitems) der MyInbox eines Users auflisten

PARAMETERS: p_user TYPE sy-uname DEFAULT sy-uname.

START-OF-SELECTION.

  DATA: it_worklist TYPE STANDARD TABLE OF swr_wihdr WITH DEFAULT KEY.
  DATA: it_worklist_attributes TYPE STANDARD TABLE OF swr_wiaddattr WITH DEFAULT KEY.
  DATA: it_message_lines TYPE STANDARD TABLE OF swr_messag WITH DEFAULT KEY.
  DATA: it_message_struct TYPE STANDARD TABLE OF swr_mstruc WITH DEFAULT KEY.

* Workflow-Schnittstellen: Worklist für Benutzer aufbauen
  CALL FUNCTION 'SAP_WAPI_CREATE_WORKLIST'
    EXPORTING
      user                = p_user
*     LANGUAGE            = SY-LANGU
*     TRANSLATE_WI_TEXT   = ' '
      read_task_text      = abap_true
*     IM_TASK_FILTER      =
*     IM_STATUS_FILTER    =
*     PASSIVE_SUBSTITUTION = ' '
*     READ_LATEST_END     = ' '
*     TIME_ZONE           =
*     IM_WITEXT_FILTER    =
*     IM_WILED_FILTER     =
*     IM_WIPRIO_FILTER    =
*     IM_WICREA_FILTER    =
*     IM_OBJECT_FILTER    =
*     DO_COMMIT           = 'X'
* IMPORTING
*     RETURN_CODE         =
*     WORKITEMS_TRANSLATED       =
    TABLES
      worklist            = it_worklist
      worklist_attributes = it_worklist_attributes
      message_lines       = it_message_lines
      message_struct      = it_message_struct.

  cl_demo_output=>write_data( it_message_lines ).
  cl_demo_output=>write_data( it_message_struct ).
  cl_demo_output=>write_data( it_worklist ).
  cl_demo_output=>write_data( it_worklist_attributes ).

*   HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

*   Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'MyInbox'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

*   cl_gui_container=>default_screen erzwingen
  WRITE: space.

Links

[ABAP] Workflow: Workitems zu Objekt

* Einkaufsbelegnummer
PARAMETERS: p_po TYPE ekko-ebeln.
* Typ von Objekten in Persistenten Objektreferenzen, hier z.B. Klasse für Bestellungen
PARAMETERS: p_type TYPE sibftypeid DEFAULT 'CL_MM_PUR_WF_OBJECT_PO'.
* Kategorie von Objekten in Persistenten Objektreferenzen, hier z.B. Typ "Klassen"
PARAMETERS: p_catid TYPE sibfcatid DEFAULT 'CL'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_type.

* Sucht Objekttypen zu einem Muster
  DATA(it_objtypes) = cl_swf_utl_def_services=>query_objects( EXPORTING im_objcateg = p_catid
                                                                        im_objtype  = '*' ).

  DATA: it_return TYPE TABLE OF ddshretval.

* eigene Suchhilfe für Auswahl der Objekte anzeigen
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'TYPEID'      " Spalte der internen Tabelle bei value_tab
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'P_TYPE'      " Name des Dynpro-Feldes für die automatische Werterückgabe
      value_org       = 'S'           " Werteübergabe: C: zellenweise, S: strukturiert
      window_title    = 'Auswahl'
    TABLES
      value_tab       = it_objtypes   " Übergabe-Tabelle mit Werten für die Anzeige und Auswahl
      return_tab      = it_return     " Rückgabe-Tabelle mit den ausgewählten (geklickten) Elementen
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.

  IF sy-subrc = 0.
    IF lines( it_return ) > 0.
      MESSAGE it_return[ 1 ]-fieldval TYPE 'S'.
    ENDIF.
  ENDIF.

START-OF-SELECTION.

  DATA(lv_object_por) = VALUE sibflporb( instid = CONV #( p_po )
                                         typeid = p_type
                                         catid  = p_catid ).
  DATA: lv_return_code TYPE sy-subrc.
  DATA: it_task_filter TYPE STANDARD TABLE OF swr_task WITH DEFAULT KEY.
  DATA: it_worklist    TYPE STANDARD TABLE OF swr_wihdr WITH DEFAULT KEY.

* Workflow-Schnittstellen: Workitems zu Objekt
  CALL FUNCTION 'SAP_WAPI_WORKITEMS_TO_OBJECT'
    EXPORTING
      object_por  = lv_object_por
    IMPORTING
      return_code = lv_return_code
    TABLES
      task_filter = it_task_filter
      worklist    = it_worklist.

  cl_demo_output=>write_data( lv_object_por ).
  cl_demo_output=>write_data( lv_return_code ).
  cl_demo_output=>write_data( it_task_filter ).
  cl_demo_output=>write_data( it_worklist ).

* HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'Workflow'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.

[ABAP] Suchhilfe zu DDIC-Feld bestimmen

DATA: lv_shlp_descr TYPE shlp_descr.

* Die einem DDIC-Feld zugeordnete Suchhilfe bestimmen
CALL FUNCTION 'F4IF_DETERMINE_SEARCHHELP'
  EXPORTING
    tabname           = 'MARA'
    fieldname         = 'MATNR'
    selection_screen  = abap_true " auch die Wertetabelle der Domäne für die F4-Hilfe heranziehen
  IMPORTING
    shlp              = lv_shlp_descr
  EXCEPTIONS
    field_not_found   = 1
    no_help_for_field = 2
    inconsistent_help = 3
    OTHERS            = 4.

IF sy-subrc = 0.
* Hier Objekte für die Ausgabe hinzufügen
  cl_demo_output=>write_data( lv_shlp_descr ).

* HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'Suchhilfe'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.
ENDIF.

[ABAP] Liste aller Umgebungsvariablen

DATA(it_env) = VALUE spfl_environment_list_t( ).
* Get a list of all environment variables
IF cl_spfl_environment=>get_list( IMPORTING env = it_env ) = 0.
* Hier Objekte für die Ausgabe hinzufügen
  cl_demo_output=>write_data( it_env ).

*   HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

*   Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'Daten'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

*   cl_gui_container=>default_screen erzwingen
  WRITE: space.
ENDIF.

[ABAP] Systeminformationen anzeigen

DATA: lv_rfcsi_export TYPE rfcsi.
DATA: lv_current_resources TYPE sy-index.
DATA: lv_maximal_resources TYPE sy-index.
DATA: lv_recommended_delay TYPE sy-index.
DATA: lv_s4_hana TYPE char1.
DATA: lv_fast_ser_vers TYPE int4.
DATA: lv_fqhn	TYPE string.

* Liefert versch. Informationen über das System.
CALL FUNCTION 'RFC_SYSTEM_INFO'
  IMPORTING
    rfcsi_export      = lv_rfcsi_export
    current_resources = lv_current_resources
    maximal_resources = lv_maximal_resources
    recommended_delay = lv_recommended_delay
    s4_hana           = lv_s4_hana
    fast_ser_vers     = lv_fast_ser_vers
    fqhn              = lv_fqhn.

cl_demo_output=>write_data( lv_rfcsi_export ).
cl_demo_output=>write_data( lv_current_resources ).
cl_demo_output=>write_data( lv_maximal_resources ).
cl_demo_output=>write_data( lv_recommended_delay ).
cl_demo_output=>write_data( lv_s4_hana ).
cl_demo_output=>write_data( lv_fast_ser_vers ).
cl_demo_output=>write_data( lv_fqhn ).

* HTML-Code vom Demo-Output holen
DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
cl_abap_browser=>show_html( EXPORTING title       = 'RFC_SYSTEM_INFO'
                                      html_string = lv_html
                                      container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
WRITE: space.

[ABAP] Ermittlung der Anmeldedaten incl. des Rechnernamens

* Ermittlung der Anmeldedaten incl. des Rechnernamens
TRY.
    DATA(lv_server_info) = NEW cl_server_info( ).

* Server related information, Liste aller Sessions
*  SERVER_NAME Name des Applikations-Servers
*  LOGON_HDL Anmeldungs-Schlüssel
*  LOGON_ID Anmeldungs-ID
*  SESSION_HDL Backend-Session-Handle
*  USER_NAME Benutzer-ID
*  LOGON_TYPE Typ der Anmeldung
*  LOGON_SUB_TYPE Zusatzinformation zum Anmeldungs-Typ
*  TENANT Name des Mandanten
*  REQUEST_TIME Zeit-Stempel (Anzahl Sekunden seit dem 1.1.1979)
*  MEMORY In Extended Memory (EM) belegter Speicher
*  LOCATION_INFO Informationen über den Client-Rechner des Benutzers
*  APPLICATION Anwendung
*  APPLICATION_INFO Zusatzinformationen zur Anwendung
*  RFC_HDL Conversation-ID
*  RFC_TYPE RFC Typ
*  TRACE Trace-Level
*  PRIORITY Priorität
*  MEMORY_BRUTTO In Extended Segments (ES) belegter Speicher
*  MEMORY_ABAP Von der ABAP-VM belegter Speicher
*  MEMORY_HYPER Größe des Session übergreifenden Speichers
*  MEMORY_HEAP In Prozess lokalem Heap belegter Speicher
*  OPEN_TASKS Offene Aufgaben (open Tasks) dieser Session
*  ACT_PROGRAM Name des Hauptprogrammes
*  WEBSOCKET_HANDLE WebSocket-Handle

    DATA(it_session_list) = lv_server_info->get_session_list( tenant = sy-mandt ).

    cl_demo_output=>write_data( it_session_list ).
* HTML-Code vom Demo-Output holen
    DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
    cl_abap_browser=>show_html( EXPORTING title       = 'CL_SERVER_INFO'
                                          html_string = lv_html
                                          container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
    WRITE: space.

  CATCH cx_root INTO DATA(e_txt).
    WRITE: / e_txt->get_text( ).
ENDTRY.