zoukankan      html  css  js  c++  java
  • WMS函数组:12.批量入库物料移动凭证

    FUNCTION ZRFC_WMS_GOODSMVT_CREATE.
    *"----------------------------------------------------------------------
    *"*"Local interface:
    *"  TABLES
    *"      ET_LOG STRUCTURE  BAPIRET2 OPTIONAL
    *"      IT_ZMKPF001 STRUCTURE  ZWMS_GOODSMOVE_ITEM OPTIONAL
    *"      IT_ZMKPF002 STRUCTURE  ZWMS_GOODSMOVE_HEAD OPTIONAL
    *"      IT_ZMKPF003 STRUCTURE  ZINTERFACE_RETURN OPTIONAL
    *"----------------------------------------------------------------------
    DATA: IT_DETAIL LIKE IT_ZMKPF001 OCCURS 0 WITH HEADER LINE,
      EP_SUBRC LIKE SY-SUBRC,
      IT_HEADER LIKE   IT_ZMKPF002,
      IT_DELETE LIKE   ZWMS_GOODMVT OCCURS    0   WITH HEADER  LINE,
      IT_RECORD  LIKE ZWMS_GOODMVT  OCCURS    0   WITH HEADER  LINE,
    IT_REX  LIKE BAPI2017_GM_ITEM_CREATE  OCCURS    0   WITH HEADER  LINE,
    I_LOG LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
      MATDOCUMENTYEAR LIKE BAPI2017_GM_HEAD_RET-DOC_YEAR,
      MATERIALDOCUMENT LIKE BAPI2017_GM_HEAD_RET-MAT_DOC.
      IT_ZMKPF002-LFSNR = '0'.
    APPEND IT_ZMKPF002.
    SELECT * INTO TABLE IT_DELETE FROM ZWMS_GOODMVT
    FOR ALL ENTRIES IN  IT_ZMKPF002
    WHERE LFSNR = IT_ZMKPF002-LFSNR.
    *------------------CHA JWY_20170811
    SORT IT_DELETE.
    *------------------CHA JWY_20170811
    LOOP AT IT_DELETE .
    CLEAR IT_ZMKPF003.
        IT_ZMKPF003-SUBRC  =  0.
        IT_ZMKPF003-BILLNO = IT_DELETE-LFSNR .
        IT_ZMKPF003-SAPNO = '0000000' .
        IT_ZMKPF003-MSG = '已经存在此单号记录'.
    APPEND IT_ZMKPF003.
    DELETE IT_ZMKPF002 WHERE LFSNR = IT_DELETE-LFSNR.
    ENDLOOP.
    *------------------CHA JWY_20170811
    SORT IT_ZMKPF002.
    *------------------CHA JWY_20170811
    LOOP AT IT_ZMKPF002 INTO  IT_HEADER WHERE LFSNR <> '0'.
    CLEAR IT_DETAIL[].
    ***********明细
    *------------------CHA JWY_20170811
    SORT IT_ZMKPF001.
    *------------------CHA JWY_20170811
    LOOP AT IT_ZMKPF001 .
    IF IT_ZMKPF001-LFSNR =  IT_HEADER-LFSNR.
    MOVE  IT_ZMKPF001 TO IT_DETAIL .
    PERFORM F_ADD_ZERO USING IT_DETAIL-MATERIAL.
    PERFORM F_ADD_ZERO USING IT_DETAIL-MOVE_REAS.
    SELECT SINGLE MATNR INTO IT_ZMKPF001-MATERIAL FROM MARA WHERE MATNR = IT_DETAIL-MATERIAL.
    CHECK SY-SUBRC = 0.
    APPEND IT_DETAIL.
    ENDIF.
    ENDLOOP.
    IF IT_DETAIL[] IS  INITIAL.
        IT_ZMKPF003-BILLNO = IT_HEADER-LFSNR .
        IT_ZMKPF003-SAPNO = '空物料' .
        IT_ZMKPF003-SUBRC = 0.
        IT_ZMKPF003-MSG = '行项目为空物料,请检查'.
    APPEND IT_ZMKPF003.
    *        IT_RECORD-BILLNO = IT_HEADER-LFSNR .
    *        IT_RECORD-LFSNR =  IT_HEADER-LFSNR.
    *        IT_RECORD-DATEA =  SY-DATUM.
    *        IT_RECORD-TIMEA =  SY-UZEIT.
    *        INSERT INTO ZWMS_GOODMVT VALUES IT_RECORD.
    ENDIF.
    CHECK IT_DETAIL[] IS NOT INITIaL.
    CLEAR  I_LOG[].
    CALL FUNCTION 'ZRFC_WMS_GOODSMVT_CREATE_D'
    EXPORTING
            IT_ZMKPF002         = IT_HEADER
    IMPORTING
            EP_MATERIALDOCUMENT = MATERIALDOCUMENT
            EP_SUBRC            = EP_SUBRC
            EP_MATDOCUMENTYEAR  = MATDOCUMENTYEAR
    TABLES
            IT_ZMKPF001         = IT_DETAIL
            IT_R                = IT_REX
            ET_LOG              = I_LOG.
    *------------------CHA JWY_20170811
    SORT IT_DETAIL.
    *------------------CHA JWY_20170811
    LOOP AT IT_DETAIL.
          ET_LOG-MESSAGE = IT_DETAIL-MATERIAL .
          ET_LOG-TYPE =  IT_DETAIL-PLANT .
          ET_LOG-ID               = IT_DETAIL-STGE_LOC .
          ET_LOG-NUMBER           = IT_DETAIL-MOVE_TYPE.
          ET_LOG-LOG_NO           = IT_DETAIL-MOVE_REAS.
    APPEND  ET_LOG.
    ENDLOOP.
    *------------------CHA JWY_20170811
    SORT I_LOG.
    *------------------CHA JWY_20170811
    CLEAR IT_ZMKPF003.
    LOOP AT I_LOG.
    IF I_LOG-TYPE = 'E'.
            ET_LOG-MESSAGE = I_LOG-MESSAGE .
            ET_LOG-TYPE =  I_LOG-TYPE .
            ET_LOG-ID               = I_LOG-ID .
            ET_LOG-NUMBER           = I_LOG-NUMBER.
            ET_LOG-LOG_NO           = I_LOG-LOG_NO.
    APPEND  ET_LOG.
            IT_ZMKPF003-MSG = ET_LOG-MESSAGE.
    ENDIF.
    ENDLOOP.
    CLEAR I_LOG[].
    READ  TABLE   I_LOG WITH  KEY  TYPE   = 'E'.
    IF  SY-SUBRC   =   0  .
          EP_SUBRC  =  -1.
    ENDIF.
    IF MATERIALDOCUMENT = ''.
          IT_ZMKPF003-SUBRC  =  -1.
    ELSE.
          IT_ZMKPF003-SUBRC  =  0.
    ENDIF.
        IT_ZMKPF003-BILLNO = IT_HEADER-LFSNR .
        IT_ZMKPF003-SAPNO = MATERIALDOCUMENT .
    APPEND IT_ZMKPF003.
    ENDLOOP. " end of IT_ZMKPF002
    *------------------CHA JWY_20170811
    SORT IT_ZMKPF003.
    *------------------CHA JWY_20170811
    LOOP AT  IT_ZMKPF003 WHERE SUBRC  =  0.
        IT_RECORD-LFSNR =  IT_ZMKPF003-BILLNO.
        IT_RECORD-DATEA =  SY-DATUM.
        IT_RECORD-TIMEA =  SY-UZEIT.
    INSERT INTO ZWMS_GOODMVT VALUES IT_RECORD.
    ENDLOOP.
    ENDFUNCTION.




    image

    image

    image

  • 相关阅读:
    origin 8.5 曲线拟合,延长曲线范围
    赤手空拳编写C#代码
    Vmware 10安装MAC OS X 10.9备忘
    Contest 1445
    Contest 1428
    Contest 1435
    Contest 991
    CSP-SJX2019 解题报告
    【BZOJ4817】【SDOI2017】树点染色
    codeforce 804B Minimum number of steps
  • 原文地址:https://www.cnblogs.com/twttafku/p/14327447.html
Copyright © 2011-2022 走看看