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' 代码的更多相关文章

  1. BAPI_GOODSMVT_CREATE 移动类型311 CODE = '04' 代码

    DATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC.      "物料凭证编号   DATA: GMHEAD LIKE BAPI2017_GM_H ...

  2. 自动生成Code First代码

    自动生成Code First代码 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Fram ...

  3. VS code调试代码快速上手必备知识

    一.通过简单的配置运行一个JavaScript程序 1.打开(创建)一个新的工作空间(文件夹),并创建一个js文件: var name='world'; var s='Hello,${name}!'; ...

  4. Code Snippets 代码片段

    Code Snippets 代码片段       1.Title : 代码片段的标题 2.Summary : 代码片段的描述文字 3.Platform : 可以使用代码片段的平台,有IOS/OS X/ ...

  5. Effective Java提升Code Coverage代码涵盖率 - 就是爱Java

    虽然我们已经有了测试程序,但是如何得知是否已完整测试了主程序?,透过Code Coverage代码涵盖率,我们可以快速地得知,目前系统中,有多少程序中被测试过,不考虑成本跟投资效益比,涵盖率越高,代表 ...

  6. 第五次作业2、请将该code进行代码重构,使之模块化,并易于阅读和维护;

    1.请运行下面code,指出其功能: (需附运行结果截图,并用简短文字描述其功能) 显示了人的姓名.年龄 2.请将该code进行代码重构,使之模块化,并易于阅读和维护: 3.观看视频The Exper ...

  7. Code::Blocks代码自动提示设置及常用快捷键

    Code::Blocks代码自动提示设置及常用快捷键(适用windows和linux) 1)以下需要设置的地方均在Settings->Editor...弹出的对话框中. 2)不少命令都可针对当前 ...

  8. VS Code 用户自定义代码片段(React)

    VS Code 用户自定义代码片段(React) .jsxReact组件模板:javascriptreact.json { "Import React": { "pref ...

  9. dead code 死代码 无作用的代码

               DatasetVector datasetvector=(DatasetVector)dataset;           if (datasetvector == null) ...

随机推荐

  1. 配置 SQL Server Email 发送以及 Job 的 Notification通知功能

    配置 SQL Server Email 发送以及 Job 的 Notification通知功能 在与数据库相关的项目中, 比如像数据库维护, 性能警报, 程序出错警报或通知都会使用到在 SQL Ser ...

  2. 浅谈一下SSI+Oracle框架的整合搭建

    浅谈一下SSI+Oracle框架的整合搭建 最近换了一家公司,公司几乎所有的项目都采用的是Struts2+Spring+Ibatis+Oracle的架构,上一个东家一般用的就是JSF+Spring,所 ...

  3. reading words in your computer and changing to female voice, linux festival text2wave saving wav files

    on a brand new linux PC, e.g. ubuntu 14.04 amd64 To hear voice sudo apt-get install festival -y then ...

  4. 使用WCF Data Service 创建OData服务

    使用WCF Data Service 创建OData服务 在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主 ...

  5. multimap 和 multiset 类型

    map 和 set 容器中,一个键只能对应一个实例.而 multiset 和 multimap 类型则允许一个键对应多个实例.例如,在电话簿中,每个人可能有单独的电话号码列表;在作者的文章集中,每位作 ...

  6. Dalvik虚拟机的垃圾收集机制

    垃圾收集机制是Java虚拟机共有的特性, 这里介绍Dalvik虚拟机的垃圾收集机制特点. 在android2.3之前,有以下几个特点: 1.  垃圾收集线程在执行的时候,其它线程都停止. 2.  一次 ...

  7. Eclipse代码自动提示设置

    以前百度过如何设置Eclipse代码自动提示,但是本人记性不好,所以把这个方法写成一篇日志,这样以后就不用百度了,直接看自己的博客就是了,而且还增加了自己博客的点击量.以下是从各个地方看到总结的方法: ...

  8. [置顶] Android图片异步加载之Android-Universal-Image-Loader

    将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...

  9. Facebook开源的基于SQL的操作系统检测和监控框架:osquery daemon详解

    osqueryd osqueryd(osquery daemon)是可以定期执行SQL查询和记录系统状态改变的驻守程序. osqueryd能够根据配置手机归档查询结果,并产生日志. 同时也可以使用系统 ...

  10. 克隆虚拟机win8系统后注意修改安全标识(SID)

    克隆虚拟机win8系统后注意修改安全标识(SID)   克隆虚拟机系统后两个系统硬件配置一样,需要注意修改:security ID ,MAC,计算机名,IP地址,产品激活 重置工具:sysprep.e ...