This is a test message to test the length of the message box.
Login
ABAP Tipp Popup Onlineuser
Erstellt von Software-Heroes

ABAP Tipp - Popup an alle Onlineuser

334

Heute mal ein kurzer Tipp wie du alle aktuellen User auslesen kannst die im System angemeldet sind, was sie so treiben und wie du ihnen eine persönliche Nachricht zukommen lassen kannst.

Werbung

Jedem angemeldeten User im System eine Instant Nachricht zukommen lassen? Mit unserem heutigen kleinen Tipp sollte das für dich kein Problem mehr sein. Anders als Systemmeldungen werden die Nachrichten sofort angezeigt und nicht erst nach einer Useraktion eingeblendet.

 

Ermittlung der User

Für die Ermittlung der Online-User gibt es eine spezielle Kernel Funktion, mit der man die User einlesen kann. Dabei gibt es zwei Wege dies zu tun.

Im System gibt es dazu ein Beispiel von SAP, welches noch auf dem alten ABAP basiert. Hier wird mit einer Kopfzeile gearbeitet und nur ein Teil der User eingelesen. Im Folgenden das Beispiel aus dem Standard.


DATA: BEGIN OF usr_tabl OCCURS 10.
        INCLUDE STRUCTURE uinfo.
DATA: END OF usr_tabl.
DATA: opcode TYPE x VALUE 2.

CALL 'ThUsrInfo' 
 ID 'OPCODE' FIELD opcode
 ID 'TAB' FIELD usr_tabl-*sys*.

 

Der modernere Ansatz ohne Verwendung einer Kopfzeile und ohne den Zusatz der Kopfzeile liest mehr User ein, auch technische Verbindungen und RFC User. Mit dieser Variante musst du mehr Werte filtern, um die realen User zu ermitteln.


DATA: 
  lt_user TYPE STANDARD TABLE OF uinfo,
  ld_opcode TYPE x VALUE 2.

CALL 'ThUsrInfo' 
 ID 'OPCODE' FIELD ld_opcode
 ID 'TAB' FIELD lt_user.

 

Erzeugung des Popup

Mit dem einfachen Funktionsbaustein TH_POPUP kannst du am Ende dann die Nachricht an die User ausgeben oder eine spezielle Nachricht an eine gewählte User-ID. Zur Ausgabe aller User, muss der Baustein in einem Loop aufgerufen werden.


DATA: 
  ld_message TYPE c LENGTH 128 VALUE 'This is my instant message to you!'.

" Popup senden
CALL FUNCTION 'TH_POPUP'
  EXPORTING
    client         = sy-mandt
    user           = 'TEST_USER' "usr_tabl-bname
    message        = ld_message
  EXCEPTIONS
    user_not_found = 1.
IF sy-subrc <> 0.
ENDIF.

 

In der Anzeige des Popups wird das System eingeblendet von dem dieses aus gesendet wurde, ebenso wie die User-ID. Die Nachricht erfolgt aus dem SAP GUI und nicht direkt aus ABAP, damit sieht es wie ein normales Windows Fenster aus.

ABAP Beispiel für Popup

 

Fazit

Mit einigen wenigen Befehlen und dem richtigen Funktionsbaustein kann diese Funktion einfach von dir umgesetzt werden. Die Benachrichtigung sollte überlegt eingesetzt werden, weil du damit auch einen gewissen Schaden bei den Usern verursachen kannst, wenn die Popups in hoher Anzahl auftreten und damit auch stören.


Enthaltene Themen:
TippPopupOnline-User
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Tipp - CLEAR right

Kategorie - ABAP

Richtig löschen? In diesem Artikel wollen wir uns einmal anschauen, wann es Sinn macht zu löschen und wie du effektiv vorgehen kannst.

12.05.2023

ABAP Tipp - Performance Kettensätze

Kategorie - ABAP

Schauen wir uns hier einmal die Performance beim Bilden von Kettensätzen mit DATA und FIELD-SYMBOL an. Welche Variante wird bei der Performance vorn liegen?

28.04.2023

ABAP Tipp - Adobe Formulare zu groß

Kategorie - ABAP

In diesem kleinen Tipp wollen wir uns anschauen, wieso im schlechtesten Fall Adobe Formulare größer werden, als sie eigentlich sein sollten.

18.11.2022

ABAP - ALV in 2022 noch relevant?

Kategorie - ABAP

Heute mal die scherzhafte Frage, benötigen wir im Jahr 2022 noch Reports die ALV Ausgaben erzeugen? Der Frage wollen wir in diesem Artikel einmal nachgehen.

01.07.2022

ABAP im Wandel

Kategorie - ABAP

Die Programmiersprache ABAP ist bereits seit Jahren im Wandel und modernisiert sich in verschiedenen Konzepten. In diesem Artikel schauen wir uns das einmal im Detail an.

24.06.2022