零售物料主数据批导

BAPI_MATERIAL_MAINTAINDATA_RT

Bapi的各参数的具体使用

SORT it_updo BY box.

  LOOP AT it_updo ASSIGNING <fs_upd>.

    "-- 进度条 --
    rowsnum rowsnum 1.
    CLEAR barmess.
    DATA num1 TYPE char10.
    DATA num TYPE char10.
    num1 rowsnum1.
    num rowsnum.
    CONCATENATE '总共有num1 '条数据,' '还剩num '条数据未上传INTO barmess.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        percentage 0
        text       barmess.

    "-- 清空要用到的 内表 工作区 --
    CLEAR:it_clientdata[],  it_clientdatax[],
          it_salesdata[],   it_salesdatax[],
          it_plantdata[],   it_plantdatax[],
          it_materialdescription[]it_addnlclientdata[],
          it_addnlclientdatax[],    it_characteristicvalue[],
          it_characteristicvaluex[],it_valuationdata[],
          it_valuationdatax[],it_variantskeys.
    CLEAR:wa_returnwa_headdata.

    READ TABLE it_updo INTO wa_updo WITH KEY box 'X' BINARY SEARCH.
    IF sy-subrc 0.
      IF <fs_upd>-box ''.
        CONTINUE.
      ENDIF.
    ENDIF.

    wa_headdata-material   <fs_upd>-matnr.  物料编号
    wa_headdata-matl_type  <fs_upd>-mtart.  物料类型
    wa_headdata-matl_group <fs_upd>-matkl.  物料组
    wa_headdata-matl_cat   <fs_upd>-attyp.  物料类别
    wa_headdata-function   '005'.  物料类别
    READ TABLE it_t023 INTO wa_t023 WITH KEY matkl <fs_upd>-matkl BINARY SEARCH.
    IF sy-subrc 0.
      wa_headdata-ref_matl wa_t023-wwgda参考物料
    ENDIF.

*&-------------------------&&--------------------------
    wa_headdata-char_prof <fs_upd>-speparfil"特征参数文件
*&-----------------------------------------------------
    wa_headdata-basic_view 'X'.
    wa_headdata-sales_view 'X'.
    wa_headdata-list_view  'X'.
    wa_headdata-logdc_view 'X'.
    wa_headdata-logst_view 'X'.
    wa_headdata-no_appl_log 'X'.

*----------------------------------------------------------
    "-- 一般物料 创建 --
* ---------------------------------------------------------
    "-- 零售数据传输:集团级别的物料数据 --
    CLEAR:wa_clientdata,wa_clientdatax.

    wa_clientdata-material <fs_upd>-matnr.  "物料编号
    wa_clientdatax-material <fs_upd>-matnr"物料编号
    wa_clientdata-old_mat_no <fs_upd>-bismt.  "旧物料号
    wa_clientdatax-old_mat_no 'X'.
    wa_clientdata-item_cat 'SAMM'普通项目类别
    wa_clientdatax-item_cat 'X'.
    wa_clientdata-lab_design <fs_upd>-labor.    实验室/设计室
    wa_clientdatax-lab_design 'X'.

    "-- 修改时的 日期 用户字段 处理 --
    IF <fs_upd>-zce 'E'.
      wa_clientdata-created_on wa_mara_tem2-ersda.        "创建日期
      wa_clientdatax-created_on 'X'.
      wa_clientdata-created_by wa_mara_tem2-ernam.        "创建者
      wa_clientdatax-created_by 'X'.
      wa_clientdata-last_chnge  sy-datum修改日期
      wa_clientdatax-last_chnge 'X'.
      wa_clientdata-changed_by sy-uname.  修改者
      wa_clientdatax-changed_by 'X'.
    ENDIF.

    "-- 创建时 日期 用户字段 处理 --
    IF <fs_upd>-zce 'C'.
      wa_clientdata-created_on sy-datum.        "创建日期
      wa_clientdatax-created_on 'X'.
      wa_clientdata-created_by sy-uname.        "创建者
      wa_clientdatax-created_by 'X'.
      wa_clientdata-last_chnge  ''修改日期
      wa_clientdatax-last_chnge 'X'.
      wa_clientdata-changed_by ''.  修改者
      wa_clientdatax-changed_by 'X'.
    ENDIF.

    wa_clientdata-division <fs_upd>-spart.  部门 / 产品组
    wa_clientdatax-division 'X'.

    wa_clientdata-extmatlgrp <fs_upd>-extwg"  外部物料组
    wa_clientdatax-extmatlgrp 'X'.

    wa_clientdata-tax_class <fs_upd>-taklv.销项税分类  / 物料从税收分类
    wa_clientdatax-tax_class 'X'.

    wa_clientdata-pr_ref_mat ''定价参考物料
    wa_clientdatax-pr_ref_mat 'X'.

    "转换单位   基本计量单位
    CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
      EXPORTING
        input          <fs_upd>-meins
        
language       sy-langu
      
IMPORTING
        output         <fs_upd>-meins
      
EXCEPTIONS
        unit_not_found 1
        OTHERS         2.

    wa_clientdata-base_uom <fs_upd>-meins.
    wa_clientdatax-base_uom 'X'.

    CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
      EXPORTING
        input          <fs_upd>-cha_meins
        
language       sy-langu
      
IMPORTING
        output         <fs_upd>-cha_meins
      
