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.
上一篇下一篇

猜你喜欢

热点阅读