前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用ABAP给Netweaver上登录的其他用户发送消息

如何用ABAP给Netweaver上登录的其他用户发送消息

作者头像
Jerry Wang
发布2020-01-21 11:16:25
9490
发布2020-01-21 11:16:25
举报
代码语言:javascript
复制
REPORT zuser_com.

TYPES: tt_user_info TYPE STANDARD TABLE OF uinfo.
DATA: BEGIN OF ls_user_info.
         INCLUDE STRUCTURE uinfo AS info.
         DATA dest TYPE rfchosts-rfcdest.
DATA END OF ls_user_info.
DATA: lt_usr_liste TYPE tt_user_info,
      lt_total     LIKE STANDARD TABLE OF ls_user_info,
      lt_rfchosts  TYPE STANDARD TABLE OF rfchosts.
CONSTANTS: gc_user_name TYPE uinfo-bname VALUE 'User Name',
            gc_tcode     TYPE uinfo-tcode VALUE 'Tcode',
            gc_term      TYPE uinfo-term VALUE 'Terminal',
            gc_logon     TYPE uinfo-zeit VALUE 'Time'.
CALL FUNCTION 'RFC_GET_LOCAL_DESTINATIONS'
   TABLES
      localdest = lt_rfchosts.
CALL FUNCTION 'THUSRINFO'
   TABLES
      usr_tabl = lt_usr_liste
   EXCEPTIONS communication_failure = 17.

ASSERT sy-subrc = 0.

PERFORM fill_dest USING lt_usr_liste 'NONE'.

LOOP AT lt_rfchosts ASSIGNING FIELD-SYMBOL(<rfc>).
  CLEAR: lt_usr_liste.
  CALL FUNCTION 'THUSRINFO' DESTINATION <rfc>-rfcdest
     TABLES
       usr_tabl = lt_usr_liste
     EXCEPTIONS
       communication_failure = 17.
  PERFORM fill_dest USING lt_usr_liste <rfc>-rfcdest.
ENDLOOP.

DELETE lt_total WHERE mandt <> sy-mandt.
SORT lt_total BY bname.
WRITE: / gc_user_name, gc_tcode, gc_term,  gc_logon.
LOOP AT lt_total INTO DATA(user).
  WRITE: / user-bname UNDER gc_user_name COLOR COL_NEGATIVE,
           user-tcode UNDER gc_tcode COLOR COL_POSITIVE,
           user-term UNDER gc_term COLOR COL_KEY,
           user-zeit UNDER gc_logon COLOR COL_TOTAL.
  HIDE user-bname.   HIDE user-dest.
ENDLOOP.
AT LINE-SELECTION.
  DATA: lv_message TYPE sm04dic-popupmsg VALUE 'hello world, this text is sent via ABAP'.

  CALL FUNCTION 'TH_POPUP' DESTINATION user-dest
    EXPORTING
      client         = sy-mandt
      user           = user-bname
      message        = lv_message
      message_len    = strlen( lv_message )
    EXCEPTIONS
      user_not_found = 1
      OTHERS        = 2.

FORM fill_dest USING it_user_info_raw TYPE tt_user_info iv_dest TYPE rfchosts-rfcdest.
  LOOP AT it_user_info_raw ASSIGNING FIELD-SYMBOL(<user1>).
    CLEAR: ls_user_info.
    MOVE-CORRESPONDING <user1> TO ls_user_info.
    ls_user_info-dest = iv_dest.
    APPEND ls_user_info TO lt_total.
  ENDLOOP.
ENDFORM.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档