复制物料(参考的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 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他 ...
随机推荐
- 判断checkbox是否选中
一种是通过jquery A. $("[name='selectUserId']:checked").each(function () { // $(this).attr(" ...
- wf(七)(手把手包会)
这个demo中我们将用If/Else逻辑加到工作流用来展示不同的message通过自定义的条件. 如果name的字符数是奇数,第一个单词就输出“Greeting”否则输出“Hello”. 1. 在Sa ...
- ubuntu java开发环境搭建(jdk+tomcat+eclipse)
一.jdk的安装配置. 1.下载jdk. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...
- Manthan, Codefest 16 -A Ebony and Ivory
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- tomcat源码分析(一)从tomcat架构说起
p { margin-bottom: 0.25cm; line-height: 120% }
- tcpdump高级过滤技巧
基本语法 ========过滤主机--------- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据# tcpdump -i eth1 host 192.168.1.1- ...
- MySQL 安装 + 精简 + 配置
MySQL 安装 + 精简 + 配置 下载安装 从官网 下载 Community Edition MySQL 5.6 版本 精简 根目录下只留 [data/bin/share] , my-defaul ...
- sublime text 配置 builder [build system]
有时候需要用运行一段 PHP 代码,比如测试某个函数返回值等等,如果启动 Http Server,再打开浏览器,那黄花菜都凉了.我们可以在 Sublime Text 3 中创建 PHP 的 build ...
- Tomcat目录映射设置
方法一: \conf\server.xml <Host>内插入<Context path="虚拟目录" docBase="文件目录" /> ...
- Kanzi编程基础1 - 定时器Timer
Kanzi虽然发生了比较多的版本更迭,api也发生了很多变化,但定时器的头文件一直都在一个地方:#include "user/include/user/ui/message/kzu_mess ...