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

来源:互联网 发布:如何注册淘宝达人 编辑:程序博客网 时间:2024/06/06 23:16

 

创建物料主数据,对应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[].
原创粉丝点击