一、背景:
使用函数BBP_INB_DELIVERY_CREATE(VL31n)创建内向交货单时,交货单内的物料字段为空,网上查了一些资料,找到了下面的解决方法,希望有更好的解决方法的筒子们告知一下。
二、以下步骤是解决方法:
第一步:调用BBP_INB_DELIVERY_CREATE
DATA:DEL_HEADER LIKE BBP_INBD_L.
DATA:DEL_TAB LIKE BBP_INBD_D OCCURS 0 WITH HEADER LINE.
DATA:DEL_RET LIKE BAPIRETURN OCCURS 0 WITH HEADER LINE.
DATA:DEL_NO TYPE VBELN_VL.
LOOP AT INPUT.
MOVE-CORRESPONDING INPUT TO OUTPUT.
CLEAR DEL_HEADER.
DEL_HEADER-DELIV_DATE = INPUT-EINDT.
DEL_HEADER-DELIV_EXT = 12121.
CLEAR DEL_TAB.
REFRESH DEL_TAB.
DEL_TAB-DELIV_QTY = INPUT-LFIMG.
SELECT SINGLE
MEINS
MATNR
INTO (DEL_TAB-UNIT, DEL_TAB-MATERIAL)
FROM EKPO
WHERE EBELN = INPUT-EBELN
AND EBELP = INPUT-EBELP.
* DEL_TAB-MATERIAL = 'YL10-00101-000'.
DEL_TAB-PO_NUMBER = INPUT-EBELN.
DEL_TAB-PO_ITEM = INPUT-EBELP.
APPEND DEL_TAB.
CLEAR DEL_TAB.
CALL FUNCTION 'BBP_INB_DELIVERY_CREATE'
EXPORTING
IS_INB_DELIVERY_HEADER = DEL_HEADER
IMPORTING
EF_DELIVERY = DEL_NO
TABLES
IT_INB_DELIVERY_DETAIL = DEL_TAB
RETURN = DEL_RET.
IF SY-SUBRC = 0 and DEL_NO <> ''.
OUTPUT-VBELN = DEL_NO.
OUTPUT-FLAG = 'S'.
OUTPUT-MESSAGE = '创建内项交货成功!'.
ELSE.
OUTPUT-FLAG = 'E'.
OUTPUT-MESSAGE = '创建内项交货失败'.
ENDIF.
APPEND OUTPUT.
CLEAR OUTPUT.
ENDLOOP.
第二步:Implicit Enhancement in end of FM ME_CONFIRMATION_VIA_EDI.
DATA: WA_XKOMDLGN LIKE LINE OF XKOMDLGN.
**To update Material Number..
LOOP AT T_KOM INTO WA_XKOMDLGN.
SELECT SINGLE MATNR INTO WA_XKOMDLGN-MATNR
FROM EKPO WHERE EBELN EQ WA_XKOMDLGN-VGBEL
AND EBELP EQ WA_XKOMDLGN-VGPOS
MODIFY T_KOM FROM WA_XKOMDLGN.
ENDLOOP.