创建物料主数据,对应MM41 MM42 可进行修改和创建物料。
1、单位 ,物料名 评估类 (无库存交易)不可更改。
CLEAR headdata.
WA_ITAB -spart = '00' .
" -------------------------------------- 抬头数据 -----------------
headdata - FUNCTION = lv_bapifn . "009 原始的:关于处理的第一个信息
headdata -material = WA_ITAB -matnr .
headdata -matl_type = WA_ITAB -mtart . "物料类型
" 物料类型 T134
headdata -matl_group = WA_ITAB -matkl . "物料组
headdata -matl_cat = '00' . " 00 一般物料
"---------------------------------------------------------------------
headdata -basic_view = 'X' . "基本视图
headdata -list_view = 'X' . "列表视图
headdata -sales_view = 'X' . "销售视图
headdata -logst_view = 'X' . "后勤视图
headdata -no_appl_log = 'X' . "不写入应用程序的日志
* HEADDATA-ALL_FIELDS = 'X' .
" 维护基本视图的基本数据
" 零售数据传输:集团级别的物料
CLEAR clientdata .
CLEAR clientdata[] .
CLEAR clientdatax .
CLEAR clientdatax[] .
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = WA_ITAB -meins
IMPORTING
OUTPUT = WA_ITAB -meins
EXCEPTIONS
OTHERS = 1 .
clientdata - FUNCTION = lv_bapifn .
clientdata -material = WA_ITAB -matnr .
clientdata -base_uom = WA_ITAB -meins . "基本计量单位
clientdata -old_mat_no = WA_ITAB -bismt . "旧物料编码
" clientdata-extmatlgrp = WA_ITAB-matkl. "外部物料组
clientdata -division = WA_ITAB -spart . "分部
clientdata -item_cat = WA_ITAB -mtpos . "
clientdata -prod_hier = WA_ITAB -prdha .
clientdata -stor_conds = WA_ITAB -raube .
clientdata -extmatlgrp = WA_ITAB -extwg . "外部物料组
clientdata -size_dim = WA_ITAB -groes .
clientdata -prod_alloc = WA_ITAB -kosch .
clientdata -basic_matl = WA_ITAB -wrkst . "产品层次
clientdata -lab_design = WA_ITAB -labor .
clientdata -std_descr = WA_ITAB -normt .
clientdata -mat_grp_sm = WA_ITAB -magrv .
clientdata -hazmatprof = WA_ITAB -profl .
clientdata -batch_mgmt = WA_ITAB -xchpf .
clientdata -net_weight = WA_ITAB -ntgew .
clientdata -prod_memo = WA_ITAB -ferth .
clientdata -tax_class = 0 .
clientdata -document = WA_ITAB -zeiAR . " ppp
APPEND clientdata .
CLEAR clientdatax .
clientdatax - FUNCTION = lv_bapifn .
clientdatax -material = WA_ITAB -matnr .
clientdatax -base_uom = 'X' .
clientdatax -old_mat_no = 'X' .
clientdatax -extmatlgrp = 'X' .
clientdatax -division = 'X' .
clientdatax -item_cat = 'X' .
clientdatax -prod_hier = 'X' .
clientdatax -stor_conds = 'X' .
clientdatax -extmatlgrp = 'X' .
clientdatax -size_dim = 'X' .
clientdatax -prod_alloc = 'X' .
clientdatax -basic_matl = 'X' .
clientdatax -lab_design = 'X' .
clientdatax -std_descr = 'X' .
clientdatax -mat_grp_sm = 'X' .
clientdatax -hazmatprof = 'X' .
clientdatax -batch_mgmt = 'X' .
clientdatax -net_weight = 'X' .
clientdatax -prod_memo = 'X' .
clientdatax -tax_class = 'X' .
clientdatax -document = 'X' .
APPEND clientdatax .
"------------------------- 零售数据传输:基本数据的扩展 ----------------
CLEAR addnlclientdata .
CLEAR addnlclientdata[] .
addnlclientdata - FUNCTION = lv_bapifn .
addnlclientdata -material = WA_ITAB -matnr .
addnlclientdata -loadinggrp = '0001' .
addnlclientdata -val_class = WA_ITAB -bklas . "评估类
addnlclientdata -COMM_CODE = WA_ITAB -WSTAW . "商品代码
APPEND addnlclientdata .
CLEAR addnlclientdatax .
CLEAR addnlclientdatax[] .
addnlclientdatax - FUNCTION = lv_bapifn .
addnlclientdatax -material = WA_ITAB -matnr .
addnlclientdatax -loadinggrp = 'X' .
addnlclientdatax -val_class = 'X' .
addnlclientdata -COMM_CODE = 'X' . " wa_itab-WA_ITAB-WSTAW'.
APPEND addnlclientdatax .
"工厂级别数据
CLEAR plantdata .
CLEAR plantdata[] .
CLEAR plantdatax .
CLEAR plantdatax[] .
" 对应系统中所有用户定义的工厂同时创建
SELECT WERKS INTO corresponding FIELDS OF TABLE GT_WERKS
FROM T001W
WHERE WERKS NOT IN ( '0001' , '0002' , '0003' , 'ZZ88' ) AND werks IN ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
.
LOOP AT GT_WERKS .
plantdata - FUNCTION = lv_bapifn .
plantdata -material = WA_ITAB -matnr .
plantdata -plant = GT_WERKS -werks .
plantdata -pur_group = WA_ITAB -wekgr . "采购组
plantdata -comm_code = WA_ITAB -stawn . "商品代码
* PLANTDATA-EXPIMPGRP = WA_ITAB-MTVER.
plantdata -AVAILCHECK = 'KP' . "0 可用性检查的检查组
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_ITAB -prctr
IMPORTING
OUTPUT = WA_ITAB -prctr
EXCEPTIONS
OTHERS = 1 .
plantdata -profit_ctr = WA_ITAB -prctr .
plantdata -loadinggrp = WA_ITAB -wladg .
plantdata -batch_mgmt = WA_ITAB -xchpf .
plantdata -mrp_type = 'ND' . " WA_ITAB-dismm.
" plantdata-availcheck = WA_ITAB-mtvfp.
plantdata -prod_prof = WA_ITAB -sfcpf .
plantdata -proc_type = 'X' .
APPEND plantdata .
CLEAR plantdatax .
" CLEAR plantdatax[].
plantdatax - FUNCTION = lv_bapifn .
plantdatax -material = WA_ITAB -matnr .
plantdatax -plant = GT_WERKS -werks .
plantdatax -pur_group = 'X' .
plantdatax -comm_code = 'X' .
plantdatax -expimpgrp = 'X' .
plantdatax -profit_ctr = 'X' .
plantdatax -loadinggrp = 'X' .
plantdatax -batch_mgmt = 'X' .
plantdatax -mrp_type = 'X' .
plantdatax -availcheck = 'X' .
plantdatax -prod_prof = 'X' .
plantdatax -proc_type = 'X' .
APPEND plantdatax .
ENDLOOP .
"库位级别的
SELECT LGORT WERKS INTO CORRESPONDING FIELDS OF TABLE GT_loget FROM T001L WHERE WERKS NOT IN ( '0001' , '0002' ) AND werks in ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
LOOP AT GT_LOGET .
CLEAR LGORTdata .
CLEAR LGORTdata[] .
LGORTdata - FUNCTION = lv_bapifn .
LGORTdata -material = WA_ITAB -matnr .
LGORTdata -plant = GT_LOGET -werks .
LGORTdata -STGE_LOC = GT_LOGET -LGORT .
" plantdata-comm_code = WA_ITAB-stawn.
APPEND LGORTdata .
CLEAR LGORTdatax .
CLEAR LGORTdatax[] .
LGORTdatax - FUNCTION = lv_bapifn .
LGORTdatax -material = WA_ITAB -matnr .
LGORTdatax -plant = GT_LOGET -werks .
LGORTdatax -STGE_LOC = GT_LOGET -LGORT .
"LGORTdatax-STGE_BIN = 'X'.
APPEND LGORTdatax .
ENDLOOP .
* C.销售组织层级:对系统中所有用户定义的工厂对应销售组织同时创建。
*SELECT * FROM TVKWZ
* WHERE NOT IN ('0001','0002','0003')
CLEAR GT_VKORG .
SELECT VKORG vtweg INTO CORRESPONDING FIELDS OF TABLE GT_VKORG FROM TVKWZ WHERE WERKS NOT IN ( '0001' , '0002' , '0003' ) AND werks IN ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
CLEAR salesdata .
CLEAR salesdata[] .
CLEAR salesdatax .
CLEAR salesdatax[] .
LOOP AT GT_VKORG .
"销售数据
CLEAR salesdata .
salesdata - FUNCTION = lv_bapifn .
salesdata -material = WA_ITAB -matnr .
salesdata -sales_org = GT_VKORG -vkorg . "销售组织
salesdata -distr_chan = GT_VKORG -vtweg . "参考客户和主物料分销渠道
salesdata -acct_assgt = WA_ITAB -ktgrm .
salesdata -mat_pr_grp = WA_ITAB -kondm .
salesdata -rebate_grp = WA_ITAB -bonus .
salesdata -matl_stats = '' . "物料统计组
salesdata -item_cat = 'NORM' .
APPEND salesdata .
CLEAR salesdatax .
salesdatax - FUNCTION = lv_bapifn .
salesdatax -material = WA_ITAB -matnr .
salesdatax -sales_org = GT_VKORG -vkorg .
salesdatax -distr_chan = GT_VKORG -vtweg .
salesdatax -acct_assgt = 'X' .
salesdatax -mat_pr_grp = 'X' .
salesdatax -rebate_grp = 'X' .
salesdatax -matl_stats = 'X' . "物料统计组
salesdatax -item_cat = 'X' .
APPEND salesdatax .
ENDLOOP .
SORT salesdata BY material sales_org distr_chan .
SORT salesdatax BY material sales_org distr_chan .
DELETE ADJACENT DUPLICATES FROM salesdata .
DELETE ADJACENT DUPLICATES FROM salesdatax .
"select PRCTR from ZTPRCTR WHERE WERKS = ?
SELECT PRCTR WERKS INTO CORRESPONDING FIELDS OF TABLE GT_ZTPRCTR FROM ZTPRCTR WHERE WERKS NOT IN ( '0001' , '0002' , '0003' ) AND werks IN ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
"会计、成本
CLEAR valuationdata .
CLEAR valuationdata[] .
CLEAR valuationdatax .
CLEAR valuationdatax[] .
LOOP AT GT_WERKS .
valuationdata - FUNCTION = lv_bapifn .
valuationdata -material = WA_ITAB -matnr .
valuationdata -val_area = GT_WERKS -werks .
valuationdata -moving_pr = WA_ITAB -verpr .
valuationdata -price_unit = WA_ITAB -peinh .
valuationdata -val_class = WA_ITAB -bklas .
valuationdata -val_cat = WA_ITAB -bwtty .
valuationdata -orig_mat = WA_ITAB -hkmat .
valuationdata -price_ctrl = 'V' .
valuationdata -ml_settle = '2' .
valuationdata -ml_active = 'X' .
APPEND valuationdata .
CLEAR valuationdatax .
" CLEAR valuationdatax[].
valuationdatax - FUNCTION = lv_bapifn .
valuationdatax -material = WA_ITAB -matnr .
valuationdatax -val_area = GT_WERKS -werks .
valuationdatax -moving_pr = 'X' .
valuationdatax -price_unit = 'X' .
valuationdatax -val_class = 'X' .
valuationdatax -val_cat = 'X' .
valuationdatax -orig_mat = 'X' .
valuationdatax -price_ctrl = 'X' .
valuationdatax -ml_settle = 'X' .
valuationdatax -ml_active = 'X' .
APPEND valuationdatax .
ENDLOOP .
"物料描述
CLEAR materialdescription[] .
CLEAR materialdescription .
materialdescription -material = WA_ITAB -matnr .
materialdescription -langu_iso = 'ZH' .
materialdescription -matl_desc = WA_ITAB -makt .
APPEND materialdescription .
"单位
CLEAR unitsofmeasure .
CLEAR unitsofmeasure[] .
unitsofmeasure - FUNCTION = lv_bapifn .
unitsofmeasure -material = WA_ITAB -matnr .
unitsofmeasure -alt_unit = WA_ITAB -meins .
unitsofmeasure -numerator = '1' .
unitsofmeasure -denominatr = '1' .
unitsofmeasure -gross_wt = WA_ITAB -brgew .
unitsofmeasure -unit_of_wt = 'KG' .
unitsofmeasure -volume = '0' .
unitsofmeasure -volumeunit = '' .
APPEND unitsofmeasure .
CLEAR unitsofmeasurex .
CLEAR unitsofmeasurex[] .
unitsofmeasurex - FUNCTION = lv_bapifn .
unitsofmeasurex -material = WA_ITAB -matnr .
unitsofmeasurex -alt_unit = WA_ITAB -meins .
unitsofmeasurex -numerator = 'X' .
unitsofmeasurex -denominatr = 'X' .
unitsofmeasurex -gross_wt = 'X' .
unitsofmeasurex -unit_of_wt = 'X' .
unitsofmeasurex -volume = 'X' .
unitsofmeasurex -volumeunit = 'X' .
APPEND unitsofmeasurex .
"税分类
CLEAR taxclassifications .
CLEAR taxclassifications[] .
taxclassifications - FUNCTION = lv_bapifn .
taxclassifications -material = WA_ITAB -matnr .
taxclassifications -depcountry = 'CN' .
taxclassifications -tax_type_1 = 'MWST' .
taxclassifications -taxclass_1 = '0' .
APPEND taxclassifications .
CLEAR RETURN .
CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
EXPORTINGWA_ITAB-spart = '00'.
" -------------------------------------- 抬头数据 -----------------
headdata-FUNCTION = lv_bapifn. "009 原始的:关于处理的第一个信息
headdata-material = WA_ITAB-matnr.
headdata-matl_type = WA_ITAB-mtart. "物料类型
" 物料类型 T134
headdata-matl_group = WA_ITAB-matkl. "物料组
headdata-matl_cat = '00'." 00 一般物料
"---------------------------------------------------------------------
headdata-basic_view = 'X'. "基本视图
headdata-list_view = 'X'. "列表视图
headdata-sales_view = 'X'. "销售视图
headdata-logst_view = 'X'. "后勤视图
headdata-no_appl_log = 'X' . "不写入应用程序的日志
* HEADDATA-ALL_FIELDS = 'X' .
" 维护基本视图的基本数据
" 零售数据传输:集团级别的物料
CLEAR clientdata.
CLEAR clientdata[].
CLEAR clientdatax.
CLEAR clientdatax[].
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = WA_ITAB-meins
IMPORTING
OUTPUT = WA_ITAB-meins
EXCEPTIONS
OTHERS = 1.
clientdata-FUNCTION = lv_bapifn.
clientdata-material = WA_ITAB-matnr.
clientdata-base_uom = WA_ITAB-meins. "基本计量单位
clientdata-old_mat_no = WA_ITAB-bismt. "旧物料编码
" clientdata-extmatlgrp = WA_ITAB-matkl. "外部物料组
clientdata-division = WA_ITAB-spart. "分部
clientdata-item_cat = WA_ITAB-mtpos. "
clientdata-prod_hier = WA_ITAB-prdha.
clientdata-stor_conds = WA_ITAB-raube.
clientdata-extmatlgrp = WA_ITAB-extwg. "外部物料组
clientdata-size_dim = WA_ITAB-groes.
clientdata-prod_alloc = WA_ITAB-kosch.
clientdata-basic_matl = WA_ITAB-wrkst. "产品层次
clientdata-lab_design = WA_ITAB-labor.
clientdata-std_descr = WA_ITAB-normt.
clientdata-mat_grp_sm = WA_ITAB-magrv.
clientdata-hazmatprof = WA_ITAB-profl.
clientdata-batch_mgmt = WA_ITAB-xchpf.
clientdata-net_weight = WA_ITAB-ntgew.
clientdata-prod_memo = WA_ITAB-ferth.
clientdata-tax_class = 0.
clientdata-document = WA_ITAB-zeiAR. " ppp
APPEND clientdata.
CLEAR clientdatax.
clientdatax-FUNCTION = lv_bapifn.
clientdatax-material = WA_ITAB-matnr.
clientdatax-base_uom = 'X'.
clientdatax-old_mat_no = 'X'.
clientdatax-extmatlgrp = 'X'.
clientdatax-division = 'X'.
clientdatax-item_cat = 'X'.
clientdatax-prod_hier = 'X'.
clientdatax-stor_conds = 'X'.
clientdatax-extmatlgrp = 'X'.
clientdatax-size_dim = 'X'.
clientdatax-prod_alloc = 'X'.
clientdatax-basic_matl = 'X'.
clientdatax-lab_design = 'X'.
clientdatax-std_descr = 'X'.
clientdatax-mat_grp_sm = 'X'.
clientdatax-hazmatprof = 'X'.
clientdatax-batch_mgmt = 'X'.
clientdatax-net_weight = 'X'.
clientdatax-prod_memo = 'X'.
clientdatax-tax_class = 'X'.
clientdatax-document = 'X'.
APPEND clientdatax.
"------------------------- 零售数据传输:基本数据的扩展 ----------------
CLEAR addnlclientdata.
CLEAR addnlclientdata[].
addnlclientdata-FUNCTION = lv_bapifn.
addnlclientdata-material = WA_ITAB-matnr.
addnlclientdata-loadinggrp = '0001'.
addnlclientdata-val_class = WA_ITAB-bklas. "评估类
addnlclientdata-COMM_CODE = WA_ITAB-WSTAW. "商品代码
APPEND addnlclientdata.
CLEAR addnlclientdatax.
CLEAR addnlclientdatax[].
addnlclientdatax-FUNCTION = lv_bapifn.
addnlclientdatax-material = WA_ITAB-matnr.
addnlclientdatax-loadinggrp = 'X'.
addnlclientdatax-val_class = 'X'.
addnlclientdata-COMM_CODE ='X'." wa_itab-WA_ITAB-WSTAW'.
APPEND addnlclientdatax.
"工厂级别数据
CLEAR plantdata.
CLEAR plantdata[].
CLEAR plantdatax.
CLEAR plantdatax[].
" 对应系统中所有用户定义的工厂同时创建
SELECT WERKS INTO corresponding FIELDS OF TABLE GT_WERKS
FROM T001W
WHERE WERKS NOT IN ('0001','0002','0003','ZZ88') AND werks IN ('2100' , '2200' ,'2300' ,'2400','2500').
.
LOOP AT GT_WERKS.
plantdata-FUNCTION = lv_bapifn.
plantdata-material = WA_ITAB-matnr.
plantdata-plant = GT_WERKS-werks.
plantdata-pur_group = WA_ITAB-wekgr. "采购组
plantdata-comm_code = WA_ITAB-stawn. "商品代码
* PLANTDATA-EXPIMPGRP = WA_ITAB-MTVER.
plantdata-AVAILCHECK = 'KP'. "0 可用性检查的检查组
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_ITAB-prctr
IMPORTING
OUTPUT = WA_ITAB-prctr
EXCEPTIONS
OTHERS = 1.
plantdata-profit_ctr = WA_ITAB-prctr. " 利润中心
plantdata-loadinggrp = WA_ITAB-wladg. " 装载组
plantdata-batch_mgmt = WA_ITAB-xchpf. " 批次管理需求的标识
plantdata-mrp_type = 'ND'." WA_ITAB-dismm. " 物料需求计划类型
" plantdata-availcheck = WA_ITAB-mtvfp.
plantdata-prod_prof = WA_ITAB-sfcpf. "生产计划参数文件
plantdata-proc_type = 'X'.
APPEND plantdata.
CLEAR plantdatax.
" CLEAR plantdatax[].
plantdatax-FUNCTION = lv_bapifn.
plantdatax-material = WA_ITAB-matnr.
plantdatax-plant = GT_WERKS-werks.
plantdatax-pur_group = 'X'.
plantdatax-comm_code = 'X'.
plantdatax-expimpgrp = 'X'.
plantdatax-profit_ctr = 'X'.
plantdatax-loadinggrp = 'X'.
plantdatax-batch_mgmt = 'X'.
plantdatax-mrp_type = 'X'.
plantdatax-availcheck = 'X'.
plantdatax-prod_prof = 'X'.
plantdatax-proc_type = 'X'.
APPEND plantdatax.
ENDLOOP.
"库位级别的
SELECT LGORT WERKS INTO CORRESPONDING FIELDS OF TABLE GT_loget FROM T001L WHERE WERKS NOT IN ('0001','0002') AND werks in ('2100' , '2200' ,'2300' ,'2400','2500').
LOOP AT GT_LOGET.
CLEAR LGORTdata.
CLEAR LGORTdata[].
LGORTdata-FUNCTION = lv_bapifn.
LGORTdata-material = WA_ITAB-matnr.
LGORTdata-plant = GT_LOGET-werks.
LGORTdata-STGE_LOC = GT_LOGET-LGORT.
" plantdata-comm_code = WA_ITAB-stawn.
APPEND LGORTdata.
CLEAR LGORTdatax.
CLEAR LGORTdatax[].
LGORTdatax-FUNCTION = lv_bapifn.
LGORTdatax-material = WA_ITAB-matnr.
LGORTdatax-plant = GT_LOGET-werks.
LGORTdatax-STGE_LOC = GT_LOGET-LGORT.
"LGORTdatax-STGE_BIN = 'X'.
APPEND LGORTdatax.
ENDLOOP.
* C.销售组织层级:对系统中所有用户定义的工厂对应销售组织同时创建。
*SELECT * FROM TVKWZ
* WHERE NOT IN ('0001','0002','0003')
CLEAR GT_VKORG .
SELECT VKORG vtweg INTO CORRESPONDING FIELDS OF TABLE GT_VKORG FROM TVKWZ WHERE WERKS NOT IN ('0001','0002','0003') AND werks IN ('2100' , '2200' ,'2300' ,'2400','2500').
CLEAR salesdata.
CLEAR salesdata[].
CLEAR salesdatax.
CLEAR salesdatax[].
LOOP AT GT_VKORG.
"销售数据
CLEAR salesdata.
salesdata-FUNCTION = lv_bapifn.
salesdata-material = WA_ITAB-matnr.
salesdata-sales_org = GT_VKORG-vkorg. "销售组织
salesdata-distr_chan = GT_VKORG-vtweg. "参考客户和主物料分销渠道
salesdata-acct_assgt = WA_ITAB-ktgrm.
salesdata-mat_pr_grp = WA_ITAB-kondm.
salesdata-rebate_grp = WA_ITAB-bonus.
salesdata-matl_stats = ''."物料统计组
salesdata-item_cat = 'NORM'.
APPEND salesdata.
CLEAR salesdatax.
salesdatax-FUNCTION = lv_bapifn.
salesdatax-material = WA_ITAB-matnr.
salesdatax-sales_org = GT_VKORG-vkorg.
salesdatax-distr_chan = GT_VKORG-vtweg.
salesdatax-acct_assgt = 'X'.
salesdatax-mat_pr_grp = 'X'.
salesdatax-rebate_grp = 'X'.
salesdatax-matl_stats = 'X'."物料统计组
salesdatax-item_cat = 'X'.
APPEND salesdatax.
ENDLOOP.
SORT salesdata BY material sales_org distr_chan.
SORT salesdatax BY material sales_org distr_chan.
DELETE ADJACENT DUPLICATES FROM salesdata.
DELETE ADJACENT DUPLICATES FROM salesdatax.
"select PRCTR from ZTPRCTR WHERE WERKS = ?
SELECT PRCTR WERKS INTO CORRESPONDING FIELDS OF TABLE GT_ZTPRCTR FROM ZTPRCTR WHERE WERKS NOT IN ('0001','0002','0003') AND werks IN ('2100' , '2200' ,'2300' ,'2400','2500').
"会计、成本
CLEAR valuationdata.
CLEAR valuationdata[].
CLEAR valuationdatax.
CLEAR valuationdatax[].
LOOP AT GT_WERKS.
valuationdata-FUNCTION = lv_bapifn.
valuationdata-material = WA_ITAB-matnr.
valuationdata-val_area = GT_WERKS-werks.
valuationdata-moving_pr = WA_ITAB-verpr.
valuationdata-price_unit = WA_ITAB-peinh.
valuationdata-val_class = WA_ITAB-bklas.
valuationdata-val_cat = WA_ITAB-bwtty.
valuationdata-orig_mat = WA_ITAB-hkmat.
valuationdata-price_ctrl = wa_itab-VPRSV."'V'.
valuationdata-ml_settle = '2'.
valuationdata-ml_active = 'X'.
APPEND valuationdata.
CLEAR valuationdatax.
" CLEAR valuationdatax[].
valuationdatax-FUNCTION = lv_bapifn.
valuationdatax-material = WA_ITAB-matnr.
valuationdatax-val_area = GT_WERKS-werks.
valuationdatax-moving_pr = 'X'.
valuationdatax-price_unit = 'X'.
valuationdatax-val_class = 'X'.
valuationdatax-val_cat = 'X'.
valuationdatax-orig_mat = 'X'.
valuationdatax-price_ctrl = 'X'.
valuationdatax-ml_settle = 'X'.
valuationdatax-ml_active = 'X'.
APPEND valuationdatax.
ENDLOOP.
"物料描述
CLEAR materialdescription[].
CLEAR materialdescription.
materialdescription-material = WA_ITAB-matnr.
materialdescription-langu_iso = 'ZH'.
materialdescription-matl_desc = WA_ITAB-makt.
APPEND materialdescription.
"单位
CLEAR unitsofmeasure.
CLEAR unitsofmeasure[].
unitsofmeasure-FUNCTION = lv_bapifn.
unitsofmeasure-material = WA_ITAB-matnr.
unitsofmeasure-alt_unit = WA_ITAB-meins.
unitsofmeasure-numerator = '1'.
unitsofmeasure-denominatr = '1'.
unitsofmeasure-gross_wt = WA_ITAB-brgew.
unitsofmeasure-unit_of_wt = 'KG'.
unitsofmeasure-volume = '0'.
unitsofmeasure-volumeunit = ''.
APPEND unitsofmeasure.
CLEAR unitsofmeasurex.
CLEAR unitsofmeasurex[].
unitsofmeasurex-FUNCTION = lv_bapifn.
unitsofmeasurex-material = WA_ITAB-matnr.
unitsofmeasurex-alt_unit = WA_ITAB-meins.
unitsofmeasurex-numerator = 'X'.
unitsofmeasurex-denominatr = 'X'.
unitsofmeasurex-gross_wt = 'X'.
unitsofmeasurex-unit_of_wt = 'X'.
unitsofmeasurex-volume = 'X'.
unitsofmeasurex-volumeunit = 'X'.
APPEND unitsofmeasurex.
"税分类
CLEAR taxclassifications.
CLEAR taxclassifications[].
taxclassifications-FUNCTION = lv_bapifn.
taxclassifications-material = WA_ITAB-matnr.
taxclassifications-depcountry = 'CN'.
taxclassifications-tax_type_1 = 'MWST'.
taxclassifications-taxclass_1 = '0'.
APPEND taxclassifications.
CLEAR RETURN.
CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
EXPORTING
headdata = headdata
IMPORTING
RETURN = RETURN
TABLES
clientdata = clientdata[]
clientdatax = clientdatax[]
addnlclientdata = addnlclientdata[]
addnlclientdatax = addnlclientdatax[]
materialdescription = materialdescription[]
plantdata = plantdata[]
plantdatax = plantdatax[]
posdata = posdata[]
posdatax = posdatax[]
unitsofmeasure = unitsofmeasure[]
unitsofmeasurex = unitsofmeasurex[]
taxclassifications = taxclassifications[]
valuationdata = valuationdata[]
valuationdatax = valuationdatax[]
salesdata = salesdata[]
salesdatax = salesdatax[].WA_ITAB-spart = '00'.
headdata = headdata
IMPORTING
RETURN = RETURN
TABLES
clientdata = clientdata[]
clientdatax = clientdatax[]
addnlclientdata = addnlclientdata[]
addnlclientdatax = addnlclientdatax[]
materialdescription = materialdescription[]
plantdata = plantdata[]
plantdatax = plantdatax[]
posdata = posdata[]
posdatax = posdatax[]
unitsofmeasure = unitsofmeasure[]
unitsofmeasurex = unitsofmeasurex[]
taxclassifications = taxclassifications[]
valuationdata = valuationdata[]
valuationdatax = valuationdatax[]
salesdata = salesdata[]
salesdatax = salesdatax[] .
CLEAR lv_flg .
" -------------------------------------- 抬头数据 -----------------
headdata - FUNCTION = lv_bapifn . "009 原始的:关于处理的第一个信息
headdata -material = WA_ITAB -matnr .
headdata -matl_type = WA_ITAB -mtart . "物料类型
" 物料类型 T134
headdata -matl_group = WA_ITAB -matkl . "物料组
headdata -matl_cat = '00' . " 00 一般物料
"---------------------------------------------------------------------
headdata -basic_view = 'X' . "基本视图
headdata -list_view = 'X' . "列表视图
headdata -sales_view = 'X' . "销售视图
headdata -logst_view = 'X' . "后勤视图
headdata -no_appl_log = 'X' . "不写入应用程序的日志
* HEADDATA-ALL_FIELDS = 'X' .
" 维护基本视图的基本数据
" 零售数据传输:集团级别的物料
CLEAR clientdata .
CLEAR clientdata[] .
CLEAR clientdatax .
CLEAR clientdatax[] .
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = WA_ITAB -meins
IMPORTING
OUTPUT = WA_ITAB -meins
EXCEPTIONS
OTHERS = 1 .
clientdata - FUNCTION = lv_bapifn .
clientdata -material = WA_ITAB -matnr .
clientdata -base_uom = WA_ITAB -meins . "基本计量单位
clientdata -old_mat_no = WA_ITAB -bismt . "旧物料编码
" clientdata-extmatlgrp = WA_ITAB-matkl. "外部物料组
clientdata -division = WA_ITAB -spart . "分部
clientdata -item_cat = WA_ITAB -mtpos . "
clientdata -prod_hier = WA_ITAB -prdha .
clientdata -stor_conds = WA_ITAB -raube .
clientdata -extmatlgrp = WA_ITAB -extwg . "外部物料组
clientdata -size_dim = WA_ITAB -groes .
clientdata -prod_alloc = WA_ITAB -kosch .
clientdata -basic_matl = WA_ITAB -wrkst . "产品层次
clientdata -lab_design = WA_ITAB -labor .
clientdata -std_descr = WA_ITAB -normt .
clientdata -mat_grp_sm = WA_ITAB -magrv .
clientdata -hazmatprof = WA_ITAB -profl .
clientdata -batch_mgmt = WA_ITAB -xchpf .
clientdata -net_weight = WA_ITAB -ntgew .
clientdata -prod_memo = WA_ITAB -ferth .
clientdata -tax_class = 0 .
clientdata -document = WA_ITAB -zeiAR . " ppp
APPEND clientdata .
CLEAR clientdatax .
clientdatax - FUNCTION = lv_bapifn .
clientdatax -material = WA_ITAB -matnr .
clientdatax -base_uom = 'X' .
clientdatax -old_mat_no = 'X' .
clientdatax -extmatlgrp = 'X' .
clientdatax -division = 'X' .
clientdatax -item_cat = 'X' .
clientdatax -prod_hier = 'X' .
clientdatax -stor_conds = 'X' .
clientdatax -extmatlgrp = 'X' .
clientdatax -size_dim = 'X' .
clientdatax -prod_alloc = 'X' .
clientdatax -basic_matl = 'X' .
clientdatax -lab_design = 'X' .
clientdatax -std_descr = 'X' .
clientdatax -mat_grp_sm = 'X' .
clientdatax -hazmatprof = 'X' .
clientdatax -batch_mgmt = 'X' .
clientdatax -net_weight = 'X' .
clientdatax -prod_memo = 'X' .
clientdatax -tax_class = 'X' .
clientdatax -document = 'X' .
APPEND clientdatax .
"------------------------- 零售数据传输:基本数据的扩展 ----------------
CLEAR addnlclientdata .
CLEAR addnlclientdata[] .
addnlclientdata - FUNCTION = lv_bapifn .
addnlclientdata -material = WA_ITAB -matnr .
addnlclientdata -loadinggrp = '0001' .
addnlclientdata -val_class = WA_ITAB -bklas . "评估类
addnlclientdata -COMM_CODE = WA_ITAB -WSTAW . "商品代码
APPEND addnlclientdata .
CLEAR addnlclientdatax .
CLEAR addnlclientdatax[] .
addnlclientdatax - FUNCTION = lv_bapifn .
addnlclientdatax -material = WA_ITAB -matnr .
addnlclientdatax -loadinggrp = 'X' .
addnlclientdatax -val_class = 'X' .
addnlclientdata -COMM_CODE = 'X' . " wa_itab-WA_ITAB-WSTAW'.
APPEND addnlclientdatax .
"工厂级别数据
CLEAR plantdata .
CLEAR plantdata[] .
CLEAR plantdatax .
CLEAR plantdatax[] .
" 对应系统中所有用户定义的工厂同时创建
SELECT WERKS INTO corresponding FIELDS OF TABLE GT_WERKS
FROM T001W
WHERE WERKS NOT IN ( '0001' , '0002' , '0003' , 'ZZ88' ) AND werks IN ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
.
LOOP AT GT_WERKS .
plantdata - FUNCTION = lv_bapifn .
plantdata -material = WA_ITAB -matnr .
plantdata -plant = GT_WERKS -werks .
plantdata -pur_group = WA_ITAB -wekgr . "采购组
plantdata -comm_code = WA_ITAB -stawn . "商品代码
* PLANTDATA-EXPIMPGRP = WA_ITAB-MTVER.
plantdata -AVAILCHECK = 'KP' . "0 可用性检查的检查组
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_ITAB -prctr
IMPORTING
OUTPUT = WA_ITAB -prctr
EXCEPTIONS
OTHERS = 1 .
plantdata -profit_ctr = WA_ITAB -prctr . " 利润中心
plantdata -loadinggrp = WA_ITAB -wladg . " 装载组
plantdata -batch_mgmt = WA_ITAB -xchpf . " 批次管理需求的标识
plantdata -mrp_type = 'ND' . " WA_ITAB-dismm. " 物料需求计划类型
" plantdata-availcheck = WA_ITAB-mtvfp.
plantdata -prod_prof = WA_ITAB -sfcpf . "生产计划参数文件
plantdata -proc_type = 'X' .
APPEND plantdata .
CLEAR plantdatax .
" CLEAR plantdatax[].
plantdatax - FUNCTION = lv_bapifn .
plantdatax -material = WA_ITAB -matnr .
plantdatax -plant = GT_WERKS -werks .
plantdatax -pur_group = 'X' .
plantdatax -comm_code = 'X' .
plantdatax -expimpgrp = 'X' .
plantdatax -profit_ctr = 'X' .
plantdatax -loadinggrp = 'X' .
plantdatax -batch_mgmt = 'X' .
plantdatax -mrp_type = 'X' .
plantdatax -availcheck = 'X' .
plantdatax -prod_prof = 'X' .
plantdatax -proc_type = 'X' .
APPEND plantdatax .
ENDLOOP .
"库位级别的
SELECT LGORT WERKS INTO CORRESPONDING FIELDS OF TABLE GT_loget FROM T001L WHERE WERKS NOT IN ( '0001' , '0002' ) AND werks in ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
LOOP AT GT_LOGET .
CLEAR LGORTdata .
CLEAR LGORTdata[] .
LGORTdata - FUNCTION = lv_bapifn .
LGORTdata -material = WA_ITAB -matnr .
LGORTdata -plant = GT_LOGET -werks .
LGORTdata -STGE_LOC = GT_LOGET -LGORT .
" plantdata-comm_code = WA_ITAB-stawn.
APPEND LGORTdata .
CLEAR LGORTdatax .
CLEAR LGORTdatax[] .
LGORTdatax - FUNCTION = lv_bapifn .
LGORTdatax -material = WA_ITAB -matnr .
LGORTdatax -plant = GT_LOGET -werks .
LGORTdatax -STGE_LOC = GT_LOGET -LGORT .
"LGORTdatax-STGE_BIN = 'X'.
APPEND LGORTdatax .
ENDLOOP .
* C.销售组织层级:对系统中所有用户定义的工厂对应销售组织同时创建。
*SELECT * FROM TVKWZ
* WHERE NOT IN ('0001','0002','0003')
CLEAR GT_VKORG .
SELECT VKORG vtweg INTO CORRESPONDING FIELDS OF TABLE GT_VKORG FROM TVKWZ WHERE WERKS NOT IN ( '0001' , '0002' , '0003' ) AND werks IN ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
CLEAR salesdata .
CLEAR salesdata[] .
CLEAR salesdatax .
CLEAR salesdatax[] .
LOOP AT GT_VKORG .
"销售数据
CLEAR salesdata .
salesdata - FUNCTION = lv_bapifn .
salesdata -material = WA_ITAB -matnr .
salesdata -sales_org = GT_VKORG -vkorg . "销售组织
salesdata -distr_chan = GT_VKORG -vtweg . "参考客户和主物料分销渠道
salesdata -acct_assgt = WA_ITAB -ktgrm .
salesdata -mat_pr_grp = WA_ITAB -kondm .
salesdata -rebate_grp = WA_ITAB -bonus .
salesdata -matl_stats = '' . "物料统计组
salesdata -item_cat = 'NORM' .
APPEND salesdata .
CLEAR salesdatax .
salesdatax - FUNCTION = lv_bapifn .
salesdatax -material = WA_ITAB -matnr .
salesdatax -sales_org = GT_VKORG -vkorg .
salesdatax -distr_chan = GT_VKORG -vtweg .
salesdatax -acct_assgt = 'X' .
salesdatax -mat_pr_grp = 'X' .
salesdatax -rebate_grp = 'X' .
salesdatax -matl_stats = 'X' . "物料统计组
salesdatax -item_cat = 'X' .
APPEND salesdatax .
ENDLOOP .
SORT salesdata BY material sales_org distr_chan .
SORT salesdatax BY material sales_org distr_chan .
DELETE ADJACENT DUPLICATES FROM salesdata .
DELETE ADJACENT DUPLICATES FROM salesdatax .
"select PRCTR from ZTPRCTR WHERE WERKS = ?
SELECT PRCTR WERKS INTO CORRESPONDING FIELDS OF TABLE GT_ZTPRCTR FROM ZTPRCTR WHERE WERKS NOT IN ( '0001' , '0002' , '0003' ) AND werks IN ( '2100' , '2200' , '2300' , '2400' , '2500' ) .
"会计、成本
CLEAR valuationdata .
CLEAR valuationdata[] .
CLEAR valuationdatax .
CLEAR valuationdatax[] .
LOOP AT GT_WERKS .
valuationdata - FUNCTION = lv_bapifn .
valuationdata -material = WA_ITAB -matnr .
valuationdata -val_area = GT_WERKS -werks .
valuationdata -moving_pr = WA_ITAB -verpr .
valuationdata -price_unit = WA_ITAB -peinh .
valuationdata -val_class = WA_ITAB -bklas .
valuationdata -val_cat = WA_ITAB -bwtty .
valuationdata -orig_mat = WA_ITAB -hkmat .
valuationdata -price_ctrl = wa_itab -VPRSV . "'V'.
valuationdata -ml_settle = '2' .
valuationdata -ml_active = 'X' .
APPEND valuationdata .
CLEAR valuationdatax .
" CLEAR valuationdatax[].
valuationdatax - FUNCTION = lv_bapifn .
valuationdatax -material = WA_ITAB -matnr .
valuationdatax -val_area = GT_WERKS -werks .
valuationdatax -moving_pr = 'X' .
valuationdatax -price_unit = 'X' .
valuationdatax -val_class = 'X' .
valuationdatax -val_cat = 'X' .
valuationdatax -orig_mat = 'X' .
valuationdatax -price_ctrl = 'X' .
valuationdatax -ml_settle = 'X' .
valuationdatax -ml_active = 'X' .
APPEND valuationdatax .
ENDLOOP .
"物料描述
CLEAR materialdescription[] .
CLEAR materialdescription .
materialdescription -material = WA_ITAB -matnr .
materialdescription -langu_iso = 'ZH' .
materialdescription -matl_desc = WA_ITAB -makt .
APPEND materialdescription .
"单位
CLEAR unitsofmeasure .
CLEAR unitsofmeasure[] .
unitsofmeasure - FUNCTION = lv_bapifn .
unitsofmeasure -material = WA_ITAB -matnr .
unitsofmeasure -alt_unit = WA_ITAB -meins .
unitsofmeasure -numerator = '1' .
unitsofmeasure -denominatr = '1' .
unitsofmeasure -gross_wt = WA_ITAB -brgew .
unitsofmeasure -unit_of_wt = 'KG' .
unitsofmeasure -volume = '0' .
unitsofmeasure -volumeunit = '' .
APPEND unitsofmeasure .
CLEAR unitsofmeasurex .
CLEAR unitsofmeasurex[] .
unitsofmeasurex - FUNCTION = lv_bapifn .
unitsofmeasurex -material = WA_ITAB -matnr .
unitsofmeasurex -alt_unit = WA_ITAB -meins .
unitsofmeasurex -numerator = 'X' .
unitsofmeasurex -denominatr = 'X' .
unitsofmeasurex -gross_wt = 'X' .
unitsofmeasurex -unit_of_wt = 'X' .
unitsofmeasurex -volume = 'X' .
unitsofmeasurex -volumeunit = 'X' .
APPEND unitsofmeasurex .
"税分类
CLEAR taxclassifications .
CLEAR taxclassifications[] .
taxclassifications - FUNCTION = lv_bapifn .
taxclassifications -material = WA_ITAB -matnr .
taxclassifications -depcountry = 'CN' .
taxclassifications -tax_type_1 = 'MWST' .
taxclassifications -taxclass_1 = '0' .
APPEND taxclassifications .
CLEAR RETURN .
CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
EXPORTING
headdata = headdata
IMPORTING
RETURN = RETURN
TABLES
clientdata = clientdata[]
clientdatax = clientdatax[]
addnlclientdata = addnlclientdata[]
addnlclientdatax = addnlclientdatax[]
materialdescription = materialdescription[]
plantdata = plantdata[]
plantdatax = plantdatax[]
posdata = posdata[]
posdatax = posdatax[]
unitsofmeasure = unitsofmeasure[]
unitsofmeasurex = unitsofmeasurex[]
taxclassifications = taxclassifications[]
valuationdata = valuationdata[]
valuationdatax = valuationdatax[]
salesdata = salesdata[]
salesdatax = salesdatax[] .