📬 SAP ABAP 向用户发送系统级消息

195 阅读1分钟

前言

使用 SM02 维护的系统消息,对于所有登录用户的用户都会收到

在某种情况下,我们也可以向特定的用户发送消息:这个功能可以通过 FM TH_POPUP 实现

TH_POPUP 会调用 Kernel 的功能,实现不同 User 间消息的传递


参考代码

注意:使用 TH_POPUP 是需要特定的权限的,所以调用 FUNC 前做一下 权限校验,但是看了下源码,官方已经做好了权限校验,所以这一部分可以忽略。

2022-10-19 181750.png

" 权限校验
*AUTHORITY-CHECK OBJECT 'S_ADMI_FCD'
*                ID 'S_ADMI_FCD' FIELD 'POPU'.
*IF sy-subrc <> 0.
*  MESSAGE 'NO AUTHORITY' TYPE 'S' DISPLAY LIKE 'E'.
*ENDIF.

" 调用 TH_POPUP FUNC 实现弹窗消息发送
CALL FUNCTION 'TH_POPUP'
  EXPORTING
    client         = '200'
    user           = '...'             " 接收用户的用户名
    message        = 'HELLO, WORLD!'
    message_len    = 0
    cut_blanks     = sy-langu
  EXCEPTIONS
    user_not_found = 1
    OTHERS         = 2.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno DISPLAY LIKE sy-msgty
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

效果展示

2022-10-19 134858.png


参考文章

参考链接