BAPI_GOODSMVT_CREATE 移动类型201 CODE = '03' 代码
DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC. "物料凭证编号
DATA: GMHEAD LIKE BAPI2017_GM_HEAD_01.
DATA: BEGIN OF GMCODE.
INCLUDE STRUCTURE BAPI2017_GM_CODE.
DATA: END OF GMCODE.
GMCODE-GM_CODE = '03'.
***********gmcode-gm_code取值含义*******
********01 MB01
********02 MB31
********03 MB1A
********04 MB1B
********05 MB1C
********06 MB11
********07 MB04
DATA: BEGIN OF MTHEAD.
INCLUDE STRUCTURE BAPI2017_GM_HEAD_RET.
DATA: END OF MTHEAD.
DATA: BEGIN OF ITAB OCCURS 100.
INCLUDE STRUCTURE BAPI2017_GM_ITEM_CREATE.
DATA: END OF ITAB.
DATA: BEGIN OF ERRMSG OCCURS 10.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF ERRMSG.
"CLEAR: MAT_DOC, GMHEAD, GMCODE, MTHEAD, ITAB[], ERRMSG[].
GMHEAD-PSTNG_DATE = SY-DATUM. "凭证中的过帐日期
GMHEAD-DOC_DATE = SY-DATUM. "凭证中的凭证日期
GMHEAD-PR_UNAME = SY-UNAME.
LOOP AT SHOW_TAB WHERE SEL_COL = 'X'.
ITAB-MATERIAL = SHOW_TAB-MATNR. "物料号
ITAB-PLANT = SHOW_TAB-WERKS. "工厂
ITAB-STGE_LOC = SHOW_TAB-ZLGORTO. "库存地点
ITAB-COSTCENTER = SHOW_TAB-KOSTL. "成本中心 比311多了个成本中心
ITAB-BATCH = SHOW_TAB-CHARG. "批次
ITAB-ENTRY_QNT = SHOW_TAB-MENGE. "实领数量
ITAB-ENTRY_UOM = SHOW_TAB-MEINS. "单位
ITAB-MOVE_TYPE = SHOW_TAB-ZLLTYPE. "移动类型
* ITAB-mvt_ind = 'O'.
ITAB-MOVE_MAT = SHOW_TAB-MATNR. "收货/发货物料号
ITAB-MOVE_PLANT = SHOW_TAB-WERKS. "收货/发货工厂
ITAB-MOVE_STLOC = SHOW_TAB-ZLGORTI. "收货/发货物料仓库
* ITAB-no_more_gr = 'X'. "交货完成标识
APPEND ITAB.
ENDLOOP.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = GMHEAD
GOODSMVT_CODE = GMCODE
* TESTRUN = ' '
* GOODSMVT_REF_EWM =
IMPORTING
GOODSMVT_HEADRET = MTHEAD
MATERIALDOCUMENT = MAT_DOC
* MATDOCUMENTYEAR =
TABLES
GOODSMVT_ITEM = ITAB
* GOODSMVT_SERIALNUMBER =
RETURN = ERRMSG
* GOODSMVT_SERV_PART_DATA =
* EXTENSIONIN =
.
READ TABLE ERRMSG WITH KEY TYPE = 'E'.
IF SY-SUBRC = 0.
MESSAGE ERRMSG-MESSAGE TYPE 'S' DISPLAY LIKE 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
"SHOW_TAB-POST = ''.
ELSE.
"必须成功执行 BAPI_GOODSMVT_CREATE 不然会在MIGO查不到 生成的凭证号 MAT_DOC
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
DATA: L_MESS(100).
CONCATENATE '过账成功,凭证号:' MAT_DOC INTO L_MESS.
MESSAGE L_MESS TYPE 'S' .
"SHOW_TAB-POST = 'X'.
ENDIF.
BAPI_GOODSMVT_CREATE 移动类型201 CODE = '03' 代码的更多相关文章
- BAPI_GOODSMVT_CREATE 移动类型311 CODE = '04' 代码
DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC. "物料凭证编号 DATA: GMHEAD LIKE BAPI2017_GM_H ...
- 自动生成Code First代码
自动生成Code First代码 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Fram ...
- VS code调试代码快速上手必备知识
一.通过简单的配置运行一个JavaScript程序 1.打开(创建)一个新的工作空间(文件夹),并创建一个js文件: var name='world'; var s='Hello,${name}!'; ...
- Code Snippets 代码片段
Code Snippets 代码片段 1.Title : 代码片段的标题 2.Summary : 代码片段的描述文字 3.Platform : 可以使用代码片段的平台,有IOS/OS X/ ...
- Effective Java提升Code Coverage代码涵盖率 - 就是爱Java
虽然我们已经有了测试程序,但是如何得知是否已完整测试了主程序?,透过Code Coverage代码涵盖率,我们可以快速地得知,目前系统中,有多少程序中被测试过,不考虑成本跟投资效益比,涵盖率越高,代表 ...
- 第五次作业2、请将该code进行代码重构,使之模块化,并易于阅读和维护;
1.请运行下面code,指出其功能: (需附运行结果截图,并用简短文字描述其功能) 显示了人的姓名.年龄 2.请将该code进行代码重构,使之模块化,并易于阅读和维护: 3.观看视频The Exper ...
- Code::Blocks代码自动提示设置及常用快捷键
Code::Blocks代码自动提示设置及常用快捷键(适用windows和linux) 1)以下需要设置的地方均在Settings->Editor...弹出的对话框中. 2)不少命令都可针对当前 ...
- VS Code 用户自定义代码片段(React)
VS Code 用户自定义代码片段(React) .jsxReact组件模板:javascriptreact.json { "Import React": { "pref ...
- dead code 死代码 无作用的代码
DatasetVector datasetvector=(DatasetVector)dataset; if (datasetvector == null) ...
随机推荐
- 使用Reactive Extensions(Rx),对短时间内多次发生的事件限流
使用Reactive Extensions(Rx),对短时间内多次发生的事件限流 牛刀小试:使用Reactive Extensions(Rx),对短时间内多次发生的事件限流 我之前有一篇文章介绍到了R ...
- Page_Load接收随机参数放到字典类中
Page_Load接收随机参数放到字典类中,可以用作签名.普通的接收url的参数可以用作下面这种模式: int appid =Convert.ToInt32(param["appid&qu ...
- 代码契约CodeContract(八)
代码契约(Code Contract):它并不是语言本身的新功能,而是一些额外的工具,帮助人们控制代码边界. 代码契约之于C#,就相当于诗词歌赋之于语言. --- C# in Depth 一,概述 1 ...
- Wcf 文件上传下载
wcf 文件上传的例子网上很多,我也是借鉴别人的示例.wcf 文件下载的示例网上就很少了,不知道是不是因为两者的处理方式比较类似,别人就没有再上传了.在此本人做下记录备忘. UploadFile.sv ...
- 34. LotusScript中的错误处理程序
错误处理程序是所有严肃的程序的必要部分.但是在Lotus Notes开发中,很多程序员编写LotusScript代码时,并没有写专门的错误处理代码的习惯.这能够行得通,主要是因为LotusScript ...
- UITabelview的删除
删除的效果 Automatic Bottom Fade left middle none right top 简单删除 先删除数据源里的数据,然后再删除cell,否者会报错 let indexPath ...
- 七、rdd究竟是什么
RDD是个抽象类,定义了诸如map().reduce()等方法,但实际上继承RDD的派生类一般只要实现两个方法: def getPartitions: Array[Partition] def com ...
- Caffe安装过程错误处理方法
1. 错误1: fatal error: caffe/proto/caffe.pb.h: No such file or directory 解决方法: You need to generate ca ...
- flexbox应用举例
我们常说的"flexbox"其实包含"父元素","子元素"2个部分,将"父元素"定义为一个flexbox,则在" ...
- asp.net小技巧:保留password模式文本框textbox内的数据不丢失。
在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号.圆点),就没有了! 一个可行的做法是 : prot ...