一些相关的事务码:

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相关推荐

  1. Java进销存系统源码 采购模块 收货/质检/入库 动态实时库存

    Java进销存系统源码 采购模块 收货/质检/入库 动态实时库存 零星采购.一揽子采购.采购计划.合同采购 采购入库.采购退货.杂项入库.生产入库 多库存组织.库存盘点.库存调拨 销售模块 出库 主数 ...

  2. 【MM】基于收货的发票校验Bapi Demo

    正常我们都会在供应商主档和信息记录主档中勾选"基于收货的发票校验"选项,意味着做采购发票校验的时候需要基于收货凭证.       LS_ITEM-REF_DOC = LT_ZMSE ...

  3. 震撼!自动化|从收货、入库、出库、分拣、输送……

    导语 大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K. 知识星球 * 原创电子书 * 深海社区 * 微信群 知名企业 -智能仓储物流技术研习社- 建立智能物流系统甲方.集成商与周边配套商 ...

  4. word2003如何设置护眼模式_ERP系统上线,如何设置采购收货的模式,提升企业的采购效率...

    如何合理的规划采购计划 上次去拜访一个朋友,他们说公司既然出现没有下达采购订单,供应商也有送货过来的事情,对于公司来说,这个是非常严重的问题. 若用了ERP系统之后,如何避免类似的事情发生,今天我们来 ...

  5. SAP项目采购申请与预留,收货入库,项目领用or项目发货,及报表查看操作

    在项目执行过程中,项目经理会在挂接项目物资采购申请后,会很关注项目采购.入库.领用到项目的情况,那么接下来就通过一系列操作与报表来简单说明下,项目物资管理过程: 1.CJ20N项目物资采购挂接,提报需 ...

  6. 【测试】SAP 委外加工收货BAPI Demo

    一.创建委外采购订单(事务代码ME21N) 二.将所需材料发货至供应商处(事务代码MB1B) 查看供应商库存报表(事务代码MBLB) 三.委外PO的收货(这里使用BAPI_GOODSMVT_CREAT ...

  7. SAP BAPI_GOODSMVT_CREATE收货时序列号传入

    用到的是MIGO对应的BAPI:BAPI_GOODSMVT_CREATE 序列号是通过创建物料凭证时,BAPI下的GOODSMVT_SERIALNUMBER结构传入. 对应前台的界面如下: 代码如下: ...

  8. 【Demo】采购订单收货Bapi

    基于SAP采购订单的收货可使用物料移动中常用的Bapi函数"BAPI_GOODSMVT_CREATE"来处理,其中GOODSMVT_CODE采用"01",也就是 ...

  9. 拼多多自动确认收货后还能退吗?退货申请期限是多久?

    其实,在确认收货一点也不难,只需要签收后,点击确认收货按钮就行了.不过,还是有不少伙伴都了懒于去点击确认收货,这个时候系统会自动确认收货 拼多多自动确认收货后还能退吗? 1.常规商品15天内是消费者收 ...

最新文章

  1. python打印浮点数_python怎么输出浮点数
  2. 使用%的符号问题(只与被除数有关)
  3. 深度学习Deep learning:四十一(Dropout简单理解)
  4. Android 引用第三方开源库,出现冲突 Manifest merger failed : Attribute application@icon value=...
  5. Git rebase 和 Git merge 的区别,你知道吗?
  6. 监督学习和无监督学习_机器学习的要素是什么? 有监督学习和无监督学习两大类...
  7. normalize()方法
  8. Oracle中listener does not currently know of SID given in connect descriptor
  9. 一维二维_Excel教程:二维转一维,方法你绝对没用过
  10. 金特会谈:有骨气的人,才会被人尊重
  11. 什么是Http无状态协议?
  12. MFC基于 单文档为状态栏添加进度条
  13. JS~Boxy和JS模版实现一个标准的消息提示框
  14. 在ubuntu上搭建IC数模混合环境
  15. 转载-文件资源管理器无响应的解决办法
  16. 微信小程序:个人页面/我的页面/资料页面
  17. uboot启动之BL2阶段的分析1:宏观分析
  18. python 小游戏——外星人入侵源码倾情奉献
  19. VC控件——CTreeCtrl中HitTest的用法
  20. 微信自定义菜单以及消息and事件通知

热门文章

  1. matlab-基础 正无穷 负无穷
  2. NTC热敏电阻电阻与温度之间的转换公式
  3. gke下载_我们如何在GKE上升级Kubernetes
  4. 【图像隐写】DWT+DCT+PBFO改进图像水印隐藏提取【含GUI Matlab源码 081期】
  5. iframe简单使用
  6. NRF24L01 使用小结—1
  7. Centos7 lvm
  8. Web前端开发常用的开发工具
  9. 单链表排序之直接插入排序
  10. Exchange控制台错误:WinRM客户端已将请求发送到HTTP服务器