根据ABAP文档,命令WAIT UP TO x SECONDS需要一个类型为i的操作数。然而,我希望等待x毫秒或类似的时间。到目前为止,官方文件和其他几个论坛帖子都没有帮助。
有什么方法可以指定等待一小部分时间吗?
发布于 2019-12-31 17:50:19
您可以简单地传递一个十进制值,如下所示:
WAIT UP TO '0.5' SECONDS或者类似这样的东西:
WAIT UP TO '0.01' SECONDS发布于 2021-11-11 21:54:04
如果您希望避免使用等待进行隐式提交,请创建一个简单的RFC函数:
FUNCTION ZSLEEP .
*"--------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(DURATION) TYPE SDURATION_SECONDS
*"--------------------------------------------------------------------
* To wait 50 milliseconds write this:
* DATA duration TYPE sduration_seconds VALUE '0.050'.
* CALL FUNCTION 'ZSLEEP' DESTINATION 'NONE' KEEPING LOGICAL UNIT OF WORK EXPORTING duration = duration.
WAIT UP TO duration SECONDS.
ENDFUNCTION.发布于 2019-12-30 20:10:32
我只是这样解决了这个问题:
DATA: timestart TYPE timestampl,
timeend TYPE timestampl,
millisecs TYPE timestampl,
imilli TYPE i VALUE 200.
GET TIME STAMP FIELD timestart.
millisecs = imilli / 1000.
timestart = timestart + millisecs.
DO.
GET TIME STAMP FIELD timeend.
IF timestart < timeend.
EXIT.
ENDIF.
ENDDO.
WRITE timeend.如果我现在将它重写为一个函数,将一个整数作为导入参数(代替imilli),我就会得到我想要的东西。
在将其标记为正确答案之前,我将把它放在一边,希望有人能有一个更好/更优雅的解决方案。
https://stackoverflow.com/questions/59530419
复制相似问题