MMCC这个事务码没用过,也是才听到的,都是业务搞起来的。。。然后感觉这个东西有点意思,就搞搞咯

网上找的一篇文章,自己修改的。改了默认收货工厂为创建时的工厂,因为这边一直报收货工厂必输。。。不管是不是配置问题,反正可以解决。

*&---------------------------------------------------------------------*
*& Report ZLYTEST_MATERIAL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT ZLYTEST_MATERIAL. SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS: P_WERKS0 LIKE MARC-WERKS DEFAULT '',
P_VKORG0 LIKE MVKE-VKORG DEFAULT '',
P_DISNSO LIKE MVKE-VTWEG DEFAULT '',
P_MBRSH LIKE MARA-MBRSH DEFAULT 'C'.
SELECTION-SCREEN: END OF BLOCK B1.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME.
PARAMETERS: P_MATNR LIKE MARA-MATNR DEFAULT ''.
PARAMETERS: P_BUKRS LIKE T001-BUKRS.
PARAMETERS: P_BWKEY LIKE T001K-BWKEY.
PARAMETERS: P_MATCFG LIKE MARA-MATNR DEFAULT ''.
SELECTION-SCREEN: END OF BLOCK B2. START-OF-SELECTION.
DATA: GT_MARC TYPE TABLE OF MARC.
DATA: GT_MARA TYPE TABLE OF MARA.
DATA : STR_CLIENTDATA LIKE BAPI_MARA_GA,
STR_PLANTDATA LIKE BAPI_MARC_GA,
STR_FORECASTPARAMETERS LIKE BAPI_MPOP_GA,
STR_PLANNINGDATA LIKE BAPI_MPGD_GA,
STR_STORAGELOCATIONDATA LIKE BAPI_MARD_GA,
STR_VALUATIONDATA LIKE BAPI_MBEW_GA,
STR_SALESDATA LIKE BAPI_MVKE_GA,
STR_WAREHOUSENUMBERDATA LIKE BAPI_MLGN_GA,
STR_STORAGETYPEDATA LIKE BAPI_MLGT_GA,
STR_PRTDATA LIKE BAPI_MFHM_GA,
STR_LIFOVALUATIONDATA LIKE BAPI_MYMS_GA,
TAB_GET_ALL_R TYPE TABLE OF BAPIRETURN.
DATA:TAB_MATERIALDESCRIPTION TYPE TABLE OF BAPI_MAKT_GA WITH HEADER LINE,
TAB_UNITSOFMEASURE TYPE TABLE OF BAPI_MARM_GA,
TAB_INTERNATIONALARTNOS TYPE TABLE OF BAPI_MEAN_GA,
TAB_MATERIALLONGTEXT TYPE TABLE OF BAPI_MLTX_GA,
TAB_TAXCLASSIFICATIONS TYPE TABLE OF BAPI_MLAN_GA,
TAB_MATERIALDESCRIPTION1 TYPE TABLE OF BAPI_MAKT WITH HEADER LINE.
DATA: BEGIN OF TAB_HEAD.
INCLUDE STRUCTURE BAPIMATHEAD.
DATA: END OF TAB_HEAD.
DATA: BEGIN OF TAB_PLANTDATA.
INCLUDE STRUCTURE BAPI_MARC.
DATA: END OF TAB_PLANTDATA.
DATA: BEGIN OF TAB_PLANTDATAX.
INCLUDE STRUCTURE BAPI_MARCX.
DATA: END OF TAB_PLANTDATAX.
DATA: BEGIN OF TAB_CLIENT.
INCLUDE STRUCTURE BAPI_MARA.
DATA: END OF TAB_CLIENT.
DATA: BEGIN OF TAB_CLIENTX.
INCLUDE STRUCTURE BAPI_MARAX.
DATA: END OF TAB_CLIENTX.
DATA: BEGIN OF TAB_SALESDATA.
INCLUDE STRUCTURE BAPI_MVKE.
DATA: END OF TAB_SALESDATA.
DATA: BEGIN OF TAB_SALESDATAX.
INCLUDE STRUCTURE BAPI_MVKEX.
DATA: END OF TAB_SALESDATAX.
DATA : BEGIN OF TAB_RETURN.
INCLUDE STRUCTURE BAPIRET2 .
DATA : END OF TAB_RETURN.
DATA : TAB_RETURN_MSGS TYPE TABLE OF BAPI_MATRETURN2 .
DATA: TAB_FORECAST LIKE BAPI_MPOP,
TAB_FORECASTX LIKE BAPI_MPOPX,
TAB_PLANGDATA LIKE BAPI_MPGD,
TAB_PLANGDATAX LIKE BAPI_MPGDX,
TAB_STLOCDATA LIKE BAPI_MARD,
TAB_STLOCDATAX LIKE BAPI_MARDX,
TAB_VALDATA LIKE BAPI_MBEW,
TAB_VALDATAX LIKE BAPI_MBEWX,
TAB_WAREHOUSE LIKE BAPI_MLGN,
TAB_WAREHOUSEX LIKE BAPI_MLGNX,
TAB_STORTYPED LIKE BAPI_MLGT,
TAB_STORTYPEDX LIKE BAPI_MLGTX.
DATA GT_MAKT TYPE TABLE OF BAPI_MAKT.
DATA: GV_LEN TYPE I,
VIEW,
COUNTER TYPE SY-INDEX,
GV_I TYPE I,
GV_MSG().
FIELD-SYMBOLS:
<FS_MARC> TYPE BAPI_MARA_GA,"MARC,
<F1> TYPE ANY,
<F2> TYPE ANY,
<FMS> TYPE BAPI_MATRETURN2,
<FSTRUCT> TYPE ANY,
<FSTRUCTX> TYPE ANY.
CALL FUNCTION 'BAPI_MATERIAL_GET_ALL'
EXPORTING
MATERIAL = P_MATCFG
COMP_CODE = P_BUKRS
VAL_AREA = P_BWKEY
* VAL_TYPE =
PLANT = P_WERKS0
* STGE_LOC =
SALESORG = P_VKORG0
DISTR_CHAN = P_DISNSO
* WHSENUMBER =
* STGE_TYPE =
* LIFO_VALUATION_LEVEL =
IMPORTING
CLIENTDATA = STR_CLIENTDATA
PLANTDATA = STR_PLANTDATA
FORECASTPARAMETERS = STR_FORECASTPARAMETERS
PLANNINGDATA = STR_PLANNINGDATA
STORAGELOCATIONDATA = STR_STORAGELOCATIONDATA
VALUATIONDATA = STR_VALUATIONDATA
WAREHOUSENUMBERDATA = STR_WAREHOUSENUMBERDATA
SALESDATA = STR_SALESDATA
STORAGETYPEDATA = STR_STORAGETYPEDATA
PRTDATA = STR_PRTDATA
LIFOVALUATIONDATA = STR_LIFOVALUATIONDATA
TABLES
MATERIALDESCRIPTION = TAB_MATERIALDESCRIPTION
UNITSOFMEASURE = TAB_UNITSOFMEASURE
INTERNATIONALARTNOS = TAB_INTERNATIONALARTNOS
MATERIALLONGTEXT = TAB_MATERIALLONGTEXT
TAXCLASSIFICATIONS = TAB_TAXCLASSIFICATIONS
* EXTENSIONOUT =
RETURN = TAB_GET_ALL_R. * Material views update --- * SELECT * FROM MARC INTO TABLE GT_MARC
* WHERE MATNR = P_MATCFG
* AND WERKS = P_WERKS0.
* IF SY-SUBRC = 0.
* READ TABLE GT_MARC ASSIGNING <FS_MARC> INDEX 1.
* IF SY-SUBRC = 0.
ASSIGN STR_CLIENTDATA TO <FS_MARC>.
"关于视图这块是本人修改的,原来是读的MARC用的PSTAT,可是我发现,还是用读出来的MAINT_STAT准确点
COUNTER = . CLEAR VIEW.
GV_I = STRLEN( <FS_MARC>-MAINT_STAT ).
DO GV_I TIMES.
VIEW = <FS_MARC>-MAINT_STAT+COUNTER().
IF VIEW IS INITIAL. EXIT. ENDIF.
COUNTER = COUNTER + .
CASE VIEW.
WHEN 'K'.
TAB_HEAD-BASIC_VIEW = VIEW.
WHEN 'V'.
TAB_HEAD-SALES_VIEW = VIEW.
WHEN 'E'.
TAB_HEAD-PURCHASE_VIEW = VIEW.
WHEN 'D' .
TAB_HEAD-MRP_VIEW = VIEW.
WHEN 'P'.
TAB_HEAD-FORECAST_VIEW = VIEW.
WHEN 'A'.
TAB_HEAD-WORK_SCHED_VIEW = VIEW.
WHEN 'F'.
TAB_HEAD-PRT_VIEW = VIEW.
WHEN 'L'.
TAB_HEAD-STORAGE_VIEW = VIEW.
WHEN 'S'.
TAB_HEAD-WAREHOUSE_VIEW = VIEW.
WHEN 'Q'.
TAB_HEAD-QUALITY_VIEW = VIEW.
WHEN 'B'.
TAB_HEAD-ACCOUNT_VIEW = VIEW.
WHEN 'G'.
TAB_HEAD-COST_VIEW = VIEW.
WHEN OTHERS.
ENDCASE.
ENDDO.
* ENDIF.
* ENDIF.
TAB_HEAD-MATERIAL = P_MATNR.
TAB_HEAD-IND_SECTOR = STR_CLIENTDATA-IND_SECTOR.
TAB_HEAD-MATL_TYPE = STR_CLIENTDATA-MATL_TYPE.
MOVE-CORRESPONDING STR_CLIENTDATA TO TAB_CLIENT.
MOVE-CORRESPONDING STR_PLANTDATA TO TAB_PLANTDATA.
MOVE-CORRESPONDING STR_FORECASTPARAMETERS TO TAB_FORECAST.
MOVE-CORRESPONDING STR_PLANNINGDATA TO TAB_PLANGDATA.
MOVE-CORRESPONDING STR_STORAGELOCATIONDATA TO TAB_STLOCDATA.
MOVE-CORRESPONDING STR_VALUATIONDATA TO TAB_VALDATA.
MOVE-CORRESPONDING STR_WAREHOUSENUMBERDATA TO TAB_WAREHOUSE.
MOVE-CORRESPONDING STR_SALESDATA TO TAB_SALESDATA.
TAB_SALESDATA-DELYG_PLNT = P_WERKS0."默认的工厂
MOVE-CORRESPONDING STR_STORAGETYPEDATA TO TAB_STORTYPED. * Fill the update struktur DO .
CASE SY-INDEX.
WHEN .
ASSIGN TAB_CLIENT TO <F1>.
ASSIGN TAB_CLIENTX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_PLANTDATA TO <F1>.
ASSIGN TAB_PLANTDATAX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_FORECAST TO <F1>.
ASSIGN TAB_FORECASTX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_PLANGDATA TO <F1>.
ASSIGN TAB_PLANGDATAX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_STLOCDATA TO <F1>.
ASSIGN TAB_STLOCDATAX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_VALDATA TO <F1>.
ASSIGN TAB_VALDATAX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_WAREHOUSE TO <F1>.
ASSIGN TAB_WAREHOUSEX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_SALESDATA TO <F1>.
ASSIGN TAB_SALESDATAX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN .
ASSIGN TAB_STORTYPED TO <F1>.
ASSIGN TAB_STORTYPEDX TO <F2>.
PERFORM FILL_UPDATE_STRUCT USING <F1> <F2>.
WHEN OTHERS.
EXIT.
ENDCASE.
ENDDO. LOOP AT TAB_MATERIALDESCRIPTION.
MOVE-CORRESPONDING TAB_MATERIALDESCRIPTION TO TAB_MATERIALDESCRIPTION1.
APPEND TAB_MATERIALDESCRIPTION1.
ENDLOOP. TAB_SALESDATA-SALES_ORG = P_VKORG0.
TAB_SALESDATA-DISTR_CHAN = P_DISNSO.
CLEAR: TAB_SALESDATAX-SALES_ORG,
TAB_SALESDATAX-DISTR_CHAN.
TAB_SALESDATAX-SALES_ORG = TAB_SALESDATA-SALES_ORG.
TAB_SALESDATAX-DISTR_CHAN = TAB_SALESDATA-DISTR_CHAN.
CLEAR TAB_PLANTDATAX-PLANT.
TAB_PLANTDATAX-PLANT = TAB_PLANTDATA-PLANT.
CLEAR TAB_VALDATAX-VAL_AREA.
TAB_VALDATAX-VAL_AREA = TAB_VALDATA-VAL_AREA.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = TAB_HEAD
CLIENTDATA = TAB_CLIENT
CLIENTDATAX = TAB_CLIENTX
PLANTDATA = TAB_PLANTDATA
PLANTDATAX = TAB_PLANTDATAX
FORECASTPARAMETERS = TAB_FORECAST
FORECASTPARAMETERSX = TAB_FORECASTX
PLANNINGDATA = TAB_PLANGDATA
PLANNINGDATAX = TAB_PLANGDATAX
STORAGELOCATIONDATA = TAB_STLOCDATA
STORAGELOCATIONDATAX = TAB_STLOCDATAX
VALUATIONDATA = TAB_VALDATA
VALUATIONDATAX = TAB_VALDATAX
WAREHOUSENUMBERDATA = TAB_WAREHOUSE
WAREHOUSENUMBERDATAX = TAB_WAREHOUSEX
SALESDATA = TAB_SALESDATA
SALESDATAX = TAB_SALESDATAX
STORAGETYPEDATA = TAB_STORTYPED
STORAGETYPEDATAX = TAB_STORTYPEDX
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
* NO_DEQUEUE = ' '
IMPORTING
RETURN = TAB_RETURN
TABLES
MATERIALDESCRIPTION = TAB_MATERIALDESCRIPTION1
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
RETURNMESSAGES = TAB_RETURN_MSGS. IF TAB_RETURN-TYPE = 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
LOOP AT TAB_RETURN_MSGS ASSIGNING <FMS>.
GV_MSG = <FMS>.
WRITE:/ GV_MSG.
ENDLOOP. *&---------------------------------------------------------------------*
*& Form fill_update_struct
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_<F1> text
* -->P_<F2> text
*----------------------------------------------------------------------* FORM FILL_UPDATE_STRUCT USING P_F1 TYPE ANY
P_F2 TYPE ANY.
DO.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE P_F1 TO <FSTRUCT>.
IF SY-SUBRC <> . EXIT. ENDIF.
IF <FSTRUCT> IS NOT INITIAL.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE P_F2 TO <FSTRUCTX>.
IF SY-SUBRC = .
<FSTRUCTX> = 'X'.
ENDIF.
ENDIF.
ENDDO.
ENDFORM. " fill_update_struct

