项目上启用了HU管理,一般很少启用此功能,
记录下绑定HU到交货单 的BAPI .
前台事务码 VL32N ,使用BAPI ‘WS_DELIVERY_UPDATE’
代码如下
FORM FRM_ADD_HU_TO_DN USING PV_EXIDV TYPE EXIDV
CHANGING PC_CHK TYPE C.
DATA LS_VBKOK TYPE VBKOK.
DATA LT_PROT TYPE TABLE OF PROTT.
DATA LS_PROT TYPE PROTT.
* DATA lt_verko TYPE TABLE OF verko.
* DATA ls_verko TYPE verko.
* DATA lt_verpo TYPE TABLE OF verpo.
* DATA ls_verpo TYPE verpo.
* DATA lt_item TYPE TABLE OF vbpok.
* DATA ls_item TYPE vbpok.
DATA LT_HU TYPE TABLE OF HUM_REHANG_HU.
DATA LS_HU TYPE HUM_REHANG_HU.
DATA LV_MSG TYPE BAPI_MSG.
DATA LV_MSG_T TYPE BAPI_MSG.
LS_VBKOK-VBELN = GV_VBELN.
LS_VBKOK-VBELN_VL = GV_VBELN.
SELECT SINGLE VBTYP
FROM LIKP
INTO LS_VBKOK-VBTYP_VL
WHERE VBELN = GV_VBELN.
LS_HU-TOP_HU_EXTERNAL = PV_EXIDV.
APPEND LS_HU TO LT_HU.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = LS_VBKOK
DELIVERY = GV_VBELN
* update_picking = 'X'
SYNCHRON = ''
NICHT_SPERREN = 'X'
TABLES
* vbpok_tab = lt_item
* verko_tab = lt_verko
* verpo_tab = lt_verpo
IT_HANDLING_UNITS = LT_HU
PROT = LT_PROT.
* it_handling_units = lt_hu.
IF SY-SUBRC EQ 0 AND LT_PROT[] IS INITIAL.
COMMIT WORK AND WAIT.
ELSE.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
INTO LV_MSG.
ENDIF.
IF NOT LT_PROT[] IS INITIAL.
LOOP AT LT_PROT INTO LS_PROT.
MESSAGE ID LS_PROT-MSGID TYPE 'S' NUMBER LS_PROT-MSGNO
WITH LS_PROT-MSGV1 LS_PROT-MSGV2 LS_PROT-MSGV3 LS_PROT-MSGV4
INTO LV_MSG_T.
CONCATENATE LV_MSG LV_MSG_T INTO LV_MSG SEPARATED BY SPACE.
ENDLOOP.
ENDIF.
MESSAGE S001(00) WITH LV_MSG DISPLAY LIKE 'E' .
PC_CHK = 'X'.
ROLLBACK WORK.
EXIT.
ENDIF.
ENDFORM.