物料移動---261

FORM FRM_WM_GOODSMOV_261 .

  DATA:
    LV_ERRFLG   TYPE CHAR1,
    LV_BDMNG    TYPE RESBD-BDMNG,
    LV_VERME    TYPE LQUA-VERME,
    I_GHEADER   TYPE TABLE OF BAPI2017_GM_HEAD_01 WITH HEADER LINE ,
    I_GHEADRET  TYPE TABLE OF BAPI2017_GM_HEAD_RET WITH HEADER LINE ,
    I_MDOCUMENT TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
    I_MDOCYEAR  TYPE BAPI2017_GM_HEAD_RET-DOC_YEAR,
    I_GITEM     TYPE TABLE OF BAPI2017_GM_ITEM_CREATE WITH HEADER LINE ,
    I_GSNUMBER  TYPE TABLE OF BAPI2017_GM_SERIALNUMBER WITH HEADER LINE,
    I_RETURN    TYPE TABLE OF BAPIRET2 WITH HEADER LINE,
    LS_MSEG     TYPE MSEG,
    LT_LTAK_VB  TYPE LTAK_VB OCCURS 0 WITH HEADER LINE,
    LT_LTAP_VB  TYPE LTAP_VB OCCURS 0 WITH HEADER LINE.

  SELECT SUM( VERME )
    INTO LV_VERME
    FROM LQUA
   WHERE LGNUM = IT_STOSEQ-LGNUM
     AND MATNR = IT_RESBD-MATNR
     AND LGTYP = IT_STOSEQ-LGTYP
     AND WERKS = P_WERKS
     AND SOBKZ <> 'K'.

  IF LV_VERME IS INITIAL.
    EXIT.
  ENDIF.

  IF LV_VERME > GS_MARD-LABST.
    LV_VERME  = GS_MARD-LABST.
  ENDIF.

  CONCATENATE SY-UNAME ' ' SY-TCODE INTO I_GHEADER-HEADER_TXT.
  I_GHEADER-DOC_DATE   = SY-DATUM.
  I_GHEADER-PSTNG_DATE = SY-DATUM.

  APPEND I_GHEADER.
  IF IT_RESBD-BDMNG > LV_VERME.
    LV_BDMNG = LV_VERME.
  ELSE.
    LV_BDMNG = IT_RESBD-BDMNG.
  ENDIF.

  I_GITEM-MATERIAL   = IT_RESBD-MATNR.
  I_GITEM-STGE_LOC   = IT_STOSEQ-LGORT.
  I_GITEM-ENTRY_QNT  = LV_BDMNG.
  I_GITEM-ENTRY_UOM  = IT_RESBD-MEINS.
  I_GITEM-MOVE_TYPE  = '261'.
  I_GITEM-PLANT      = IT_RESBD-WERKS.
  I_GITEM-ORDERID    = IT_MESYLD-AUFNR.
  I_GITEM-RESERV_NO  = IT_RESBD-RSNUM.
  I_GITEM-RES_ITEM   = IT_RESBD-RSPOS.
  CONCATENATE IT_MESYLD-APLFL
              IT_MESYLD-VORNR
         INTO I_GITEM-GR_RCPT
         SEPARATED BY ','.

  APPEND I_GITEM.

  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      GOODSMVT_HEADER       = I_GHEADER
      GOODSMVT_CODE         = '03'
    IMPORTING
      GOODSMVT_HEADRET      = I_GHEADRET
      MATERIALDOCUMENT      = I_MDOCUMENT
      MATDOCUMENTYEAR       = I_MDOCYEAR
    TABLES
      GOODSMVT_ITEM         = I_GITEM
      GOODSMVT_SERIALNUMBER = I_GSNUMBER
      RETURN                = I_RETURN.

  LOOP AT I_RETURN.
    MESSAGE ID     I_RETURN-ID
            TYPE   I_RETURN-TYPE
            NUMBER I_RETURN-NUMBER
            WITH   I_RETURN-MESSAGE_V1
                   I_RETURN-MESSAGE_V2
                   I_RETURN-MESSAGE_V3
                   I_RETURN-MESSAGE_V4
            INTO IT_MSG-MSGTXT.
    APPEND IT_MSG.
    IF I_RETURN-TYPE = 'E' OR
       I_RETURN-TYPE = 'A'.
      LV_ERRFLG = 'X'.
    ENDIF.
  ENDLOOP.

 

 

貨物移動的bapi  BAPI_GOODSMVT_CREATE
其中 參數 : GOODSMVT_CODE 有
 GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order
*                      02 - MB31 - Goods Receipts for Prod Order
*                      03 - MB1A - Goods Issue
*                      04 - MB1B - Transfer Posting
*                      05 - MB1C - Enter Other Goods Receipt
*                      06 - MB11
*                      07 - MB04

事物代碼MBST憑證沖銷 BAPI  BAPI_GOODSMVT_CANCEL

獲得憑證明細 BAPI  BAPI_GOODSMVT_GETDETAIL

根據物料 工廠 移動類型  記賬日期 創建人 等查詢憑證 BAPI  BAPI_GOODSMVT_GETITEMS

SAP內部使用 BAPI  BAPI_GOODSMVT_SAPCREATE

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章