SAP创建物料主数据(维护长文本,质量视图中质量类型,分类视图)

SAP创建物料主数据(包括维护长文本,质量视图中质量类型,分类视图)


 CLEARgw_head,gw_mara,gw_marax,gw_makt,gt_makt,

        gw_mvke,gw_mvkex,gw_marc,gw_marcx,gw_mbew,
        gw_mbewx,gw_mlan,gt_mlan,gw_mltx,gt_mltx.
    "视图选择
    gw_head-material  gw_mat01-matnr.  "物料编码
    gw_head-ind_sector 'C'.      "行业领域
    gw_head-matl_type 'Z001'.    "物料类型
    gw_head-basic_view 'X'.      "基本数据视图
    gw_head-sales_view 'X'.      "销售视图
    gw_head-purchase_view 'X'.   "采购视图
    gw_head-mrp_view 'X'.        "MRP视图
    gw_head-work_sched_view 'X'"工作计划视图
    gw_head-quality_view 'X'.    "质量管理视图
    gw_head-account_view 'X'.    "会计视图
    gw_head-cost_view 'X'.       "成本视图
    gw_head-warehouse_view 'X'.  "仓库管理视图

    "基本数据
    gw_mara-matl_group '1001'.     "物料组
    gw_mara-base_uom gw_mat01-meins."基本计量单位
    gw_mara-old_mat_no gw_mat01-bismt.
    gw_mara-extmatlgrp gw_mat01-extwg.
    gw_mara-dsn_office gw_mat01-labor.
    gw_mara-unit_of_wt 'KG'.        "重量单位
    gw_mara-trans_grp '0001'.       "运输组
    gw_mara-hazmatprof '001'.    "DG标识参数文件
    gw_mara-mat_grp_sm '001'.    
    gw_mara-batch_mgmt 'X'"批次管理需求的标识

    gw_marax-matl_group 'X'.
    gw_marax-base_uom 'X'.
    gw_marax-old_mat_no 'X'.
    gw_marax-extmatlgrp 'X'.
    gw_marax-dsn_office 'X'.
    gw_marax-unit_of_wt 'X'.
    gw_marax-trans_grp 'X'.
    gw_marax-hazmatprof 'X'.
    gw_marax-mat_grp_sm 'X'.
    gw_marax-batch_mgmt 'X'.

    "物料描述
    gw_makt-langu '1'."中文
    gw_makt-matl_desc gw_mat01-maktx.
    APPEND gw_makt TO gt_makt.
    IF gw_mat01-maktx_e IS NOT INITIAL.
      gw_makt-langu 'E'."英文
      gw_makt-matl_desc gw_mat01-maktx_e.
      APPEND gw_makt TO gt_makt.
    ENDIF.

    "销售数据
    gw_mvke-sales_org gw_mat01-vkorg"销售机构
    gw_mvke-distr_chan =  gw_mat01-vtweg"分销渠道
    gw_mvke-cash_disc =  'X'.   "现金折扣标志
    gw_mvke-acct_assgt =  'Z1'"该物料的科目设置组
    gw_mvke-item_cat =  'NORM'"项目类别组
    gw_mvke-delyg_plnt gw_mat01-werks"交货工厂

    gw_mvkex-sales_org =  gw_mat01-vkorg.
    gw_mvkex-distr_chan =  gw_mat01-vtweg.
    gw_mvkex-cash_disc =  'X'.
    gw_mvkex-acct_assgt =  'X'.
    gw_mvkex-item_cat =  'X'.
    gw_mvkex-delyg_plnt 'X'.

    "税务数据
    gw_mlan-depcountry 'CN'.
    gw_mlan-tax_type_1 'MWST'"税收类别
    gw_mlan-taxclass_1 '1'.  "税分类
    APPEND gw_mlan TO gt_mlan.
    CLEARgw_mlan.

    "工厂数据
    gw_marc-plant      gw_mat01-werks"工厂
    gw_marc-mrp_type  'PD'.    "MRP 类型
    gw_marc-mrp_ctrler  '001'"MRP控制者
    gw_marc-lotsizekey  'EX'.  "批量大小
    gw_marc-proc_type   'E'.   "采购类型
    gw_marc-sm_key      '000'"计划边际码
    gw_marc-availcheck  '02'.  "可用性检查
    gw_marc-plan_strgp '40'.   "策略
    gw_marc-period_ind 'M'.    "期间标识
    gw_marc-inhseprodt '15'.    "自制生产时间
    gw_marc-gr_pr_time '3'.    "收货处理时间
    gw_marc-doc_reqd 'X'.    "凭证需求标识
    gw_marc-variance_key '000001'.   "差异码
    gw_marc-qm_authgrp '000020'.    "QM 物料授权
    gw_marc-profit_ctr gw_mat01-prctr.     "利润中心
    gw_marc-loadinggrp '0001'.    "装载组
    gw_marc-lot_size '1'.    "生产成本估算批量规模
    gw_marc-prodprof '000001'.    "生产计划参数文件

    gw_marcx-plant      gw_mat01-werks.
    gw_marcx-mrp_type  'X'.
    gw_marcx-mrp_ctrler  'X'.
    gw_marcx-lotsizekey  'X'.
    gw_marcx-proc_type   'X'.
    gw_marcx-sm_key      'X'.
    gw_marcx-availcheck  'X'.
    gw_marcx-plan_strgp 'X'.
    gw_marcx-period_ind 'X'.
    gw_marcx-inhseprodt 'X'.
    gw_marcx-gr_pr_time 'X'.
    gw_marcx-doc_reqd 'X'.
    gw_marcx-variance_key 'X'.
    gw_marcx-qm_authgrp 'X'.
    gw_marcx-profit_ctr 'X'.
    gw_marcx-loadinggrp 'X'.
    gw_marcx-lot_size 'X'.
    gw_marcx-prodprof 'X'.

    "财务数据
    gw_mbew-val_area   gw_mat01-werks"评估范围
    gw_mbew-val_class  gw_mat01-bklas"评估类
    gw_mbew-price_unit 1.      "价格单位
    gw_mbew-val_cat 'P'.       "评估类别
    gw_mbew-price_ctrl 'V'.   "价格控制指示符
    gw_mbew-qty_struct 'X'.   "物料根据数量结构进行成本核算
    gw_mbew-orig_mat 'X'.     "物料相关的源
    gw_mbew-ml_settle '3'.    "物料价格确认

    gw_mbewx-val_area   gw_mat01-werks.
    gw_mbewx-val_class  'X'.
    gw_mbewx-price_unit 'X'.
    gw_mbewx-val_cat 'X'.
    gw_mbewx-price_ctrl 'X'.
    gw_mbewx-qty_struct 'X'.
    gw_mbewx-orig_mat 'X'.
    gw_mbewx-ml_settle 'X'.

    "维护基本数据文本(中文)
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'GRUN'.
    gw_mltx-langu '1'"中文
    gw_mltx-format_col 1.
    gw_mltx-text_line gw_mat01-text01+0(132).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'GRUN'.
    gw_mltx-langu '1'"中文
    gw_mltx-format_col 2.
    gw_mltx-text_line gw_mat01-text01+132(123).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.

    "维护基本数据文本(英文)
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'GRUN'.
    gw_mltx-langu 'E'.
    gw_mltx-format_col 1.
    gw_mltx-text_line gw_mat01-text02+0(132).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'GRUN'.
    gw_mltx-langu 'E'.
    gw_mltx-format_col 2.
    gw_mltx-text_line gw_mat01-text02+132(123).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.

    "维护检验文本(中文)
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'PRUE'.
    gw_mltx-langu '1'"中文
    gw_mltx-format_col 1.
    gw_mltx-text_line gw_mat01-text03+0(132).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'PRUE'.
    gw_mltx-langu '1'"中文
    gw_mltx-format_col 2.
    gw_mltx-text_line gw_mat01-text03+132(123).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.

    "维护检验文本(英文)
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'PRUE'.
    gw_mltx-langu 'E'.
    gw_mltx-format_col 1.
    gw_mltx-text_line gw_mat01-text04+0(132).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.
    gw_mltx-applobject 'MATERIAL'.
    gw_mltx-text_name gw_mat01-matnr.
    gw_mltx-text_id 'PRUE'.
    gw_mltx-langu 'E'.
    gw_mltx-format_col 2.
    gw_mltx-text_line gw_mat01-text04+132(123).
    APPEND gw_mltx TO gt_mltx.
    CLEARgw_mltx.

    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata             gw_head
        clientdata           gw_mara
        clientdatax          gw_marax
        plantdata            gw_marc
        plantdatax           gw_marcx
        valuationdata        gw_mbew
        valuationdatax       gw_mbewx
        salesdata            gw_mvke
        salesdatax           gw_mvkex
      IMPORTING
        return               gw_return
      TABLES
        materialdescription  gt_makt
        materiallongtext     gt_mltx
        taxclassifications   gt_mlan.

    IF gw_return-type 'E' OR gw_return-type 'A'.
      ROLLBACK WORK.
      CONCATENATE '物料'gw_mat01-matnr '创建失败:' gw_return-message INTO g_msg.
      "检查日志处理
      gw_alv-icon icon_red_light.
      gw_alv-matnr gw_mat01-matnr.
      gw_alv-log g_msg.
      APPEND gw_alv TO gt_alv.
      CLEAR gw_alv.
      CONTINUE.
    ELSE.
      COMMIT WORK AND WAIT.
      "物料创建成功,消息状态预处理为W
      gw_alv-icon icon_yellow_light.

      "创建批次分类视图
      PERFORM frm_classview_023 USING gw_mat01-matnr.

      "维护质量类型
      PERFORM frm_save_insptype USING 'Z001' gw_mat01-matnr gw_mat01-werks.

      IF g_msg IS INITIAL.
        gw_alv-icon icon_green_light.
        g_msg '物料主数据维护成功!'.
      ENDIF.
      PERFORM frm_append_alv USING gw_mat01-matnr g_msg gw_alv-icon.

    ENDIF.