代码应该都能看懂,就不废话了。。。

复制物料(参考的MMCC想法)的更多相关文章

  1. OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...

  2. Mongodb Manual阅读笔记:CH8 复制集

    8 复制 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...

  3. 【MySQL】主备复制

    复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现.下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具.由于生 ...

  4. MongoDB 搭建可复制群集

    一.概述 MongoDB复制群集支持节点故障自动切换,最小配置应包含3个节点,正常情况下应该至少包含两个数据节点,第三个节点可以是数据节点也可以是仲裁节点.仲裁节点的作用是当出现偶数节点导致无法仲裁的 ...

  5. 【Java】【3】BeanUtils.copyProperties();将一个实体类的值复制到另外一个实体类

    正文: a,b为对象 BeanUtils.copyProperties(a,  b); 1,BeanUtils是org.springframework.beans.BeanUtils, a拷贝到b 2 ...

  6. MySQL 5.6 Replication 复制 FAQ

    原文请参照MySQL官方文档Reference Manual,版本5.6.10. 复制功能使得数据可以从一个MySQL数据库(master主库)复制到另一个或多个MySQL数据库(slave从库).缺 ...

  7. InnoSQL/MySQL并行复制的实现与配置

    InnoSQL/MySQL并行复制的实现与配置 http://www.innomysql.net/article/6276.html 并行复制之前的解决方案 InnoSQL在5.5.30-v4版本中支 ...

  8. linux系统mysql主主复制(双主复制)

    一.简介 在上一篇的主从复制中:http://www.cnblogs.com/lay2017/p/9043985.html 我们了解到,mysql通过master写日志,slave读取并执行日志内容从 ...

  9. MySQL 复制 - 性能与扩展性的基石:概述及其原理

    原文:MySQL 复制 - 性能与扩展性的基石:概述及其原理 1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他 ...