EXCEPTIONS
        unit_not_found 1
        OTHERS         2.
    wa_clientdata-var_ord_un  =  <fs_upd>-cha_meins"可变单位 / 可变采购订单单位活动
    wa_clientdatax-var_ord_un  'X'.

    APPEND wa_clientdata TO it_clientdata.
    APPEND wa_clientdatax TO it_clientdatax.

    "---零售数据传输:基本数据的扩展 --
    CLEAR:wa_addnlclientdata,wa_addnlclientdatax.
    wa_addnlclientdata-material <fs_upd>-matnr.   物料编号
    wa_addnlclientdatax-material <fs_upd>-matnr.  物料编号
    wa_addnlclientdata-function '005'.
    wa_addnlclientdata-pur_group <fs_upd>-wekgr.   采购组
    wa_addnlclientdatax-pur_group 'X'.
    wa_addnlclientdata-val_class <fs_upd>-wbkla评估类
    wa_addnlclientdatax-val_class 'X'.
    wa_addnlclientdata-li_proc_st '02'.
    wa_addnlclientdatax-li_proc_st 'X'.
    wa_addnlclientdata-li_proc_dc '02'.
    wa_addnlclientdatax-li_proc_dc 'X'.

    wa_addnlclientdata-assortlist 'X'.
    wa_addnlclientdatax-assortlist 'X'.
    wa_addnlclientdata-list_st_fr sy-datum.
    wa_addnlclientdatax-list_st_fr 'X'.
    wa_addnlclientdata-list_st_to '99990101'.
    wa_addnlclientdatax-list_st_to 'X'.
    wa_addnlclientdata-list_dc_fr sy-datum.
    wa_addnlclientdatax-list_dc_fr 'X'.
    wa_addnlclientdata-list_dc_to '99990101'.
    wa_addnlclientdatax-list_dc_to 'X'.
    wa_addnlclientdata-sell_st_fr sy-datum.
    wa_addnlclientdatax-sell_st_fr 'X'.
    wa_addnlclientdata-sell_st_to '99990101'.
    wa_addnlclientdatax-sell_st_to 'X'.

    wa_addnlclientdata-sell_dc_fr sy-datum.
    wa_addnlclientdatax-sell_dc_fr 'X'.
    wa_addnlclientdata-sell_dc_to '99990101'.
    wa_addnlclientdatax-sell_dc_to 'X'.
    wa_addnlclientdata-assortlist 'X'.
    wa_addnlclientdatax-assortlist 'X'.

    APPEND wa_addnlclientdata TO it_addnlclientdata.
    APPEND wa_addnlclientdatax TO it_addnlclientdatax.

    销售数据扩展
    PERFORM frm_vkorg_extend USING<fs_upd>-matnr '1000' 'X',
                                    <fs_upd>-matnr '2000' 'X',
                                    <fs_upd>-matnr '3000' 'X',
                                    <fs_upd>-matnr '4000' 'X'.

    "--- 零售数据传输:工厂层的物料数据 --
    CLEAR:wa_plantdata,wa_plantdatax.
    IF <fs_upd>-zce 'E'.
      wa_plantdata-function '004'.
    ELSE.
      wa_plantdata-function '005'.
    ENDIF.

    READ TABLE it_marc INTO wa_marc WITH KEY matnr <fs_upd>-wwgda werks 'REFD'.
    IF sy-subrc 0.
      wa_plantdata-material <fs_upd>-matnr.     "物料编号
      wa_plantdatax-material <fs_upd>-matnr.
      wa_plantdata-mrp_ctrler wa_marc-dispo.   " MRP 控制者
      wa_plantdatax-mrp_ctrler 'X'.
      wa_plantdata-mrp_type wa_marc-dismm.     物料需求计划类型
      wa_plantdatax-mrp_type 'X'.
      wa_plantdata-lotsizekey wa_marc-disls.   批量大小
      wa_plantdatax-lotsizekey 'X'.
      wa_plantdata-availcheck wa_marc-mtvfp.   可用性检查
      wa_plantdatax-availcheck 'X'.
      wa_plantdata-proc_type wa_marc-beskz.    采购类型
      wa_plantdatax-proc_type 'X'.
      wa_plantdata-spproctype wa_marc-sobsl.   特殊采购类型
      wa_plantdatax-spproctype 'X'.
      wa_plantdata-no_costing <fs_upd>-ekalr.   QS的成品估算 / 无成本核算
      wa_plantdatax-no_costing 'X'.
      wa_plantdata-profit_ctr wa_marc-prctr.   利润中心
      wa_plantdatax-profit_ctr 'X'.
      wa_plantdata-variance_key wa_marc-awsls差异码
      wa_plantdatax-variance_key 'X'.
      wa_plantdata-sm_key wa_marc-fhori.       浮动的计划边际码
      wa_plantdatax-sm_key 'X'.
      wa_plantdata-gr_pr_time wa_marc-webaz.   收货处理时间
      wa_plantdatax-gr_pr_time 'X'.
      wa_plantdata-inhseprodt  wa_marc-dzeit.  自制生产时间
      wa_plantdatax-inhseprodt 'X'.
      wa_plantdata-pur_group <fs_upd>-wekgr.    采购组
      wa_plantdatax-pur_group 'X'.
      wa_plantdata-under_tol wa_marc-uneto.    不足交货容差
      wa_plantdatax-under_tol 'X'.
      wa_plantdata-over_tol  wa_marc-ueeto.    过度交货容差
      wa_plantdatax-over_tol  'X'.
      wa_plantdata-plnd_delry  wa_marc-plifz.  计划交货时间
      wa_plantdatax-plnd_delry  'X'.
      wa_plantdata-distr_prof  ''分销参数文件
      wa_plantdatax-distr_prof  'X'.
      wa_plantdata-plant 'REFD'.                "工厂
      wa_plantdatax-plant 'REFD'.
      wa_plantdata-refpltcons 'REFD'.
      wa_plantdatax-refpltcons 'REFD'.
      APPEND wa_plantdata TO it_plantdata.
      APPEND wa_plantdatax TO it_plantdatax.
    ENDIF.

    "-- 零售数据传输:物料描述 --
    CLEAR wa_materialdescription.
    wa_materialdescription-function '005'.  物料编号
    wa_materialdescription-material <fs_upd>-matnr.  物料编号
    wa_materialdescription-langu sy-langu.           语言代码
    wa_materialdescription-matl_desc <fs_upd>-maktx物料描述
    APPEND wa_materialdescription TO it_materialdescription.


    "-- 零售数据传输:评估数据 --
    CLEAR:wa_valuationdata,wa_valuationdatax.
    wa_valuationdata-function '005'物料编号
    wa_valuationdata-material <fs_upd>-matnr物料编号
    wa_valuationdatax-material <fs_upd>-matnr物料编号
    wa_valuationdata-val_area 'REFD'.     "评估范围
    wa_valuationdatax-val_area 'REFD'.
    wa_valuationdata-val_class <fs_upd>-wbkla.  "  评估类
    wa_valuationdatax-val_class 'X'.
    READ TABLE it_t023 INTO wa_t023 WITH KEY matkl <fs_upd>-matkl BINARY SEARCH.
    IF sy-subrc 0.
      wa_valuationdata-orig_mat wa_t023-hkmat.       "物料来源
      wa_valuationdata-with_qty_struct wa_t023-ekalr."qs的成本估算
    ENDIF.
    wa_valuationdatax-orig_mat 'X'.
    wa_valuationdatax-with_qty_struct 'X'.
    APPEND wa_valuationdata TO it_valuationdata.
    APPEND wa_valuationdatax TO it_valuationdatax.

    "-- 零售数据传输:评估数据 --
    CLEAR:wa_valuationdata,wa_valuationdatax.
    wa_valuationdata-function '005'物料编号
    wa_valuationdata-material <fs_upd>-matnr物料编号
    wa_valuationdatax-material <fs_upd>-matnr物料编号
    wa_valuationdata-val_area 'REFS'.     "评估范围
    wa_valuationdatax-val_area 'REFS'.
    wa_valuationdata-orig_mat wa_t023-hkmat.   "物料来源
    wa_valuationdatax-orig_mat 'X'.
    wa_valuationdata-with_qty_struct wa_t023-ekalr."qs的成本估算
    wa_valuationdatax-with_qty_struct 'X'.
    wa_valuationdata-val_class <fs_upd>-wbkla.  "  评估类
    wa_valuationdatax-val_class 'X'.
    APPEND wa_valuationdata TO it_valuationdata.
    APPEND wa_valuationdatax TO it_valuationdatax.

    "--- 零售数据传输:度量单位 ---
    CLEARwa_unitsofmeasure,wa_unitsofmeasurex.
    wa_unitsofmeasure-material <fs_upd>-matnr.
    wa_unitsofmeasurex-material <fs_upd>-matnr.
    wa_unitsofmeasure-function '005'.
    wa_unitsofmeasure-alt_unit <fs_upd>-meins.          计量单位
    wa_unitsofmeasurex-alt_unit 'X'.
    APPEND wa_unitsofmeasure TO it_unitsofmeasure.
    APPEND wa_unitsofmeasurex TO it_unitsofmeasurex.

    PERFORM frm_call_bapi.

    IF <fs_upd>-type 'S'.
      <fs_upd>-status icon_led_green.
    ELSE.
      <fs_upd>-status icon_led_red.
    ENDIF.

  ENDLOOP.

 

 

