SAP 防掉线程序,当是当前客户端的唯一页面的时候 新开页面

REPORT ZFDX.
*&---------------------------------------------------------------------*
*& Report ZONLINE

DATA: TEXT TYPE STRING,
      TIME TYPE I.
TIME = 0.
IF SY-LANGU = '1'.
  CONCATENATE '请使用其他会话进行工作' '!' INTO TEXT.
ELSE.
  CONCATENATE 'Please use another session for working' '!' INTO TEXT.
ENDIF.

DATA:GT_INFO TYPE TABLE OF UINFO2,
     GV_NUM  TYPE I.
DATA: OPCODE_USR_ATTR(1) TYPE X VALUE 5,
      TERMINAL           TYPE USR41-TERMINAL.
CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE_USR_ATTR ID 'TERMINAL' FIELD TERMINAL.



  "获取当前用户的会话数
  CALL FUNCTION 'TH_LONG_USR_INFO'
    EXPORTING
      USER      = SY-UNAME
    TABLES
      USER_INFO = GT_INFO.
  DELETE  GT_INFO WHERE TERMINAL NE TERMINAL .
  DELETE  GT_INFO WHERE CLIENT NE SY-MANDT .
  DESCRIBE TABLE GT_INFO LINES GV_NUM.

  "对当前打开的会话数进行判断,如果只打开了一个,那么再另外打开一个新的会话供用户使用
  IF GV_NUM = 1.
    CALL FUNCTION 'TH_CREATE_FOREIGN_MODE'
      EXPORTING
        CLIENT           = SY-MANDT
        USER             = SY-UNAME
*       TCODE            =
*       RETURN_ERROR     = 1
*       CREATE_EXCLUSIVE = 0
      EXCEPTIONS
        USER_NOT_FOUND   = 1
        CANT_CREATE_MODE = 2
        OTHERS           = 3.
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

  ENDIF.

  DO.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        PERCENTAGE = TIME
        TEXT       = TEXT
      EXCEPTIONS
        OTHERS     = 1.

    TIME = TIME + 1  .
    IF TIME = 101.
      TIME = 0.
    ENDIF.
    WAIT UP TO 10 SECONDS.
  ENDDO.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你叶不叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值