• 成品入库过账bapi


    入库过账

    FUNCTION ZPP_BAPI_PRODUCT_STOCK_IN.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  EXPORTING
    *"     VALUE(CZ_MESS) TYPE  CHAR40
    *"  TABLES
    *"      INPUT STRUCTURE  ZPP_BAPI_PRODUCT_STOCK_INPUT
    *"      OUTPUT STRUCTURE  ZPP_BAPI_PRODUCT_STOCK_OUTPUT
    *"----------------------------------------------------------------------
    
      DATA:  GOODSMVT_HEADER  TYPE   BAPI2017_GM_HEAD_01,
             GOODSMVT_CODE    TYPE   BAPI2017_GM_CODE,
             GOODSMVT_HEADRET TYPE   BAPI2017_GM_HEAD_RET,
             MATERIALDOCUMENT TYPE   BAPI2017_GM_HEAD_RET-MAT_DOC,
             MATDOCUMENTYEAR  TYPE   BAPI2017_GM_HEAD_RET-DOC_YEAR,
             GOODSMVT_ITEM    TYPE STANDARD TABLE OF   BAPI2017_GM_ITEM_CREATE,
             GOODSMVT_SERIALNUMBER TYPE STANDARD TABLE OF   BAPI2017_GM_SERIALNUMBER,
             RETURN           TYPE STANDARD TABLE OF   BAPIRET2 ,
             W_CRETURN        TYPE   BAPIRET2,
             W_GOODSMVT_ITEM  TYPE                     BAPI2017_GM_ITEM_CREATE,
             W_GOODSMVT_SERIALNUMBER TYPE              BAPI2017_GM_SERIALNUMBER,
             W_RETURN         TYPE   BAPIRET2.
    *  接口调用日志
      DATA: LT_LOG TYPE STANDARD TABLE OF ZZT_INFLOG,
            LW_LOG TYPE ZZT_INFLOG.
    
      CLEAR:GOODSMVT_HEADER,
            GOODSMVT_CODE,
            GOODSMVT_HEADRET,
            MATERIALDOCUMENT,
            MATDOCUMENTYEAR,
            GOODSMVT_ITEM ,
            RETURN,W_RETURN,
            GOODSMVT_SERIALNUMBER,
            W_GOODSMVT_SERIALNUMBER."LT_TPMSG,LT_RETMSG.
    
      REFRESH:GOODSMVT_ITEM,RETURN,GOODSMVT_SERIALNUMBER.
      "事物码
      GOODSMVT_CODE-GM_CODE = '02'.               "MB31
    *  **********gm_code取值含义*******
    *  *******01     MB01
    *  *******02     MB31
    *  *******03     MB1A
    *  *******04     MB1B
    *  *******05     MB1C
    *  *******06     MB11
    *  *******07     MB04
      "
      GOODSMVT_HEADER-HEADER_TXT = INPUT-BKTXT.
      GOODSMVT_HEADER-PSTNG_DATE = SY-DATUM.
      GOODSMVT_HEADER-DOC_DATE   = SY-DATUM.
      "明细
      DATA:LV_ENTRY_QNT TYPE I.
      CLEAR: LV_ENTRY_QNT,INPUT.
       LV_ENTRY_QNT = LINES( INPUT ).
      READ TABLE INPUT INDEX 1.
      IF SY-SUBRC EQ 0.
        W_GOODSMVT_ITEM-MOVE_TYPE = '101'.
        W_GOODSMVT_ITEM-STCK_TYPE = 'F'.
        W_GOODSMVT_ITEM-MVT_IND = 'F'.
        W_GOODSMVT_ITEM-PLANT = INPUT-WERKS.
        W_GOODSMVT_ITEM-ORDERID = INPUT-AUFNR.
        W_GOODSMVT_ITEM-ENTRY_QNT = LV_ENTRY_QNT.
    ***  生产订单信息
        SELECT SINGLE PWERK LGORT MATNR MEINS
          INTO (W_GOODSMVT_ITEM-PLANT,W_GOODSMVT_ITEM-STGE_LOC,W_GOODSMVT_ITEM-MATERIAL,W_GOODSMVT_ITEM-ENTRY_UOM)
          FROM AFPO
         WHERE AUFNR = INPUT-AUFNR.
    
        APPEND W_GOODSMVT_ITEM TO GOODSMVT_ITEM.
      ENDIF.
    ***  称重数据更新
      IF INPUT-SERNR IS INITIAL AND INPUT-BRGEW IS INITIAL AND INPUT-GEWEI IS INITIAL.
        CZ_MESS = 'E:序列号 或 重量 或 单位为空!'.
      ELSE.
        UPDATE EQUI SET AEDAT = SY-DATUM
                        AENAM = SY-UNAME
                        BRGEW = INPUT-BRGEW
                        GEWEI = INPUT-GEWEI
                  WHERE EQUNR = INPUT-SERNR.
        IF SY-SUBRC EQ 0.
          CZ_MESS = 'S:产品重量数据传输成功!'.
          COMMIT WORK.
        ELSE.
          CZ_MESS = 'E:产品重量数据传输失败!'.
        ENDIF.
      ENDIF.
    
      LOOP AT INPUT.
        W_GOODSMVT_SERIALNUMBER-MATDOC_ITM = '0001'.
        W_GOODSMVT_SERIALNUMBER-SERIALNO = INPUT-SERNR.
        APPEND W_GOODSMVT_SERIALNUMBER TO GOODSMVT_SERIALNUMBER.
      ENDLOOP.
    
      "执行操作
      CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
         EXPORTING
           GOODSMVT_HEADER  = GOODSMVT_HEADER
           GOODSMVT_CODE    = GOODSMVT_CODE
         IMPORTING
           GOODSMVT_HEADRET = GOODSMVT_HEADRET
           MATERIALDOCUMENT = MATERIALDOCUMENT
           MATDOCUMENTYEAR  = MATDOCUMENTYEAR
         TABLES
           GOODSMVT_ITEM    = GOODSMVT_ITEM
           GOODSMVT_SERIALNUMBER = GOODSMVT_SERIALNUMBER
           RETURN           = RETURN
           .
    
      READ TABLE RETURN WITH KEY TYPE = 'E' INTO W_RETURN.
      IF SY-SUBRC <> 0.
    
         CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
           EXPORTING
             WAIT = 'X'.
         IF MATERIALDOCUMENT IS NOT INITIAL.
            OUTPUT-FLAG = 'S'.
            OUTPUT-NOTES = '成品入库成功!'.
            OUTPUT-MBLNR = MATERIALDOCUMENT.
            APPEND OUTPUT.
         ENDIF.
    ***填写日志
        CLEAR LW_LOG.
        LW_LOG-INTTY     = 'SI'.
        LW_LOG-DIRECT    = '2'.
        LW_LOG-INFTX     = '扫码自动入库&更新重量'.
        LW_LOG-OKEY1     = MATERIALDOCUMENT.
        LW_LOG-OKEY2     = CZ_MESS.
        LW_LOG-IKEY1     = INPUT-AUFNR.
        LW_LOG-IKEY2     = INPUT-WERKS.
        LW_LOG-IKEY3     = INPUT-SERNR.
        LW_LOG-IKEY4     = INPUT-BRGEW.
        LW_LOG-LOGST     = 'S'.                   "日志状态
        LW_LOG-LOGTX     = '成品扫码入库成功!'.            "日志文本
        LW_LOG-CAFUN     = 'ZPP_BAPI_PRODUCT_STOCK_IN'.   "调用函数
        APPEND LW_LOG TO LT_LOG.
        CLEAR OUTPUT.
      ELSE.
    
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    
        OUTPUT-FLAG = 'E'.
        CONCATENATE '成品入库失败:' W_RETURN-MESSAGE INTO OUTPUT-NOTES.
        APPEND OUTPUT.
    
        CLEAR LW_LOG.
        LW_LOG-INTTY     = 'SI'.
        LW_LOG-DIRECT    = '2'.
        LW_LOG-INFTX     = '扫码自动入库&更新重量'.
    *    LW_LOG-OKEY1     = .
        LW_LOG-OKEY2     = CZ_MESS.
        LW_LOG-IKEY1     = INPUT-AUFNR.
        LW_LOG-IKEY2     = INPUT-WERKS.
        LW_LOG-IKEY3     = INPUT-SERNR.
        LW_LOG-IKEY4     = INPUT-BRGEW.
        LW_LOG-LOGST     = 'E'.                   "日志状态
        LW_LOG-LOGTX     = OUTPUT-NOTES.            "日志文本
        LW_LOG-CAFUN     = 'ZPP_BAPI_PRODUCT_STOCK_IN'.   "调用函数
        APPEND LW_LOG TO LT_LOG.
        CLEAR OUTPUT.
      ENDIF.
    
      IF INPUT[] IS NOT INITIAL.
        CALL FUNCTION 
        TABLES
          IT_LOG        = LT_LOG
                  .
        IF SY-SUBRC EQ 0.
          COMMIT WORK.
        ENDIF.
      ENDIF.
      CLEAR:INPUT[].
    
    ENDFUNCTION.
  • 相关阅读:
    大内密探HMM(转)
    广义线性模型(logistic和softmax)
    百度首席科学家 Andrew Ng谈深度学习的挑战和未来(转载)
    推荐系统中的SVD
    Leveldb源码解析之Bloom Filter
    redis源码解析之事件驱动
    I/O多路复用机制:epoll
    redis源码解析之内存管理
    Redis源码解析之ziplist
    redis源码解析之dict数据结构
  • 原文地址:https://www.cnblogs.com/mingdashu/p/5649780.html
Copyright © 2020-2023  润新知