这个函数交货单过账的时候会提示库存地点为空,但是入参中logrt的赋值,不起作用。
ls_vbpok-kzlgo = 'X'.
ls_vbpok-xwmpp = 'X'.
这两个字段也需要附上值。
CLEAR:lv_message,lt_vbpok,ls_vbpok.
la_vbkok-vbeln_vl = lf_vbeln.
la_vbkok-wabuc = 'X'.
la_vbkok-wadat_ist = sy-datum.
LOOP AT lt_item INTO ls_item.
ls_vbpok-vbeln_vl = ls_item-deliv_numb. "delivery
ls_vbpok-posnr_vl = ls_item-deliv_item.
ls_vbpok-vbeln = ls_item-deliv_numb. "delivery
ls_vbpok-posnn = ls_item-deliv_item.
ls_vbpok-matnr = ls_item-material. "delivery
ls_vbpok-pikmg = ls_item-dlv_qty.
ls_vbpok-lgort = 'L001'.
ls_vbpok-kzlgo = 'X'.
ls_vbpok-xwmpp = 'X'.
APPEND ls_vbpok TO lt_vbpok.
ENDLOOP.
SET UPDATE TASK LOCAL.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = la_vbkok
commit = 'X'
delivery = lf_vbeln
TABLES
vbpok_tab = lt_vbpok
prot = lt_prot.
LOOP AT lt_prot INTO ls_prot WHERE msgty CA 'AEX'.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = ls_prot-msgid
msgnr = ls_prot-msgno
msgv1 = ls_prot-msgv1
msgv2 = ls_prot-msgv2
msgv3 = ls_prot-msgv3
msgv4 = ls_prot-msgv4
IMPORTING
message_text_output = lv_message.
ev_msgty = cs_status_e.
CONCATENATE ev_message lv_message ';' INTO ev_message.
ENDLOOP.
IF sy-subrc = 0.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = space.
SELECT SINGLE * FROM likp INTO @DATA(ls_likp) WHERE vbeln = @lf_vbeln AND wbstk = 'C'.
IF sy-subrc = 0. " 过账成功
wa_input-dn_post = 'X'.
* wa_input-status = cs_status_s.
ev_message = ev_message && '过账成功'.
ELSE.
ev_msgty = cs_status_e.
ev_message = ev_message && '过账失败'.
ENDIF.
ENDIF.