*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_VBELN) TYPE VBELN
*" VALUE(I_DATUM) TYPE DATUM
*" VALUE(I_UZEIT) TYPE UZEIT
*" EXPORTING
*" VALUE(EM_MSG) TYPE BAPI_MSG
*" VALUE(EM_TYPE) TYPE BAPI_MTYPE
*"----------------------------------------------------------------------
DATA: lr_vbeln TYPE RANGE OF vbak-vbeln WITH HEADER LINE,
l_vbeln TYPE vbak-vbeln,
l_if_id TYPE ztsd_lock-if_id,
l_index TYPE sy-index.
l_if_id = 'INTOA0016'.
"如果锁定,说明有其他异步线程在推送中,该线程直接关闭
CALL FUNCTION 'ENQUEUE_EZ_ZTSDLOCK'
EXPORTING
if_id = l_if_id
vbeln = i_vbeln
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CLEAR: l_index,l_vbeln.
DO 20 TIMES.
SELECT SINGLE vbeln
FROM vbak JOIN cdhdr ON substring( cdhdr~objectid,1,10 ) = vbak~vbeln
WHERE vbeln = @i_vbeln
AND lifsk = ''
AND udate >= @i_datum
AND utime >= @i_uzeit
INTO @l_vbeln .
IF sy-subrc = 0.
EXIT.
ELSE.
WAIT UP TO 3 SECONDS.
ENDIF.
ENDDO.
IF l_vbeln IS NOT INITIAL.
CLEAR: lr_vbeln[],lr_vbeln.
lr_vbeln-sign = 'I'.
lr_vbeln-option = 'EQ'.
lr_vbeln-low = i_vbeln.
APPEND lr_vbeln.
SUBMIT zintoa0016 WITH s_vbeln IN lr_vbeln
WITH p_send = 'X'
WITH p_disp = 'X'
AND RETURN.
ELSE.
em_type = 'E'.
em_msg = '未查询到销售订单!'.
ENDIF.
上一篇: SELECT相关...
下一篇: ABAP 单位-数量转换函数...