• WMS函数组:14.RDC入库1


    FUNCTION ZRFC_WMS_GOODSMVT_CREATE_D1.
    *"--------------------------------------------------------------------
    *"*"本地接口:
    *"  IMPORTING
    *"     VALUE(IT_ZMKPF002) LIKE  ZWMS_GOODSMOVE_HEAD
    *"  STRUCTURE  ZWMS_GOODSMOVE_HEAD OPTIONAL
    *"  EXPORTING
    *"     VALUE(EP_SUBRC) TYPE  SY-SUBRC
    *"     VALUE(EP_MATERIALDOCUMENT) TYPE  BAPI2017_GM_HEAD_RET-MAT_DOC
    *"     VALUE(EP_MATDOCUMENTYEAR) TYPE  BAPI2017_GM_HEAD_RET-DOC_YEAR
    *"  TABLES
    *"      ET_LOG STRUCTURE  BAPIRET2 OPTIONAL
    *"      IT_DETAIL STRUCTURE  ZWMS_RDC_DETAIL OPTIONAL
    *"--------------------------------------------------------------------
    *{   INSERT         DEVK919920                                        1
    *GM_CODE 01: GOODS RECEIPT FOR PURCHASE ORDER
    *}   INSERT
    *"----------------------------------------------------------------------
    *{   INSERT         DEVK919920                                        2
    DATA:
      GOODSMVT_CODE          LIKE  IT_ZMKPF002-GM_CODE,
      IP_GMHEAD              LIKE  BAPI2017_GM_HEAD_01     OCCURS    0
    WITH HEADER  LINE,
      IP_GMCODE              LIKE  BAPI2017_GM_CODE        OCCURS    0
    WITH HEADER  LINE,
      IP_MTHEAD              LIKE  BAPI2017_GM_HEAD_RET    OCCURS    0
    WITH HEADER  LINE,
      IP_MITEM               LIKE  BAPI2017_GM_ITEM_CREATE OCCURS    0
    WITH HEADER  LINE,
      EP_GOODSMVT_HEADRET    LIKE  BAPI2017_GM_HEAD_RET OCCURS    0   WITH
    HEADER  LINE,
      I_ERROR_MESSAGES       LIKE  ARRANG_ERR,
      IT_LIPS LIKE LIPS ,
      I_LOG                  LIKE  BAPIRET2        OCCURS 0 WITH HEADER LINE
    .
    CLEAR :
        IP_GMHEAD,
        IP_GMCODE ,
        IP_MTHEAD,
        IP_MITEM ,
        I_LOG,
        EP_GOODSMVT_HEADRET.
    REFRESH:
        IP_GMHEAD,
        IP_GMCODE ,
        IP_MTHEAD,
        IP_MITEM ,
        I_LOG,
        EP_GOODSMVT_HEADRET.
    **********  HEADER      凭证日期
    IF IT_ZMKPF002-DOC_DATE IS NOT INITIAL.
        IP_GMHEAD-DOC_DATE = IT_ZMKPF002-DOC_DATE    .
    ELSE.
        IP_GMHEAD-DOC_DATE  = SY-DATUM  .
    ENDIF.
    **********  HEADER      记帐日期
    IF IT_ZMKPF002-PSTNG_DATE IS NOT INITIAL.
        IP_GMHEAD-PSTNG_DATE = IT_ZMKPF002-PSTNG_DATE    .
    ELSE.
        IP_GMHEAD-PSTNG_DATE = SY-DATUM .
    ENDIF.
    *******下面取渠道
      IP_GMHEAD-REF_DOC_NO = IT_ZMKPF002-LFSNR.
    **********  HEADER     凭证抬头文本
      IP_GMHEAD-HEADER_TXT = IT_ZMKPF002-HEADER_TXT   .
    **********  HEADER 事务代码
      GOODSMVT_CODE = IT_ZMKPF002-GM_CODE.
      IP_GMCODE-GM_CODE  = GOODSMVT_CODE.
    **********  HEADER    用户名
      IP_GMHEAD-PR_UNAME = SY-UNAME.
    DATA:TMP_LINE LIKE IP_MITEM-LINE_ID.
    ***********明细
    *--------------CHA JWY_20170811
    SORT IT_DETAIL.
    *--------------CHA JWY_20170811
    LOOP AT IT_DETAIL.
    SELECT SINGLE * INTO  IT_LIPS FROM LIPS WHERE VBELN =
    IT_DETAIL-VBELN AND POSNR = IT_DETAIL-POSNR.
        IP_MITEM-MATERIAL =  IT_LIPS-MATNR.
    *    IP_MITEM-PLANT =  IT_LIPS-WERKS.
    IF IT_DETAIL-LGOBE = '6700'.
          IP_MITEM-PLANT =  '6700'.
    ELSE.
          IP_MITEM-PLANT =  IT_LIPS-WERKS.
    ENDIF.
        IP_MITEM-STGE_LOC =  IT_DETAIL-LGOBE.
        IP_MITEM-BATCH = IT_DETAIL-CHARG.
        IP_MITEM-MOVE_TYPE = '101'.
        IP_MITEM-ENTRY_QNT = IT_DETAIL-ERFMG.
        IP_MITEM-PO_NUMBER = IT_LIPS-VGBEL.
        IP_MITEM-PO_ITEM = IT_LIPS-VGPOS.
        IP_MITEM-MVT_IND = 'B'.
        IP_MITEM-DELIV_NUMB_TO_SEARCH = IT_DETAIL-VBELN.
        IP_MITEM-DELIV_ITEM_TO_SEARCH = IT_DETAIL-POSNR.
        IP_MITEM-DELIV_NUMB =  IT_DETAIL-VBELN.
        IP_MITEM-DELIV_ITEM = IT_DETAIL-POSNR.
    PERFORM F_ADD_ZERO USING IP_MITEM-PO_NUMBER.
    PERFORM F_ADD_ZERO USING IP_MITEM-PO_ITEM.
    IF IP_MITEM-PO_NUMBER+0(1) = '4'.
    SELECT SINGLE WERKS LGORT INTO (IP_MITEM-PLANT,IP_MITEM-STGE_LOC)
    FROM EKPO
    WHERE    EBELN = IP_MITEM-PO_NUMBER AND EBELP = IP_MITEM-PO_ITEM.
    ENDIF.
    PERFORM F_ADD_ZERO USING IP_MITEM-DELIV_NUMB_TO_SEARCH.
    PERFORM F_ADD_ZERO USING IP_MITEM-DELIV_ITEM_TO_SEARCH.
    PERFORM F_ADD_ZERO USING  IP_MITEM-DELIV_NUMB.
    PERFORM F_ADD_ZERO USING IP_MITEM-DELIV_ITEM.
    SELECT SINGLE LIFNR INTO IP_MITEM-VENDOR FROM EKKO WHERE EBELN =
    IP_MITEM-PO_NUMBER.
    *=====行号===========================
    CLEAR TMP_LINE.
    DESCRIBE TABLE IP_MITEM LINES TMP_LINE .
        TMP_LINE = TMP_LINE + 1.
    PERFORM F_ADD_ZERO USING TMP_LINE.
        IP_MITEM-LINE_ID = TMP_LINE .
        IP_MITEM-PARENT_ID = '000000'.
    APPEND IP_MITEM.
    ENDLOOP.
    ***以下是进行过帐处理*******************************************
    *Append lines of IP_MITEM to IT_R. "显示输入参数便于调试
    CLEAR I_LOG[].
    ****************处理特殊移动类型
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
          GOODSMVT_HEADER  = IP_GMHEAD
          GOODSMVT_CODE    = IP_GMCODE
    IMPORTING
          GOODSMVT_HEADRET = EP_GOODSMVT_HEADRET
          MATERIALDOCUMENT = EP_MATERIALDOCUMENT
          MATDOCUMENTYEAR  = EP_MATDOCUMENTYEAR
    TABLES
          GOODSMVT_ITEM    = IP_MITEM
    RETURN           = I_LOG.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT = 'X'.
    CLEAR:IP_MITEM[].
    *--------------CHA JWY_20170811
    SORT I_LOG.
    *--------------CHA JWY_20170811
    LOOP AT I_LOG.
    IF I_LOG-TYPE = 'E'.
    CONCATENATE IT_ZMKPF002-LFSNR I_LOG-MESSAGE INTO ET_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.
    ENDIF.
    ENDLOOP.
    CLEAR I_LOG[].
    READ  TABLE   I_LOG WITH  KEY  TYPE   = 'E'.
    IF  SY-SUBRC   =   0  .
        EP_SUBRC  =  -1.
    ENDIF.
    *}   INSERT
    ENDFUNCTION.

  • 相关阅读:
    [ZOJ 3622] Magic Number
    SGU 134.Centroid(图心)
    SGU 223.Little Kings
    C++ IO 详细用法
    POJ2632 Crashing Robots 解题报告
    POJ1068 Parencodings 解题报告
    POJ3295 Tautology 解题报告
    POJ2586 Y2K Accounting Bug 解题报告
    POJ1328 Radar Installation 解题报告
    POJ3728 The merchant解题报告
  • 原文地址:https://www.cnblogs.com/twttafku/p/14327463.html
Copyright © 2020-2023  润新知