关于SAP Router连接不稳定的改良

我们在使用SAPRouter时经常会碰到断线,其发生原因有很多,如:网络不稳定、操作间隔时间过长等。鉴于此,通过一个程序,来改良一下SAP GUI 通过SAP Router连接的稳定性

 

原理:定时触发GUI与服务器的交互,保持router的连通性;

操作:SE38运行程序Z_DX即可,保持此session,另外打开session进行操作;

优点:可以比较好的改良GUI通过router连接SAP服务器的稳定性,同时防止超时导致session被SAP服务器断开或者被router断开;占用资源较少;

缺点:如果网络真的很差,会即刻断线,应该比QQ企鹅更敏感;多开一个session比较碍眼;

适用人群:通过sap router访问方式连接SAP 服务器。

程序如下:


REPORT zgui

DATA : text TYPE string,
       chr  TYPE char2,
       time TYPE i.

DATA:sum  TYPE i,
     hour TYPE i,
     min  TYPE i,
     sec  TYPE i.


time = 0.
CONCATENATE 'Running(hh:mm:ss):' '00:00:00' INTO text.
DO.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = time MOD 100
      text       = text
    EXCEPTIONS
      OTHERS     = 1.
  time = time + 1.
  sum = time * 5.
  IF sum MOD 3600 GE 1800.
    hour = sum / 3600 - 1.
  ELSE.
    hour = sum / 3600.
  ENDIF.


  IF ( sum MOD 3600 ) MOD 60 GE 30.
    min  = ( sum MOD 3600 ) / 60 - 1.
  ELSE.
    min  = ( sum MOD 3600 ) / 60.
  ENDIF.

  sec = sum MOD 60.

  chr = hour.
  IF hour < 10.
    CONCATENATE 'Running(hh:mm:ss):0' chr ':' INTO text.
  ELSE.
    CONCATENATE 'Running(hh:mm:ss):' chr ':' INTO text.
  ENDIF.


  chr = min.
  IF min < 10.
    CONCATENATE text '0' chr ':' INTO text.
  ELSE.
    CONCATENATE text chr ':' INTO text.
  ENDIF.

  chr = sec.
  IF sec < 10.
    CONCATENATE text '0' chr INTO text.
  ELSE.
    CONCATENATE text chr INTO text.
  ENDIF.

  WAIT UP TO 5 SECONDS.

 

ENDDO.

 

 

-------------------------------------------------------------

20170427补充

实际使用中发现一个问题:如果因为某种原因导致断开,此程序可能一直在服务器中运行,导致持续的占用服务器资源,

故程序最好改成在一定时间范围内持续运行,即:将DO...ENDDO替换成WHILE...ENDWHILE。比如持续运行6小时:while time LE 6h

 

 

-------------------------------------------------------------

改进后程序:

REPORT zgui.

DATA : text TYPE string,
       chr  TYPE char2,
       time TYPE i,
       perc  TYPE i.

DATA:sum  TYPE i,
     hour TYPE i,
     min  TYPE i,
     sec  TYPE I.

"设置持续连接时长
PARAMETERS: p_cycle TYPE i DEFAULT 2200 OBLIGATORY.

time = 0.
CONCATENATE 'Running(hh:mm:ss):' '00:00:00' INTO text.
WHILE time < p_cycle.
  perc = time MOD 100.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = perc
      text       = text
    EXCEPTIONS
      OTHERS     = 1.
  time = time + 1.
*  IF time = 10000.
*    time = 0.
*  ENDIF.

  sum = time * 5.
  IF sum MOD 3600 GE 1800.
    hour = sum / 3600 - 1.
  ELSE.
    hour = sum / 3600.
  ENDIF.

  IF ( sum MOD 3600 ) MOD 60 GE 30.
    min  = ( sum MOD 3600 ) / 60 - 1.
  ELSE.
    min  = ( sum MOD 3600 ) / 60.
  ENDIF.

  sec = sum MOD 60.

  chr = hour.
  IF hour < 10.
    CONCATENATE 'Running(hh:mm:ss):0' chr ':' INTO text.
  ELSE.
    CONCATENATE 'Running(hh:mm:ss):' chr ':' INTO text.
  ENDIF.

  chr = min.
  IF min < 10.
    CONCATENATE text '0' chr ':' INTO text.
  ELSE.
    CONCATENATE text chr ':' INTO text.
  ENDIF.

  chr = sec.
  IF sec < 10.
    CONCATENATE text '0' chr INTO text.
  ELSE.
    CONCATENATE text chr INTO text.
  ENDIF.


  WAIT UP TO 5 SECONDS.
ENDWHILE.

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王小磊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值