如何设置SAP GUI与服务器保持连接不掉线?

2023-10-13 17:16:37 浏览数 (2)

经常有用户反馈说他们的在使用SAP时,SAPGUI用不了几分钟就与服务器开连接了。来问我有什么方法没有。我只到用basis的方法是可以设定的,但我重启服务器是个麻烦事。而且默人给用连接这么长时间消耗不少的服务器资源。我查了下资料找写了一个小程序程序可以直接使用,可以让用户自定设定多久不断线。用户使用后好评如潮。我把代码分享给大家。喜欢的点下赞。有不懂的可以留言提问,我有空会回答的。谢谢了。

程序效果如下图,用户输入保持连接3800秒,SAP GUI就会与服务器保持3800秒连接。程序启动后,会有个一窗口不断的刷新。而且还会自动打开一个新的窗口来给用进行正常的业务操作。

代码如下,可以直接Copy使用:

代码语言:javascript复制
REPORT ZSTAY_LONGER.
"REPORT  ztestt1.

DATA: text TYPE string,
      time TYPE i.
time = 0.




PARAMETERS  s_time  type p  DEFAULT 3800.

INITIALIZATION.


START-OF-SELECTION.

 IF s_time > 7600 .
 MESSAGE  '时间不要设置超过3600秒'type 'E' DISPLAY LIKE 'S'.

 ENDIF.
 CHECK  s_time <= 7600.
IF sy-langu = '1'.
  CONCATENATE '此程序是为了使SAP保持在线,请使用其他会话进行工作' '!' 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.
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.

data k type i.

DO.
  k = k   1.
  IF k >= s_time .
    MESSAGE  '对话框停留时间结束'type 'S'.
     exit.
  ENDIF.
  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 1 SECONDS.
ENDDO.

0 人点赞