*发货过账。
L_VBKOK-VBELN_VL = PV_DELIVERY. "<-- fill this field with your delivery number
L_VBKOK-WABUC = 'X'.
L_VBKOK-WADAT_IST = PV_WADAT .
L_VBKOK-KOMUE = 'X'. “不保存更新的情况下直接修改日期数量过账,此字段打"X"
CLEAR LT_NEW_LIPS .
SELECT
*
INTO CORRESPONDING FIELDS OF TABLE LT_NEW_LIPS
FROM LIPS
WHERE VBELN EQ PV_DELIVERY.
LOOP AT LT_NEW_LIPS INTO LS_NEW_LIPS .
LS_VBPOK-VBELN_VL = LS_NEW_LIPS-VBELN.
LS_VBPOK-POSNR_VL = LS_NEW_LIPS-POSNR.
LS_VBPOK-VBELN = LS_NEW_LIPS-VGBEL.
LS_VBPOK-POSNN = LS_NEW_LIPS-VGPOS.
LS_VBPOK-PIKMG = LS_NEW_LIPS-LFIMG.
LOOP AT GT_ITEM INTO GS_ITEM WHERE VBELN_VL = LS_VBPOK-VBELN_VL
AND POSNR_VL = LS_VBPOK-POSNR_VL.
LS_VBPOK-PIKMG = GS_ITEM-LFIMG. “不保存情况下直接取界面修改的数量
ENDLOOP.
APPEND LS_VBPOK TO LT_VBPOK.
ENDLOOP .
* L_VBKOK-BOLNR = LV_BOLNR .
* L_VBKOK-LIFEX = LV_BOLNR .
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = L_VBKOK
SYNCHRON = 'X'
NO_MESSAGES_UPDATE = ' '
UPDATE_PICKING = 'X'
COMMIT = 'X'
DELIVERY = PV_DELIVERY
NICHT_SPERREN = 'X'
TABLES
VBPOK_TAB = LT_VBPOK
PROT = LT_PROTT
EXCEPTIONS
EF_ERROR_ANY_0 = 1
EF_ERROR_IN_ITEM_DELETION_0 = 2
EF_ERROR_IN_POD_UPDATE_0 = 3
EF_ERROR_IN_INTERFACE_0 = 4
EF_ERROR_IN_GOODS_ISSUE_0 = 5
EF_ERROR_IN_FINAL_CHECK_0 = 6
EF_ERROR_PARTNER_UPDATE = 7
EF_ERROR_SERNR_UPDATE = 8
ERROR_MESSAGE = 9
OTHERS = 10.
IF SY-SUBRC = 0 .
LOOP AT LT_PROTT WHERE MSGTY CA 'EAX'..
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = LT_PROTT-MSGID
MSGNR = LT_PROTT-MSGNO
MSGV1 = LT_PROTT-MSGV1
MSGV2 = LT_PROTT-MSGV2
MSGV3 = LT_PROTT-MSGV3
MSGV4 = LT_PROTT-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = LV_MESSAGE.
CONCATENATE LV_ALL_MESSAGE LV_MESSAGE INTO LV_ALL_MESSAGE .
LV_FLAG = 'X' .
CLEAR LT_PROTT.
ENDLOOP.
ELSE.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = SY-MSGID
MSGNR = SY-MSGNO
MSGV1 = SY-MSGV1
MSGV2 = SY-MSGV2
MSGV3 = SY-MSGV3
MSGV4 = SY-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = LV_ALL_MESSAGE.
LV_FLAG = 'X' .
ENDIF .
IF LV_FLAG IS INITIAL .
*1459993 - Error message VL633 occurs in transaction VL09
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
UPDATE LIKP
SET VLSTK = ''
WHERE VBELN = PV_DELIVERY .
IF SY-SUBRC = 0 .
COMMIT WORK AND WAIT .
ENDIF .
CV_MESSAGE = '发货过账成功' .
CV_FLAG = '' .
ELSE .
CV_MESSAGE = LV_ALL_MESSAGE .
CV_FLAG = 'X'.
ENDIF .