美文网首页
SAP VL02N拣配添加库位,数量,过账

SAP VL02N拣配添加库位,数量,过账

作者: SmalltalkVoice | 来源:发表于2020-07-27 13:33 被阅读0次

    逻辑顺序,先添加库位,再添加拣配配数量,这样才能过账发货。相反的逻辑不行

    
    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.
    

    相关文章

      网友评论

          本文标题:SAP VL02N拣配添加库位,数量,过账

          本文链接:https://www.haomeiwen.com/subject/mrdzlktx.html