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