|
嘿嘿,受启发了
这两天用的一个培训系统,服务器端某个网络设备配置的有问题,一但在gui里2分钟没有操作,就会把连接给断掉
正好看到这个帖子,想到可以用避免超时一样的技术来解决这个问题。
具体解决超时问题的方法见以下代码。
关键是用CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'来避免超时。
- REPORT z_timeout.
- PARAMETERS seconds TYPE i.
- DATA: base TYPE i,
- span TYPE i,
- ms TYPE i,
- text_clock TYPE string,
- timer TYPE REF TO if_abap_runtime.
- START-OF-SELECTION.
- ms = seconds * 1000 . " Maybe different in other OS, we have used win2003
- timer = cl_abap_runtime=>create_lr_timer( ).
- base = timer->get_runtime( ) / 1000.
- DO.
- DO 100 TIMES.
- span = timer->get_runtime( ) / 1000 - base.
- IF span > ms.
- MESSAGE 'Time is up.' TYPE 'S'.
- LEAVE PROGRAM.
- ENDIF.
- text_clock = span.
- CONCATENATE 'We have spend' text_clock 'milliseconds.'
- INTO text_clock SEPARATED BY ' '.
- CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
- EXPORTING
- percentage = sy-index
- text = text_clock.
- WAIT UP TO 3 SECONDS. " Maybe use more long waiting time
- ENDDO.
- ENDDO.
复制代码 |
|