This is a test message to test the length of the message box.
Login
ABAP Quick popup online users
Created by Software-Heroes

ABAP Quick - Popup to all users

803

Here's a quick tip on how you can read all current users who are logged into the system, what they are doing and how you can send them a personal message.



Send an instant message to every logged in user in the system? With today's little tip that should not be a problem for you anymore. Unlike system messages, the messages are displayed immediately and are not displayed only after a user action.

 

Determination of the users

For the determination of the online users there is a special kernel function with which one you can read in the users. There are two ways to do this.

In the system there is an example of SAP, which is still based on the old ABAP. Here they have worked with a header line and only a part of the users are read. Below is the example from the 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*.

 

The more modern approach without using a header line, reads also more users, including technical connections and RFC users. With this variant you have to filter more values to get the real online users.


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.

 

Generation of the popup

With the simple function module TH_POPUP you can create the message for the user or a special message to a selected user ID. To create popup's for all users, the function module have to be called in a loop.


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

" Create the popup
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.

 

The popup displays the system from which it was sent, as well as the user ID. The message comes from the SAP GUI and not directly from ABAP, so it looks like a normal Windows window.

ABAP example for popup

 

Conclusion

With just a few commands and the right function module, this function can easily be implemented by you. The notification should be used judiciously, because it can also cause some harm to the users when the popups occur in large numbers and thus interfere.


Included topics:
QuickPopupOnline-User
Comments (0)



And further ...

Are you satisfied with the content of the article? We post new content in the ABAP area every Friday and irregularly in all other areas. Take a look at our tools and apps, we provide them free of charge.


ABAP in Practice - String Processing

Category - ABAP

In this practical example we look at the string processing to determine the CDS names in CamelCase and how you can implement this with ABAP.

10/15/2024

ABAP in Practice - Test Driven Development

Category - ABAP

How does TDD actually work in practice and are there simple examples for learning in ABAP? In this exercise we will look at the practical part.

09/24/2024

ABAP in Practice - Merge data sets

Category - ABAP

How do we merge two different data sets in ABAP, especially with regard to Modern ABAP? A practical task for this topic.

09/17/2024

ABAP in Practice - Modern ABAP

Category - ABAP

In this small task we look at existing classic ABAP source code and try to optimize it according to Modern ABAP.

08/27/2024

ABAP Quick - Performance Data Filtering

Category - ABAP

Which statement do you use in ABAP to filter internal tables and is it performant? Read more in this article.

08/13/2024