维护分类视图

FORM frm_classview_023  USING    p_matnr.
  DATAit_char LIKE TABLE OF bapi1003_alloc_values_char WITH HEADER LINE,
        it_num LIKE TABLE OF bapi1003_alloc_values_num WITH HEADER LINE,
        it_return LIKE bapi_matreturn2 OCCURS WITH HEADER LINE.
  DATAl_object LIKE bapi1003_key-object.

  l_object p_matnr.
  CALL FUNCTION 'BAPI_OBJCL_CREATE'
    EXPORTING
      objectkeynew    l_object
      objecttablenew  'MARA'
      classnumnew     'ZCLASS_BATCH'
      classtypenew    '023'
      status          '1'
      standardclass   'X'
      keydate         sy-datum
    TABLES
      allocvaluesnum  it_num
      allocvalueschar it_char
      return          it_return.

  READ TABLE it_return WITH KEY type 'E'.
  IF sy-subrc 0.
    ROLLBACK WORK.
    CONCATENATE g_msg '/' '分类视图创建失败,请手动创建:'
      it_return-message INTO g_msg.
  ELSE.
    COMMIT WORK.

  ENDIF.

ENDFORM.         


维护质量检验类型

FORM frm_save_insptype  USING  p_mtart TYPE mtart
                               p_matnr TYPE matnr
                               p_werks TYPE werks_d.

  DATAit_return LIKE bapiret2 OCCURS WITH HEADER LINE,
        lw_qmat TYPE bapi1001004_qmat,
        lt_qmat TYPE STANDARD TABLE OF bapi1001004_qmat,
        lw_tq34 TYPE tq34.
  DATAlt_zmmt008 TYPE STANDARD TABLE OF zmmt008,
        lw_zmmt008  TYPE zmmt008 .

  SELECT FROM zmmt008
    INTO CORRESPONDING FIELDS OF TABLE lt_zmmt008
    WHERE mtart p_mtart.
  LOOP AT lt_zmmt008 INTO lw_zmmt008.
    CLEARlw_tq34,lw_qmat.
    SELECT SINGLE FROM tq34 INTO lw_tq34 WHERE art lw_zmmt008-art.
    lw_qmat-insptype lw_zmmt008-art.    "检验类型号吗
    lw_qmat-material p_matnr.  "物料号码
    lw_qmat-plant =  p_werks.    "工厂号码
    lw_qmat-preferred_insptype 'X'.        "首选的检验类型
    lw_qmat-ind_insptype_mat_active 'X'.   "活动的
    lw_qmat-ind_post_to_insp_stock lw_tq34-insmk."过账到检验库存
    lw_qmat-qual_score_procedure lw_tq34-qkzverf."质量记分过程
    lw_qmat-contr_insp_lot_create lw_tq34-chg.   "控制检验批
    lw_qmat-ind_skips_allowed lw_tq34-dyn.      "允许略过
    APPEND lw_qmat TO lt_qmat.
  ENDLOOP.

  CHECK lt_qmat IS NOT INITIAL.

  CALL FUNCTION 'BAPI_MATINSPCTRL_SAVEREPLICA'
    TABLES
      return         it_return
      inspectionctrl lt_qmat.

  READ TABLE it_return WITH KEY type 'E'.
  IF sy-subrc <> 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait 'X'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    CONCATENATE g_msg '/' '质量检验类型维护失败,请手动维护!' INTO g_msg.
  ENDIF.

ENDFORM.                    " FRM_SAVE_INSPTYPE

你可能感兴趣的:(SAP,主数据)