【MM系列】SAP MM模块-BAPI:BAPI_GOODSMVT_CREATE的CODE分析

公众号: SAP Technical
本文作者: matinal
 

 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

货物移动的bapi  BAPI_GOODSMVT_CREATE
其中 参数 : 

GOODSMVT_CODE 有  GMCODE Table T158G 


GM_Code 01: Goods receipt for purchase order
GM_Code 02: Goods receipt for production order
GM_Code 03: Goods issue
GM_Code 04: Transfer posting
GM_Code 05: Other goods receipts
GM_Code 06: Reversal of goods movements
GM_Code 07: Subsequent adjustment to a subcontract order
--------------------- 

转载于:https://www.cnblogs.com/SAPmatinal/p/11180798.html

"Z25 SELECT SINGLE * INTO @DATA(ls_matdoc_z25) FROM matdoc WHERE xblnr = @iv_mtsnr AND bwart = 'Z25'. IF ls_matdoc_z25 IS INITIAL. CLEAR :ls_goodsmvt_header,ls_goodsmvt_code,lt_goodsmvt_item,lt_return. ls_goodsmvt_header-pstng_date = sy-datum."po_budat."物料凭证过帐日期 ls_goodsmvt_header-doc_date = iv_bldat."物料凭证创建日期. ls_goodsmvt_header-ref_doc_no = iv_mtsnr."OA流程号 ls_goodsmvt_header-header_txt = iv_bktxt."凭证抬头文本 * LS_GOODSMVT_HEADER-PR_UNAME = SY-UNAME."用户 ls_goodsmvt_code-gm_code = '03'. "对应MB1A LOOP AT t_data_input. CLEAR ls_goodsmvt_item. IF t_data_input-menge = 0. CONTINUE. ENDIF. READ TABLE lt_mara INTO DATA(ls_mara_z25) WITH KEY matnr = t_data_input-matnr BINARY SEARCH. IF sy-subrc = 0. ls_goodsmvt_item-entry_uom = ls_mara_z25-meins. ENDIF. CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' "物料加前导零 EXPORTING input = t_data_input-matnr IMPORTING output = t_data_input-matnr. ls_goodsmvt_item-material = t_data_input-matnr. ls_goodsmvt_item-entry_qnt = t_data_input-menge. "数量 ls_goodsmvt_item-plant = t_data_input-werks. "工厂 ls_goodsmvt_item-stge_loc = t_data_input-lgort. "库存地 ls_goodsmvt_item-costcenter = t_data_input-kostl. "成本中心 CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = ls_goodsmvt_item-costcenter IMPORTING output = ls_goodsmvt_item-costcenter . ls_goodsmvt_item-move_type = 'Z25'. "移动类型 ls_goodsmvt_item-batch = t_data_input-charg. "批次 ls_goodsmvt_item-serialno_auto_numberassignment = 'X'. APPEND ls_goodsmvt_item TO lt_goodsmvt_item. ENDLOOP. IF lt_goodsmvt_item IS NOT INITIAL. CLEAR lt_return. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' "调用BAPI领料过账 EXPORTING goodsmvt_header = ls_goodsmvt_header "抬头数据 goodsmvt_code = ls_goodsmvt_code IMPORTING materialdocument = materialdocument "凭证号 matdocumentyear = matdocumentyear TABLES goodsmvt_item = lt_goodsmvt_item "明细数据 return = lt_return. "返回消息 LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'. e_message = e_message && ls_return-message. ENDLOOP. IF sy-subrc = 0. e_status = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. CLEAR: ev_mblnr_ch,ev_mjahr_ch. ev_mblnr_ch = materialdocument. ev_mjahr_ch = matdocumentyear. e_message = TEXT-026. e_status = 'S'. "记录申请人和过账人账号 CLEAR: ls_ztmm009,lt_ztmm009. ls_ztmm009-mblnr = ev_mblnr_ch. ls_ztmm009-mjahr = ev_mjahr_ch. ls_ztmm009-usnam = iv_usnam."申请人账号 ls_ztmm009-name_text = iv_usnam_post."仓库过账人账号 ls_ztmm009-bktxt = iv_bktxt. APPEND ls_ztmm009 TO lt_ztmm009. MODIFY ztmm009 FROM TABLE lt_ztmm009. ENDIF. ENDIF. ELSE. ev_mblnr_ch = ls_matdoc_z25-mblnr. ev_mjahr_ch = ls_matdoc_z25-mjahr. e_message = '执行成功!'. e_status = 'S'. ENDIF. 解释一下
最新发布
11-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值