BAPI_GOODSMVT_CREATE(调拨 收货 发货 入库 退货)BAPI
一些相关的事务码:
MB01 按采购订单的货物移动
MB31 按生产订单的货物移动
MB1A 货物提取(工单退料
MB1B 转移过帐
MB1C 其他收货
MB11 货物移动
MB04 "物料供应"消耗的事后调整
一些相关的移动标识:
无参考的货物移动(空)
B 按采购订单的货物移动
F 有关生产单的货物移动
L 有关交货通知的货物移动
K 看板需求的货物移动(WM-仅限内部)
O "提供物料"消耗的后续调整
W 比例的后续调整/产品单位物料
1、调拨单(货物移动)↓
FUNCTION zfunction.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_TORDER_REQ_I STRUCTURE ZMES_TORDER_REQ_I
*"----------------------------------------------------------------------
*输入表数据:ZMES_TORDER_REQ_I(表结构)
* PSTNG_DATE type BUDAT 凭证中的过帐日期
* MATERIAL MATNR 物料号
* PLANT WERKS_D CHAR 工厂
* MOVE_PLANT UMWRK 收货/发货工厂
* STGE_LOC LGORT_D 库存地点
* MOVE_STLOC UMLGO 收货/发货库存地点
* ENTRY_QNT ERFMG 以输入单位计的数量
* BATCH CHARG_D 批号
*"----------------------------------------------------------------------DATA:goodsmvt_header LIKE bapi2017_gm_head_01,itab TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,return LIKE TABLE OF bapiret2 WITH HEADER LINE,mat_doc LIKE bapi2017_gm_head_ret-mat_doc,req_i TYPE zmes_torder_req_i.CLEAR:goodsmvt_header.goodsmvt_header-doc_date = sy-datum. "凭证中的凭证日期goodsmvt_header-pr_uname = sy-datum. "用户名LOOP AT zmes_torder_req_i INTO req_i.MOVE-CORRESPONDING req_i TO itab.goodsmvt_header-pstng_date = req_i-pstng_date. "凭证中的过帐日期IF req_i-plant = req_i-move_plant.itab-move_type = '311'. "移动类型(库储存地点<->库存地点)ELSE.
* itab-move_type = '301'. "移动类型(工厂<->工厂)ENDIF.APPEND itab.CLEAR itab.ENDLOOP.CALL FUNCTION 'BAPI_GOODSMVT_CREATE'EXPORTINGgoodsmvt_header = goodsmvt_headergoodsmvt_code = '04'IMPORTINGmaterialdocument = mat_docTABLESgoodsmvt_item = itabreturn = return.READ TABLE return WITH KEY type = 'E'.IF sy-subrc = 0.rstype = 'E'.LOOP AT return WHERE type = 'E' .CONCATENATE rsmesg return-message ',' INTO rsmesg.ENDLOOP.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.ENDIF.
ENDFUNCTION.
2、工单发料 ↓
function zfunction.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_ORD_REQ_I STRUCTURE ZMES_ORD_REQ_I
*"----------------------------------------------------------------------
*输入表:ZMES_ORD_REQ_I(表结构)
* PLANT WERKS_D 工厂
* ORDERID AUFNR 订单号
* MATERIAL MATNR 物料号
* ENTRY_QNT ERFMG 以输入单位计的数量
* STGE_LOC LGORT_D 库存地点
*"----------------------------------------------------------------------data:goodsmvt_header like bapi2017_gm_head_01,itab type table of bapi2017_gm_item_create with header line,return like table of bapiret2 with header line,mat_doc like bapi2017_gm_head_ret-mat_doc,req_i type zmes_ord_req_i.clear:goodsmvt_header.goodsmvt_header-doc_date = sy-datum. "凭证中的凭证日期goodsmvt_header-pstng_date = sy-datum. "凭证中的过帐日期goodsmvt_header-pr_uname = sy-datum. "用户名loop at zmes_ord_req_i into req_i.move-CORRESPONDING req_i to itab.itab-move_type = '261'. "移动类型(库存管理)append itab.clear itab.endloop.call function 'BAPI_GOODSMVT_CREATE'exportinggoodsmvt_header = goodsmvt_headergoodsmvt_code = '03'importingmaterialdocument = mat_doctablesgoodsmvt_item = itabreturn = return.read table return with key type = 'E'.if sy-subrc = 0.rstype = 'E'.loop at return where type = 'E' .concatenate rsmesg return-message ',' into rsmesg.endloop.call function 'BAPI_TRANSACTION_ROLLBACK' .else.call function 'BAPI_TRANSACTION_COMMIT'exportingwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.endif.
endfunction.
3、工单退料 ↓
function zfunction.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_RT_ORDER_I STRUCTURE ZMES_RT_ORDER_I
*"----------------------------------------------------------------------
*输入表:ZMES_RT_ORDER_I(表结构)
* PLANT WERKS_D 工厂
* ORDERID AUFNR 订单号
* MATERIAL MATNR 物料号
* RESERV_NO RSNUM 预留/相关需求的编号
* RES_ITEM RSPOS 预留/相关需求的项目编号
* ENTRY_QNT ERFMG 以输入单位计的数量
* MOVE_REAS MB_GRBEW 移动原因
* STGE_LOC LGORT_D 库存地点
* BATCH CHARG_D 批号
*"----------------------------------------------------------------------data:goodsmvt_header like bapi2017_gm_head_01,itab type table of bapi2017_gm_item_create with header line,return like table of bapiret2 with header line,mat_doc like bapi2017_gm_head_ret-mat_doc,order_i type zmes_rt_order_i.clear:goodsmvt_header.goodsmvt_header-doc_date = sy-datum. "凭证中的凭证日期goodsmvt_header-pstng_date = sy-datum. "凭证中的过帐日期goodsmvt_header-pr_uname = sy-datum. "用户名loop at zmes_rt_order_i into order_i.move-corresponding order_i to itab.itab-move_type = '262'. "移动类型(库存管理)append itab.clear itab.endloop.call function 'BAPI_GOODSMVT_CREATE'exportinggoodsmvt_header = goodsmvt_headergoodsmvt_code = '03'importingmaterialdocument = mat_doctablesgoodsmvt_item = itabreturn = return.read table return with key type = 'E'.if sy-subrc = 0.rstype = 'E'.loop at return where type = 'E' .concatenate rsmesg return-message ',' into rsmesg.endloop.call function 'BAPI_TRANSACTION_ROLLBACK' .else.call function 'BAPI_TRANSACTION_COMMIT'exportingwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.endif.
endfunction.
4、工单入库 ↓
FUNCTION zfunction.FUNCTION zmes_order_in.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_ORDER_IN_I STRUCTURE ZMES_ORDER_IN_I
*"----------------------------------------------------------------------
*输入表:ZMES_ORDER_IN_I(表结构)
* PLANT WERKS_D 工厂
* ORDERID AUFNR 订单号
* ENTRY_QNT ERFMG 以输入单位计的数量
* STGE_LOC LGORT_D 库存地点
* BATCH CHARG_D 批号
*"----------------------------------------------------------------------DATA:header LIKE bapi2017_gm_head_01,code LIKE bapi2017_gm_code,itab TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,return LIKE TABLE OF bapiret2 WITH HEADER LINE,mat_doc LIKE bapi2017_gm_head_ret-mat_doc,goodsmvt_serialnumber TYPE TABLE OF bapi2017_gm_serialnumber,order_in TYPE zmes_order_in_i.CLEAR:header,code.header-doc_date = sy-datum. "凭证中的凭证日期header-pstng_date = sy-datum. "凭证中的过帐日期header-pr_uname = sy-datum. "用户名code-gm_code = '01'.LOOP AT zmes_order_in_i INTO order_in.MOVE-CORRESPONDING order_in TO itab.itab-move_type = '101'. "移动类型itab-mvt_ind = 'F'. "移动标识APPEND itab.CLEAR itab.ENDLOOP.CALL FUNCTION 'BAPI_GOODSMVT_CREATE'EXPORTINGgoodsmvt_header = headergoodsmvt_code = codeIMPORTINGmaterialdocument = mat_docTABLESgoodsmvt_item = itabgoodsmvt_serialnumber = goodsmvt_serialnumberreturn = return.READ TABLE return WITH KEY type = 'E'.IF sy-subrc = 0.rstype = 'E'.LOOP AT return WHERE type = 'E' .CONCATENATE rsmesg return-message ',' INTO rsmesg.ENDLOOP.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.ENDIF.ENDFUNCTION.
ENDFUNCTION.
5、PO退货 ↓
FUNCTION zfunction.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_PO_STOCK_I STRUCTURE ZMES_PO_STOCK_I
*"----------------------------------------------------------------------
*输入表:ZMES_PO_STOCK_I(表结构)
* MOVE_TYPE BWART 移动类型(库存管理)
* PO_NUMBER BSTNR 采购订单编号
* PO_ITEM EBELP 采购凭证的项目编号
* PLANT WERKS_D 工厂
* MATERIAL MATNR 物料号
* ENTRY_QNT ERFMG 以输入单位计的数量
* STGE_LOC LGORT_D 库存地点
* MOVE_REAS MB_GRBEW 移动原因
* REF_DOC MBLNR 物料凭证编号
* REF_DOC_IT LFPOS 参考凭证项目
*"----------------------------------------------------------------------DATA:header LIKE bapi2017_gm_head_01,itab TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,return LIKE TABLE OF bapiret2 WITH HEADER LINE,mat_doc LIKE bapi2017_gm_head_ret-mat_doc,stock_i TYPE zmes_po_stock_i.CLEAR:header.header-doc_date = sy-datum. "凭证中的凭证日期header-pstng_date = sy-datum. "凭证中的过帐日期header-pr_uname = sy-datum. "用户名LOOP AT zmes_po_stock_i INTO stock_i.MOVE-CORRESPONDING stock_i TO itab.itab-mvt_ind = 'B'. "移动标识CASE stock_i-move_type.WHEN '102'.itab-move_reas = ''. "移动原因WHEN '122'.WHEN '161'.itab-move_type = '101'. "移动类型itab-ref_doc = ''. "物料凭证itab-ref_doc_it = ''. "物料凭证项目itab-move_reas = ''. "移动原因ENDCASE.APPEND itab.CLEAR itab.ENDLOOP.CALL FUNCTION 'BAPI_GOODSMVT_CREATE'EXPORTINGgoodsmvt_header = headergoodsmvt_code = '01' "MB01 按采购订单的货物移动IMPORTINGmaterialdocument = mat_docTABLESgoodsmvt_item = itabreturn = return.READ TABLE return WITH KEY type = 'E'.IF sy-subrc = 0.rstype = 'E'.LOOP AT return WHERE type = 'E' .CONCATENATE rsmesg return-message ',' INTO rsmesg.ENDLOOP.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.ENDIF.
ENDFUNCTION.
6、收货 ↓
FUNCTION zfunction.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_PO_IN STRUCTURE ZMES_PO_IN
*"----------------------------------------------------------------------
*输入表:ZMES_PO_IN(表结构)
* REF_DOC_NO XBLNR 参考凭证编号
* PLANT WERKS_D 工厂
* PO_NUMBER EBELN 采购凭证号
* PO_ITEM EBELP 采购凭证的项目编号
* ETENS EETEN 交货计划行计数器
* MATERIAL MATNR 物料号
* STGE_LOC LGORT_D 库存地点
* ENTRY_QNT ERFMG 以输入单位计的数量
* VENDOR ELIFN 供应商帐户号
* BATCH CHARG_D 批号*"----------------------------------------------------------------------DATA:header LIKE bapi2017_gm_head_01,code LIKE bapi2017_gm_code,itab TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,return LIKE TABLE OF bapiret2 WITH HEADER LINE,mat_doc LIKE bapi2017_gm_head_ret-mat_doc,po_in TYPE zmes_po_in.CLEAR:header,code.header-doc_date = sy-datum. "凭证中的凭证日期header-pstng_date = sy-datum. "凭证中的过帐日期header-pr_uname = sy-datum. "用户名header-ref_doc_no = zmes_po_in-ref_doc_no. "外向交货单code-gm_code = '01'. "为 BAPI 货物移动分配事务代码 4500090063LOOP AT zmes_po_in INTO po_in.MOVE-CORRESPONDING po_in TO itab.itab-move_type = '101'. "移动类型itab-mvt_ind = 'B'. "移动标识APPEND itab.CLEAR itab.ENDLOOP.CALL FUNCTION 'BAPI_GOODSMVT_CREATE'EXPORTINGgoodsmvt_header = headergoodsmvt_code = codeIMPORTINGmaterialdocument = mat_docTABLESgoodsmvt_item = itabreturn = return.READ TABLE return WITH KEY type = 'E'.IF sy-subrc = 0.rstype = 'E'.LOOP AT return WHERE type = 'E' .CONCATENATE rsmesg return-message ',' INTO rsmesg.ENDLOOP.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.ENDIF.
ENDFUNCTION.
7、IQC入库 ↓
FUNCTION zfunction.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(RSTYPE) TYPE XFELD
*" VALUE(RSMESG) TYPE STRING
*" VALUE(O_MBLNR) TYPE MBLNR
*" TABLES
*" ZMES_PO_IQC_I STRUCTURE ZMES_PO_IQC_I
*"----------------------------------------------------------------------
*输入表:ZMES_PO_IQC_I(表结构)
* PLANT WERKS_D 工厂
* MATERIAL MATNR 物料号
* ENTRY_QNT ERFMG 以输入单位计的数量
* STGE_LOC LGORT_D 库存地点
* BATCH CHARG_D 批号
*"----------------------------------------------------------------------DATA:header LIKE bapi2017_gm_head_01,itab TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,return LIKE TABLE OF bapiret2 WITH HEADER LINE,mat_doc LIKE bapi2017_gm_head_ret-mat_doc,goodsmvt_serialnumber TYPE TABLE OF bapi2017_gm_serialnumber,iqc_in TYPE zmes_po_iqc_i.CLEAR:header.header-doc_date = sy-datum. "凭证中的凭证日期header-pstng_date = sy-datum. "凭证中的过帐日期header-pr_uname = sy-datum. "用户名LOOP AT zmes_po_iqc_i INTO iqc_in.MOVE-CORRESPONDING iqc_in TO itab.itab-move_type = '321'. "移动类型APPEND itab.CLEAR itab.ENDLOOP.CALL FUNCTION 'BAPI_GOODSMVT_CREATE'EXPORTINGgoodsmvt_header = headergoodsmvt_code = '04' "为BAPI货物移动分配事务代码(MB1B 转移过帐)IMPORTINGmaterialdocument = mat_docTABLESgoodsmvt_item = itabgoodsmvt_serialnumber = goodsmvt_serialnumberreturn = return.READ TABLE return WITH KEY type = 'E'.IF sy-subrc = 0.rstype = 'E'.LOOP AT return WHERE type = 'E' .CONCATENATE rsmesg return-message ',' INTO rsmesg.ENDLOOP.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.rstype = 'S'.o_mblnr = mat_doc.ENDIF.
ENDFUNCTION.
如有不完整或其他错误,在评论区留言即可。
BAPI_GOODSMVT_CREATE(调拨 收货 发货 入库 退货)BAPI相关推荐
- Java进销存系统源码 采购模块 收货/质检/入库 动态实时库存
Java进销存系统源码 采购模块 收货/质检/入库 动态实时库存 零星采购.一揽子采购.采购计划.合同采购 采购入库.采购退货.杂项入库.生产入库 多库存组织.库存盘点.库存调拨 销售模块 出库 主数 ...
- 【MM】基于收货的发票校验Bapi Demo
正常我们都会在供应商主档和信息记录主档中勾选"基于收货的发票校验"选项,意味着做采购发票校验的时候需要基于收货凭证. LS_ITEM-REF_DOC = LT_ZMSE ...
- 震撼!自动化|从收货、入库、出库、分拣、输送……
导语 大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K. 知识星球 * 原创电子书 * 深海社区 * 微信群 知名企业 -智能仓储物流技术研习社- 建立智能物流系统甲方.集成商与周边配套商 ...
- word2003如何设置护眼模式_ERP系统上线,如何设置采购收货的模式,提升企业的采购效率...
如何合理的规划采购计划 上次去拜访一个朋友,他们说公司既然出现没有下达采购订单,供应商也有送货过来的事情,对于公司来说,这个是非常严重的问题. 若用了ERP系统之后,如何避免类似的事情发生,今天我们来 ...
- SAP项目采购申请与预留,收货入库,项目领用or项目发货,及报表查看操作
在项目执行过程中,项目经理会在挂接项目物资采购申请后,会很关注项目采购.入库.领用到项目的情况,那么接下来就通过一系列操作与报表来简单说明下,项目物资管理过程: 1.CJ20N项目物资采购挂接,提报需 ...
- 【测试】SAP 委外加工收货BAPI Demo
一.创建委外采购订单(事务代码ME21N) 二.将所需材料发货至供应商处(事务代码MB1B) 查看供应商库存报表(事务代码MBLB) 三.委外PO的收货(这里使用BAPI_GOODSMVT_CREAT ...
- SAP BAPI_GOODSMVT_CREATE收货时序列号传入
用到的是MIGO对应的BAPI:BAPI_GOODSMVT_CREATE 序列号是通过创建物料凭证时,BAPI下的GOODSMVT_SERIALNUMBER结构传入. 对应前台的界面如下: 代码如下: ...
- 【Demo】采购订单收货Bapi
基于SAP采购订单的收货可使用物料移动中常用的Bapi函数"BAPI_GOODSMVT_CREATE"来处理,其中GOODSMVT_CODE采用"01",也就是 ...
- 拼多多自动确认收货后还能退吗?退货申请期限是多久?
其实,在确认收货一点也不难,只需要签收后,点击确认收货按钮就行了.不过,还是有不少伙伴都了懒于去点击确认收货,这个时候系统会自动确认收货 拼多多自动确认收货后还能退吗? 1.常规商品15天内是消费者收 ...
最新文章
- python打印浮点数_python怎么输出浮点数
- 使用%的符号问题(只与被除数有关)
- 深度学习Deep learning:四十一(Dropout简单理解)
- Android 引用第三方开源库,出现冲突 Manifest merger failed : Attribute application@icon value=...
- Git rebase 和 Git merge 的区别,你知道吗?
- 监督学习和无监督学习_机器学习的要素是什么? 有监督学习和无监督学习两大类...
- normalize()方法
- Oracle中listener does not currently know of SID given in connect descriptor
- 一维二维_Excel教程:二维转一维,方法你绝对没用过
- 金特会谈:有骨气的人,才会被人尊重
- 什么是Http无状态协议?
- MFC基于 单文档为状态栏添加进度条
- JS~Boxy和JS模版实现一个标准的消息提示框
- 在ubuntu上搭建IC数模混合环境
- 转载-文件资源管理器无响应的解决办法
- 微信小程序:个人页面/我的页面/资料页面
- uboot启动之BL2阶段的分析1:宏观分析
- python 小游戏——外星人入侵源码倾情奉献
- VC控件——CTreeCtrl中HitTest的用法
- 微信自定义菜单以及消息and事件通知