复制物料(参考的MMCC想法)
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想法)的更多相关文章
- 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 ...
- Mongodb Manual阅读笔记:CH8 复制集
8 复制 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...
- 【MySQL】主备复制
复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现.下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具.由于生 ...
- MongoDB 搭建可复制群集
一.概述 MongoDB复制群集支持节点故障自动切换,最小配置应包含3个节点,正常情况下应该至少包含两个数据节点,第三个节点可以是数据节点也可以是仲裁节点.仲裁节点的作用是当出现偶数节点导致无法仲裁的 ...
- 【Java】【3】BeanUtils.copyProperties();将一个实体类的值复制到另外一个实体类
正文: a,b为对象 BeanUtils.copyProperties(a, b); 1,BeanUtils是org.springframework.beans.BeanUtils, a拷贝到b 2 ...
- MySQL 5.6 Replication 复制 FAQ
原文请参照MySQL官方文档Reference Manual,版本5.6.10. 复制功能使得数据可以从一个MySQL数据库(master主库)复制到另一个或多个MySQL数据库(slave从库).缺 ...
- InnoSQL/MySQL并行复制的实现与配置
InnoSQL/MySQL并行复制的实现与配置 http://www.innomysql.net/article/6276.html 并行复制之前的解决方案 InnoSQL在5.5.30-v4版本中支 ...
- linux系统mysql主主复制(双主复制)
一.简介 在上一篇的主从复制中:http://www.cnblogs.com/lay2017/p/9043985.html 我们了解到,mysql通过master写日志,slave读取并执行日志内容从 ...
- MySQL 复制 - 性能与扩展性的基石:概述及其原理
原文:MySQL 复制 - 性能与扩展性的基石:概述及其原理 1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他 ...
随机推荐
- Cortex-M3中C与汇编的交互
以下内容摘自<ARM Cortex-M3权威指南> 概览 在CM3 上编程,既可以使用C 也可以使用汇编.可能还有其它语言的编译器,但是大多数人还是 ...
- hadoop多硬盘配置注意点
[一].实验环境 1.1.环境 hadoop 2.6.0 namenode 2个 各增加 2个1T硬盘 datanode 3个 各增加3个1T硬盘 1.2.挂载硬盘 fdisk 分区 ( ...
- 【GO】GO语言学习笔记一
a.为何学习GO语言? 从个人角度来看,第一是被GO语言传说中的那样超高的开发效率和运行效率所吸引:第二是GO语言在语言层面支持并发,这在现在的编程业务中是很方便的:第三是由于前两点,我觉得以后GO会 ...
- IE8 jquery解析xml的兼容问题
正常情况下可以这么写: jQuery(node).find(xpath.replace("//", ""))[0]; 但是在IE8下得到的是undefined应 ...
- Java 基础接口练习题
编写2个接口:InterfaceA和InterfaceB:在接口InterfaceA中有个方法void printCapitalLetter():在接口InterfaceB中有个方法void prin ...
- PHP将图片二进制转换
http://www.360doc.com/content/14/0325/10/947551_363526874.shtml
- 非默认安装目录下mysql数据的导出与导入
系统:Centos 6.5 1.首先确定msyql是否安装以及安装目录: [root@localhost ~]# service mysqld status mysqld (pid ) 正在运行... ...
- JavaScript对象的chapterIII
二.DOM对象: DOM (document object model) 文档对象模型,它定义了操作文档对象的接口. DOM 把一份html文档表示为一棵家谱树,使用parent(父), child( ...
- 遗传算法在JobShop中的应用研究(part4:变异)
下面,我们以车间调度为例来谈谈遗传算法中的另一个重要操作变异.变异操作通常发生在交叉操作之后,它的操作对象是交叉得到的新染色体.在本文中我们通过随机交换染色体的两个位置上的值来得到变异后的染色体,变异 ...
- linux启动流程及自定义gurb
linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 -------& ...