您的位置:首页 > 运维架构

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

2017-11-24 11:44 721 查看
SAP创建物料主数据(包括维护长文本,质量视图中质量类型,分类视图)

 CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

    CLEAR: gw_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.

  DATA: it_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 0 WITH HEADER LINE.

  DATA: l_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.

  DATA: it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,

        lw_qmat TYPE bapi1001004_qmat,

        lt_qmat TYPE STANDARD TABLE OF bapi1001004_qmat,

        lw_tq34 TYPE tq34.

  DATA: lt_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.

    CLEAR: lw_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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ERP