SAP VL02N拣配添加库位,数量,过账
2020-07-27 本文已影响0人
SmalltalkVoice
逻辑顺序,先添加库位,再添加拣配配数量,这样才能过账发货。相反的逻辑不行
REPORT z_posting_delivery.
DATA: BEGIN OF i_vbkok OCCURS 11.
INCLUDE STRUCTURE vbkok.
DATA: END OF i_vbkok.
DATA: BEGIN OF i_vbpok_tab OCCURS 12.
INCLUDE STRUCTURE vbpok.
DATA: END OF i_vbpok_tab.
DATA:i_vbpok_tab2 LIKE TABLE OF i_vbpok_tab WITH HEADER LINE.
DATA: i_vbpok TYPE STANDARD TABLE OF vbpok.
DATA: BEGIN OF i_verpo OCCURS 12.
INCLUDE STRUCTURE verpo.
DATA: END OF i_verpo.
PARAMETERS: p_vbeln TYPE vbeln.
DATA:g_likp LIKE likp.
DATA:g_lips LIKE lips.
DATA gv_14(14) TYPE c.
START-OF-SELECTION.
" ---------创建发票----------------
SELECT SINGLE * INTO g_likp FROM likp
WHERE vbeln = p_vbeln.
SELECT * INTO g_lips FROM lips WHERE
vbeln = g_likp-vbeln.
i_vbkok-vbeln_vl = p_vbeln. "<- Delivery number
i_vbkok-wabuc = 'X'. " <- 当前公司过账
i_vbkok-spe_auto_gr = 'X'. "<-跨公司收获过账
i_vbkok-wadat_ist = g_likp-bldat.
APPEND i_vbkok.
i_vbpok_tab-vbeln_vl = p_vbeln. "<- Delivery number
i_vbpok_tab-posnr_vl = g_lips-posnr.
* i_vbpok_tab-vbeln = p_vbeln .
* i_vbpok_tab-posnn = g_lips-posnr.
* i_vbpok_tab-matnr = g_lips-matnr. "Material Number
i_vbpok_tab-werks = '2100'. "LIPS-WERKS.
i_vbpok_tab-lgort = '1206'. "库位
i_vbpok_tab-lgpla = '1206'. "
i_vbpok_tab-kzlgo = 'X'.
i_vbpok_tab-xwmpp = 'X'.
i_vbpok_tab-lgtyp = g_lips-lgtyp.
i_vbpok_tab-bwlvs = g_lips-bwlvs.
APPEND i_vbpok_tab.
i_vbpok_tab2-vbeln_vl = p_vbeln. "<- Delivery number
i_vbpok_tab2-posnr_vl = g_lips-posnr.
i_vbpok_tab2-vbeln = p_vbeln .
i_vbpok_tab2-posnn = g_lips-posnr.
i_vbpok_tab2-matnr = g_lips-matnr. "Material Number
i_vbpok_tab2-werks = '2100'. "LIPS-WERKS.
i_vbpok_tab2-lgort = '1206'. "
i_vbpok_tab2-lgpla = '1206'. "
i_vbpok_tab2-kzlgo = 'X'.
i_vbpok_tab2-xwmpp = 'X'.
i_vbpok_tab2-lgtyp = g_lips-lgtyp.
i_vbpok_tab2-bwlvs = g_lips-bwlvs.
gv_14 = g_lips-lfimg .
CONDENSE gv_14.
i_vbpok_tab2-pikmg = gv_14 ."拣配数量
i_vbpok_tab2-lfimg = gv_14 ."拣配数量
APPEND i_vbpok_tab2.
ENDSELECT.
PERFORM bapi TABLES i_vbpok_tab USING ''."增加库位,zbz要求为空
* WAIT UP TO 3 SECONDS."如果出现数据更新不及时,可以考虑增加等待时间
PERFORM bapi TABLES i_vbpok_tab2 USING 'X'."增加拣配数量,zbz要求为X
FORM bapi TABLES tab LIKE i_vbpok USING zbz TYPE c.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = i_vbkok
commit = 'X'
delivery = p_vbeln
update_picking = zbz
TABLES
vbpok_tab = tab
* verpo_tab = i_verpo
* PROT = I_PROTT
EXCEPTIONS
error_message = 1
OTHERS = 2.
BREAK-POINT.
endform.