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) ...
随机推荐
- c:forEach 实现换行
Map<String,String> map = new TreeMap<String,String>(); map.put("key1", "v ...
- 如何利用.Net内置类,解析未知复杂Json对象
如何利用.Net内置类,解析未知复杂Json对象 如果你乐意,当然可以使用强大的第三方类库Json.Net中的JObject类解析复杂Json字串 . 我不太希望引入第三方类库,所以在.Net内置类J ...
- 最受欢迎的Web开发工具
1)WebBuilderWebBuilder是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发:高效.稳定和可扩展的 ...
- Hibernate配置XML连接数据库
一.hibernate.cfg.xml 1.配置连接Oracle <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate ...
- TFTP:简单文本传输协议,BOOTP:引导程序协议
TFTP:简单文本传输协议,BOOTP:引导程序协议 1.TFTP: TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用 ...
- Java笔记:String类
1.String类是不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列式不可改变的,直至这个对象被销毁. String s1 = "java"; s1 = s ...
- TensorFlow 入门之手写识别(MNIST) softmax算法
TensorFlow 入门之手写识别(MNIST) softmax算法 MNIST flyu6 softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算 ...
- Android RecyclerView体验(一)- 简介
在网上关于RecyclerView的基本使用方式已经有了比较详细介绍,而且其设计结构也类似于ListView,所以本文将不重点介绍如何使用,在文末的引用中都可以相关内容.这里主要是介绍Recycler ...
- 怎么在Windows下安装Linux虚拟机
前提:①电脑有安装好VMware Workstation Pro虚拟机,没有的话点此下载并安装.②下载好CentOS-7-x86_64-DVD-1503-01镜像文件,没有点此下载密码:lomg. 1 ...
- 解决安装失败的 Internet Explorer 11
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成.微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章.然而由机器翻译的文章并不总是完美的.它 ...