01 MB01
02 MB31
03 MB1A
04 MB1B
05 MB1C
06 MB11
07 MB04
这些值存储在表T158G中
MKPF存的是物料凭证表头信息,MSEG存的是物料凭证行项目信息。
例子:
FUNCTION ybapi_goodsmvt_create.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(IS_GOODSMVT_HEADER) LIKE BAPI2017_GM_HEAD_01 STRUCTURE
*" BAPI2017_GM_HEAD_01
*" EXPORTING
*" VALUE(O_MBLNR) TYPE MKPF-MBLNR
*" VALUE(O_MJAHR) TYPE MKPF-MJAHR
*" VALUE(O_MSG) TYPE STRING
*" TABLES
*" T_GOODSMVT_ITEM STRUCTURE BAPI2017_GM_ITEM_CREATE
*"----------------------------------------------------------------------
DATA: lt_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
CLEAR: is_goodsmvt_header.
REFRESH: t_goodsmvt_item.
**--TEST
"---header
is_goodsmvt_header-pstng_date = sy-datum.
is_goodsmvt_header-doc_date = sy-datum.
is_goodsmvt_header-pr_uname = sy-uname.
is_goodsmvt_header-header_txt = 'HEADER short text'.
"---item
t_goodsmvt_item-material = '000000600000009999'.
t_goodsmvt_item-plant = '3000'.
t_goodsmvt_item-stge_loc = 'PK02'.
t_goodsmvt_item-move_type = '101'.
t_goodsmvt_item-entry_qnt = '9'.
t_goodsmvt_item-entry_uom = 'EA'.
t_goodsmvt_item-po_number = '4500000097'.
t_goodsmvt_item-po_item = '00010'.
t_goodsmvt_item-mvt_ind = 'B'.
t_goodsmvt_item-move_mat = '3000000098'.
t_goodsmvt_item-move_plant = '3000'.
t_goodsmvt_item-move_plant = 'PK03'.
t_goodsmvt_item-nb_slips = '2'.
APPEND t_goodsmvt_item.
CLEAR t_goodsmvt_item.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = is_goodsmvt_header
goodsmvt_code = '02'
testrun = 'X'
IMPORTING
materialdocument = o_mblnr
matdocumentyear = o_mjahr
TABLES
goodsmvt_item = t_goodsmvt_item
return = lt_return.
LOOP AT lt_return WHERE type EQ 'A' OR type EQ 'E'.
IF sy-tabix EQ 1.
o_msg = '创建失败:'.
ENDIF.
CONCATENATE o_msg lt_return-message INTO o_msg.
ENDLOOP.
IF NOT o_msg IS INITIAL.
EXIT.
ELSE.
REFRESH: lt_return.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = is_goodsmvt_header
goodsmvt_code = '02'
IMPORTING
materialdocument = o_mblnr
matdocumentyear = o_mjahr
TABLES
goodsmvt_item = t_goodsmvt_item
return = lt_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
CONCATENATE '物料凭证:' o_mblnr '在年度' o_mjahr '已成功创建!' INTO o_msg.
ENDIF.
**--生产订单收退料
CLEAR: is_goodsmvt_header.
REFRESH: t_goodsmvt_item.
**--TEST
"---header
is_goodsmvt_header-pstng_date = sy-datum.
is_goodsmvt_header-doc_date = sy-datum.
is_goodsmvt_header-pr_uname = sy-uname.
is_goodsmvt_header-header_txt = 'HEADER short text'.
"---item
t_goodsmvt_item-material = '000000003102000245'.
t_goodsmvt_item-plant = '1201'.
t_goodsmvt_item-stge_loc = '1006'.
t_goodsmvt_item-move_type = '261'. "库存管理
t_goodsmvt_item-entry_qnt = '9'.
t_goodsmvt_item-entry_uom = 'EA'.
t_goodsmvt_item-orderid = '000010003579'. "MO号
t_goodsmvt_item-reserv_no = '0000107118'. "预留编号
t_goodsmvt_item-res_item = '0019'. "预留项目
APPEND t_goodsmvt_item.
CLEAR t_goodsmvt_item.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = is_goodsmvt_header
goodsmvt_code = '03'
testrun = 'X'
IMPORTING
materialdocument = o_mblnr
matdocumentyear = o_mjahr
TABLES
goodsmvt_item = t_goodsmvt_item
return = lt_return.
LOOP AT lt_return WHERE type EQ 'A' OR type EQ 'E'.
IF sy-tabix EQ 1.
o_msg = '创建失败:'.
ENDIF.
CONCATENATE o_msg lt_return-message INTO o_msg.
ENDLOOP.
IF NOT o_msg IS INITIAL.
EXIT.
ELSE.
REFRESH: lt_return.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = is_goodsmvt_header
goodsmvt_code = '03'
IMPORTING
materialdocument = o_mblnr
matdocumentyear = o_mjahr
TABLES
goodsmvt_item = t_goodsmvt_item
return = lt_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
CONCATENATE o_mblnr '在年度' o_mjahr '已成功创建!' INTO o_msg.
ENDIF.
ENDFUNCTION.