防止SAP Router连接频繁掉线

REPORT  ztestt1.

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.

"获取当前用户的会话数
CALL FUNCTION 'TH_LONG_USR_INFO'
  EXPORTING
    user      = sy-uname
  TABLES
    user_info = gt_info.

DELETE gt_info WHERE client <> sy-mandt."Added 20220805
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.

思路来源于其他开发人员,我只是添加了当只打开一个会话时,由于当前会话一直在跑程序,所以添加了代码来打开另一个新的会话的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值