随机推荐

  1. hadoop-2.6.0-src源码导入Eclipse 转载

    转载地址:http://m.blog.csdn.net/blog/le119126/42009281 一.导入 先修改源码 参考 二.改错里面的第3条 1.cd到 hadoop-2.6.0-src/h ...

  2. 【转】Android选项卡置底的方法

    转载地址:http://www.oschina.net/code/snippet_163910_6092 发现很多Android应用的选项卡 都是显示在页面底部的,网上有资料:通过反射获取TabWid ...

  3. Python写一个Windows下的android设备截图工具

    界面版 利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装.代码如下: import wx,subprocess,o ...

  4. 使用 Python 切割图片

    刚好我有张 PNG 图片需要均匀切割,刚好我不会 PhotoShop,刚好我想用 Python 来练练手. 于是撸袖子码脚本. import os from PIL import Image def ...

  5. GOLANG 声明

    GO语言声明关键字 var 声明变量 const 声明常量 type 声明新类型 func 声明函数(方法) package 声明包 interface 声明接口

  6. 升级openssl环境至openssl-1.1.0c

    升级openssl环境至openssl-1.1.0c1.查看源版本 [root@zj ~]# openssl version -aOpenSSL 1.0.1e-fips 11 Feb 2013 2.下 ...

  7. SQL函数

    1,字符串截取拼接 CONCAT(),'****');SUBSTRING_INDEX(c.context,'}',1);SUBSTRING_INDEX(a.task_context,':',-1) a ...

  8. Asp.Net完美隐藏服务器信息

    首先在Global.asax.cs里增加: protected void Application_PreSendRequestContent(object sender, EventArgs e){H ...

  9. js判断当前设备

    最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实. 仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站. 例如: 站点 PC端url web端url ...

  10. function方法中this的用法

    jsp<select class="mokuai2" onchange="Mokuai2Change(this.value)"></selec ...