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. 在WebStorm中集成Karma+jasmine进行前端单元测试

    在WebStorm中集成Karma+jasmine进行前端单元测试 前言 好久没有写博了,主要还是太懒=.=,有点时间都去带娃.看书了,今天给大家分享一个原创的小东西,如果大家对TDD或者BDD有兴趣 ...

  2. PHP 数组拼接成字符串

    PHP[知识分享] 数组拼接成字符串 <?php // 格式: [二维数组] Array ( [0] => Array ( [topicid] => 1 ) [1] => Ar ...

  3. MySQL 的 phpmyadmin上传大小限制(转)以及 MySQL server has gone away 的解决办法

    phpmyadmin上传大小限制 原帖地址:http://www.hmidc.com/home/news/?13914.html 时间:2011-6-21 11:17:57  作者:红帽之家  来源: ...

  4. TCP/IP传输层,你懂多少?

    1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么理解协议 ...

  5. Sql Server 自定义函数(原创)

    ---------------------------------------------------------------------------------------------- 传入字符串 ...

  6. Linux下安装zookeeper集群

    首先,准备三台Linux虚拟机 三台机器 centos01 :192.168.1.168(lxs001)   centos03 :192.168.1.178(lxs003)   centos03 :1 ...

  7. MS Word 目录排版

    昨天整理一份把网页的内容复制粘贴到Word里的文件,碰到了这样一个问题: 网页上面也会有一级标题,二级标题,三级标题等.当我们在写博客的时候,也会去使用这些.这也就导致复制过来之后,直接生成的目录很乱 ...

  8. orchard相关网址

    1.官网文档  http://docs.orchardproject.net/ 2.github  https://github.com/OrchardCMS/Orchard 3.stackoverf ...

  9. EF 下的code fist 模式编程

    EF 分两种模式 codefirst(就是不知道数据是啥,也没有数据库)  和 database fist (数据已经设计好了) 首先打开vs  新建一个项目 创建一个控制台程序 然后 新建一个Tea ...

  10. Robot Framework使用技巧

    1.变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项.通过命令行设置的变量是全局变量,对其所有执行的 ...