bapi的参数启用

CLEAR wa_return.
    CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
      EXPORTING
        headdata             wa_headdata
      
IMPORTING
        return               wa_return
      
TABLES
        variantskeys         it_variantskeys
        characteristicvalue  
it_characteristicvalue
        characteristicvaluex 
it_characteristicvaluex
        clientdata           
it_clientdata
        clientdatax          
it_clientdatax
        addnlclientdata      
it_addnlclientdata
        addnlclientdatax     
it_addnlclientdatax
        materialdescription  
it_materialdescription
        plantdata            
it_plantdata
        plantdatax           
it_plantdatax
        unitsofmeasure       
it_unitsofmeasure
        unitsofmeasurex      
it_unitsofmeasurex
        valuationdata        
it_valuationdata
        valuationdatax       
it_valuationdatax
        salesdata            
it_salesdata
        salesdatax           
it_salesdatax.

 

 

创建成品变式的参数的赋值代码

DATA l_vari_matnr TYPE mara-matnr.

  "-- 取出最it_mara_1大的 变式物料流水号 --
  SORT it_updo BY matnr.

  CLEARit_mara_1,it_updo_werk .
  MOVE-CORRESPONDING it_mara TO it_mara_1.
  MOVE-CORRESPONDING it_updo TO it_updo_werk.
  SORT it_updo_werk BY matnr size2 color size1 werks.
  DELETE ADJACENT DUPLICATES FROM it_updo_werk COMPARING matnr size2 color size1 werks.
  SORT it_updo_werk BY matnr size2 color size1.
  "-- 处理初始流水号 --
  LOOP AT it_mara_1 ASSIGNING <fs_mara>.
    PERFORM conv_output_matnr(zpub_f01USING :<fs_mara>-matnr CHANGING <fs_mara>-matnr,
                                               <fs_mara>-satnr CHANGING <fs_mara>-satnr.
    CLEAR lv_tabix .
    lv_tabix sy-tabix.
    IF <fs_mara>-satnr ''.
      <fs_mara>-satnr <fs_mara>-matnr.
      <fs_mara>-znum 0.
    ELSE.
      CLEAR int_temp.
      int_temp strlen<fs_mara>-satnr ).
      <fs_mara>-znum <fs_mara>-matnr+int_temp(3).
    ENDIF.

    PERFORM conv_input_matnr(zpub_f01USING :<fs_mara>-matnr CHANGING <fs_mara>-matnr,
                                              <fs_mara>-satnr CHANGING <fs_mara>-satnr.

    IF it_updo IS NOT INITIAL.
      READ TABLE it_updo INTO wa_updo WITH KEY matnr <fs_mara>-satnr BINARY SEARCH.
      IF sy-subrc <> 0.
        DELETE it_mara_1 INDEX lv_tabix.
        CONTINUE.
      ENDIF.
    ENDIF.
  ENDLOOP.

  SORT it_mara_1 BY satnr matnr DESCENDING.
  DELETE ADJACENT DUPLICATES FROM it_mara_1 COMPARING satnr.
  SORT it_mara_1 BY satnr.

  CLEAR it_updo_tem.
  MOVE-CORRESPONDING it_updo TO it_updo_tem.
  SORT it_updo_tem BY matnr size2 color size1.
  DELETE ADJACENT DUPLICATES FROM it_updo_tem COMPARING matnr size2 color size1.

  SORT it_updo_tem BY box.
  CLEAR it_updo_mat.
  MOVE-CORRESPONDING it_updo_tem TO it_updo_mat.
  SORT it_updo_mat BY matnr.
  DELETE ADJACENT DUPLICATES FROM it_updo_mat COMPARING matnr.

  "-- 成品变式 根据物料组 确定    --
  SORT lt_cabn BY class chartyp.
  CLEAR it_updo_fina.
  LOOP AT it_updo_mat INTO wa_updo_mat.

    "-- 清空要用到的 内表 工作区 --
    CLEAR:it_clientdata[],  it_clientdatax[],
          it_salesdata[],   it_salesdatax[],
          it_plantdata[],   it_plantdatax[],
          it_materialdescription[]it_addnlclientdata[],
          it_addnlclientdatax[],    it_characteristicvalue[],
          it_characteristicvaluex[],it_valuationdata[],
          it_valuationdatax[],it_variantskeys,
          it_plantkeys,it_distrchainkeys,
          wa_internationalartnos,it_internationalartnos.

    LOOP AT it_updo_tem ASSIGNING <fs_upd> WHERE matnr wa_updo_mat-matnr.
      SORT <fs_upd>-cban_tab BY class chartyp.
      "-- 进度条 --
      rowsnum rowsnum 1.
      CLEAR barmess.
      DATA num1 TYPE char10.
      DATA num TYPE char10.
      num1 rowsnum1.
      num rowsnum.
      CONCATENATE '总共有num1 '条数据,' '还剩num '条数据未上传INTO barmess.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          percentage 0
          text       barmess.

      CLEAR:wa_returnwa_headdata.

      READ TABLE it_updo_tem INTO wa_updo_tem WITH KEY box 'X' BINARY SEARCH.
      IF sy-subrc 0.
        IF <fs_upd>-box ''.
          CONTINUE.
        ENDIF.
      ENDIF.

      CLEAR l_vari_matnr.
      "-- 物料号的流水号 赋值 --
      IF <fs_upd>-zce 'C'.
        READ TABLE it_mara_1 INTO wa_mara_1 WITH KEY satnr <fs_upd>-matnr BINARY SEARCH.
        IF sy-subrc 0.
          CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
            EXPORTING
              input  <fs_upd>-matnr
            
IMPORTING
              output l_vari_matnr.

          CLEARzv_num,znum.
          zv_num wa_mara_1-znum + 1.
          znum wa_mara_1-znum + 1.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  zv_num
            
IMPORTING
              output zv_num.

          l_vari_matnr l_vari_matnr && zv_num.

          CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
            EXPORTING
              input  l_vari_matnr
            
IMPORTING
              output l_vari_matnr.
        ENDIF.
      ELSE.
        l_vari_matnr <fs_upd>-vari_matnr.
      ENDIF.

      wa_headdata-function   '005'.
      wa_headdata-material   <fs_upd>-matnr.  物料编号
      wa_headdata-matl_type  <fs_upd>-mtart.  物料类型
      wa_headdata-matl_group <fs_upd>-matkl.  物料组
      wa_headdata-matl_cat   <fs_upd>-attyp.  物料类别
*      wa_headdata-ref_matl   = <fs_upd>-wwgda.  " 参考物料
      wa_headdata-char_prof  <fs_upd>-speparfil"特征参数文件
      wa_headdata-basic_view 'X'.
      wa_headdata-sales_view 'X'.
      wa_headdata-list_view  'X'.
      wa_headdata-logdc_view 'X'.
      wa_headdata-logst_view 'X'.
      wa_headdata-no_appl_log 'X'.

      "-- 零售数据传输:一般物料变式的列表 --
      CLEAR wa_variantskeys.
      wa_variantskeys-function '005'.
      wa_variantskeys-material <fs_upd>-matnr.  物料编号
      IF <fs_upd>-vari_matnr ''.
        wa_variantskeys-variant l_vari_matnr."<fs_upd>-matnr && zv_num.   " 变式编号
      ELSE.
        wa_variantskeys-variant <fs_upd>-vari_matnr .       变式编号
      ENDIF.
      APPEND wa_variantskeys TO it_variantskeys.

      "-- 零售数据传输:集团级别的物料数据 --
      CLEAR:wa_clientdata,wa_clientdatax.

      IF <fs_upd>-vari_matnr ''.
        wa_clientdata-material l_vari_matnr."<fs_upd>-matnr && zv_num.  "物料编号
        wa_clientdatax-material l_vari_matnr."<fs_upd>-matnr && zv_num. "物料编号
      ELSE.
        wa_clientdata-material <fs_upd>-vari_matnr.  "物料编号
        wa_clientdatax-material <fs_upd>-vari_matnr"物料编号
      ENDIF.
      wa_clientdata-function '005'.
      wa_clientdata-old_mat_no <fs_upd>-bismt.  "旧物料号
      wa_clientdatax-old_mat_no 'X'.
      wa_clientdata-item_cat 'NORM'.            普通项目类别
      wa_clientdatax-item_cat 'X'.
      wa_clientdata-division <fs_upd>-spart.    部门 / 产品组
      wa_clientdatax-division 'X'.
      wa_clientdata-lab_design <fs_upd>-labor.    实验室/设计室
      wa_clientdatax-lab_design 'X'.



      "-- 修改时 日期 用户 字段 处理 --
      IF <fs_upd>-zce 'E'.
        wa_clientdata-created_on wa_mara_tem2-ersda.        "创建日期
        wa_clientdatax-created_on 'X'.
        wa_clientdata-created_by wa_mara_tem2-ernam.        "创建者
        wa_clientdatax-created_by 'X'.
        wa_clientdata-last_chnge  sy-datum修改日期
        wa_clientdatax-last_chnge 'X'.
        wa_clientdata-changed_by sy-uname.  修改者
        wa_clientdatax-changed_by 'X'.
      ENDIF.

      "-- 创建时 日期 用户 字段 处理 --
      IF <fs_upd>-zce 'C'.
        wa_clientdata-created_on sy-datum.        "创建日期
        wa_clientdatax-created_on 'X'.
        wa_clientdata-created_by sy-uname.        "创建者
        wa_clientdatax-created_by 'X'.
        wa_clientdata-last_chnge  ''修改日期
        wa_clientdatax-last_chnge 'X'.
        wa_clientdata-changed_by ''.  修改者
        wa_clientdatax-changed_by 'X'.
      ENDIF.

      wa_clientdata-extmatlgrp <fs_upd>-extwg.  外部物料组
      wa_clientdatax-extmatlgrp 'X'.
      wa_clientdata-tax_class <fs_upd>-taklv.   销项税分类  / 物料从税收分类
      wa_clientdatax-tax_class 'X'.
      wa_clientdata-pr_ref_mat ''.              定价参考物料
      wa_clientdatax-pr_ref_mat 'X'.
      <fs_upd>-meins 'PC'.

      "转换单位   基本计量单位
      CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
        EXPORTING
          input          <fs_upd>-meins
          
language       sy-langu
        
IMPORTING
          output         <fs_upd>-meins
        
EXCEPTIONS
          unit_not_found 1
          OTHERS         2.

      wa_clientdata-base_uom <fs_upd>-meins基本单位
      wa_clientdatax-base_uom 'X'.
      CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
        EXPORTING
          input          <fs_upd>-cha_meins
          
language       sy-langu
        
IMPORTING
          output         <fs_upd>-cha_meins
        
EXCEPTIONS
          unit_not_found 1
          OTHERS         2.
      wa_clientdata-var_ord_un  =  <fs_upd>-cha_meins"可变单位 / 可变采购订单单位活动
      wa_clientdatax-var_ord_un  'X'.
      APPEND wa_clientdata TO it_clientdata.
      APPEND wa_clientdatax TO it_clientdatax.

      LOOP AT it_updo_werk INTO wa_updo_werk USING KEY key1 WHERE matnr <fs_upd>-matnr
                                                               
AND size2 <fs_upd>-size2
                                                               
AND color <fs_upd>-color
                                                               AND size1 <fs_upd>-size1.

        "--- 零售数据传输:工厂层的物料数据 --
        CLEAR:wa_plantdata,wa_plantdatax.
        IF wa_updo_werk-vari_matnr ''.
          wa_plantdata-material l_vari_matnr."wa_updo_werk-matnr && zv_num.   "物料编号
          wa_plantdatax-material l_vari_matnr."wa_updo_werk-matnr && zv_num.
        ELSE.
          wa_plantdata-material wa_updo_werk-vari_matnr.        "物料编号
          wa_plantdatax-material wa_updo_werk-vari_matnr.
        ENDIF.
        wa_plantdata-function '005'.
        wa_plantdata-mrp_ctrler wa_updo_werk-dispo.           "MRP 控制者
        wa_plantdatax-mrp_ctrler 'X'.
        wa_plantdata-mrp_type wa_updo_werk-dismm.             "物料需求计划类型
        wa_plantdatax-mrp_type 'X'.
        wa_plantdata-lotsizekey wa_updo_werk-disls.           "批量大小
        wa_plantdatax-lotsizekey 'X'.
        wa_plantdata-availcheck wa_updo_werk-mtvfp.           "可用性检查
        wa_plantdatax-availcheck 'X'.
        wa_plantdata-proc_type wa_updo_werk-beskz.            "采购类型
        wa_plantdatax-proc_type 'X'.
        wa_plantdata-spproctype wa_updo_werk-sobsl.           "特殊采购类型
        wa_plantdatax-spproctype 'X'.
        wa_plantdata-profit_ctr wa_updo_werk-prctr.           "利润中心
        wa_plantdatax-profit_ctr 'X'.
        wa_plantdata-variance_key wa_updo_werk-awsls.         "差异码
        wa_plantdatax-variance_key 'X'.
        wa_plantdata-sm_key wa_updo_werk-fhori.      "浮动的计划边际码
        wa_plantdatax-sm_key 'X'.
        wa_plantdata-gr_pr_time wa_updo_werk-webaz.  收货处理时间
        wa_plantdatax-gr_pr_time 'X'.
        wa_plantdata-inhseprodt  wa_updo_werk-dzeit自制生产时间
        wa_plantdatax-inhseprodt 'X'.
        wa_plantdata-dep_req_id wa_updo_werk-sbdkz.  独立 / 集中
        wa_plantdatax-dep_req_id 'X'.
        wa_plantdata-under_tol wa_updo_werk-uneto.   不足交货容差
        wa_plantdatax-under_tol 'X'.
        wa_plantdata-over_tol  wa_updo_werk-ueeto.   过度交货容差
        wa_plantdatax-over_tol  'X'.
        wa_plantdata-plnd_delry  wa_updo_werk-plifz计划交货时间
        wa_plantdatax-plnd_delry  'X'.
        wa_plantdata-pur_group wa_updo_werk-wekgr.   工厂采购组
        wa_plantdatax-pur_group 'X'.
        wa_plantdata-distr_prof  ''.             "工厂分销参数
        wa_plantdatax-distr_prof  'X'.
        wa_plantdata-plant wa_updo_werk-werks.       "工厂
        wa_plantdatax-plant wa_updo_werk-werks.
        APPEND wa_plantdata TO it_plantdata.
        APPEND wa_plantdatax TO it_plantdatax.

        "-- 零售数据传输:评估数据 --
        CLEAR:wa_valuationdata,wa_valuationdatax.
        wa_valuationdata-material wa_plantdata-material.        "物料编号
        wa_valuationdatax-material wa_plantdata-material.
        wa_valuationdata-val_area '005'.
        wa_valuationdata-val_area wa_plantdata-plant.           评估范围
        wa_valuationdatax-val_area wa_plantdata-plant.
        wa_valuationdata-val_class wa_updo_werk-wbkla.          评估类
        wa_valuationdatax-val_class 'X'.
        wa_valuationdata-orig_mat wa_updo_werk-hkmat.           物料来源
        wa_valuationdatax-orig_mat 'X'.
        wa_valuationdata-with_qty_struct wa_updo_werk-ekalr.    qs的成本估算
        wa_valuationdatax-with_qty_struct 'X'.
        APPEND wa_valuationdata TO it_valuationdata.
        APPEND wa_valuationdatax TO it_valuationdatax.
      ENDLOOP.


      "-- 零售数据传输:物料描述 --
      CLEAR wa_materialdescription.
      IF <fs_upd>-zce 'C'.
        wa_materialdescription-material l_vari_matnr."<fs_upd>-matnr && zv_num.  " 物料编号
      ELSE.
        wa_materialdescription-material <fs_upd>-vari_matnr.       物料编号
      ENDIF.

      wa_materialdescription-function '005'.
      wa_materialdescription-langu sy-langu.                     语言代码
      wa_materialdescription-matl_desc <fs_upd>-maktx.           物料描述
      APPEND wa_materialdescription TO it_materialdescription.

      "---零售数据传输:基本数据的扩展 --
      CLEAR:wa_addnlclientdata,wa_addnlclientdatax.
      IF <fs_upd>-zce 'C'.
        wa_addnlclientdata-material l_vari_matnr."<fs_upd>-matnr && zv_num.   " 物料编号
        wa_addnlclientdatax-material l_vari_matnr."<fs_upd>-matnr && zv_num.  " 物料编号
      ELSE.
        wa_addnlclientdata-material <fs_upd>-vari_matnr.   物料编号
        wa_addnlclientdatax-material <fs_upd>-vari_matnr.  物料编号
      ENDIF.
      wa_addnlclientdata-function '005'.
      wa_addnlclientdata-pur_group <fs_upd>-wekgr.            采购组
      wa_addnlclientdatax-pur_group 'X'.
      wa_addnlclientdata-val_class <fs_upd>-wbkla评估类
      wa_addnlclientdatax-val_class 'X'.
      wa_addnlclientdata-li_proc_st '02'.
      wa_addnlclientdatax-li_proc_st 'X'.
      wa_addnlclientdata-li_proc_dc '02'.
      wa_addnlclientdatax-li_proc_dc 'X'.

      wa_addnlclientdata-assortlist 'X'.
      wa_addnlclientdatax-assortlist 'X'.
      wa_addnlclientdata-list_st_fr sy-datum.
      wa_addnlclientdatax-list_st_fr 'X'.
      wa_addnlclientdata-list_st_to '99990101'.
      wa_addnlclientdatax-list_st_to 'X'.
      wa_addnlclientdata-list_dc_fr sy-datum.
      wa_addnlclientdatax-list_dc_fr 'X'.
      wa_addnlclientdata-list_dc_to '99990101'.
      wa_addnlclientdatax-list_dc_to 'X'.
      wa_addnlclientdata-sell_st_fr sy-datum.
      wa_addnlclientdatax-sell_st_fr 'X'.
      wa_addnlclientdata-sell_st_to '99990101'.
      wa_addnlclientdatax-sell_st_to 'X'.

      wa_addnlclientdata-sell_dc_fr sy-datum.
      wa_addnlclientdatax-sell_dc_fr 'X'.
      wa_addnlclientdata-sell_dc_to '99990101'.
      wa_addnlclientdatax-sell_dc_to 'X'.

      APPEND wa_addnlclientdata TO it_addnlclientdata.
      APPEND wa_addnlclientdatax TO it_addnlclientdatax.

      "--- 零售数据传输:度量单位 ---
      CLEARwa_unitsofmeasure,wa_unitsofmeasurex.
      IF <fs_upd>-zce 'C'.
        wa_unitsofmeasure-material l_vari_matnr."<fs_upd>-matnr && zv_num.
        wa_unitsofmeasurex-material l_vari_matnr."<fs_upd>-matnr && zv_num.
      ELSE.
        wa_unitsofmeasure-material <fs_upd>-vari_matnr.
        wa_unitsofmeasurex-material <fs_upd>-vari_matnr.
      ENDIF.
      wa_unitsofmeasure-function '005'.
      wa_unitsofmeasure-alt_unit <fs_upd>-meins.          可选单位
      wa_unitsofmeasurex-alt_unit 'X'.
      wa_unitsofmeasure-ean_cat <fs_upd>-eantp国际商品编码的类别 (EAN)
      wa_unitsofmeasurex-ean_cat 'X'.
      APPEND wa_unitsofmeasure TO it_unitsofmeasure.
      APPEND wa_unitsofmeasurex TO it_unitsofmeasurex.

      "-- 零售数据传输:特性值分配 --
      " --  --
      READ TABLE <fs_upd>-cban_tab INTO wa_cabn WITH KEY class <fs_upd>-matkl
                                               chartyp 
'2' BINARY SEARCH.
      IF sy-subrc 0.
        CLEAR:wa_characteristicvalue,wa_characteristicvaluex.
        IF <fs_upd>-zce 'C'.
          wa_characteristicvalue-material l_vari_matnr."<fs_upd>-matnr && zv_num.   " 物料编号
          wa_characteristicvaluex-material l_vari_matnr."<fs_upd>-matnr && zv_num.
        ELSE.
          wa_characteristicvalue-material <fs_upd>-vari_matnr.   物料编号
          wa_characteristicvaluex-material <fs_upd>-vari_matnr.
        ENDIF.
        wa_characteristicvalue-char_name wa_cabn-atnam_zsize2.               特征名称
        wa_characteristicvaluex-char_name wa_cabn-atnam_zsize2.

        wa_characteristicvalue-char_value <fs_upd>-size2.
        wa_characteristicvaluex-char_value 'X'.
        wa_characteristicvalue-char_val_char <fs_upd>-size2.
        wa_characteristicvaluex-char_val_char 'X'.
        wa_characteristicvalue-char_value_long <fs_upd>-size2.
        wa_characteristicvaluex-char_value_long 'X'.
        APPEND wa_characteristicvalue TO it_characteristicvalue.
        APPEND wa_characteristicvaluex TO it_characteristicvaluex.

        CLEAR:wa_characteristicvalue,wa_characteristicvaluex.
        wa_characteristicvalue-material <fs_upd>-matnr.
        wa_characteristicvaluex-material <fs_upd>-matnr.
        wa_characteristicvalue-char_name wa_cabn-atnam_zsize2.               特征名称
        wa_characteristicvaluex-char_name wa_cabn-atnam_zsize2.
        wa_characteristicvalue-char_value <fs_upd>-size2.
        wa_characteristicvaluex-char_value 'X'.
        APPEND wa_characteristicvalue TO it_characteristicvalue.
        APPEND wa_characteristicvaluex TO it_characteristicvaluex.

      ENDIF.

      "-- 零售数据传输:特性值分配 --
      " -  -
      READ TABLE <fs_upd>-cban_tab INTO wa_cabn WITH KEY class <fs_upd>-matkl
                                               chartyp 
'0' BINARY SEARCH.
      IF sy-subrc 0.
        CLEAR:wa_characteristicvalue,wa_characteristicvaluex.
        IF <fs_upd>-zce 'C'.
          wa_characteristicvalue-material l_vari_matnr."<fs_upd>-matnr && zv_num.   " 物料编号
          wa_characteristicvaluex-material l_vari_matnr."<fs_upd>-matnr && zv_num.
        ELSE.
          wa_characteristicvalue-material <fs_upd>-vari_matnr.   物料编号
          wa_characteristicvaluex-material <fs_upd>-vari_matnr.
        ENDIF.
        wa_characteristicvalue-char_name wa_cabn-atnam_zcolor.                 特征名称
        wa_characteristicvaluex-char_name wa_cabn-atnam_zcolor.

        wa_characteristicvalue-char_value <fs_upd>-color.
        wa_characteristicvaluex-char_value 'X'.
        wa_characteristicvalue-char_val_char <fs_upd>-color.
        wa_characteristicvaluex-char_val_char 'X'.
        wa_characteristicvalue-char_value_long <fs_upd>-color.
        wa_characteristicvaluex-char_value_long 'X'.

        APPEND wa_characteristicvalue TO it_characteristicvalue.
        APPEND wa_characteristicvaluex TO it_characteristicvaluex.

        CLEAR:wa_characteristicvalue,wa_characteristicvaluex.
        wa_characteristicvalue-material <fs_upd>-matnr.
        wa_characteristicvaluex-material <fs_upd>-matnr.
        wa_characteristicvalue-char_name wa_cabn-atnam_zcolor.               特征名称
        wa_characteristicvaluex-char_name wa_cabn-atnam_zcolor.
        wa_characteristicvalue-char_value <fs_upd>-color.
        wa_characteristicvaluex-char_value 'X'.
        APPEND wa_characteristicvalue TO it_characteristicvalue.
        APPEND wa_characteristicvaluex TO it_characteristicvaluex.
      ENDIF.

      "-- 零售数据传输:特性值分配 --
      "-  -
      READ TABLE <fs_upd>-cban_tab INTO wa_cabn WITH KEY class <fs_upd>-matkl
                                               chartyp 
'1' BINARY SEARCH.
      IF sy-subrc 0.
        CLEAR:wa_characteristicvalue,wa_characteristicvaluex.
        IF <fs_upd>-zce 'C'.
          wa_characteristicvalue-material l_vari_matnr."<fs_upd>-matnr && zv_num.   " 物料编号
          wa_characteristicvaluex-material l_vari_matnr."<fs_upd>-matnr && zv_num.
        ELSE.
          wa_characteristicvalue-material <fs_upd>-vari_matnr.   物料编号
          wa_characteristicvaluex-material <fs_upd>-vari_matnr.
        ENDIF.
        wa_characteristicvalue-char_name wa_cabn-atnam_zsize1.  特征名称
        wa_characteristicvaluex-char_name wa_cabn-atnam_zsize1.

        wa_characteristicvalue-char_value <fs_upd>-size1.
        wa_characteristicvaluex-char_value 'X'.
        wa_characteristicvalue-char_val_char <fs_upd>-size1.
        wa_characteristicvaluex-char_val_char 'X'.
        wa_characteristicvalue-char_value_long <fs_upd>-size1.
        wa_characteristicvaluex-char_value_long 'X'.

        APPEND wa_characteristicvalue TO it_characteristicvalue.
        APPEND wa_characteristicvaluex TO it_characteristicvaluex.

        CLEAR:wa_characteristicvalue,wa_characteristicvaluex.
        wa_characteristicvalue-material <fs_upd>-matnr.
        wa_characteristicvaluex-material <fs_upd>-matnr.
        wa_characteristicvalue-char_name wa_cabn-atnam_zsize1.               特征名称
        wa_characteristicvaluex-char_name wa_cabn-atnam_zsize1.
        wa_characteristicvalue-char_value <fs_upd>-size1.
        wa_characteristicvaluex-char_value 'X'.
        APPEND wa_characteristicvalue TO it_characteristicvalue.
        APPEND wa_characteristicvaluex TO it_characteristicvaluex.
      ENDIF.

      SORT it_characteristicvalue[] BY material char_name char_value.
      SORT it_characteristicvaluex[] BY material char_name.
      DELETE ADJACENT DUPLICATES FROM it_characteristicvalue[] COMPARING material char_name char_value.
      DELETE ADJACENT DUPLICATES FROM it_characteristicvaluex[] COMPARING material char_name.

      "-- 流水号 --
      IF <fs_upd>-zce 'C' AND <fs_upd>-isf ''.
        CLEAR wa_mara_1.
        wa_mara_1-znum znum.
        MODIFY it_mara_1 FROM wa_mara_1 TRANSPORTING znum WHERE satnr wa_updo_mat-matnr.
      ENDIF.

      CLEAR wa_updo_fina.
      IF <fs_upd>-vari_matnr '' AND <fs_upd>-zce 'C'.
        <fs_upd>-vari_matnr l_vari_matnr."<fs_upd>-matnr && zv_num.
      ENDIF.
      MOVE-CORRESPONDING <fs_upd> TO wa_updo_fina.
      APPEND wa_updo_fina TO it_updo_fina.

    ENDLOOP.

    "-- 调用bapi --
    PERFORM frm_call_bapi.

  ENDLOOP.

 

bapi的具体赋值

CALL FUNCTION 'BAPI_MATERIAL_MAINTAINDATA_RT'
      EXPORTING
        headdata             wa_headdata
      
IMPORTING
        return               wa_return
      
TABLES
        variantskeys         it_variantskeys
        characteristicvalue  
it_characteristicvalue
        characteristicvaluex 
it_characteristicvaluex
        clientdata           
it_clientdata
        clientdatax          
it_clientdatax
        addnlclientdata      
it_addnlclientdata
        addnlclientdatax     
it_addnlclientdatax
        materialdescription  
it_materialdescription
        plantdata            
it_plantdata
        plantdatax           
it_plantdatax
        valuationdata        
it_valuationdata
        valuationdatax       
it_valuationdatax
        unitsofmeasure       
it_unitsofmeasure
        unitsofmeasurex      
it_unitsofmeasurex
        plantkeys            
it_plantkeys
        distrchainkeys       
it_distrchainkeys
        salesdata            
it_salesdata
        salesdatax           
it_salesdatax
        internationalartnos  
it_internationalartnos.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值