BAPI_GOODSMVT_CREATE 移动类型311 CODE = '04' 代码
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 = '04'.
***********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'.
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* INPUT = SHOW_TAB-MATNR
* IMPORTING
* OUTPUT = SHOW_TAB-MATNR.
* IF SY-SUBRC = 0..
*
* ENDIF.
ITAB-MATERIAL = SHOW_TAB-MATNR. "物料号
ITAB-PLANT = SHOW_TAB-WERKS. "工厂
ITAB-STGE_LOC = SHOW_TAB-ZLGORTO. "库存地点
"ITAB-COSTCENTER = '1000'. "成本中心
ITAB-BATCH = SHOW_TAB-CHARG. "批次
ITAB-ENTRY_QNT = SHOW_TAB-MENGE. "实领数量
ITAB-ENTRY_UOM = SHOW_TAB-MEINS. "单位
"ITAB-MOVE_TYPE = SHOW_TAB-ZLLTYPE. "移动类型
ITAB-MOVE_TYPE = '311'. "移动类型
* 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 "所产生的物料凭证号 但是必须经过BAPI_TRANSACTION_COMMIT才能查询到该凭证号
* MATDOCUMENTYEAR =
TABLES
GOODSMVT_ITEM = ITAB "关键表 必须填写正确
* GOODSMVT_SERIALNUMBER =
RETURN = ERRMSG "报错信息表
* GOODSMVT_SERV_PART_DATA =
* EXTENSIONIN =
.
* IF ERRMSG[] IS INITIAL.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = 'X'
** IMPORTING
** RETURN =
* .
* DATA: L_MESS(100).
* CONCATENATE '过账成功,凭证号:' MAT_DOC INTO L_MESS.
* MESSAGE L_MESS TYPE 'S' .
* ELSE.
* CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
** IMPORTING
** RETURN =
* .
* ENDIF.
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 移动类型311 CODE = '04' 代码的更多相关文章
- BAPI_GOODSMVT_CREATE 移动类型201 CODE = '03' 代码
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) ...
随机推荐
- VC 编程ANSI环境下读写Unicode文件
没有注意到文件编码的不同会产生这么多的问题,在动手以前查询了很多资料,在本博客中收藏了不少先辈的成果,在这里一并表示致敬! 关于ANSI和Unicode编码的原理在这里也不说了,主要讲下如 ...
- AOP之拦截函数调用链实现
AOP之拦截函数调用链实现 定义函数A,B,C,调用A->B->C,这样就形成了函数静态调用链,而AOP要做的是能动态的添加多个B,形成A->B1->B2->B3...- ...
- Android 短信模块分析(三) MMS入口分析
MMS入口分析: 在Mms中最重要的两个Activity,一个是conversationList(短信列表) ,另一个就是ComposeMessageActivity(单个对话或者短信).每 ...
- 3364 Lanterns (异或方程组高斯消元)
基本思路.首先构造一个n*(m+1)的矩阵,同时标记一个行数row,row从零开始,然后找出每一列第一个非零的数,和第row行互换, 然后对row到n行,异或运算.最终的结果为2^(m-row) #i ...
- 使用Freemarker创建word文档
最近做一个项目,本来是直接在网页上查看文本信息,然后给客户直接打印的,但是发现也许是浏览器还是打印机的原因,总之,有个客户打印出来的格式始终与其他的不同,没办法,最后想到了直接将数据库中的信息生成一个 ...
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)
等待加载完成后,在"Personal Sites" 栏目中会显示你加载的SVN的相关内容,展开"SVN"分别选择"Core SVNKit Librar ...
- CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)
数组是存储同一类型数据的数据结构 数组的声明与初始化 int[] a; int a[]; int[] a = new int[100]; int[] a = new int[100]; for (in ...
- Ubuntu16 64位安装steam, 并解决无法启动的问题
直接用crtl+shift打开终端,运行下面的命令. sudo add-apt-repository multiverse sudo apt update sudo apt install steam ...
- (转)GBDT迭代决策树理解
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Re ...
- linux之LVS简介(转自南非的蚂蚁)
一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver. ...