物料主数据--1. BAPI_MATERIAL_MAINTAINDATA_RT的使用以及心得

 

创建物料主数据,对应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[] .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值