BAPI导入物料主数据

合集下载

创建修改物料主数据的BAPI

创建修改物料主数据的BAPI

创建修改物料主数据的BAPI DATA: pr_unit TYPE meins,"基本计量单位bapi_exe_result(1) TYPE c."bapi执⾏结果标识*原材料DATA: BEGIN OF wa_y_material,marc_plant TYPE werks_d, "⼯⼚mard_stge_loc TYPE lgort_d,"库存地点mvke_sales_org TYPE vkorg,"销售组织mvke_distr_chan TYPE vtweg,"分销渠道head_material TYPE matnr,"物料号head_ind_sector TYPE mbrsh,"⾏业领域head_matl_type TYPE mtart,"物料类型t_makt_matl_desc TYPE maktx,"物料描述mara_base_uom TYPE meins,"基本计量单位mara_matl_group TYPE matkl,"物料组mara_extmatlgrp TYPE extwg,"外部物料组mara_item_cat TYPE mtpos_mara,"普通项⽬组类别t_marm_gross_wt TYPE brgew,"⽑重t_marm_unit_of_wt TYPE gewei,"重量单位mara_net_weight TYPE ntgew,"净重t_marm_volume TYPE volum,"标准箱t_marm_volumeunit TYPE voleh,"体积单位mvke_sales_unit TYPE vrkme,"销售单位t_mlan_taxclass1 TYPE taxkm, "税分类1t_mlan_taxclass2 TYPE taxkm, "税分类2mvke_matl_stats TYPE stgma,"物料统计组mvke_acct_assgt TYPE ktgrm,"科⽬设置组mvke_item_cat TYPE mtpos,"来⾃物料主⽂件的项⽬主类别marc_availcheck TYPE mtvfp,"可⽤性检查mara_trans_grp TYPE tragr,"运输组marc_loadinggrp TYPE ladgr,"装载组marc_pur_group TYPE ekgrp,"采购组marc_batch_mgmt TYPE xchpf,"批次管理标⽰marc_auto_p_ord TYPE kautb,"⾃动采购订单marc_ind_post_to_insp_stock TYPE insmk_mat,"过账到检验库存marc_quotausage TYPE usequ,"配额安排marc_sourcelist TYPE kordb,"源清单marc_mrp_group TYPE disgr,"MRP组marc_mrp_type TYPE dismm,""MRP类型marc_mrp_ctrler TYPE dispo,"MRP控制者marc_lotsizekey TYPE disls,"批量marc_minlotsize TYPE bstmi,"最⼩批量marc_maxlotsize TYPE bstma,"最⼤批量marc_round_val TYPE bstrf,"舍⼊值marc_proc_type TYPE beskz,"采购类型marc_backflush TYPE rgekm,"反冲marc_plnd_delry TYPE plifz,"计划交货时间marc_gr_pr_time TYPE webaz,"收货处理时间marc_safety_stk TYPE eisbe,"安全库存marc_sm_key TYPE fhori," 计划边际码marc_plan_strgp TYPE strgp,"策略组marc_alt_bom_id TYPE altsl,"选择⽅法stge_loc TYPE lgort_d,"库存地点,占位,不⽤取出赋值,同上边库存地点mbew_val_class TYPE bklas,"评估类mbew_price_ctrl TYPE vprsv,"价格控制mbew_price_unit TYPE peinh,"价格单位mbew_moving_pr TYPE verpr_bapi,"移动平均价mbew_std_price TYPE stprs_bapi,"标准价格mbew_qty_struct TYPE ck_ekalrel,"⽤QS的成本估算mbew_orig_mat TYPE hkmat,"物料来源END OF wa_y_material.DATA: it_y_material LIKE TABLE OF wa_y_material.DATA: BEGIN OF wa_message,material TYPE matnr,description TYPE maktx,message(97) TYPE c,END OF wa_message.DATA: it_message LIKE TABLE OF wa_message.*输⼊参数DATA: headdata TYPE bapimathead, "表头数据clientdata TYPE bapi_mara, "基本数据clientdatax TYPE bapi_marax,plantdata TYPE bapi_marc, "⼯⼚级别数据plantdatax TYPE bapi_marcx,forecastparameters TYPE bapi_mpop, "预测forecastparametersx TYPE bapi_mpopx,planningdata TYPE bapi_mpgd, "计划planningdatax TYPE bapi_mpgdx,storagelocationdata TYPE bapi_mard, "存储位置storagelocationdatax TYPE bapi_mardx,valuationdata TYPE bapi_mbew, "评估数据valuationdatax TYPE bapi_mbewx,warehousenumberdata TYPE bapi_mlgn, "仓库数据warehousenumberdatax TYPE bapi_mlgnx,salesdata TYPE bapi_mvke, "销售数据salesdatax TYPE bapi_mvkex,storagetypedata TYPE bapi_mlgt, "存储类型数据storagetypedatax TYPE bapi_mlgtx.*Table参数DATA: materialdescription TYPE TABLE OF bapi_makt WITH HEADER LINE,"描述unitsofmeasure TYPE TABLE OF bapi_marm WITH HEADER LINE,"单位unitsofmeasurex TYPE TABLE OF bapi_marmx WITH HEADER LINE,taxclassifications TYPE TABLE OF bapi_mlan WITH HEADER LINE."税分类*ReturnDATA return TYPE bapiret2.*以上都是准备的参数,it_y_material 存放的就是物料信息内表,具体数据怎么来的省略(⼀般就是上传⽂本)*往往调⽤⼀个bapi的时候不知道哪⾥赋值,怎么赋值,赋什么值,下边是参数赋值、调⽤⽰例FORM create_y_matnr_data.DATA: total TYPE i,num type i.num = 0.DESCRIBE TABLE it_y_material LINES total.CLEAR it_message.LOOP AT it_y_material INTO wa_y_material.num = num + 1.CLEAR headdata.headdata-material = wa_y_material-head_material.headdata-matl_type = wa_y_material-head_matl_type.headdata-ind_sector = wa_y_material-head_ind_sector.headdata-basic_view = 'X'.headdata-sales_view = 'X'.headdata-purchase_view = 'X'.headdata-mrp_view = 'X'.* headdata-forecast_view = 'X'.headdata-warehouse_view = 'X'.headdata-account_view = 'X'.headdata-cost_view = 'X'."基本数据CLEAR clientdata.clientdata-matl_group = wa_y_material-mara_matl_group.PERFORM get_pr_unit USING wa_y_material-mara_base_uom CHANGING pr_unit.clientdata-base_uom = pr_unit.clientdata-extmatlgrp = wa_y_material-mara_extmatlgrp.clientdata-item_cat = wa_y_material-mara_item_cat.clientdata-net_weight = wa_y_material-mara_net_weight.clientdata-trans_grp = wa_y_material-mara_trans_grp.CLEAR clientdatax.clientdatax-matl_group = 'X'.clientdatax-base_uom = 'X'.clientdatax-extmatlgrp = 'X'.clientdatax-item_cat = 'X'.clientdatax-net_weight = 'X'.clientdatax-trans_grp = 'X'."⼯⼚级别数据CLEAR plantdata.plantdata-plant = wa_y_material-marc_plant.plantdata-availcheck = wa_y_material-marc_availcheck.plantdata-loadinggrp = wa_y_material-marc_loadinggrp.plantdata-pur_group = wa_y_material-marc_pur_group.plantdata-batch_mgmt = wa_y_material-marc_batch_mgmt.plantdata-auto_p_ord = wa_y_material-marc_auto_p_ord.plantdata-ind_post_to_insp_stock = wa_y_material-marc_ind_post_to_insp_stock. plantdata-quotausage = wa_y_material-marc_quotausage.plantdata-sourcelist = wa_y_material-marc_sourcelist.plantdata-mrp_group = wa_y_material-marc_mrp_group.plantdata-mrp_type = wa_y_material-marc_mrp_type.plantdata-mrp_ctrler = wa_y_material-marc_mrp_ctrler.plantdata-lotsizekey = wa_y_material-marc_lotsizekey.plantdata-minlotsize = wa_y_material-marc_minlotsize.plantdata-maxlotsize = wa_y_material-marc_maxlotsize.plantdata-round_val = wa_y_material-marc_round_val.plantdata-proc_type = wa_y_material-marc_proc_type.plantdata-backflush = wa_y_material-marc_backflush.plantdata-plnd_delry = wa_y_material-marc_plnd_delry.plantdata-gr_pr_time = wa_y_material-marc_gr_pr_time.plantdata-safety_stk = wa_y_material-marc_safety_stk.plantdata-sm_key = wa_y_material-marc_sm_key.plantdata-plan_strgp = wa_y_material-marc_plan_strgp.plantdata-alt_bom_id = wa_y_material-marc_alt_bom_id.CLEAR plantdatax.plantdatax-plant = wa_y_material-marc_plant.plantdatax-availcheck = 'X'.plantdatax-loadinggrp = 'X'.plantdatax-pur_group = 'X'.plantdatax-batch_mgmt = 'X'.plantdatax-auto_p_ord = 'X'.plantdatax-ind_post_to_insp_stock = 'X'.plantdatax-quotausage = 'X'.plantdatax-sourcelist = 'X'.plantdatax-mrp_group = 'X'.plantdatax-mrp_type = 'X'.plantdatax-mrp_ctrler = 'X'.plantdatax-lotsizekey = 'X'.plantdatax-minlotsize = 'X'.plantdatax-maxlotsize = 'X'.plantdatax-round_val = 'X'.plantdatax-proc_type = 'X'.plantdatax-backflush = 'X'.plantdatax-plnd_delry = 'X'.plantdatax-gr_pr_time = 'X'.plantdatax-safety_stk = 'X'.plantdatax-sm_key = 'X'.plantdatax-plan_strgp = 'X'.plantdatax-alt_bom_id = 'X'."仓库存储数据CLEAR storagelocationdata.storagelocationdata-plant = wa_y_material-marc_plant.storagelocationdata-stge_loc = wa_y_material-mard_stge_loc.CLEAR storagelocationdatax.storagelocationdatax-plant = wa_y_material-marc_plant.storagelocationdatax-stge_loc = wa_y_material-mard_stge_loc."销售数据CLEAR salesdata.salesdata-sales_org = wa_y_material-mvke_sales_org.salesdata-distr_chan = wa_y_material-mvke_distr_chan.salesdata-sales_unit = wa_y_material-mvke_sales_unit.salesdata-matl_stats = wa_y_material-mvke_matl_stats.salesdata-acct_assgt = wa_y_material-mvke_acct_assgt.salesdata-item_cat = wa_y_material-mvke_item_cat.CLEAR salesdatax.salesdatax-sales_org = wa_y_material-mvke_sales_org.salesdatax-distr_chan = wa_y_material-mvke_distr_chan.salesdatax-sales_unit = 'X'.salesdatax-matl_stats = 'X'.salesdatax-acct_assgt = 'X'.salesdatax-item_cat = 'X'."会计、成本CLEAR valuationdata.valuationdata-val_area = wa_y_material-marc_plant.valuationdata-val_class = wa_y_material-mbew_val_class.valuationdata-price_ctrl = wa_y_material-mbew_price_ctrl.valuationdata-price_unit = wa_y_material-mbew_price_unit.valuationdata-moving_pr = wa_y_material-mbew_moving_pr.valuationdata-std_price = wa_y_material-mbew_std_price.valuationdata-qty_struct = wa_y_material-mbew_qty_struct.valuationdata-orig_mat = wa_y_material-mbew_orig_mat.CLEAR valuationdatax.valuationdatax-val_area = wa_y_material-marc_plant.valuationdatax-val_class = 'X'.valuationdatax-price_ctrl = 'X'.valuationdatax-price_unit = 'X'.valuationdatax-moving_pr = 'X'.valuationdatax-std_price = 'X'.valuationdatax-qty_struct = 'X'.valuationdatax-orig_mat = 'X'."物料描述CLEAR materialdescription[].materialdescription-langu_iso = 'ZH'.materialdescription-matl_desc = wa_y_material-t_makt_matl_desc. APPEND materialdescription."单位CLEAR unitsofmeasure[]. unitsofmeasure-alt_unit = pr_unit.unitsofmeasure-gross_wt = wa_y_material-t_marm_gross_wt.unitsofmeasure-unit_of_wt = wa_y_material-t_marm_unit_of_wt. unitsofmeasure-volume = wa_y_material-t_marm_volume.unitsofmeasure-volumeunit = wa_y_material-t_marm_volumeunit. APPEND unitsofmeasure.CLEAR unitsofmeasurex[].unitsofmeasurex-alt_unit = pr_unit.unitsofmeasurex-gross_wt = 'X'.unitsofmeasurex-unit_of_wt = 'X'.unitsofmeasurex-volume = 'X'.unitsofmeasurex-volumeunit = 'X'.APPEND unitsofmeasurex."税分类CLEAR taxclassifications[].taxclassifications-depcountry = 'CN'.taxclassifications-tax_type_1 = 'MWST'.taxclassifications-taxclass_1 = wa_y_material-t_mlan_taxclass1. taxclassifications-taxclass_2 = wa_y_material-t_mlan_taxclass2. APPEND taxclassifications.PERFORM savedata USING num total.CLEAR wa_message.wa_message-material = wa_y_material-head_material.wa_message-description = wa_y_material-t_makt_matl_desc. wa_message-message = return-message.APPEND wa_message TO it_message.ENDLOOP.ENDFORM. "fill_matnr_data*保存数据,调⽤BAPI_MATERIAL_SAVEDATAFORM savedata USING num total.CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'EXPORTINGheaddata = headdataclientdata = clientdataclientdatax = clientdataxplantdata = plantdataplantdatax = plantdatax* forecastparameters = forecastparameters* forecastparametersx = forecastparametersx* planningdata = planningdata* planningdatax = planningdataxstoragelocationdata = storagelocationdatastoragelocationdatax = storagelocationdataxvaluationdata = valuationdatavaluationdatax = valuationdatax* warehousenumberdata = warehousenumberdata* warehousenumberdatax = warehousenumberdataxsalesdata = salesdatasalesdatax = salesdatax* storagetypedata = storagetypedata* storagetypedatax = storagetypedatax* flag_online = ' '* flag_cad_call = ' '* no_dequeue = ' 'IMPORTINGreturn = returnTABLESmaterialdescription = materialdescription[]unitsofmeasure = unitsofmeasure[]unitsofmeasurex = unitsofmeasurex* INTERNATIONALARTNOS =* MATERIALLONGTEXT =taxclassifications = taxclassifications[]* RETURNMESSAGES =* PRTDATA =* PRTDATAX =* EXTENSIONIN =* EXTENSIONINX =.IF sy-subrc = 0.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'* IMPORTING* RETURN =.bapi_exe_result = 'X'.ELSE.bapi_exe_result = ''.ENDIF.WAIT UP TO 1 SECONDS.DATA: per TYPE f,txt TYPE string.per = ( num / total ) * 100.DATA: str1 TYPE string,str2 TYPE string.str1 = num.str2 = total.CONCATENATE '正在批量创建物料...已完成:(' str1 '/' str2 ')' INTO txt.CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'EXPORTINGpercentage = pertext = txt.ENDFORM. "SAVEDATA*获取基本计量单位内码FORM get_pr_unit USING unit1 CHANGING unit2.SELECT SINGLE msehi INTO unit2 FROM t006a WHERE spras = 1 AND mseh3 = unit1. IF sy-subrc <> 0.unit2 = unit1.ENDIF.ENDFORM.。

bapi物料主数据完整[讲解]

bapi物料主数据完整[讲解]

BAPI 物料主数据完整REPORT ZUMM0040 NO STANDARD PAGE HEADING LINE-SIZE 255LINE-COUNT 50(4) MESSAGE-ID zaccess.*********************************************************** ************** Program : ZUMM0040* Title : Extend Material Master from a source plant to* Target plants using BAPI*********************************************************** ************** Description : Extend Material Master from a source plant to all* Target plants specified for all the materials* specified on selection screen.* This program is specific to Access Technologies and* will have to be modified suitably for use in other* areas.* Information specific to the Access Plants is* maintained in a custom table and only those plants* maintained in this table can be specified as target* plants.* User can check for Super Bom & GC Part Materials* to extend from source plant to target plants and* separate rules are set up for plant 6140 and* Plants other than 6010 in MRP2, MRP3 & Costing 1* views.*********************************************************** ************** Input :* Select-options : 1. Material Number* 2. Target Plant** Parameters : 1. Source Plant* 2. Class II Parts* 3. Super Bom & GC Material* 4. Mode for call transaction** Others (Specify):* Output :* Report : Display Error records and Success records** Others (Specify): None.*----------------------------------------------------------------------** TYPES DECLARATION **----------------------------------------------------------------------*TYPES: BEGIN OF t_marc,werks TYPE werks_d, " Plantmatnr TYPE matnr, " Material Numberbeskz TYPE beskz, " Procurement Typesobsl TYPE sobsl, " Special procurement typefhori TYPE fhori, " Scheduling Margin Key for FloatsEND OF t_marc.TYPES: BEGIN OF t_target_plants,werks TYPE werks_d, " Plantpur_group TYPE ekgrp, " Purchasing Groupprod_time TYPE dzeit, " In-house production timedeliv_time TYPE plifz, " Planned delivery time indaysgr_proc_time TYPE webaz," Goods receipt processing time in dayssched_margin TYPE fhori, " Scheduling Margin Key forFloatsrepln_time TYPE wzeit, " Total replenishment leadtimeEND OF t_target_plants.TYPES: BEGIN OF t_result,material(18), " Material Numberplant(4), " Plantflag(7), " Success/Failure flag errormessage TYPE bapi_msg, " Message in bapireturn END OF t_result.TYPES: BEGIN OF t_mbew,matnr TYPE matnr, " Material Numberbwkey TYPE bwkey, " Valuation areabwtar TYPE bwtar_d, " Valuation TypeEND OF t_mbew.TYPES: BEGIN OF t_mlgn,matnr TYPE matnr, " Material Numberlgnum TYPE lgnum, " Warehouse Number / Warehouse ComplexEND OF t_mlgn.TYPES: BEGIN OF t_myms,mykey TYPE mykey, " LIFO valuation levelmatnr TYPE matnr, " Material NumberEND OF t_myms.TYPES: BEGIN OF t_mlgt,matnr TYPE matnr, " Material Numberlgnum TYPE lgnum, " Warehouse Number / WarehouseComplexlgtyp TYPE lgtyp, " Storage TypeEND OF t_mlgt.* To hold list of materials that need to be extended (Super Bom& GC)TYPES: BEGIN OF t_superbom,matnr TYPE matnr, " Material Numberkzkfg TYPE kzkfg, " ConfigurableEND OF t_superbom.*----------------------------------------------------------------------** INTERNAL TABLES DECLARATION **----------------------------------------------------------------------*DATA: g_it_marc TYPE TABLE OF t_marc,g_it_marc1 TYPE TABLE OF t_marc,g_it_source_mat TYPE TABLE OF t_marc,g_it_plants TYPE TABLE OF t_target_plants,g_it_target_plants TYPE TABLE OF t_target_plants,g_it_bapi_makt_ga TYPE TABLE OF bapi_makt_ga,g_it_bapi_marm_ga TYPE TABLE OF bapi_marm_ga, g_it_bapi_mean_ga TYPE TABLE OF bapi_mean_ga, g_it_bapi_mltx_ga TYPE TABLE OF bapi_mltx_ga, g_it_bapi_mlan_ga TYPE TABLE OF bapi_mlan_ga, g_it_bapireturn TYPE TABLE OF bapireturn, g_it_bapi_makt TYPE TABLE OF bapi_makt, g_it_bapi_marm TYPE TABLE OF bapi_marm, g_it_bapi_mean TYPE TABLE OF bapi_mean, g_it_bapi_mltx TYPE TABLE OF bapi_mltx, g_it_bapi_mlan TYPE TABLE OF bapi_mlan,g_it_return TYPE bapirettab,g_it_matextended TYPE TABLE OF t_result,g_it_matresult TYPE TABLE OF t_result,g_it_plantresult TYPE TABLE OF t_result,g_it_mbew TYPE TABLE OF t_mbew,g_it_mlgn TYPE TABLE OF t_mlgn,g_it_myms TYPE TABLE OF t_myms,g_it_mlgt TYPE TABLE OF t_mlgt,g_it_superbom TYPE TABLE OF t_superbom.*----------------------------------------------------------------------** WORK AREAS DECLARATION **----------------------------------------------------------------------*DATA: g_wa_marc TYPE t_marc,g_wa_marc1 TYPE t_marc,g_wa_source_mat TYPE t_marc,g_wa_plants TYPE t_target_plants,g_wa_comp_code TYPE t001k-bukrs,g_wa_salesorg TYPE t001w-vkorg,g_wa_distr_chan TYPE t001w-vtweg,g_wa_mbew TYPE t_mbew,g_wa_mlgn TYPE t_mlgn,g_wa_myms TYPE t_myms,g_wa_mlgt TYPE t_mlgt,g_wa_bapi_mara_ga TYPE bapi_mara_ga,g_wa_bapi_marc_ga TYPE bapi_marc_ga,g_wa_bapi_mpop_ga TYPE bapi_mpop_ga,g_wa_bapi_mpgd_ga TYPE bapi_mpgd_ga, g_wa_bapi_mbew_ga TYPE bapi_mbew_ga, g_wa_bapi_mlgn_ga TYPE bapi_mlgn_ga, g_wa_bapi_mvke_ga TYPE bapi_mvke_ga, g_wa_bapi_mlgt_ga TYPE bapi_mlgt_ga, g_wa_bapi_mfhm_ga TYPE bapi_mfhm_ga, g_wa_bapi_myms_ga TYPE bapi_myms_ga, g_wa_bapi_makt_ga TYPE bapi_makt_ga, g_wa_bapi_marm_ga TYPE bapi_marm_ga, g_wa_bapi_mean_ga TYPE bapi_mean_ga, g_wa_bapi_mltx_ga TYPE bapi_mltx_ga, g_wa_bapi_mlan_ga TYPE bapi_mlan_ga, g_wa_bapireturn TYPE bapireturn, g_wa_bapimathead TYPE bapimathead, g_wa_bapi_mara TYPE bapi_mara,g_wa_bapi_marc TYPE bapi_marc,g_wa_bapi_mpop TYPE bapi_mpop,g_wa_bapi_mpgd TYPE bapi_mpgd,g_wa_bapi_mbew TYPE bapi_mbew,g_wa_bapi_mlgn TYPE bapi_mlgn,g_wa_bapi_mvke TYPE bapi_mvke,g_wa_bapi_mlgt TYPE bapi_mlgt,g_wa_bapi_marax TYPE bapi_marax, g_wa_bapi_marcx TYPE bapi_marcx, g_wa_bapi_mpopx TYPE bapi_mpopx, g_wa_bapi_mpgdx TYPE bapi_mpgdx, g_wa_bapi_mbewx TYPE bapi_mbewx, g_wa_bapi_mlgnx TYPE bapi_mlgnx, g_wa_bapi_mvkex TYPE bapi_mvkex, g_wa_bapi_mlgtx TYPE bapi_mlgtx, g_wa_bapi_makt TYPE bapi_makt,g_wa_bapi_marm TYPE bapi_marm,g_wa_bapi_mean TYPE bapi_mean,g_wa_bapi_mltx TYPE bapi_mltx,g_wa_bapi_mlan TYPE bapi_mlan,g_wa_bapireturn1 TYPE bapiret2,g_wa_return TYPE bapiret2,g_wa_matextended TYPE t_result,g_wa_matresult TYPE t_result,g_wa_plantresult TYPE t_result,g_wa_superbom TYPE t_superbom.*----------------------------------------------------------------------** VARIABLES DECLARATION **----------------------------------------------------------------------*DATA: g_v_proc_type TYPE beskz, " Procurement Typeg_v_spl_proc_code TYPE sobsl, " Special ProcurementCodeg_v_prod_time(3) TYPE c, " In-house Prod Timeg_v_deliv_time(3) TYPE c, " Planned Delivery Timeg_v_repln_time(3) TYPE c, " Total replenishmentlead timeg_v_gr_proc_time(3) TYPE c. " GR Processing Time*----------------------------------------------------------------------** CONSTANTS **----------------------------------------------------------------------*CONSTANTS: c_x VALUE 'X',c_k VALUE 'K',c_v VALUE 'V',c_e VALUE 'E',c_d VALUE 'D',c_p VALUE 'P',c_a VALUE 'A',c_f VALUE 'F',c_l VALUE 'L',c_s VALUE 'S',c_q VALUE 'Q',c_b VALUE 'B',c_g VALUE 'G',c_gc(2) VALUE 'GC',c_roh(3) VALUE 'ROH',c_dien(4) VALUE 'DIEN',c_fert(4) VALUE 'FERT',c_halb(4) VALUE 'HALB',c_verp(4) VALUE 'VERP',c_nlag(4) VALUE 'NLAG',c_unbw(4) VALUE 'UNBW',c_6090(4) VALUE '6090',c_6140(4) VALUE '6140',c_6010(4) VALUE '6010',c_40(2) VALUE 40,c_50(2) VALUE 50,c_80(2) VALUE 80,c_25(2) VALUE 25,c_y5(2) VALUE 'Y5',c_fm(7) VALUE 'FAILURE'.*----------------------------------------------------------------------** SELECTION-SCREEN DEFINITION **----------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.* Range of materials to be extendedSELECT-OPTIONS: s_matnr FOR g_wa_marc-matnr OBLIGATORY,* Range of Target plants to which the material should beextended.s_target FOR g_wa_marc-werks OBLIGATORY.* Source plant form which material details are extracted PARAMETERS: p_source TYPE werks_d OBLIGATORY,* Check box to extend Class II materialsp_class2 AS CHECKBOX,* Check box to extend Super Bom and GC Partsp_super AS CHECKBOX.SELECTION-SCREEN END OF BLOCK b1.*----------------------------------------------------------------------** AT SELECTION-SCREEN **----------------------------------------------------------------------*AT SELECTION-SCREEN.* Validate the Target Plant Range entered.PERFORM validate_target_plants.* Validate the source plant and material range.PERFORM validate_material_range.*----------------------------------------------------------------------** START-OF-SELECTION **----------------------------------------------------------------------*START-OF-SELECTION.*Refresh corresponding variablesPERFORM refresh_data_variables.*Get final target plants.PERFORM get_final_target_plants.*Get materials and the corresponding plants to which it has to be*extendedPERFORM get_final_materials_plants.* Get all the data for the import parameters ofbapi_material_get_all.PERFORM get_data.IF NOT g_it_marc[] IS INITIAL.LOOP AT g_it_marc INTO g_wa_marc.* Get all the data for the materials given in the selection screen.PERFORM bapi_material_get_all.IF g_wa_matresult-flag = c_fm.CONTINUE.ELSE.* Extended the data to the plants given in the selection screen.PERFORM bapi_material_savedata.ENDIF.ENDLOOP.ELSE.MESSAGE e000 WITH 'MATERIALS ALREADY EXTENDED TO TARGETPLANT'.ENDIF.*----------------------------------------------------------------------** END-OF-SELECTION **----------------------------------------------------------------------*END-OF-SELECTION.* Display materials already extended.PERFORM disp_mat_already_extended.*Display materials for which the data could not be fetched.PERFORM disp_mat_not_fetched.*Display materials failed to extend to plant.PERFORM disp_mat_fail_ext_plant.*----------------------------------------------------------------------** TOP-OF-PAGE **----------------------------------------------------------------------*TOP-OF-PAGE.* To display page headerPERFORM page_header.*&---------------------------------------------------------------------**& Form VALIDATE_TARGET_PLANTS*&---------------------------------------------------------------------** Form to validate the target plants specified in the range on* the selection screen and get all the accessible plants.* If none of the plants specified is an Access plant, an error* message is displayed.*----------------------------------------------------------------------*FORM validate_target_plants .* Check if each of the plants is an Access plant.SELECT werkspur_groupprod_timedeliv_timegr_proc_timesched_marginrepln_timeFROM zmmdataINTO TABLE g_it_plantsWHERE werks IN s_targetOR werks EQ p_source.IF sy-subrc EQ 0.SORT g_it_plants BY werks.CLEAR g_wa_plants.READ TABLE g_it_plants INTO g_wa_plantsWITH KEY werks = p_source.IF sy-subrc = 0.DELETE g_it_plants INDEX sy-tabix.ELSE.MESSAGE e001.ENDIF.ELSE.MESSAGE e005.ENDIF.ENDFORM. " validate_target_plants*&---------------------------------------------------------------------**& Form VALIDATE_MATERIAL_RANGE*&---------------------------------------------------------------------** Form to validate source plant and the material rage given in the* selection screen and get all the materials of the source plant* and the target plants.* If there are no materials of the source plant to be extended an* error message is displayed.*----------------------------------------------------------------------*FORM validate_material_range .DATA: BEGIN OF l_r_plants OCCURS 0,sign(1),option(2),low TYPE werks_d,high TYPE werks_d,END OF l_r_plants.CLEAR: g_wa_plants.*Creating rage of plants to get the material validityLOOP AT g_it_plants INTO g_wa_plants.AT NEW werks.l_r_plants-sign = 'I'.l_r_plants-option = 'EQ'.l_r_plants-low = g_wa_plants-werks.APPEND l_r_plants.CLEAR l_r_plants.ENDAT.ENDLOOP.*Include source plant alsol_r_plants-sign = 'I'.l_r_plants-option = 'EQ'.l_r_plants-low = p_source.APPEND l_r_plants.SELECT werksmatnrbeskzsobslfhoriFROM marcINTO TABLE g_it_marc1WHERE matnr IN s_matnrAND werks IN l_r_plants.* If the output table is initial an error message is displayedIF sy-subrc NE 0.MESSAGE e002.ELSE.SORT g_it_marc1 BY werks matnr.CLEAR g_wa_marc1.READ TABLE g_it_marc1 INTO g_wa_marc1 WITH KEY werks = p_source.* If the output table doesn't contain materials of source plant an* error message is displayed.IF sy-subrc NE 0.MESSAGE e002.ENDIF.ENDIF.ENDFORM. " validate_material_range*&---------------------------------------------------------*& Form get_final_target_plants*&---------------------------------------------------------------------** To get final target plants*----------------------------------------------------------------------*FORM get_final_target_plants .DATA: l_wa_plants TYPE t_target_plants.LOOP AT g_it_plants INTO l_wa_plants.AT NEW werks.READ TABLE g_it_plants INTO g_wa_plantsWITH KEY werks =l_wa_plants-werks.APPEND g_wa_plants TO g_it_target_plants.CLEAR l_wa_plants.ENDAT.ENDLOOP.SORT g_it_target_plants BY werks.ENDFORM. " get_final_target_plants*&---------------------------------------------------------------------**& Form get_final_materials_plants*&---------------------------------------------------------* Form to get the materials and the corresponding plants to which* it has to be extended.*----------------------------------------------------------------------*FORM get_final_materials_plants.CLEAR: g_wa_marc1,g_wa_plants.*Validating plants against source plants*Loop at all the materials with source plant and append to*another tableLOOP AT g_it_marc1 INTO g_wa_marc1 WHERE werks = p_source.MOVE g_wa_marc1 TO g_wa_source_mat.APPEND g_wa_source_mat TO g_it_source_mat.CLEAR g_wa_source_mat.ENDLOOP.*Loop through all target plantsLOOP AT g_it_target_plants INTO g_wa_plants.*Loop at all the materials with source plantLOOP AT g_it_marc1 INTO g_wa_marc1 WHERE werks = p_source. *Check whether material exist for the target plant or notREAD TABLE g_it_marc1INTO g_wa_marc1WITH KEY matnr = g_wa_marc1-matnrwerks = g_wa_plants-werks.IF sy-subrc = 0.*If yes then move that material to another table.MOVE g_wa_marc1-matnr TOg_wa_matextended-material.MOVE g_wa_plants-werks TO g_wa_matextended-plant. MOVE c_fm TO g_wa_matextended-flag. MOVE 'MATERIALS ALREADY EXTENDED'(002) TOg_wa_matextended-errormessage.APPEND g_wa_matextended TO g_it_matextended.CLEAR g_wa_matextended.ELSE.*If no then append that material to extention listMOVE g_wa_marc1-matnr TO g_wa_marc-matnr.MOVE g_wa_plants-werks TO g_wa_marc-werks.MOVE g_wa_marc1-beskz TO g_wa_marc-beskz.MOVE g_wa_marc1-sobsl TO g_wa_marc-sobsl.APPEND g_wa_marc TO g_it_marc.CLEAR g_wa_marc.ENDIF.ENDLOOP.ENDLOOP.ENDFORM. " get_final_materials_plants*&---------------------------------------------------------------------**& Form get_data*&---------------------------------------------------------------------** Form to get the data for the import parameters of* bapi_material_get_all.*----------------------------------------------------------------------*FORM get_data .* Super bom is checkedIF p_super = 'X'.* To get Material data from Material master and check whether* Material is configurable.SELECT matnr "Materialkzkfg "ConfigurableFROM maraINTO TABLE g_it_superbomFOR ALL ENTRIES IN g_it_source_mat WHERE matnr = g_it_source_mat-matnr.IF sy-subrc = 0.SORT g_it_superbom.ENDIF.ENDIF.。

BAPI导入物料主数据

BAPI导入物料主数据

BAPI导入物料主数据REPORT ZMMMDE001 NO STANDARD PAGE HEADING LINE-SIZE 170 MESSAGE-ID MG.*----------------------------------------------------------------------* * Program : ZMMMDE001 * * Author : Patrick,Song * * Date : Sep 10, 2008 * * Code type : conversion * * Version : new creation * * (interface/conversion/on-line transaction/report) * * * *----------------------------------------------------------------------* * Error handling : * *----------------------------------------------------------------------* * 1. * * * *----------------------------------------------------------------------* * Change log : * *----------------------------------------------------------------------* * CR# : * * Corr. no. : * * Date : * * Author : * * Change : * * * *----------------------------------------------------------------------**----------------------------------------------------------------------* * include program & subrouting * *----------------------------------------------------------------------* INCLUDE : ZBCDWI000 .TYPE-POOLS: KCDE.TYPE-POOLS: SLIS.*----------------------------------------------------------------------* * tables declaration * *----------------------------------------------------------------------* TABLES: AUSP, " Characteristic Values MARC, " Plant Data for MaterialMARA, " General Material DataMVKE, " Sales Data for MaterialT001L, " Storage LocationsT006A, " Assign Internal to Language-Dependent UnitT134. " Material Types*----------------------------------------------------------------------** selection screen definition * *----------------------------------------------------------------------* * Input file information block B1 SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-SC1 . PARAMETER: P_BASIC LIKE RLGRAP-FILENAME OBLIGATORY .PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY .SELECTION-SCREEN END OF BLOCK A1.PARAMETERS: P_MMAM AS CHECKBOX DEFAULT SPACE .PARAMETERS: P_MARC AS CHECKBOX DEFAULT SPACE .PARAMETERS: P_QMDATA AS CHECKBOX DEFAULT SPACE .*PARAMETERS: P_CLASS AS CHECKBOX .PARAMETERS: P_BKJOB AS CHECKBOX DEFAULT SPACE .*----------------------------------------------------------------------* * Internal tables and field strings * *----------------------------------------------------------------------* *-* to store uploaded data * define table to store tempoary data => Material Views Selection DATA INT_TAB TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.*----------------------------------------------------------------------* * Global program variables * *----------------------------------------------------------------------* * TO STORE MATERIAL MASTER DATA WHICH NEED TO BE UPLOADED*** Generated data section with specific formatting - DO NOT CHANGE *** DATA: BEGIN OF ITAB OCCURS 0.DATA: MATNR(018). "物料号 ****DATA: BISMT(018). "旧物料号****DATA: MAKTX(040). "物料描述****DATA: MBRSH(001). "行业领域****DATA: MTART(004). "物料类型****DATA: WERKS(004). "工厂 ****DATA: LGORT(004). "库存地点****DATA: VKORG(004). "销售组织****DATA: VTWEG(002). "分销渠道****DATA: MEINS(003). "基本计量单位****DATA: SPART(002). "产品组****DATA: MSTAE(002). "跨工厂物料状态DATA: MATKL(009). "物料组****DATA: GEWEI(003). "重量单位****DATA: BRGEW(017). "毛重***DATA: NTGEW(017). "净重***DATA: ZEINR(022). "产品图号***DATA: KLART(003). "类别种类**** DATA: CLASS_01(018). "类别**** DATA: MWERT_SCR(030). "安规标准**** DATA: MWERT_SER(030). "产品系列号**** DATA: MWERT_DESC1(090). "物料描述1**** DATA: MWERT_DESC11(030). "物料描述1**** DATA: MWERT_DESC12(030). "物料描述1**** DATA: MWERT_DESC2(090). "物料描述2**** DATA: MWERT_DESC21(030). "物料描述2**** DATA:MWERT_DESC22(030). "物料描述2**** DATA: EKGRP(003). "采购组 **** DATA: BSTME(003). "订单单位 **** DATA: UMREN(006). "转换比例中订单单位数量DATA: WEBAZ(003). "收货处理时间 **** DATA: KORDB(001). "货源清单**** DATA: USEQU(001). "配额安排 **** DATA: KZKRI(001). "是否合同管控***** DATA: DWERK(004). "交货工厂***** DATA: SPART_GRP(002). "产品组***** DATA: TAXKM(001). "税***** DATA: VERSG(001). "物料统计组***** DATA: KONDM(002). "物料定价组***** DATA: KTGRM(002). "科目设置组***** DATA: MTPOS(004). "项目类别组***** DATA: BOX01(006). "每箱对应的产品数量***** DATA: BOX02(006). "每栈板对应的产品数量*****DATA: TRAGR(004). "运输组 ***** DATA: LADGR(004). "装载组 ***** DATA: MTVFP(002). "可用性检查 ***** DATA: DISMM(002). "MRP 类型 **** DATA: DISGR(004). "MRP组 **** DATA: DISPO(003). "MRP 控制者 ******DATA: DISLS(002). "批量大小 **** DATA: BSTRF(017). "舍入值 **** DATA: BESKZ(001). "采购类型 * **** DATA: SOBSL(002). "特殊采购类 **** DATA: RGEKZ(001). "反冲 **** DATA: LGPRO(004). "生产仓储地点 ***** DATA: LGFSB(004). "外部采购仓储地点* DATA: DZEIT(003). "自制生产时间 **** DATA: WEBAZ_GR(003). "收货处理时间 **** DATA: PLIFZ(003). "计划交货时间 **** DATA: FHORI(003). "计划边际码 **** DATA: EISBE(017). "安全库存**** DATA: PERKZ(001). "期间标识 **** DATA: KAUSF(006). "部件废品(%)**** DATA: MTVFP1(002). "可用性检查 **** DATA: SBDKZ(001). "独立/集中**** DATA: XCHPF(001). "批次管理 **** DATA: LGPBE(010). "库存仓位 **** DATA: INSMK(001). "过帐到检验库存*** DATA: PRFRQ(006). "检查间隔天数**** DATA: QMPUR(001). "QM采购激活 **** DATA: SSQSS(008). "QM 控制码**** DATA: AKTIV_01(001). "激活检验类型01*** DATA: AKTIV_03(001). "激活检验类型03*** DATA: AKTIV_04(001). "激活检验类型04*** DATA:AKTIV_05(001). "激活检验类型05*** DATA: AKTIV_09(001). "激活检验类型09*** DATA: BKLAS(004). "评估类 **** DATA: VPRSV(001). "价格控制 **** DATA: PEINH(006). "价格单位 **** DATA: VERPR(015). "移动平均价 **** DATA: STPRS(015). "标准价格 **** DATA: EKALR(001). "物料根据数量结构进行成本核算*****DATA: HKMAT(001). "物料来源 **** DATA: HRKFT(004). "原始组 **** DATA: KOSGR(010). "间接费分组 **** DATA: AWSLS(006). "差异码 **** DATA:ZPLP1(014). "未来计划价格1**** DATA: ZPLD1(010). "未来计划价格1日期*****DATA: ZPLP2(014). "未来计划价格2**** DATA: ZPLD2(010). "未来计划价格2日期*****DATA: UMREZ(006). "转换比例fm DATA: END OF ITAB.* define internal table to store views selection for material type & plantDATA: BEGIN OF VWS_ITAB OCCURS 0 .DATA: MTART(004) TYPE C. " Material Type DATA: BASIC_VIEWS(001) TYPE C. " Flag for Basic View DATA: CLASS_VIEWS(001) TYPE C. " Flag for ClassificationDATA: WERKS(004) TYPE C. " Plant DataDATA: PROCUREMENT(001) TYPE C. " Flag for procurement TypeDATA: SALES_VIEWS(001) TYPE C. " Flag for Sales ViewsDATA: PURCH_VIEWS(001) TYPE C. " Flag for Purchasing ViewsDATA: MRP_VIEWS(001) TYPE C. " Flag for MRP ViewsDATA: WKSCH_VIEWS(001) TYPE C. " Flag for Work ScheduleDATA: FOREC_VIEWS(001) TYPE C. " Flag for ForecastingDATA: PRT_VIEWS(001) TYPE C. " Flag for PRT ToolsDATA: STORAGE_VIEW(001) TYPE C. " Flag for storage viewsDATA: WH_VIEWS(001) TYPE C. " Flag for Warehouse Management DATA: QA_VIEWS(001) TYPE C. " Flag for Quality Management DATA:ACCTS_VIEWS(001) TYPE C. " Flag for AccountingsDATA: COSTS_VIEWS(001) TYPE C. " Flag for CostingsDATA: BATCH_MANAGE(001) TYPE C. " Flag for Batch ManagementDATA: REMARKS(020) TYPE C. " RemarksDATA: END OF VWS_ITAB.CONSTANTS: XFLAG(001) TYPE C VALUE 'X'.DATA : L_CLASS(001) TYPE C .DATA: LINE_CNT TYPE I .**-* *-* *-* define internal table for BAPI function call *-* *-* *-* *-* *-* *-* Material DescriptionsDATA: MATERIALDESCRIPTION LIKE BAPI_MAKT OCCURS 0 WITH HEADER LINE . *-* Units of MeasureDATA: UNITSOFMEASURE LIKE BAPI_MARM OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for BAPI_MARMDATA: UNITSOFMEASUREX LIKE BAPI_MARMX OCCURS 0 WITH HEADER LINE . *-* International Article Numbers (EANs)DATA: INTERNATIONALARTNOS LIKE BAPI_MEAN OCCURS 0 WITH HEADER LINE . *-* Long TextsDATA: MATERIALLONGTEXT LIKE BAPI_MLTX OCCURS 0 WITH HEADER LINE . *-* Tax DataDATA: TAXCLASSIFICATIONS LIKE BAPI_MLAN OCCURS 0 WITH HEADER LINE .*-* Substitute Structure for Return Parameter BAPIRET2DATA: RETURNMESSAGES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE . *-* Production Resource Tool (PRT) Fields in the Material Master DATA: PRTDATA LIKE BAPI_MFHM OCCURS 0 WITH HEADER LINE . *-* CheckboxStructure for BAPI_MFHMDATA: PRTDATAX LIKE BAPI_MFHMX OCCURS 0 WITH HEADER LINE . *-* Ref. structure for BAPI parameter ExtensionIn/ExtensionOut DATA: EXTENSIONIN LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for Extension In/Extension OutDATA: EXTENSIONINX LIKE BAPIPAREXX OCCURS 0 WITH HEADER LINE .*-* /NFM/: NF Charge Weights for Materials on Org. LevelDATA: NFMCHARGEWEIGHTS LIKE /NFM/BAPITVGW OCCURS 0 WITH HEADER LINE . *-* /NFM/: Update Information for /NFM/BAPDATA: NFMCHARGEWEIGHTSX LIKE /NFM/BAPITVGWX OCCURS 0 WITH HEADERLINE . *-* /NFM/: NF Structural WeightsDATA: NFMSTRUCTURALWEIGHTS LIKE /NFM/BAPITKGW OCCURS 0 WITH HEADER LINE . *-* /NFM/: Update Information for /NFM/BAPITKGWDATA: NFMSTRUCTURALWEIGHTSX LIKE /NFM/BAPITKGWX OCCURS 0 WITH HEADER LINE . *-* Returned ParametersDATA: RETURN LIKE BAPIRET2." OCCURS 0 WITH HEADER LINE .*DATA: INSPECTIONCTRL LIKE BAPI1001004_QMAT OCCURS 0 WITH HEADERLINE . *DATA: QM_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.* define structure data for BAPIs function of material mastercreation DATA: HEADDATA LIKE BAPIMATHEAD. "Header Segment with Control InformationDATA: CLIENTDATA LIKE BAPI_MARA. "Material Data at Client Level DATA: CLIENTDATAX LIKE BAPI_MARAX. "Checkbox Structure for BAPI_MARA DATA: PLANTDATA LIKE BAPI_MARC. "Material Data at Plant Level DATA: PLANTDATAX LIKE BAPI_MARCX. "Checkbox Structure for BAPI_MARC DATA: FORECASTPARAMETERS LIKE BAPI_MPOP. "Forecast Parameters DATA: FORECASTPARAMETERSX LIKE BAPI_MPOPX. "Checkbox Structure for BAPI_MPOP DATA: PLANNINGDATA LIKE BAPI_MPGD. "Change Document Structure for Material Master/Product GroupDATA: PLANNINGDATAX LIKE BAPI_MPGDX. "Checkbox Structure forBAPI_MPGDDATA: STORAGELOCATIONDATA LIKE BAPI_MARD. "Material Data at Storage Location LevelDATA: STORAGELOCATIONDATAX LIKE BAPI_MARDX. "Checkbox Structure for BAPI_MARDDATA: VALUATIONDATA LIKE BAPI_MBEW. "Valuation DataDATA: VALUATIONDATAX LIKE BAPI_MBEWX. "Checkbox Structure forBAPI_MBEWDATA: WAREHOUSENUMBERDATA LIKE BAPI_MLGN. "Warehouse Number Data DATA: WAREHOUSENUMBERDATAX LIKE BAPI_MLGNX. "Checkbox Structure for BAPI_MLGNDATA: SALESDATA LIKE BAPI_MVKE. "Sales DataDATA: SALESDATAX LIKE BAPI_MVKEX. "Checkbox Structure for BAPI_MVKEDATA: STORAGETYPEDATA LIKE BAPI_MLGT. "Storage Type Data DATA: STORAGETYPEDATAX LIKE BAPI_MLGTX. "Checkbox Structure for BAPI_MLG T*Batchinputdata of single transactionDATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. *Messages of call transactionDATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. * define internal table to store uploading result ... DATA: BEGIN OF I_RESULT OCCURS 0.DATA: MATNR LIKE ITAB-MATNR.DATA: WERKS LIKE ITAB-WERKS.DATA: MTART LIKE ITAB-MTART.DATA: MAKTX LIKE ITAB-MAKTX.DATA: MEINS LIKE ITAB-MEINS.INCLUDE STRUCTURE RETURNMESSAGES.DATA: QMVIEWS(001).DATA: MESSAGE01 LIKE RETURNMESSAGES-MESSAGE.DATA: MESSAGE02 LIKE RETURNMESSAGES-MESSAGE.DATA: SELK(001) TYPE C .DATA: END OF I_RESULT.DATA: BEGIN OF I_ERROR OCCURS 0.DATA: MATNR LIKE ITAB-MATNR.DATA: WERKS LIKE ITAB-WERKS.DATA: MTART LIKE ITAB-MTART.DATA: MEINS LIKE ITAB-MEINS.DATA: END OF I_ERROR.*-* define parameter to store line countDATA: LINE TYPE I.DATA: L_CNT TYPE I.DATA: INT_CNT TYPE I .DATA: GIT_BAPI1003 LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0 WITH HEADER LINE,GIT_VALUES_CHAR LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0 WITH HEADER LINE,GIT_VALUES_CURR LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0 WITH HEADER LINE,GIT_VALUES_LIST LIKE BAPI1003_ALLOC_LIST OCCURS 0 WITH HEADER LINE, GIT_BAPIRET2 LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,LS_BAPIRET2 TYPE BAPIRET2.DATA: GS_BAPI1003 TYPE BAPI1003_ALLOC_VALUES_NUM,GS_VALUES_CHAR TYPE BAPI1003_ALLOC_VALUES_CHAR,GS_VALUES_CURR TYPE BAPI1003_ALLOC_VALUES_CURR,GC_FLAG_X(1) TYPE C VALUE 'X'.DATA: G_MATNR_CHK LIKE ITAB-MATNR .DATA: M_MATNR_CHK LIKE ITAB-MATNR .DATA: S_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_ST01',S_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND-ALV'.*----------------------------------------------------------------------* * TOP-OF-PAGE.*----------------------------------------------------------------------* TOP-OF-PAGE.PERFORM COLUMN_HEADER.*----------------------------------------------------------------------* * initialization. * *----------------------------------------------------------------------* INITIALIZATION.REFRESH: ITAB, VWS_ITAB, BDCDATA, MESSTAB, I_RESULT, I_ERROR.CLEAR : ITAB, VWS_ITAB, BDCDATA, MESSTAB, I_RESULT, I_ERROR.IF SY-UNAME CA 'USER'.* set default value for data migration => Background JobP_BKJOB = 'X'.ENDIF .*----------------------------------------------------------------------* * At Selection-screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.CALL FUNCTION 'WS_FILENAME_GET' "Get file nameEXPORTING* DEF_FILENAME = ' '* DEF_PATH = ' 'MASK = ',*.* ,*.*.'MODE = '0'TITLE = TEXT-H10IMPORTINGFILENAME = P_FILE* RC =EXCEPTIONSINV_WINSYS = 1NO_BATCH = 2SELECTION_CANCEL = 3SELECTION_ERROR = 4OTHERS = 5.IF SY-SUBRC <> 0.* MESSAGE E016 WITH P_PATH.ENDIF.*----------------------------------------------------------------------* * At Selection-screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BASIC.CALL FUNCTION 'WS_FILENAME_GET' "Get file nameEXPORTING* DEF_FILENAME = ' '* DEF_PATH = ' 'MASK = ',*.* ,*.*.'MODE = '0'TITLE = TEXT-H10IMPORTINGFILENAME = P_BASIC* RC =EXCEPTIONSINV_WINSYS = 1NO_BATCH = 2SELECTION_CANCEL = 3SELECTION_ERROR = 4OTHERS = 5.IF SY-SUBRC <> 0.* MESSAGE E016 WITH P_PATH.ENDIF.*--------------------------------------------------------------------* * at selection-screen output*--------------------------------------------------------------------* AT SELECTION-SCREEN ON P_MMAM .IF NOT P_MMAM IS INITIAL .MOVE XFLAG TO P_MARC.MOVE XFLAG TO P_QMDATA.ENDIF.*--------------------------------------------------------------------* * at selection-screen output*--------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT .* PERFORM MODIFY_SCREEN .*----------------------------------------------------------------------* * Start-of-selection * *----------------------------------------------------------------------* START-OF-SELECTION.PERFORM DETERMINE_MATERIAL_VIEWS .PERFORM UPLOAD_DATA.SORT ITAB BY MATNR WERKS DESCENDING.CLEAR: LINE_CNT .DESCRIBE TABLE ITAB LINES LINE_CNT .LOOP AT ITAB .TRANSLATE ITAB-MATNR TO UPPER CASE .TRANSLATE ITAB-GEWEI TO UPPER CASE .ITAB-MWERT_DESC11 = ITAB-MWERT_DESC1+30(30).ITAB-MWERT_DESC12 = ITAB-MWERT_DESC1+60(30).ITAB-MWERT_DESC1 = ITAB-MWERT_DESC1+0(30).ITAB-MWERT_DESC21 = ITAB-MWERT_DESC2+30(30).ITAB-MWERT_DESC22 = ITAB-MWERT_DESC2+60(30).ITAB-MWERT_DESC2 = ITAB-MWERT_DESC2+0(30).IF NOT ITAB-MATNR IS INITIAL .PERFORM FORMAT_ALPHA_OUTPUT CHANGING ITAB-MATNR . WRITE:/ ITAB-MATNR UNDER TEXT-C01,ITAB-MAKTX UNDER TEXT-C06,ITAB-NTGEW UNDER TEXT-C08,ITAB-MTART UNDER TEXT-C03,ITAB-WERKS UNDER TEXT-C02,ITAB-VKORG UNDER TEXT-C09,ITAB-LGPRO UNDER TEXT-C10,ITAB-LGFSB UNDER TEXT-C11,ITAB-LGORT UNDER TEXT-C04,ITAB-BESKZ UNDER TEXT-C05,ITAB-SOBSL UNDER TEXT-C07.IF ITAB-WERKS = '1005' OR ITAB-WERKS = '1006'.MOVE 'F' TO ITAB-BESKZ.ENDIF .IF ITAB-BESKZ IS INITIAL AND ( ITAB-MTART EQ 'ROH' ORITAB-MTART EQ 'ROH1' ORITAB-MTART EQ 'ROH2' ORITAB-MTART EQ 'ROH3' ORITAB-MTART EQ 'UNBW' ORITAB-MTART EQ 'LEIH' ).MOVE 'F' TO ITAB-BESKZ.ENDIF .* Check if MRP Controller is fit for Plant and Material Type or notIF ITAB-WERKS = '2001' OR ITAB-WERKS = '2003' OR ITAB-WERKS = '2004'. IF ITAB-MTART EQ 'ROH'.IF ITAB-DISPO+0(1) NE 'M'.MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF.ENDIF.ENDIF .IF ITAB-WERKS = '2001' OR ITAB-WERKS = '2003' OR ITAB-WERKS = '2004'. IF ITAB-MTART EQ 'HALB'.IF ITAB-DISPO+0(1) EQ 'M'.MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF.ENDIF.ENDIF .IF ITAB-BRGEW = 'G' OR ITAB-BRGEW = 'g' .MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF .MODIFY ITAB .ELSE.DELETE ITAB .ENDIF .ENDLOOP .*----------------------------------------------------------------------* * End-of-selection * *----------------------------------------------------------------------* END-OF-SELECTION.IF I_ERROR[] IS INITIAL.SET PF-STATUS 'P1100'.ELSE.WRITE:/ '请检查以下物料各个字段值:'.ULINE .LOOP AT I_ERROR .WRITE: / I_ERROR-MATNR COLOR COL_NEGATIVE,I_ERROR-WERKS COLOR COL_NEGATIVE.ENDLOOP .ENDIF .WRITE:/ TEXT-T00, LINE_CNT COLOR COL_KEY.*----------------------------------------------------------------------* * at user-command * *----------------------------------------------------------------------* AT USER-COMMAND .CASE SY-UCOMM .WHEN 'MDRCRT' .REFRESH: I_RESULT .CLEAR : I_RESULT .PERFORM MATERIAL_MAINTAIN .PERFORM PREPARE_ALV_FIELDS.PERFORM DISPLAY_ALV_RESULT.ENDCASE .*----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM BDC_DYNPRO USING PROGRAM DYNPRO.CLEAR BDCDATA.BDCDATA-PROGRAM = PROGRAM.BDCDATA-DYNPRO = DYNPRO.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.ENDFORM. "BDC_DYNPRO*----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------* FORM BDC_FIELD USING FNAM FVAL.CLEAR BDCDATA.BDCDATA-FNAM = FNAM.BDCDATA-FVAL = FVAL.APPEND BDCDATA.ENDFORM. "BDC_FIELD*&---------------------------------------------------------------------**& Form UPLOAD_DATA*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM UPLOAD_DATA .CALL FUNCTION 'UPLOAD'EXPORTINGFILENAME = P_FILEFILETYPE = 'DAT'TABLESDATA_TAB = ITABEXCEPTIONSCONVERSION_ERROR = 1INVALID_TABLE_WIDTH = 2INVALID_TYPE = 3NO_BATCH = 4UNKNOWN_ERROR = 5GUI_REFUSE_FILETRANSFER = 6OTHERS = 7.IF ITAB[] IS INITIAL.MESSAGE '导入数据为空,请确认后重新导入! ' TYPE 'I'.EXIT.ENDIF.ENDFORM. " UPLOAD_DATA*&---------------------------------------------------------------------* *& Form MATERIAL_MAINTAIN*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM MATERIAL_MAINTAIN .DATA: L_MARA TYPE I .DATA: L_QMATV LIKE MARC-QMATV .DATA: L_MARC(001).DATA: N_MATNR_CHK LIKE ITAB-MATNR .DATA: O_MATNR_CHK LIKE ITAB-MATNR .CLEAR: N_MATNR_CHK, O_MATNR_CHK.SORT VWS_ITAB BY MTART.IF NOT P_BKJOB IS INITIAL .PERFORM OPEN_GROUP .ENDIF .LOOP AT ITAB .CLEAR: L_CLASS, L_QMATV, L_MARC, L_MARA. * move-corresponding data to header data => HEADDATACLEAR: HEADDATA,CLIENTDATA, CLIENTDATA,PLANTDATA, PLANTDATAX,FORECASTPARAMETERS, FORECASTPARAMETERSX,PLANNINGDATA, PLANNINGDATAX,STORAGELOCATIONDATA, STORAGELOCATIONDATAX,VALUATIONDATA, VALUATIONDATAX,WAREHOUSENUMBERDATA, WAREHOUSENUMBERDATAX,SALESDATA, SALESDATAX,STORAGETYPEDATA, STORAGETYPEDATAX. * get customizing views which need to be selectedCLEAR: VWS_ITAB .READ TABLE VWS_ITAB WITH KEY MTART = ITAB-MTARTWERKS = ITAB-WERKSPROCUREMENT = ITAB-BESKZ . ***** Check Material Plant Data Maintain Or NotCLEAR: MARC .SELECT SINGLE * FROM MARC CLIENT SPECIFIEDWHERE MANDT EQ SY-MANDTAND MATNR EQ ITAB-MATNRAND WERKS EQ ITAB-WERKS .IF SY-SUBRC EQ 0 .IF ITAB-WERKS EQ '2001' ORITAB-WERKS EQ '2003' ORITAB-WERKS EQ '2004' .MOVE MARC-QMATV TO L_QMATV .ELSE .MOVE XFLAG TO L_QMATV.* CLEAR: L_QMATV.ENDIF .MOVE XFLAG TO L_MARC .ELSE.IF ITAB-WERKS EQ '1005' OR ITAB-WERKS EQ '1006'.MOVE XFLAG TO L_QMATV.ELSE.CLEAR: L_QMATV.ENDIF.CLEAR: L_MARC .ENDIF .*** Update QM Data or notIF NOT P_QMDATA IS INITIAL .IF ITAB-WERKS EQ '1005' OR ITAB-WERKS EQ '1006'. MOVE XFLAG TO L_QMATV.ELSE.CLEAR: L_QMATV.ENDIF.ENDIF .*** Update Plant Data or notIF NOT P_MARC IS INITIAL .CLEAR: L_MARC .ENDIF .IF L_MARC IS INITIAL.IF NOT P_MMAM IS INITIAL .CLEAR: MARA .SELECT SINGLE * FROM MARA CLIENT SPECIFIED WHERE MANDT EQ SY-MANDTAND MATNR EQ ITAB-MATNR .IF SY-SUBRC = 0.IF ITAB-MTART <> MARA-MTART .PERFORM MATERIAL_TYPE_CHANGE .ENDIF .ENDIF .ENDIF .* Conver value to uper caseTRANSLATE ITAB-MEINS TO UPPER CASE.IF ITAB-MEINS EQ 'G' OR ITAB-MEINS EQ 'g'.ITAB-MEINS = 'g'.ELSE.TRANSLATE ITAB-MEINS TO UPPER CASE.ENDIF .TRANSLATE ITAB-GEWEI TO UPPER CASE.PERFORM MAP_MATERIAL_DESCRIPTION .PERFORM MAP_MATERIAL_MASTER_DATA . * determine & select views for material maintainCASE VWS_ITAB-BASIC_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-BASIC_VIEW. "Basic ViewsENDCASE.CASE VWS_ITAB-SALES_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'. " If phantom item, not required for Accts & Costs % QA Views** assign plant data & ** assign update informationIF NOT ITAB-VKORG IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-SALES_VIEW. "Sales Views PERFORM MAP_SALES_DATA .ENDIF .ENDIF.ENDCASE .CASE VWS_ITAB-PURCH_VIEWS.WHEN 'X'.** assign plant data & ** assign update information IF ITAB-SOBSL NE '50'.IF NOT ITAB-EKGRP IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-PURCHASE_VIEW."Purchasing View PERFORM MAP_PURCHASING_DATA .ENDIF .ENDIF .ENDCASE .************ MRP VIEWS ****************CASE VWS_ITAB-MRP_VIEWS.WHEN 'X'.** assign plant data & ** assign update information IF NOT ITAB-DISMM IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-MRP_VIEW. "MRP ViewsPERFORM MAP_MRP_DATA .ENDIF .ENDCASE .************ FORECASTING VIEWS ****************CASE VWS_ITAB-FOREC_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-FORECAST_VIEW."Forecasting View ** assign plant data & ** assign update information MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDCASE .************ WORK SCHEDULING VIEWS **************** CASE VWS_ITAB-WKSCH_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'.MOVE XFLAG TO HEADDATA-WORK_SCHED_VIEW."Work Scheduling ** assign plant data & ** assign update information MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDIF .ENDCASE .************ PRT VIEWS ****************CASE VWS_ITAB-PRT_VIEWS.WHEN 'X'. MOVE XFLAG TO HEADDATA-PRT_VIEW. "PRT Views ENDCASE .************ STORAGE VIEWS ****************CASE VWS_ITAB-STORAGE_VIEW.WHEN 'X'.** assign plant data & ** assign update information IF ITAB-SOBSL NE '50'.MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_STORAGE_DATA .ENDIF .WHEN SPACE.IF ITAB-MTART = 'ABF'.IF NOT ITAB-LGORT IS INITIAL ORNOT ITAB-LGPRO IS INITIAL ORNOT ITAB-LGFSB IS INITIAL.MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_STORAGE_DATA .ENDIF .ENDIF .ENDCASE .************ WAREHOUSE MANAGEMENT VIEWS ****************CASE VWS_ITAB-WH_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-WAREHOUSE_VIEW. " ** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDCASE .************ QA VIEWS ****************CASE VWS_ITAB-QA_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'.** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_QA_DATA.ENDIF.ENDCASE .************ ACCOUNTING & COSTINGS VIEWS ****************CASE VWS_ITAB-ACCTS_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50' AND ITAB-MTART NE 'ABF'.IF NOT ITAB-BKLAS IS INITIAL .MOVE XFLAG TO HEADDATA-ACCOUNT_VIEW. "Accounting DataMOVE XFLAG TO HEADDATA-COST_VIEW. "Costing DataPERFORM MAP_FICO_DATA .ENDIF .** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDIF .ENDCASE .************ BATCH MANAGEMENT ****************CASE VWS_ITAB-BATCH_MANAGE.WHEN 'X'.MOVE ITAB-XCHPF TO CLIENTDATA-BATCH_MGMT . "Batch management requ irement indicatorMOVE XFLAG TO CLIENTDATAX-BATCH_MGMT . "Batch management requ irement indicatorENDCASE.CLEAR : RETURN.CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'EXPORTINGHEADDATA = HEADDATACLIENTDATA = CLIENTDATACLIENTDATAX = CLIENTDATAXPLANTDATA = PLANTDATAPLANTDATAX = PLANTDATAX FORECASTPARAMETERS = FORECASTPARAMETERS FORECASTPARAMETERSX = FORECASTPARAMETERSX PLANNINGDATA = PLANNINGDATA PLANNINGDATAX = PLANNINGDATAX STORAGELOCATIONDATA = STORAGELOCATIONDATA STORAGELOCATIONDATAX = STORAGELOCATIONDATAX VALUATIONDATA = VALUATIONDATA VALUATIONDATAX = VALUATIONDATAX WAREHOUSENUMBERDATA = WAREHOUSENUMBERDATA WAREHOUSENUMBERDATAX = WAREHOUSENUMBERDATAX SALESDATA = SALESDATASALESDATAX = SALESDATAX STORAGETYPEDATA = STORAGETYPEDATA STORAGETYPEDATAX = STORAGETYPEDATAXFLAG_ONLINE = SPACEFLAG_CAD_CALL = SPACENO_DEQUEUE = SPACENO_ROLLBACK_WORK = SPACEIMPORTINGRETURN = RETURNTABLESMATERIALDESCRIPTION = MATERIALDESCRIPTION UNITSOFMEASURE = UNITSOFMEASURE。

物料主数据批导bapi

物料主数据批导bapi

物料主数据批导bapi 创建物料主数据,根据模板不同批导原材料,半成品,成品。

可根据实际需求对字段进⾏增删。

1 report zmmr_bapi_mm01 no standard page HEADING.2 type-POOLS:slis,truxs,icon.3 tables: sscrfields,lips,resb,marc,ckmlab02.4 data num type stprs_bapi.5 data flag type i. "标识符,如果不为1则不创建物料67 types:begin of ty_tab,8 head_material type matnr, "物料号9 head_ind_sector type mbrsh, "⾏业领域10 head_matl_type type mtart, "物料类型11 marc_plant type werks_d, "⼯⼚12 mvke_sales_org type vkorg, "销售组织13 mvke_distr_chan type vtweg, "分销渠道14 t_makt_matl_desc type maktx, "物料描述15 mara_base_uom type meins, "基本计量单位16 mara_matl_group type matkl, "物料组17 mara_extwg type extwg, "客户18 mara_item_cat type mtpos_mara, "普通项⽬组类别19 t_marm_unit_of_wt type gewei, "重量单位20 mara_wrkst type wrkst, "基本物料21 mara_ihivi type adge_ihivi, "是否客供22 mara_zeinr type dzeinr, "客户物料编码23 mvke_dwerk type maktx, "交货⼯⼚24 mvke_sktof type sktof, "现⾦折扣25 t_mlan_taxclass1 type taxkm, "税分类26 mvke_matl_stats type stgma, "物料统计组27 mvke_acct_assgt type ktgrm, "科⽬设置组28 mvke_item_cat type mtpos, "项⽬类别组29 marc_availcheck type mtvfp, "可⽤性检查30 mara_trans_grp type tragr, "运输组31 marc_loadinggrp type ladgr, "装载组32 marc_pur_group type ekgrp, "采购组33 marc_batch_mgmt type xchpf, "批次管理标⽰34 marc_auto_p_ord type kautb, "⾃动采购订单标识35 marc_webaz type webaz, "收货处理时间36 marc_insmk type insmk_mat, "过账到检验库存37 marc_mrp_group type disgr, "MRP组38 marc_maabc type maabc, "ABC标识39 marc_mrp_type type dismm, "MRP类型40 marc_mrp_ctrler type dispo, "MRP控制者41 marc_lotsizekey type disls, "批量42 marc_minlotsize type bstmi, "最⼩批量43 marc_round_val type bstrf, "舍⼊值44 marc_proc_type type beskz, "采购类型45 marc_lgpro type lgpro, "⽣产仓储地点46 marc_rgekz type rgekz, "反冲47 marc_lgfsb type lgfsb, "外部采购仓储地点48 marc_sm_key type fhori, "计划边际码49 marc_plnd_delry type plifz, "计划交货时间50 marc_sbdkz type sbdkz, "集中/独⽴51* mpop_prmod TYPE mpop-prmod, "预测模型52 mbew_val_class type bklas, "评估级别53 mbew_ml_settle type ck_ml_abst, "价格确定54 mbew_std_price type ck_pvprs_1, "标准价格55 mbew_moving_pr type ck_pvprs_1, "移动平均价56 mbew_price_ctrl type vprsv, "价格控制57 mbew_price_unit type peinh, "价格单位58 mbew_hrkft type hrkft, "原始组59 mbew_orig_mat type hkmat, "物料来源60 marc_losgr type ck_losgr, "成品核算批量61 end of ty_tab.6263 types:begin of ty_tab2,64 head_material type matnr, "物料号65 head_ind_sector type mbrsh, "⾏业领域66 head_matl_type type mtart, "物料类型67 marc_plant type werks_d, "⼯⼚68 mvke_sales_org type vkorg, "销售组织69 mvke_distr_chan type vtweg, "分销渠道70 t_makt_matl_desc type maktx, "物料描述71 mara_base_uom type meins, "基本计量单位72 mara_matl_group type matkl, "物料组73 mara_extwg type extwg, "客户74 mara_spart type spart, "产品组75 mara_item_cat type mtpos_mara, "普通项⽬组类别76 t_marm_unit_of_wt type gewei, "重量单位77 mara_formt type formt, "替代料标识78 mara_wrkst type wrkst, "基本物料79 mara_zeinr type dzeinr, "客户物料编码80 mvke_dwerk type maktx, "交货⼯⼚81 mvke_sktof type sktof, "现⾦折扣82 t_mlan_taxclass1 type taxkm, "税分类83 mvke_matl_stats type stgma, "物料统计组84 mvke_acct_assgt type ktgrm, "科⽬设置组85 mvke_item_cat type mtpos, "项⽬类别组86 marc_availcheck type mtvfp, "可⽤性检查87 mara_trans_grp type tragr, "运输组88 marc_loadinggrp type ladgr, "装载组89 marc_ekgrp type ekgrp, "采购组90 marc_kautb type kautb, "⾃动采购单91 marc_xchpf type xchpf, "批次管理92 marc_webaz type webaz, "收货处理时间93 marc_mrp_group type disgr, "MRP组94 marc_mrp_type type dismm, "MRP类型95 marc_mrp_ctrler type dispo, "MRP控制者96 marc_lotsizekey type disls, "批量⼤⼩97 marc_bstmi type bstmi, "最⼩批量⼤⼩98 marc_bstrf type bstrf, "舍⼊值99 marc_proc_type type beskz, "采购类型100 marc_sobsl type sobsl, "特殊采购类型101 marc_lgpro type lgpro, "⽣产仓储地点102 marc_lgfsb type lgfsb, "外部采购仓储地点103 marc_dzeit type dzeit, "⽣产时间104 marc_plifz type plifz, "计划交货时间105 marc_eisbe type eisbe, "安全库存106 marc_sm_key type fhori, "计划边际码107 marc_strgr type strgr, "策略组108 marc_vrmod type vrmod, "消耗模式109 marc_vint1 type vint1, "逆向消耗期间110 marc_vint2 type vint2, "向前消耗期间111 marc_altsl type altsl, "选择⽅法112 marc_sbdkz type sbdkz, "集中/独⽴113 mpop_prmod type mpop-prmod, "预测模型114 mbew_val_class type bklas, "评估级别115 mbew_ml_settle type ck_ml_abst, "价格确定116 mbew_std_price type ck_pvprs_1, "标准价格117 mbew_price_ctrl type vprsv, "价格控制118 mbew_orig_mat type hkmat, "物料来源119 marc_awsls type awsls, "差异码120 marc_losgr type ck_losgr, "成本核算批量121 end of ty_tab2.122123 data:it_tab type table of ty_tab , "原材料124 wa_tab type ty_tab.125 data:it_tab2 type table of ty_tab2, "成品126 wa_tab2 type ty_tab2.127128*输⼊参数129 data: headdata type bapimathead, "表头数据130 clientdata type bapi_mara, "基本数据131 clientdatax type bapi_marax,132 plantdata like bapi_marc, "⼯⼚数据133 plantdatax like bapi_marcx,134 forecastparameters type bapi_mpop, "预测135 forecastparametersx type bapi_mpopx,136 planningdata type bapi_mpgd, "计划137 planningdatax type bapi_mpgdx,138 valuationdata type bapi_mbew, "评估数据139 valuationdatax type bapi_mbewx,140 warehousenumberdata type bapi_mlgn, "仓库数据141 warehousenumberdatax type bapi_mlgnx,142 salesdata type bapi_mvke, "销售数据143 salesdatax type bapi_mvkex,144 storagetypedata type bapi_mlgt, "存储类型数据145 storagetypedatax type bapi_mlgtx.146147*表参数148 data: materialdescription type table of bapi_makt with header line, "描述 149 unitsofmeasure type table of bapi_marm with header line, "单位 150 unitsofmeasurex type table of bapi_marmx with header line,151 taxclassifications type table of bapi_mlan with header line, "税分类 152 return like table of bapiret2 with header line. "错误信息153154 data pr_unit type meins. "基本单位155 data pr_unit2 type meins. "重量单位156157 data: begin of gt_out occurs 0, "保存return信息158 text(255),159 end of gt_out.160161*TYPES:BEGIN OF ty_fieldnames ,162* name TYPE CHAR255,163*END OF ty_fieldnames.164*DATA it_fname TYPE TABLE OF ty_fieldnames WITH HEADER LINE.165 data:begin of it_fname occurs 0,166 name type char255,167 end of it_fname.168169170 SELECTION-screen begin of block blk_001 with frame title text-001 . "选择⽂件路径171 parameters:p_file like rlgrap-filename.172 SELECTION-screen end of block blk_001.173 SELECTION-screen: uline /1(82).174 SELECTION-screen: uline 83(83).175 SELECTION-screen begin of block blk_002 with frame title text-002. "确定创建物料类型176 parameters:radio_1 radiobutton group radi, "原材料177 radio_2 radiobutton group radi. "半成品/成品178 SELECTION-screen end of block blk_002.179180181 SELECTION-screen function key 1. "应⽤⼯具栏增加按钮182183 initialization.184 write icon_change_text as icon to sscrfields-functxt_01+0(4).185 sscrfields-functxt_01+4(*) = '下载模板'."分配字符位置186187 at SELECTION-screen.188 perform selection_screeen. "模板下载189190191 at SELECTION-screen on value-REQUEST for p_file .192 perform open.193194 START-of-SELECTION.195 if radio_1 = 'X'.196 perform upload_file. "上传数据197 perform mm01_1. "执⾏批导(原材料).198 else.199 perform upload_file2. "上传数据200 perform mm01_2. "执⾏批导(成品/半成品)201 endif.202203204 end-of-SELECTION.205 perform result_message. "显⽰执⾏结果206207*&---------------------------------------------------------------------*208*& Form MM01209*&---------------------------------------------------------------------*210* text211*----------------------------------------------------------------------*212* --> p1 text213* <-- p2 text214*----------------------------------------------------------------------*215 form mm01_1.216 loop at it_tab into wa_tab.217*前导0218 call function'CONVERSION_EXIT_ALPHA_INPUT'219 exporting220 input = wa_tab-head_material221 importing222 output = wa_tab-head_material.223224*判断物料是否以存在225 select single * from marc where matnr = wa_tab-head_material and werks = wa_tab-marc_plant. 226 if sy-subrc = 0.227 concatenate wa_tab-head_material '物料在' wa_tab-marc_plant '⼯⼚已存在!' into gt_out-text. 228 append gt_out.229 clear gt_out.230 continue.231 endif.232233 if wa_tab-mbew_moving_pr = ''.234 concatenate wa_tab-head_material '->原材料的移动平均价格为空' into gt_out-text.235 append gt_out.236 clear gt_out.237 continue.238 endif.239240 call function'CONVERSION_EXIT_ALPHA_INPUT'"科⽬设置组241 exporting242 input = wa_tab-mvke_acct_assgt243 importing244 output = wa_tab-mvke_acct_assgt.245 call function'CONVERSION_EXIT_ALPHA_INPUT'"可⽤性检查246 exporting247 input = wa_tab-marc_availcheck248 importing249 output = wa_tab-marc_availcheck.250 call function'CONVERSION_EXIT_ALPHA_INPUT'"运输组251 exporting252 input = wa_tab-mara_trans_grp253 importing254 output = wa_tab-mara_trans_grp.255 call function'CONVERSION_EXIT_ALPHA_INPUT'"装载组256 exporting257 input = wa_tab-marc_loadinggrp258 importing259 output = wa_tab-marc_loadinggrp.260 call function'CONVERSION_EXIT_ALPHA_INPUT'"MRP组261 exporting262 input = wa_tab-marc_mrp_group263 importing264 output = wa_tab-marc_mrp_group.265 call function'CONVERSION_EXIT_ALPHA_INPUT'"MRP控制者266 exporting267 input = wa_tab-marc_mrp_ctrler268 importing269 output = wa_tab-marc_mrp_ctrler.270 call function'CONVERSION_EXIT_ALPHA_INPUT'"计划边际值271 exporting272 input = wa_tab-marc_sm_key273 importing274 output = wa_tab-marc_sm_key.275276*判断是否客供,提⽰价格信息277 if wa_tab-mara_ihivi <> 'X'.278 clear num.279 num = wa_tab-mbew_std_price / wa_tab-mbew_price_unit.280 case wa_tab-marc_maabc. "ABC标识281 when 'A'.282 if num > 100.283 perform pop_confirm using wa_tab-marc_maabc wa_tab-head_material. 284 if flag = 1. "为否时执⾏下⼀物料285 clear flag.286 continue.287 endif.288 endif.289 when 'B'.290 if num > 5.291 perform pop_confirm using wa_tab-marc_maabc wa_tab-head_material. 292 if flag = 1.293 clear flag.294 continue.295 endif.296 endif.297 when others.298 perform pop_confirm using wa_tab-marc_maabc wa_tab-head_material. 299 if flag = 1.300 clear flag.301 continue.302 endif.303 endcase.304 endif.305306 clear headdata.307 headdata-material = wa_tab-head_material.308 headdata-matl_type = wa_tab-head_matl_type.309 headdata-ind_sector = wa_tab-head_ind_sector.310 headdata-basic_view = 'X'. "基本数据视图311 headdata-sales_view = 'X'. "销售视图312 headdata-purchase_view = 'X'. "采购视图313 headdata-mrp_view = 'X'. "物料需求计划(MRP)视图314* headdata-forecast_view = 'X'. "预测视图315 headdata-warehouse_view = 'X'. "⼯作计划视图316 headdata-account_view = 'X'. "会计视图317 headdata-cost_view = 'X'. "成本视图318319*基本数据320 clear pr_unit.321 perform frm_unit using wa_tab-mara_base_uom changing pr_unit."基本单位 322 clear: clientdata.323 clientdata-base_uom = pr_unit. "基本计量单位324 clientdata-matl_group = wa_tab-mara_matl_group. "物料组325 clientdata-item_cat = wa_tab-mara_item_cat. "普通项⽬类别组326 clientdata-trans_grp = wa_tab-mara_trans_grp. "运输组327 clientdata-extmatlgrp = wa_tab-mara_extwg. "客户328 clientdata-basic_matl = wa_tab-mara_wrkst. "基本物料329 clientdata-high_visc = wa_tab-mara_ihivi. "是否客供330 clientdata-document = wa_tab-mara_zeinr. "客户物料编码331 clear clientdatax.332 clientdatax-base_uom = 'X'. "基本计量单位333 clientdatax-matl_group = 'X'.334 clientdatax-item_cat = 'X'.335 clientdatax-net_weight = 'X'.336 clientdatax-trans_grp = 'X'.337 clientdatax-extmatlgrp = 'X'.338 clientdatax-basic_matl = 'X'.339 clientdatax-high_visc = 'X'.340 clientdatax-document = 'X'.341342*⼯⼚级别数据343 clear:plantdata.344 plantdata-plant = wa_tab-marc_plant. "⼯⼚345 plantdata-availcheck = wa_tab-marc_availcheck. "可⽤性检查346 plantdata-loadinggrp = wa_tab-marc_loadinggrp. "装载组347 plantdata-pur_group = wa_tab-marc_pur_group. "采购组348 plantdata-batch_mgmt = wa_tab-marc_batch_mgmt. "批次管理标⽰349 plantdata-auto_p_ord = wa_tab-marc_auto_p_ord. "⾃动采购订单标识350 plantdata-gr_pr_time = wa_tab-marc_webaz. "⾃动采购订单标识351 plantdata-ind_post_to_insp_stock = wa_tab-marc_insmk. "过账到检验库存 352 plantdata-mrp_group = wa_tab-marc_mrp_group. "MRP组353 plantdata-abc_id = wa_tab-marc_maabc. "ABC标识354 plantdata-mrp_type = wa_tab-marc_mrp_type. "MRP类型355 plantdata-mrp_ctrler = wa_tab-marc_mrp_ctrler. "MRP控制者356 plantdata-lotsizekey = wa_tab-marc_lotsizekey. "批量357 plantdata-minlotsize = wa_tab-marc_minlotsize. "最⼩批量358 plantdata-round_val = wa_tab-marc_round_val. "舍⼊值359 plantdata-proc_type = wa_tab-marc_proc_type. "采购类型360 plantdata-iss_st_loc = wa_tab-marc_lgpro. "⽣产仓储地点361 plantdata-backflush = wa_tab-marc_rgekz. "反冲362 plantdata-sloc_exprc = wa_tab-marc_lgfsb. "外部采购仓储地点363 plantdata-sm_key = wa_tab-marc_sm_key. "计划边际码364 plantdata-plnd_delry = wa_tab-marc_plnd_delry. "计划交货时间365 plantdata-dep_req_id = wa_tab-marc_sbdkz. "集中/独⽴366 plantdata-lot_size = wa_tab-marc_losgr. "批量产品核算367 clear plantdatax.368 plantdatax-plant = wa_tab-marc_plant.369 plantdatax-availcheck = 'X'.370 plantdatax-loadinggrp = 'X'.371 plantdatax-pur_group = 'X'.372 plantdatax-batch_mgmt = 'X'.373 plantdatax-auto_p_ord = 'X'.374 plantdatax-gr_pr_time = 'X'.375 plantdatax-ind_post_to_insp_stock = 'X'.376 plantdatax-mrp_group = 'X'.377 plantdatax-abc_id = 'X'.378 plantdatax-mrp_type = 'X'.379 plantdatax-mrp_ctrler = 'X'.380 plantdatax-lotsizekey = 'X'.381 plantdatax-minlotsize = 'X'.382 plantdatax-round_val = 'X'.383 plantdatax-proc_type = 'X'.384 plantdatax-iss_st_loc = 'X'.385 plantdatax-backflush = 'X'.386 plantdatax-sloc_exprc = 'X'.387 plantdatax-sm_key = 'X'.388 plantdatax-plnd_delry = 'X'.389 plantdatax-dep_req_id = 'X'.390 plantdatax-lot_size = 'X'.391392*销售数据393 clear salesdata.394 salesdata-sales_org = wa_tab-mvke_sales_org. "销售组织395 salesdata-distr_chan = wa_tab-mvke_distr_chan. "分销渠道396 salesdata-delyg_plnt = wa_tab-mvke_dwerk. "交货⼯⼚397 salesdata-cash_disc = wa_tab-mvke_sktof. "现⾦折扣标志398 salesdata-matl_stats = wa_tab-mvke_matl_stats. "物料统计组399 salesdata-acct_assgt = wa_tab-mvke_acct_assgt. "科⽬设置组400 salesdata-item_cat = wa_tab-mvke_item_cat. "项⽬类别组401 clear salesdatax.402 salesdatax-sales_org = wa_tab-mvke_sales_org.403 salesdatax-distr_chan = wa_tab-mvke_distr_chan.404 salesdatax-delyg_plnt = 'X'.405 salesdatax-cash_disc = 'X'.406 salesdatax-matl_stats = 'X'.407 salesdatax-acct_assgt = 'X'.408 salesdatax-item_cat = 'X'.409410**预测411* CLEAR:forecastparameters,forecastparametersx.412* forecastparameters-plant = wa_tab-marc_plant. "⼯⼚413* forecastparameters-fore_model = wa_tab-mpop_prmod. "预测模型414* forecastparametersx-plant = wa_tab-marc_plant.415* forecastparametersx-fore_model = 'X'.416417*会计、成本418 clear valuationdata.419 valuationdata-val_area = wa_tab-marc_plant.420 valuationdata-val_class = wa_tab-mbew_val_class. "评估级别421 valuationdata-ml_settle = wa_tab-mbew_ml_settle. "价格确定422 valuationdata-std_price = wa_tab-mbew_std_price. "标准价格423 valuationdata-moving_pr = wa_tab-mbew_moving_pr. "移动平均价424 valuationdata-price_unit = wa_tab-mbew_price_unit. "价格单位425 valuationdata-price_ctrl = wa_tab-mbew_price_ctrl. "价格控制426 valuationdata-orig_group = wa_tab-mbew_hrkft. "原始组427 valuationdata-orig_mat = wa_tab-mbew_orig_mat. "物料来源428 clear valuationdatax.429 valuationdatax-val_area = wa_tab-marc_plant.430 valuationdatax-val_class = 'X'.431 valuationdatax-ml_settle = 'X'.432 valuationdatax-price_ctrl = 'X'.433 valuationdatax-price_unit = 'X'.434 valuationdatax-moving_pr = 'X'.435 valuationdatax-std_price = 'X'.436 valuationdatax-orig_group = 'X'.437 valuationdatax-orig_mat = 'X'.438439*物料描述440 clear materialdescription[].441 materialdescription-langu_iso = 'ZH'.442 materialdescription-matl_desc = wa_tab-t_makt_matl_desc.443 append materialdescription.444445*单位446 clear unitsofmeasure[].447 unitsofmeasure-alt_unit = pr_unit.448 unitsofmeasure-unit_of_wt = wa_tab-t_marm_unit_of_wt.449 append unitsofmeasure.450 clear unitsofmeasurex[].451 unitsofmeasurex-alt_unit = pr_unit.452 unitsofmeasurex-unit_of_wt = 'X'.453 append unitsofmeasurex.454455*税分类456 clear taxclassifications[].457 taxclassifications-depcountry = 'CN'.458 taxclassifications-tax_type_1 = 'MWST'.459 taxclassifications-taxclass_1 = wa_tab-t_mlan_taxclass1. "税分类460 append taxclassifications.461462 call function'BAPI_MATERIAL_SAVEDATA'463 exporting464 headdata = headdata465 clientdata = clientdata466 clientdatax = clientdatax467 plantdata = plantdata468 plantdatax = plantdatax469 forecastparameters = forecastparameters470 forecastparametersx = forecastparametersx471 valuationdata = valuationdata472 valuationdatax = valuationdatax473 salesdata = salesdata474 salesdatax = salesdatax475 importing476 return = return477 tables478 materialdescription = materialdescription[]479 unitsofmeasure = unitsofmeasure[]480 unitsofmeasurex = unitsofmeasurex481 taxclassifications = taxclassifications[].482 if return-type = 'E'or return-type = 'A'.483 call function'BAPI_TRANSACTION_ROLLBACK'.484 concatenate wa_tab-head_material '原材料—>' return-message into gt_out-text. 485 append gt_out.486 clear gt_out.487 else.488 call function'BAPI_TRANSACTION_COMMIT'489 exporting490 wait = 'X'.491 concatenate wa_tab-head_material '物料创建成功。

SAP常用到的BAPI

SAP常用到的BAPI

SAP项目中开发用到的BAPI:MM模块1、BAPI_MATERIAL_SAVEDATA 创建物料主数据注意参数EXTENSIONIN的使用,可以创建自定义字段例如WA_BAPI_TE_MARA-MATERIAL = ITAB_UP-MATNR.T_EXTENSIONIN-STRUCTURE = 'BAPI_TE_MARA'.T_EXTENSIONIN-VALUEPART1 = WA_BAPI_TE_MARA.APPEND T_EXTENSIONIN.WA_BAPI_TE_MARAX-MATERIAL = ITAB_UP-MATNR.T_EXTENSIONINX-STRUCTURE = 'BAPI_TE_MARAX'.T_EXTENSIONINX-VALUEPART1 = WA_BAPI_TE_MARAX.APPEND T_EXTENSIONINX.2、BAPI_OBJCL_CREATE 分类视图的创建3、BAPI_OBJCL_GETCLASSES 分类视图得到详细信息4、BAPI_MATERIAL_SAVEREPLICA 物料视图的扩充5、BAPI_GOODSMVT_CREATE 创建物料凭证注意表T158G可以决定goodsmvt_code6、BAPI_GOODSMVT_CANCEL 冲销物料凭证7、BAPI_PR_CREATE 创建PR8、BAPI_PO_CREATE1 创建PO9、BAPI_PO_CHANGE 修改PO和删除PO10、WS_REVERSE_GOODS_ISSUE 冲销交货单的过账发货11、BAPI_RESERVATION_CREATE1 创建预留12、BAPI_RESERVATION_CHANGE 修改和删除预留SD模块1、BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单2、SD_SALESDOCUMENT_CREATE 创建销售订单3、BAPI_OUTB_DELIVERY_CREATE_SLS 根据销售订单创建交货单4、BAPI_BILLINGDOC_CREATEMULTIPLE 创建发票,注意参数ref_doc_ca5、BAPI_SALESORDER_CHANGE 修改或者删除销售订单6、MB_CANCEL_GOODS_MOVEMENT 冲销交货单的过账发货7、BAPI_BILLINGDOC_CANCEL 发票的冲销PM模块1、BAPI_OBJCL_CREATE 、BAPI_OBJCL_CHANGE、BAPI_OBJCL_GETDETAIL计量点通用属性导入2、MEASUREM_DOCUM_RFC_SINGLE_001 计量凭证创建FI模块1、K_HIERARCHY_TABLES_READ 成本要素组明细2、BAPI_ACC_DOCUMENT_POST 创建会计凭证3、BAPI_ACC_DOCUMENT_REV_POST 反冲会计凭证PS模块1、BAPI_PS_INITIALIZATION、BAPI_BUS2001_CREATE、BAPI_PS_PRECOMMIT 创建项目定义2、BAPI_PS_INITIALIZATION、BAPI_BUS2054_CREATE_MULTI、BAPI_PS_PRECOMMIT 创建WBS 创建WBS的时候,注意参数wbs_left和wbs_up,这个是创建有层级的WBS必须要填写的3、KBPP_EXTERN_UPDATE_CO 修改项目和WBS的预算BAPI_MATERIAL_SAVEDATA 建立/更改物料主档BAPI_OBJCL_CREATE 建立/更改物料主档分类BAPI_OBJCL_CHANGE 建立/更改物料主档分类CLMM_MAINTAIN_CLASSIFICATIONS 批量建立/更改物料主档分类CLAF_CLASSIFICATION_OF_OBJECTS 显示物料主档分类特性值BAPI_MATERIAL_EXISTENCECHECK 检查物料主档是否存在BAPI_MATERIAL_GETLIST 显示物料主档明细BAPI_PO_CREATE1 建立采购单BAPI_PO_CHANGE 更改采购单BAPI_PO_GETDETAIL 显示采购单明细BAPI_PO_RELEASE 核发采购单BAPI_REQUISITION_CREATE 建立请购单BAPI_REQUISITION_CHANGE 更改请购单BAPI_REQUISITION_GETDETAIL 显示请购单明细BAPI_REQUISITION_RELEASE_GEN 核发请购单BAPI_CHARACT_CREATE 建立特性BAPI_CHARACT_CHANGE 更改特性BAPI_CHARACT_DELETE 删除特性BAPI_CHARACT_RENAME 重新命名特性BAPI_CHARACT_GETDETAIL 读取特性属性BAPI_CHARACT_ADDLONGTEXT 设定特性或数值的长文BAPI_CHARACT_REMOVELONGTEXT 删除特性或数值的长文BAPI_CHARACT_GETLONGTEXT 读取数值的特性长文CARD_CHARACTERISTIC_READ 显示特性值的值列表BAPI_CLASS_CREATE 建立类别BAPI_CLASS_CHANGE 变更类别BAPI_CLASS_DELETE 删除类别BAPI_CLASS_GETDETAIL 读取类别资讯(取分类下特性及特性值) BAPI_CLASS_EXISTENCECHECK 检查物件存在性BAPI_VENDOR_GETDETAIL 显示供应商明细BAPI_VENDOR_EXISTENCECHECK 检查存在性BAPI_MATERIALGROUP_GET_LIST 读取物料群组/物料群组说明BAPI_GOODSMVT_CREATE 过帐物料异动BAPI_GOODSMVT_CANCEL 冲帐(取消)物料异动BAPI_GOODSMVT_GETDETAIL 显示物料异动明细BAPI_GOODSMVT_GETITEMS 显示物料文件的明细清单。

BAPI导入物料主数据

BAPI导入物料主数据

BAPI导入物料主数据REPORT ZMMMDE001 NO STANDARD PAGE HEADING LINE-SIZE 170 MESSAGE-ID MG.*----------------------------------------------------------------------* * Program : ZMMMDE001 * * Author : Patrick,Song * * Date : Sep 10, 2008 * * Code type : conversion * * Version : new creation * * (interface/conversion/on-line transaction/report) * * * *----------------------------------------------------------------------* * Error handling : * *----------------------------------------------------------------------* * 1. * * * *----------------------------------------------------------------------* * Change log : * *----------------------------------------------------------------------* * CR# : * * Corr. no. : * * Date : * * Author : * * Change : * * * *----------------------------------------------------------------------**----------------------------------------------------------------------* * include program & subrouting * *----------------------------------------------------------------------* INCLUDE : ZBCDWI000 .TYPE-POOLS: KCDE.TYPE-POOLS: SLIS.*----------------------------------------------------------------------* * tables declaration * *----------------------------------------------------------------------* TABLES: AUSP, " Characteristic Values MARC, " Plant Data for MaterialMARA, " General Material DataMVKE, " Sales Data for MaterialT001L, " Storage LocationsT006A, " Assign Internal to Language-Dependent UnitT134. " Material Types*----------------------------------------------------------------------** selection screen definition * *----------------------------------------------------------------------* * Input file information block B1 SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-SC1 . PARAMETER: P_BASIC LIKE RLGRAP-FILENAME OBLIGATORY .PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY .SELECTION-SCREEN END OF BLOCK A1.PARAMETERS: P_MMAM AS CHECKBOX DEFAULT SPACE .PARAMETERS: P_MARC AS CHECKBOX DEFAULT SPACE .PARAMETERS: P_QMDATA AS CHECKBOX DEFAULT SPACE .*PARAMETERS: P_CLASS AS CHECKBOX .PARAMETERS: P_BKJOB AS CHECKBOX DEFAULT SPACE .*----------------------------------------------------------------------* * Internal tables and field strings * *----------------------------------------------------------------------* *-* to store uploaded data * define table to store tempoary data => Material Views Selection DATA INT_TAB TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.*----------------------------------------------------------------------* * Global program variables * *----------------------------------------------------------------------* * TO STORE MATERIAL MASTER DATA WHICH NEED TO BE UPLOADED*** Generated data section with specific formatting - DO NOT CHANGE *** DATA: BEGIN OF ITAB OCCURS 0.DATA: MATNR(018). "物料号 ****DATA: BISMT(018). "旧物料号****DATA: MAKTX(040). "物料描述****DATA: MBRSH(001). "行业领域****DATA: MTART(004). "物料类型****DATA: WERKS(004). "工厂 ****DATA: LGORT(004). "库存地点****DATA: VKORG(004). "销售组织****DATA: VTWEG(002). "分销渠道****DATA: MEINS(003). "基本计量单位****DATA: SPART(002). "产品组****DATA: MSTAE(002). "跨工厂物料状态DATA: MATKL(009). "物料组****DATA: GEWEI(003). "重量单位****DATA: BRGEW(017). "毛重***DATA: NTGEW(017). "净重***DATA: ZEINR(022). "产品图号***DATA: KLART(003). "类别种类**** DATA: CLASS_01(018). "类别**** DATA: MWERT_SCR(030). "安规标准**** DATA: MWERT_SER(030). "产品系列号**** DATA: MWERT_DESC1(090). "物料描述1**** DATA: MWERT_DESC11(030). "物料描述1**** DATA: MWERT_DESC12(030). "物料描述1**** DATA: MWERT_DESC2(090). "物料描述2**** DATA: MWERT_DESC21(030). "物料描述2**** DATA:MWERT_DESC22(030). "物料描述2**** DATA: EKGRP(003). "采购组 **** DATA: BSTME(003). "订单单位 **** DATA: UMREN(006). "转换比例中订单单位数量DATA: WEBAZ(003). "收货处理时间 **** DATA: KORDB(001). "货源清单**** DATA: USEQU(001). "配额安排 **** DATA: KZKRI(001). "是否合同管控***** DATA: DWERK(004). "交货工厂***** DATA: SPART_GRP(002). "产品组***** DATA: TAXKM(001). "税***** DATA: VERSG(001). "物料统计组***** DATA: KONDM(002). "物料定价组***** DATA: KTGRM(002). "科目设置组***** DATA: MTPOS(004). "项目类别组***** DATA: BOX01(006). "每箱对应的产品数量***** DATA: BOX02(006). "每栈板对应的产品数量*****DATA: TRAGR(004). "运输组 ***** DATA: LADGR(004). "装载组 ***** DATA: MTVFP(002). "可用性检查 ***** DATA: DISMM(002). "MRP 类型 **** DATA: DISGR(004). "MRP组 **** DATA: DISPO(003). "MRP 控制者 ******DATA: DISLS(002). "批量大小 **** DATA: BSTRF(017). "舍入值 **** DATA: BESKZ(001). "采购类型 * **** DATA: SOBSL(002). "特殊采购类 **** DATA: RGEKZ(001). "反冲 **** DATA: LGPRO(004). "生产仓储地点 ***** DATA: LGFSB(004). "外部采购仓储地点* DATA: DZEIT(003). "自制生产时间 **** DATA: WEBAZ_GR(003). "收货处理时间 **** DATA: PLIFZ(003). "计划交货时间 **** DATA: FHORI(003). "计划边际码 **** DATA: EISBE(017). "安全库存**** DATA: PERKZ(001). "期间标识 **** DATA: KAUSF(006). "部件废品(%)**** DATA: MTVFP1(002). "可用性检查 **** DATA: SBDKZ(001). "独立/集中**** DATA: XCHPF(001). "批次管理 **** DATA: LGPBE(010). "库存仓位 **** DATA: INSMK(001). "过帐到检验库存*** DATA: PRFRQ(006). "检查间隔天数**** DATA: QMPUR(001). "QM采购激活 **** DATA: SSQSS(008). "QM 控制码**** DATA: AKTIV_01(001). "激活检验类型01*** DATA: AKTIV_03(001). "激活检验类型03*** DATA: AKTIV_04(001). "激活检验类型04*** DATA:AKTIV_05(001). "激活检验类型05*** DATA: AKTIV_09(001). "激活检验类型09*** DATA: BKLAS(004). "评估类 **** DATA: VPRSV(001). "价格控制 **** DATA: PEINH(006). "价格单位 **** DATA: VERPR(015). "移动平均价 **** DATA: STPRS(015). "标准价格 **** DATA: EKALR(001). "物料根据数量结构进行成本核算*****DATA: HKMAT(001). "物料来源 **** DATA: HRKFT(004). "原始组 **** DATA: KOSGR(010). "间接费分组 **** DATA: AWSLS(006). "差异码 **** DATA:ZPLP1(014). "未来计划价格1**** DATA: ZPLD1(010). "未来计划价格1日期*****DATA: ZPLP2(014). "未来计划价格2**** DATA: ZPLD2(010). "未来计划价格2日期*****DATA: UMREZ(006). "转换比例fm DATA: END OF ITAB.* define internal table to store views selection for material type & plantDATA: BEGIN OF VWS_ITAB OCCURS 0 .DATA: MTART(004) TYPE C. " Material Type DATA: BASIC_VIEWS(001) TYPE C. " Flag for Basic View DATA: CLASS_VIEWS(001) TYPE C. " Flag for ClassificationDATA: WERKS(004) TYPE C. " Plant DataDATA: PROCUREMENT(001) TYPE C. " Flag for procurement TypeDATA: SALES_VIEWS(001) TYPE C. " Flag for Sales ViewsDATA: PURCH_VIEWS(001) TYPE C. " Flag for Purchasing ViewsDATA: MRP_VIEWS(001) TYPE C. " Flag for MRP ViewsDATA: WKSCH_VIEWS(001) TYPE C. " Flag for Work ScheduleDATA: FOREC_VIEWS(001) TYPE C. " Flag for ForecastingDATA: PRT_VIEWS(001) TYPE C. " Flag for PRT ToolsDATA: STORAGE_VIEW(001) TYPE C. " Flag for storage viewsDATA: WH_VIEWS(001) TYPE C. " Flag for Warehouse Management DATA: QA_VIEWS(001) TYPE C. " Flag for Quality Management DATA:ACCTS_VIEWS(001) TYPE C. " Flag for AccountingsDATA: COSTS_VIEWS(001) TYPE C. " Flag for CostingsDATA: BATCH_MANAGE(001) TYPE C. " Flag for Batch ManagementDATA: REMARKS(020) TYPE C. " RemarksDATA: END OF VWS_ITAB.CONSTANTS: XFLAG(001) TYPE C VALUE 'X'.DATA : L_CLASS(001) TYPE C .DATA: LINE_CNT TYPE I .**-* *-* *-* define internal table for BAPI function call *-* *-* *-* *-* *-* *-* Material DescriptionsDATA: MATERIALDESCRIPTION LIKE BAPI_MAKT OCCURS 0 WITH HEADER LINE . *-* Units of MeasureDATA: UNITSOFMEASURE LIKE BAPI_MARM OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for BAPI_MARMDATA: UNITSOFMEASUREX LIKE BAPI_MARMX OCCURS 0 WITH HEADER LINE . *-* International Article Numbers (EANs)DATA: INTERNATIONALARTNOS LIKE BAPI_MEAN OCCURS 0 WITH HEADER LINE . *-* Long TextsDATA: MATERIALLONGTEXT LIKE BAPI_MLTX OCCURS 0 WITH HEADER LINE . *-* Tax DataDATA: TAXCLASSIFICATIONS LIKE BAPI_MLAN OCCURS 0 WITH HEADER LINE .*-* Substitute Structure for Return Parameter BAPIRET2DATA: RETURNMESSAGES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE . *-* Production Resource Tool (PRT) Fields in the Material Master DATA: PRTDATA LIKE BAPI_MFHM OCCURS 0 WITH HEADER LINE . *-* CheckboxStructure for BAPI_MFHMDATA: PRTDATAX LIKE BAPI_MFHMX OCCURS 0 WITH HEADER LINE . *-* Ref. structure for BAPI parameter ExtensionIn/ExtensionOut DATA: EXTENSIONIN LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for Extension In/Extension OutDATA: EXTENSIONINX LIKE BAPIPAREXX OCCURS 0 WITH HEADER LINE .*-* /NFM/: NF Charge Weights for Materials on Org. LevelDATA: NFMCHARGEWEIGHTS LIKE /NFM/BAPITVGW OCCURS 0 WITH HEADER LINE . *-* /NFM/: Update Information for /NFM/BAPDATA: NFMCHARGEWEIGHTSX LIKE /NFM/BAPITVGWX OCCURS 0 WITH HEADERLINE . *-* /NFM/: NF Structural WeightsDATA: NFMSTRUCTURALWEIGHTS LIKE /NFM/BAPITKGW OCCURS 0 WITH HEADER LINE . *-* /NFM/: Update Information for /NFM/BAPITKGWDATA: NFMSTRUCTURALWEIGHTSX LIKE /NFM/BAPITKGWX OCCURS 0 WITH HEADER LINE . *-* Returned ParametersDATA: RETURN LIKE BAPIRET2." OCCURS 0 WITH HEADER LINE .*DATA: INSPECTIONCTRL LIKE BAPI1001004_QMAT OCCURS 0 WITH HEADERLINE . *DATA: QM_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.* define structure data for BAPIs function of material mastercreation DATA: HEADDATA LIKE BAPIMATHEAD. "Header Segment with Control InformationDATA: CLIENTDATA LIKE BAPI_MARA. "Material Data at Client Level DATA: CLIENTDATAX LIKE BAPI_MARAX. "Checkbox Structure for BAPI_MARA DATA: PLANTDATA LIKE BAPI_MARC. "Material Data at Plant Level DATA: PLANTDATAX LIKE BAPI_MARCX. "Checkbox Structure for BAPI_MARC DATA: FORECASTPARAMETERS LIKE BAPI_MPOP. "Forecast Parameters DATA: FORECASTPARAMETERSX LIKE BAPI_MPOPX. "Checkbox Structure for BAPI_MPOP DATA: PLANNINGDATA LIKE BAPI_MPGD. "Change Document Structure for Material Master/Product GroupDATA: PLANNINGDATAX LIKE BAPI_MPGDX. "Checkbox Structure forBAPI_MPGDDATA: STORAGELOCATIONDATA LIKE BAPI_MARD. "Material Data at Storage Location LevelDATA: STORAGELOCATIONDATAX LIKE BAPI_MARDX. "Checkbox Structure for BAPI_MARDDATA: VALUATIONDATA LIKE BAPI_MBEW. "Valuation DataDATA: VALUATIONDATAX LIKE BAPI_MBEWX. "Checkbox Structure forBAPI_MBEWDATA: WAREHOUSENUMBERDATA LIKE BAPI_MLGN. "Warehouse Number Data DATA: WAREHOUSENUMBERDATAX LIKE BAPI_MLGNX. "Checkbox Structure for BAPI_MLGNDATA: SALESDATA LIKE BAPI_MVKE. "Sales DataDATA: SALESDATAX LIKE BAPI_MVKEX. "Checkbox Structure for BAPI_MVKEDATA: STORAGETYPEDATA LIKE BAPI_MLGT. "Storage Type Data DATA: STORAGETYPEDATAX LIKE BAPI_MLGTX. "Checkbox Structure for BAPI_MLG T*Batchinputdata of single transactionDATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. *Messages of call transactionDATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. * define internal table to store uploading result ... DATA: BEGIN OF I_RESULT OCCURS 0.DATA: MATNR LIKE ITAB-MATNR.DATA: WERKS LIKE ITAB-WERKS.DATA: MTART LIKE ITAB-MTART.DATA: MAKTX LIKE ITAB-MAKTX.DATA: MEINS LIKE ITAB-MEINS.INCLUDE STRUCTURE RETURNMESSAGES.DATA: QMVIEWS(001).DATA: MESSAGE01 LIKE RETURNMESSAGES-MESSAGE.DATA: MESSAGE02 LIKE RETURNMESSAGES-MESSAGE.DATA: SELK(001) TYPE C .DATA: END OF I_RESULT.DATA: BEGIN OF I_ERROR OCCURS 0.DATA: MATNR LIKE ITAB-MATNR.DATA: WERKS LIKE ITAB-WERKS.DATA: MTART LIKE ITAB-MTART.DATA: MEINS LIKE ITAB-MEINS.DATA: END OF I_ERROR.*-* define parameter to store line countDATA: LINE TYPE I.DATA: L_CNT TYPE I.DATA: INT_CNT TYPE I .DATA: GIT_BAPI1003 LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0 WITH HEADER LINE,GIT_VALUES_CHAR LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0 WITH HEADER LINE,GIT_VALUES_CURR LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0 WITH HEADER LINE,GIT_VALUES_LIST LIKE BAPI1003_ALLOC_LIST OCCURS 0 WITH HEADER LINE, GIT_BAPIRET2 LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,LS_BAPIRET2 TYPE BAPIRET2.DATA: GS_BAPI1003 TYPE BAPI1003_ALLOC_VALUES_NUM,GS_VALUES_CHAR TYPE BAPI1003_ALLOC_VALUES_CHAR,GS_VALUES_CURR TYPE BAPI1003_ALLOC_VALUES_CURR,GC_FLAG_X(1) TYPE C VALUE 'X'.DATA: G_MATNR_CHK LIKE ITAB-MATNR .DATA: M_MATNR_CHK LIKE ITAB-MATNR .DATA: S_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_ST01',S_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND-ALV'.*----------------------------------------------------------------------* * TOP-OF-PAGE.*----------------------------------------------------------------------* TOP-OF-PAGE.PERFORM COLUMN_HEADER.*----------------------------------------------------------------------* * initialization. * *----------------------------------------------------------------------* INITIALIZATION.REFRESH: ITAB, VWS_ITAB, BDCDATA, MESSTAB, I_RESULT, I_ERROR.CLEAR : ITAB, VWS_ITAB, BDCDATA, MESSTAB, I_RESULT, I_ERROR.IF SY-UNAME CA 'USER'.* set default value for data migration => Background JobP_BKJOB = 'X'.ENDIF .*----------------------------------------------------------------------* * At Selection-screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.CALL FUNCTION 'WS_FILENAME_GET' "Get file nameEXPORTING* DEF_FILENAME = ' '* DEF_PATH = ' 'MASK = ',*.* ,*.*.'MODE = '0'TITLE = TEXT-H10IMPORTINGFILENAME = P_FILE* RC =EXCEPTIONSINV_WINSYS = 1NO_BATCH = 2SELECTION_CANCEL = 3SELECTION_ERROR = 4OTHERS = 5.IF SY-SUBRC <> 0.* MESSAGE E016 WITH P_PATH.ENDIF.*----------------------------------------------------------------------* * At Selection-screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BASIC.CALL FUNCTION 'WS_FILENAME_GET' "Get file nameEXPORTING* DEF_FILENAME = ' '* DEF_PATH = ' 'MASK = ',*.* ,*.*.'MODE = '0'TITLE = TEXT-H10IMPORTINGFILENAME = P_BASIC* RC =EXCEPTIONSINV_WINSYS = 1NO_BATCH = 2SELECTION_CANCEL = 3SELECTION_ERROR = 4OTHERS = 5.IF SY-SUBRC <> 0.* MESSAGE E016 WITH P_PATH.ENDIF.*--------------------------------------------------------------------* * at selection-screen output*--------------------------------------------------------------------* AT SELECTION-SCREEN ON P_MMAM .IF NOT P_MMAM IS INITIAL .MOVE XFLAG TO P_MARC.MOVE XFLAG TO P_QMDATA.ENDIF.*--------------------------------------------------------------------* * at selection-screen output*--------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT .* PERFORM MODIFY_SCREEN .*----------------------------------------------------------------------* * Start-of-selection * *----------------------------------------------------------------------* START-OF-SELECTION.PERFORM DETERMINE_MATERIAL_VIEWS .PERFORM UPLOAD_DATA.SORT ITAB BY MATNR WERKS DESCENDING.CLEAR: LINE_CNT .DESCRIBE TABLE ITAB LINES LINE_CNT .LOOP AT ITAB .TRANSLATE ITAB-MATNR TO UPPER CASE .TRANSLATE ITAB-GEWEI TO UPPER CASE .ITAB-MWERT_DESC11 = ITAB-MWERT_DESC1+30(30).ITAB-MWERT_DESC12 = ITAB-MWERT_DESC1+60(30).ITAB-MWERT_DESC1 = ITAB-MWERT_DESC1+0(30).ITAB-MWERT_DESC21 = ITAB-MWERT_DESC2+30(30).ITAB-MWERT_DESC22 = ITAB-MWERT_DESC2+60(30).ITAB-MWERT_DESC2 = ITAB-MWERT_DESC2+0(30).IF NOT ITAB-MATNR IS INITIAL .PERFORM FORMAT_ALPHA_OUTPUT CHANGING ITAB-MATNR . WRITE:/ ITAB-MATNR UNDER TEXT-C01,ITAB-MAKTX UNDER TEXT-C06,ITAB-NTGEW UNDER TEXT-C08,ITAB-MTART UNDER TEXT-C03,ITAB-WERKS UNDER TEXT-C02,ITAB-VKORG UNDER TEXT-C09,ITAB-LGPRO UNDER TEXT-C10,ITAB-LGFSB UNDER TEXT-C11,ITAB-LGORT UNDER TEXT-C04,ITAB-BESKZ UNDER TEXT-C05,ITAB-SOBSL UNDER TEXT-C07.IF ITAB-WERKS = '1005' OR ITAB-WERKS = '1006'.MOVE 'F' TO ITAB-BESKZ.ENDIF .IF ITAB-BESKZ IS INITIAL AND ( ITAB-MTART EQ 'ROH' ORITAB-MTART EQ 'ROH1' ORITAB-MTART EQ 'ROH2' ORITAB-MTART EQ 'ROH3' ORITAB-MTART EQ 'UNBW' ORITAB-MTART EQ 'LEIH' ).MOVE 'F' TO ITAB-BESKZ.ENDIF .* Check if MRP Controller is fit for Plant and Material Type or notIF ITAB-WERKS = '2001' OR ITAB-WERKS = '2003' OR ITAB-WERKS = '2004'. IF ITAB-MTART EQ 'ROH'.IF ITAB-DISPO+0(1) NE 'M'.MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF.ENDIF.ENDIF .IF ITAB-WERKS = '2001' OR ITAB-WERKS = '2003' OR ITAB-WERKS = '2004'. IF ITAB-MTART EQ 'HALB'.IF ITAB-DISPO+0(1) EQ 'M'.MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF.ENDIF.ENDIF .IF ITAB-BRGEW = 'G' OR ITAB-BRGEW = 'g' .MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF .MODIFY ITAB .ELSE.DELETE ITAB .ENDIF .ENDLOOP .*----------------------------------------------------------------------* * End-of-selection * *----------------------------------------------------------------------* END-OF-SELECTION.IF I_ERROR[] IS INITIAL.SET PF-STATUS 'P1100'.ELSE.WRITE:/ '请检查以下物料各个字段值:'.ULINE .LOOP AT I_ERROR .WRITE: / I_ERROR-MATNR COLOR COL_NEGATIVE,I_ERROR-WERKS COLOR COL_NEGATIVE.ENDLOOP .ENDIF .WRITE:/ TEXT-T00, LINE_CNT COLOR COL_KEY.*----------------------------------------------------------------------* * at user-command * *----------------------------------------------------------------------* AT USER-COMMAND .CASE SY-UCOMM .WHEN 'MDRCRT' .REFRESH: I_RESULT .CLEAR : I_RESULT .PERFORM MATERIAL_MAINTAIN .PERFORM PREPARE_ALV_FIELDS.PERFORM DISPLAY_ALV_RESULT.ENDCASE .*----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM BDC_DYNPRO USING PROGRAM DYNPRO.CLEAR BDCDATA.BDCDATA-PROGRAM = PROGRAM.BDCDATA-DYNPRO = DYNPRO.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.ENDFORM. "BDC_DYNPRO*----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------* FORM BDC_FIELD USING FNAM FVAL.CLEAR BDCDATA.BDCDATA-FNAM = FNAM.BDCDATA-FVAL = FVAL.APPEND BDCDATA.ENDFORM. "BDC_FIELD*&---------------------------------------------------------------------**& Form UPLOAD_DATA*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM UPLOAD_DATA .CALL FUNCTION 'UPLOAD'EXPORTINGFILENAME = P_FILEFILETYPE = 'DAT'TABLESDATA_TAB = ITABEXCEPTIONSCONVERSION_ERROR = 1INVALID_TABLE_WIDTH = 2INVALID_TYPE = 3NO_BATCH = 4UNKNOWN_ERROR = 5GUI_REFUSE_FILETRANSFER = 6OTHERS = 7.IF ITAB[] IS INITIAL.MESSAGE '导入数据为空,请确认后重新导入! ' TYPE 'I'.EXIT.ENDIF.ENDFORM. " UPLOAD_DATA*&---------------------------------------------------------------------* *& Form MATERIAL_MAINTAIN*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM MATERIAL_MAINTAIN .DATA: L_MARA TYPE I .DATA: L_QMATV LIKE MARC-QMATV .DATA: L_MARC(001).DATA: N_MATNR_CHK LIKE ITAB-MATNR .DATA: O_MATNR_CHK LIKE ITAB-MATNR .CLEAR: N_MATNR_CHK, O_MATNR_CHK.SORT VWS_ITAB BY MTART.IF NOT P_BKJOB IS INITIAL .PERFORM OPEN_GROUP .ENDIF .LOOP AT ITAB .CLEAR: L_CLASS, L_QMATV, L_MARC, L_MARA. * move-corresponding data to header data => HEADDATACLEAR: HEADDATA,CLIENTDATA, CLIENTDATA,PLANTDATA, PLANTDATAX,FORECASTPARAMETERS, FORECASTPARAMETERSX,PLANNINGDATA, PLANNINGDATAX,STORAGELOCATIONDATA, STORAGELOCATIONDATAX,VALUATIONDATA, VALUATIONDATAX,WAREHOUSENUMBERDATA, WAREHOUSENUMBERDATAX,SALESDATA, SALESDATAX,STORAGETYPEDATA, STORAGETYPEDATAX. * get customizing views which need to be selectedCLEAR: VWS_ITAB .READ TABLE VWS_ITAB WITH KEY MTART = ITAB-MTARTWERKS = ITAB-WERKSPROCUREMENT = ITAB-BESKZ . ***** Check Material Plant Data Maintain Or NotCLEAR: MARC .SELECT SINGLE * FROM MARC CLIENT SPECIFIEDWHERE MANDT EQ SY-MANDTAND MATNR EQ ITAB-MATNRAND WERKS EQ ITAB-WERKS .IF SY-SUBRC EQ 0 .IF ITAB-WERKS EQ '2001' ORITAB-WERKS EQ '2003' ORITAB-WERKS EQ '2004' .MOVE MARC-QMATV TO L_QMATV .ELSE .MOVE XFLAG TO L_QMATV.* CLEAR: L_QMATV.ENDIF .MOVE XFLAG TO L_MARC .ELSE.IF ITAB-WERKS EQ '1005' OR ITAB-WERKS EQ '1006'.MOVE XFLAG TO L_QMATV.ELSE.CLEAR: L_QMATV.ENDIF.CLEAR: L_MARC .ENDIF .*** Update QM Data or notIF NOT P_QMDATA IS INITIAL .IF ITAB-WERKS EQ '1005' OR ITAB-WERKS EQ '1006'. MOVE XFLAG TO L_QMATV.ELSE.CLEAR: L_QMATV.ENDIF.ENDIF .*** Update Plant Data or notIF NOT P_MARC IS INITIAL .CLEAR: L_MARC .ENDIF .IF L_MARC IS INITIAL.IF NOT P_MMAM IS INITIAL .CLEAR: MARA .SELECT SINGLE * FROM MARA CLIENT SPECIFIED WHERE MANDT EQ SY-MANDTAND MATNR EQ ITAB-MATNR .IF SY-SUBRC = 0.IF ITAB-MTART <> MARA-MTART .PERFORM MATERIAL_TYPE_CHANGE .ENDIF .ENDIF .ENDIF .* Conver value to uper caseTRANSLATE ITAB-MEINS TO UPPER CASE.IF ITAB-MEINS EQ 'G' OR ITAB-MEINS EQ 'g'.ITAB-MEINS = 'g'.ELSE.TRANSLATE ITAB-MEINS TO UPPER CASE.ENDIF .TRANSLATE ITAB-GEWEI TO UPPER CASE.PERFORM MAP_MATERIAL_DESCRIPTION .PERFORM MAP_MATERIAL_MASTER_DATA . * determine & select views for material maintainCASE VWS_ITAB-BASIC_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-BASIC_VIEW. "Basic ViewsENDCASE.CASE VWS_ITAB-SALES_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'. " If phantom item, not required for Accts & Costs % QA Views** assign plant data & ** assign update informationIF NOT ITAB-VKORG IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-SALES_VIEW. "Sales Views PERFORM MAP_SALES_DATA .ENDIF .ENDIF.ENDCASE .CASE VWS_ITAB-PURCH_VIEWS.WHEN 'X'.** assign plant data & ** assign update information IF ITAB-SOBSL NE '50'.IF NOT ITAB-EKGRP IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-PURCHASE_VIEW."Purchasing View PERFORM MAP_PURCHASING_DATA .ENDIF .ENDIF .ENDCASE .************ MRP VIEWS ****************CASE VWS_ITAB-MRP_VIEWS.WHEN 'X'.** assign plant data & ** assign update information IF NOT ITAB-DISMM IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-MRP_VIEW. "MRP ViewsPERFORM MAP_MRP_DATA .ENDIF .ENDCASE .************ FORECASTING VIEWS ****************CASE VWS_ITAB-FOREC_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-FORECAST_VIEW."Forecasting View ** assign plant data & ** assign update information MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDCASE .************ WORK SCHEDULING VIEWS **************** CASE VWS_ITAB-WKSCH_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'.MOVE XFLAG TO HEADDATA-WORK_SCHED_VIEW."Work Scheduling ** assign plant data & ** assign update information MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDIF .ENDCASE .************ PRT VIEWS ****************CASE VWS_ITAB-PRT_VIEWS.WHEN 'X'. MOVE XFLAG TO HEADDATA-PRT_VIEW. "PRT Views ENDCASE .************ STORAGE VIEWS ****************CASE VWS_ITAB-STORAGE_VIEW.WHEN 'X'.** assign plant data & ** assign update information IF ITAB-SOBSL NE '50'.MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_STORAGE_DATA .ENDIF .WHEN SPACE.IF ITAB-MTART = 'ABF'.IF NOT ITAB-LGORT IS INITIAL ORNOT ITAB-LGPRO IS INITIAL ORNOT ITAB-LGFSB IS INITIAL.MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_STORAGE_DATA .ENDIF .ENDIF .ENDCASE .************ WAREHOUSE MANAGEMENT VIEWS ****************CASE VWS_ITAB-WH_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-WAREHOUSE_VIEW. " ** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDCASE .************ QA VIEWS ****************CASE VWS_ITAB-QA_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'.** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_QA_DATA.ENDIF.ENDCASE .************ ACCOUNTING & COSTINGS VIEWS ****************CASE VWS_ITAB-ACCTS_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50' AND ITAB-MTART NE 'ABF'.IF NOT ITAB-BKLAS IS INITIAL .MOVE XFLAG TO HEADDATA-ACCOUNT_VIEW. "Accounting DataMOVE XFLAG TO HEADDATA-COST_VIEW. "Costing DataPERFORM MAP_FICO_DATA .ENDIF .** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDIF .ENDCASE .************ BATCH MANAGEMENT ****************CASE VWS_ITAB-BATCH_MANAGE.WHEN 'X'.MOVE ITAB-XCHPF TO CLIENTDATA-BATCH_MGMT . "Batch management requ irement indicatorMOVE XFLAG TO CLIENTDATAX-BATCH_MGMT . "Batch management requ irement indicatorENDCASE.CLEAR : RETURN.CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'EXPORTINGHEADDATA = HEADDATACLIENTDATA = CLIENTDATACLIENTDATAX = CLIENTDATAXPLANTDATA = PLANTDATAPLANTDATAX = PLANTDATAX FORECASTPARAMETERS = FORECASTPARAMETERS FORECASTPARAMETERSX = FORECASTPARAMETERSX PLANNINGDATA = PLANNINGDATA PLANNINGDATAX = PLANNINGDATAX STORAGELOCATIONDATA = STORAGELOCATIONDATA STORAGELOCATIONDATAX = STORAGELOCATIONDATAX VALUATIONDATA = VALUATIONDATA VALUATIONDATAX = VALUATIONDATAX WAREHOUSENUMBERDATA = WAREHOUSENUMBERDATA WAREHOUSENUMBERDATAX = WAREHOUSENUMBERDATAX SALESDATA = SALESDATASALESDATAX = SALESDATAX STORAGETYPEDATA = STORAGETYPEDATA STORAGETYPEDATAX = STORAGETYPEDATAXFLAG_ONLINE = SPACEFLAG_CAD_CALL = SPACENO_DEQUEUE = SPACENO_ROLLBACK_WORK = SPACEIMPORTINGRETURN = RETURNTABLESMATERIALDESCRIPTION = MATERIALDESCRIPTION UNITSOFMEASURE = UNITSOFMEASURE。

物料主数据新增字段及BAPI导入

物料主数据新增字段及BAPI导入

物料主数据新增字段及BAPI导入基本信息:修改记录:目录基本信息: (1)修改记录: (1)1场景描述 (3)2功能实现 (3)2.1步骤概览 (3)2.2附加结构 (3)2.3创建屏幕 (6)2.4配置新建屏幕 (8)3测试结果 (10)3.1 展示测试 (10)3.2 逻辑流测试 (10)1 场景描述物料主数据MARA增加以下字段,即在物料主数据标准视图上新签页签,页签包含如下字段:2功能实现2.1步骤概览要进行该功能的实现要进行以下步骤:1.在MARA表里附加结构;2.配置函数组;3.创建新屏幕;4.配置新建屏幕。

2.2附加结构1.点击“附加结构”:2.创建3.创建完成2.3配置函数组1.进入配置点2.创建函数组2.4创建屏幕1.复制屏幕备注:创建函数组都会产生一个名为:SAPL+函数组名的程序2.画屏幕,并指定新增字段到相应的位置:3.重新定义屏幕逻辑流,使得写入到屏幕的数据能正常的保存到MARA表中:2.5配置新建屏幕1.找到配置点2.在“屏幕顺序”为21处,进行配置(备注:之前以为要打“离散行业”的包生成DI的屏幕顺序才能配置,其实不然!)9001为新建屏幕3测试结果3.1 展示测试3.2 逻辑流测试4 运用BAPI对新增字段进行导入4.1附加结构在结构BAPI_TE_MARA和结构BAPI_TE_MARAX中加入与MARA自定义的相同的字段4.2 在SPRO中配置字段1.点击新条目,新建字段分配2.字段名称填入自己添加到MARA表中的字段3.维护状态填入K,基本数据4.3 如何使用BAPI参考:/thread/2000494。

SAP物料管理中主数据视图及主数据的收集,整理和导入4页word

SAP物料管理中主数据视图及主数据的收集,整理和导入4页word

SAP物料管理中主数据视图及主数据的收集,整理和导入在SAP物料主数据中,一条完整的物料主数据包括了一个企业中的各个职能部门的信息,在系统中以基本视图,销售视图,采购视图,MRP(Material Requirement Planning)视图(生产视图),仓库视图,财务视图等体现,每一个视图里的字段与实际的业务操作息息相关。

1、物料主数据视图及主要字段(1)本视图包含的是物料的基本信息,包括物料编码、物料描述、基本计量单位、重量(净重、毛重)、尺寸、品牌及附加数据等等。

这些信息都是唯一的。

基本计量单位是个相当关键和敏感的字段,基本计量单位跟采购单位,销售单位和财务核算单位有着密切的关系,如果采购和销售的单位跟基本单位不一致,必须要单独维护两者间的关系,而财务核算的成本价必须严格按照基本计量单位来计算,所以制定基本计量单位时,需要通公司的各个部门统一确认,一旦进入系统后,如需修改,需要在特定的条件和环境下方能执行。

(2)销售视图是基于销售组织和分销渠道(如直销和分销)的。

不同的销售组织和分销渠道可以维护不同的销售视图。

(3)采购,生产,仓库和财务视图是基于工厂的,不同的工厂可以定义不同的视图信息。

采购视图中包括采购单位、采购组、批次管理、过账到质检库存、源清单等字段。

采购单位如果跟基本计量单位不同,需要维护单位间的数量关系,做采购订单时,可以自动带出采购单位,也可以用基本计量单位。

采购组是负责某个采购活动的买方,批次管理主要用来批次跟踪,质量跟踪,原因追溯,对管理者来说。

有很好的监控作用。

(4)MRP视图是生产的核心部分,起着监控库存管理,为采购部门提供采购申请的建议,并对生产管理起着重要作用。

MRP视图中包括MRP类型,采购类型,自制天数,收货处理时间,计划交货时间,再订货点,安全库存等重要字段。

MRP类型限定了该物料的生产是否按照物料需求计划来运行。

运行的时候是否考虑再订货点等因素,如果是独立的计划需求,则运行物料需求计划时无需考虑此物料。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

REPORT ZMMMDE001 NO STANDARD PAGE HEADING LINE-SIZE 170 MESSAGE-ID MG.*----------------------------------------------------------------------* * Program : ZMMMDE001 * * Author : Patrick,Song * * Date : Sep 10, 2008 * * Code type : conversion * * Version : new creation * * (interface/conversion/on-line transaction/report) * * * *----------------------------------------------------------------------* * Error handling : * *----------------------------------------------------------------------* * 1. * * * *----------------------------------------------------------------------* * Change log : * *----------------------------------------------------------------------* * CR# : * * Corr. no. : * * Date : * * Author : * * Change : * * * *----------------------------------------------------------------------**----------------------------------------------------------------------* * include program & subrouting * *----------------------------------------------------------------------* INCLUDE : ZBCDWI000 .TYPE-POOLS: KCDE.TYPE-POOLS: SLIS.*----------------------------------------------------------------------* * tables declaration * *----------------------------------------------------------------------* TABLES: AUSP, " Characteristic ValuesMARC, " Plant Data for MaterialMARA, " General Material DataMVKE, " Sales Data for MaterialT001L, " Storage LocationsT006A, " Assign Internal to Language-Dependent UnitT134. " Material Types*----------------------------------------------------------------------** selection screen definition **----------------------------------------------------------------------** Input file information block B1SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-SC1 . PARAMETER: P_BASIC LIKE RLGRAP-FILENAME OBLIGATORY .PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY .SELECTION-SCREEN END OF BLOCK A1.PARAMETERS: P_MMAM AS CHECKBOX DEFAULT SPACE .PARAMETERS: P_MARC AS CHECKBOX DEFAULT SPACE .PARAMETERS: P_QMDATA AS CHECKBOX DEFAULT SPACE .*PARAMETERS: P_CLASS AS CHECKBOX .PARAMETERS: P_BKJOB AS CHECKBOX DEFAULT SPACE .*----------------------------------------------------------------------** Internal tables and field strings **----------------------------------------------------------------------**-* to store uploaded data* define table to store tempoary data => Material Views SelectionDATA INT_TAB TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.*----------------------------------------------------------------------** Global program variables **----------------------------------------------------------------------** TO STORE MATERIAL MASTER DATA WHICH NEED TO BE UPLOADED*** Generated data section with specific formatting - DO NOT CHANGE *** DATA: BEGIN OF ITAB OCCURS 0.DATA: MATNR(018). "物料号 **** DATA: BISMT(018). "旧物料号**** DATA: MAKTX(040). "物料描述**** DATA: MBRSH(001). "行业领域**** DATA: MTART(004). "物料类型**** DATA: WERKS(004). "工厂 **** DATA: LGORT(004). "库存地点**** DATA: VKORG(004). "销售组织**** DATA: VTWEG(002). "分销渠道**** DATA: MEINS(003). "基本计量单位**** DATA: SPART(002). "产品组**** DATA: MSTAE(002). "跨工厂物料状态DATA: MATKL(009). "物料组**** DATA: GEWEI(003). "重量单位**** DATA: BRGEW(017). "毛重***DATA: NTGEW(017). "净重***DATA: ZEINR(022). "产品图号***DATA: KLART(003). "类别种类**** DATA: CLASS_01(018). "类别****DATA: MWERT_SCR(030). "安规标准**** DATA: MWERT_SER(030). "产品系列号**** DATA: MWERT_DESC1(090). "物料描述1**** DATA: MWERT_DESC11(030). "物料描述1**** DATA: MWERT_DESC12(030). "物料描述1**** DATA: MWERT_DESC2(090). "物料描述2**** DATA: MWERT_DESC21(030). "物料描述2**** DATA: MWERT_DESC22(030). "物料描述2**** DATA: EKGRP(003). "采购组 **** DATA: BSTME(003). "订单单位 **** DATA: UMREN(006). "转换比例中订单单位数量DATA: WEBAZ(003). "收货处理时间 **** DATA: KORDB(001). "货源清单 **** DATA: USEQU(001). "配额安排 **** DATA: KZKRI(001). "是否合同管控***** DATA: DWERK(004). "交货工厂***** DATA: SPART_GRP(002). "产品组***** DATA: TAXKM(001). "税*****DATA: VERSG(001). "物料统计组***** DATA: KONDM(002). "物料定价组***** DATA: KTGRM(002). "科目设置组***** DATA: MTPOS(004). "项目类别组***** DATA: BOX01(006). "每箱对应的产品数量*****DATA: BOX02(006). "每栈板对应的产品数量*****DATA: TRAGR(004). "运输组 ***** DATA: LADGR(004). "装载组 ***** DATA: MTVFP(002). "可用性检查 ***** DATA: DISMM(002). "MRP 类型 **** DATA: DISGR(004). "MRP组 **** DATA: DISPO(003). "MRP 控制者 ******DATA: DISLS(002). "批量大小 **** DATA: BSTRF(017). "舍入值 **** DATA: BESKZ(001). "采购类型 * **** DATA: SOBSL(002). "特殊采购类 **** DATA: RGEKZ(001). "反冲 **** DATA: LGPRO(004). "生产仓储地点 ***** DATA: LGFSB(004). "外部采购仓储地点* DATA: DZEIT(003). "自制生产时间 ****DATA: WEBAZ_GR(003). "收货处理时间 **** DATA: PLIFZ(003). "计划交货时间 **** DATA: FHORI(003). "计划边际码 **** DATA: EISBE(017). "安全库存 **** DATA: PERKZ(001). "期间标识 **** DATA: KAUSF(006). "部件废品(%) **** DATA: MTVFP1(002). "可用性检查 **** DATA: SBDKZ(001). "独立/集中 **** DATA: XCHPF(001). "批次管理 **** DATA: LGPBE(010). "库存仓位 **** DATA: INSMK(001). "过帐到检验库存*** DATA: PRFRQ(006). "检查间隔天数 **** DATA: QMPUR(001). "QM采购激活 **** DATA: SSQSS(008). "QM 控制码 **** DATA: AKTIV_01(001). "激活检验类型01*** DATA: AKTIV_03(001). "激活检验类型03*** DATA: AKTIV_04(001). "激活检验类型04*** DATA: AKTIV_05(001). "激活检验类型05*** DATA: AKTIV_09(001). "激活检验类型09*** DATA: BKLAS(004). "评估类 **** DATA: VPRSV(001). "价格控制 **** DATA: PEINH(006). "价格单位 **** DATA: VERPR(015). "移动平均价 **** DATA: STPRS(015). "标准价格 **** DATA: EKALR(001). "物料根据数量结构进行成本核算*****DATA: HKMAT(001). "物料来源 **** DATA: HRKFT(004). "原始组 **** DATA: KOSGR(010). "间接费分组 **** DATA: AWSLS(006). "差异码 **** DATA: ZPLP1(014). "未来计划价格1**** DATA: ZPLD1(010). "未来计划价格1日期*****DATA: ZPLP2(014). "未来计划价格2**** DATA: ZPLD2(010). "未来计划价格2日期*****DATA: UMREZ(006). "转换比例fm DATA: END OF ITAB.* define internal table to store views selection for material type & plant DATA: BEGIN OF VWS_ITAB OCCURS 0 .DATA: MTART(004) TYPE C. " Material TypeDATA: BASIC_VIEWS(001) TYPE C. " Flag for Basic ViewDATA: CLASS_VIEWS(001) TYPE C. " Flag for ClassificationDATA: WERKS(004) TYPE C. " Plant DataDATA: PROCUREMENT(001) TYPE C. " Flag for procurement TypeDATA: SALES_VIEWS(001) TYPE C. " Flag for Sales ViewsDATA: PURCH_VIEWS(001) TYPE C. " Flag for Purchasing ViewsDATA: MRP_VIEWS(001) TYPE C. " Flag for MRP ViewsDATA: WKSCH_VIEWS(001) TYPE C. " Flag for Work ScheduleDATA: FOREC_VIEWS(001) TYPE C. " Flag for ForecastingDATA: PRT_VIEWS(001) TYPE C. " Flag for PRT ToolsDATA: STORAGE_VIEW(001) TYPE C. " Flag for storage viewsDATA: WH_VIEWS(001) TYPE C. " Flag for Warehouse ManagementDATA: QA_VIEWS(001) TYPE C. " Flag for Quality ManagementDATA: ACCTS_VIEWS(001) TYPE C. " Flag for AccountingsDATA: COSTS_VIEWS(001) TYPE C. " Flag for CostingsDATA: BATCH_MANAGE(001) TYPE C. " Flag for Batch ManagementDATA: REMARKS(020) TYPE C. " RemarksDATA: END OF VWS_ITAB.CONSTANTS: XFLAG(001) TYPE C VALUE 'X'.DATA : L_CLASS(001) TYPE C .DATA: LINE_CNT TYPE I .**-* *-* *-* define internal table for BAPI function call *-* *-* *-* *-* *-* *-* Material DescriptionsDATA: MATERIALDESCRIPTION LIKE BAPI_MAKT OCCURS 0 WITH HEADER LINE . *-* Units of MeasureDATA: UNITSOFMEASURE LIKE BAPI_MARM OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for BAPI_MARMDATA: UNITSOFMEASUREX LIKE BAPI_MARMX OCCURS 0 WITH HEADER LINE . *-* International Article Numbers (EANs)DATA: INTERNATIONALARTNOS LIKE BAPI_MEAN OCCURS 0 WITH HEADER LINE . *-* Long TextsDATA: MATERIALLONGTEXT LIKE BAPI_MLTX OCCURS 0 WITH HEADER LINE . *-* Tax DataDATA: TAXCLASSIFICATIONS LIKE BAPI_MLAN OCCURS 0 WITH HEADER LINE . *-* Substitute Structure for Return Parameter BAPIRET2DATA: RETURNMESSAGES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE . *-* Production Resource Tool (PRT) Fields in the Material MasterDATA: PRTDATA LIKE BAPI_MFHM OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for BAPI_MFHMDATA: PRTDATAX LIKE BAPI_MFHMX OCCURS 0 WITH HEADER LINE . *-* Ref. structure for BAPI parameter ExtensionIn/ExtensionOutDATA: EXTENSIONIN LIKE BAPIPAREX OCCURS 0 WITH HEADER LINE . *-* Checkbox Structure for Extension In/Extension OutDATA: EXTENSIONINX LIKE BAPIPAREXX OCCURS 0 WITH HEADER LINE .*-* /NFM/: NF Charge Weights for Materials on Org. LevelDATA: NFMCHARGEWEIGHTS LIKE /NFM/BAPITVGW OCCURS 0 WITH HEADER LINE . *-* /NFM/: Update Information for /NFM/BAPDATA: NFMCHARGEWEIGHTSX LIKE /NFM/BAPITVGWX OCCURS 0 WITH HEADER LINE . *-* /NFM/: NF Structural WeightsDATA: NFMSTRUCTURALWEIGHTS LIKE /NFM/BAPITKGW OCCURS 0 WITH HEADER LINE . *-* /NFM/: Update Information for /NFM/BAPITKGWDATA: NFMSTRUCTURALWEIGHTSX LIKE /NFM/BAPITKGWX OCCURS 0 WITH HEADER LINE . *-* Returned ParametersDATA: RETURN LIKE BAPIRET2." OCCURS 0 WITH HEADER LINE .*DATA: INSPECTIONCTRL LIKE BAPI1001004_QMAT OCCURS 0 WITH HEADER LINE .*DATA: QM_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.* define structure data for BAPIs function of material master creation DATA: HEADDATA LIKE BAPIMATHEAD. "Header Segment with Control Inf ormationDATA: CLIENTDATA LIKE BAPI_MARA. "Material Data at Client Level DATA: CLIENTDATAX LIKE BAPI_MARAX. "Checkbox Structure for BAPI_MAR ADATA: PLANTDATA LIKE BAPI_MARC. "Material Data at Plant Level DATA: PLANTDATAX LIKE BAPI_MARCX. "Checkbox Structure for BAPI_MAR CDATA: FORECASTPARAMETERS LIKE BAPI_MPOP. "Forecast ParametersDATA: FORECASTPARAMETERSX LIKE BAPI_MPOPX. "Checkbox Structure for BAPI_MPO PDATA: PLANNINGDATA LIKE BAPI_MPGD. "Change Document Structure for M aterial Master/Product GroupDATA: PLANNINGDATAX LIKE BAPI_MPGDX. "Checkbox Structure for BAPI_MPG DDATA: STORAGELOCATIONDATA LIKE BAPI_MARD. "Material Data at Storage Locati on LevelDATA: STORAGELOCATIONDATAX LIKE BAPI_MARDX. "Checkbox Structure for BAPI_MAR DDATA: VALUATIONDATA LIKE BAPI_MBEW. "Valuation DataDATA: VALUATIONDATAX LIKE BAPI_MBEWX. "Checkbox Structure for BAPI_MBE WDATA: WAREHOUSENUMBERDATA LIKE BAPI_MLGN. "Warehouse Number DataDATA: WAREHOUSENUMBERDATAX LIKE BAPI_MLGNX. "Checkbox Structure for BAPI_MLG NDATA: SALESDATA LIKE BAPI_MVKE. "Sales DataDATA: SALESDATAX LIKE BAPI_MVKEX. "Checkbox Structure for BAPI_MVKDATA: STORAGETYPEDATA LIKE BAPI_MLGT. "Storage Type DataDATA: STORAGETYPEDATAX LIKE BAPI_MLGTX. "Checkbox Structure for BAPI_MLGT*Batchinputdata of single transactionDATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.*Messages of call transactionDATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.* define internal table to store uploading result ...DATA: BEGIN OF I_RESULT OCCURS 0.DATA: MATNR LIKE ITAB-MATNR.DATA: WERKS LIKE ITAB-WERKS.DATA: MTART LIKE ITAB-MTART.DATA: MAKTX LIKE ITAB-MAKTX.DATA: MEINS LIKE ITAB-MEINS.INCLUDE STRUCTURE RETURNMESSAGES.DATA: QMVIEWS(001).DATA: MESSAGE01 LIKE RETURNMESSAGES-MESSAGE.DATA: MESSAGE02 LIKE RETURNMESSAGES-MESSAGE.DATA: SELK(001) TYPE C .DATA: END OF I_RESULT.DATA: BEGIN OF I_ERROR OCCURS 0.DATA: MATNR LIKE ITAB-MATNR.DATA: WERKS LIKE ITAB-WERKS.DATA: MTART LIKE ITAB-MTART.DATA: MEINS LIKE ITAB-MEINS.DATA: END OF I_ERROR.*-* define parameter to store line countDATA: LINE TYPE I.DATA: L_CNT TYPE I.DATA: INT_CNT TYPE I .DATA: GIT_BAPI1003 LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0 WITH HEADER LINE, GIT_VALUES_CHAR LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0 WITH HEADER LINE, GIT_VALUES_CURR LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0 WITH HEADER LINE, GIT_VALUES_LIST LIKE BAPI1003_ALLOC_LIST OCCURS 0 WITH HEADER LINE, GIT_BAPIRET2 LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE, LS_BAPIRET2 TYPE BAPIRET2.DATA: GS_BAPI1003 TYPE BAPI1003_ALLOC_VALUES_NUM,GS_VALUES_CHAR TYPE BAPI1003_ALLOC_VALUES_CHAR,GS_VALUES_CURR TYPE BAPI1003_ALLOC_VALUES_CURR,GC_FLAG_X(1) TYPE C VALUE 'X'.DATA: G_MATNR_CHK LIKE ITAB-MATNR .DATA: M_MATNR_CHK LIKE ITAB-MATNR .DATA: S_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_ST01',S_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND-ALV'.*----------------------------------------------------------------------* * TOP-OF-PAGE.*----------------------------------------------------------------------* TOP-OF-PAGE.PERFORM COLUMN_HEADER.*----------------------------------------------------------------------* * initialization. * *----------------------------------------------------------------------* INITIALIZATION.REFRESH: ITAB, VWS_ITAB, BDCDATA, MESSTAB, I_RESULT, I_ERROR.CLEAR : ITAB, VWS_ITAB, BDCDATA, MESSTAB, I_RESULT, I_ERROR.IF SY-UNAME CA 'USER'.* set default value for data migration => Background JobP_BKJOB = 'X'.ENDIF .*----------------------------------------------------------------------* * At Selection-screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.CALL FUNCTION 'WS_FILENAME_GET' "Get file nameEXPORTING* DEF_FILENAME = ' '* DEF_PATH = ' 'MASK = ',*.* ,*.*.'MODE = '0'TITLE = TEXT-H10IMPORTINGFILENAME = P_FILE* RC =EXCEPTIONSINV_WINSYS = 1NO_BATCH = 2SELECTION_CANCEL = 3SELECTION_ERROR = 4OTHERS = 5.IF SY-SUBRC <> 0.* MESSAGE E016 WITH P_PATH.ENDIF.*----------------------------------------------------------------------* * At Selection-screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_BASIC.CALL FUNCTION 'WS_FILENAME_GET' "Get file nameEXPORTING* DEF_FILENAME = ' '* DEF_PATH = ' 'MASK = ',*.* ,*.*.'MODE = '0'TITLE = TEXT-H10IMPORTINGFILENAME = P_BASIC* RC =EXCEPTIONSINV_WINSYS = 1NO_BATCH = 2SELECTION_CANCEL = 3SELECTION_ERROR = 4OTHERS = 5.IF SY-SUBRC <> 0.* MESSAGE E016 WITH P_PATH.ENDIF.*--------------------------------------------------------------------* * at selection-screen output*--------------------------------------------------------------------* AT SELECTION-SCREEN ON P_MMAM .IF NOT P_MMAM IS INITIAL .MOVE XFLAG TO P_MARC.MOVE XFLAG TO P_QMDATA.ENDIF.*--------------------------------------------------------------------* * at selection-screen output*--------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT .* PERFORM MODIFY_SCREEN .*----------------------------------------------------------------------* * Start-of-selection * *----------------------------------------------------------------------* START-OF-SELECTION.PERFORM DETERMINE_MATERIAL_VIEWS .PERFORM UPLOAD_DATA.SORT ITAB BY MATNR WERKS DESCENDING.CLEAR: LINE_CNT .DESCRIBE TABLE ITAB LINES LINE_CNT .LOOP AT ITAB .TRANSLATE ITAB-MATNR TO UPPER CASE .TRANSLATE ITAB-GEWEI TO UPPER CASE .ITAB-MWERT_DESC11 = ITAB-MWERT_DESC1+30(30).ITAB-MWERT_DESC12 = ITAB-MWERT_DESC1+60(30).ITAB-MWERT_DESC1 = ITAB-MWERT_DESC1+0(30).ITAB-MWERT_DESC21 = ITAB-MWERT_DESC2+30(30).ITAB-MWERT_DESC22 = ITAB-MWERT_DESC2+60(30).ITAB-MWERT_DESC2 = ITAB-MWERT_DESC2+0(30).IF NOT ITAB-MATNR IS INITIAL .PERFORM FORMAT_ALPHA_OUTPUT CHANGING ITAB-MATNR .WRITE:/ ITAB-MATNR UNDER TEXT-C01,ITAB-MAKTX UNDER TEXT-C06,ITAB-NTGEW UNDER TEXT-C08,ITAB-MTART UNDER TEXT-C03,ITAB-WERKS UNDER TEXT-C02,ITAB-VKORG UNDER TEXT-C09,ITAB-LGPRO UNDER TEXT-C10,ITAB-LGFSB UNDER TEXT-C11,ITAB-LGORT UNDER TEXT-C04,ITAB-BESKZ UNDER TEXT-C05,ITAB-SOBSL UNDER TEXT-C07.IF ITAB-WERKS = '1005' OR ITAB-WERKS = '1006'.MOVE 'F' TO ITAB-BESKZ.ENDIF .IF ITAB-BESKZ IS INITIAL AND ( ITAB-MTART EQ 'ROH' ORITAB-MTART EQ 'ROH1' ORITAB-MTART EQ 'ROH2' ORITAB-MTART EQ 'ROH3' ORITAB-MTART EQ 'UNBW' ORITAB-MTART EQ 'LEIH' ).MOVE 'F' TO ITAB-BESKZ.ENDIF .* Check if MRP Controller is fit for Plant and Material Type or notIF ITAB-WERKS = '2001' OR ITAB-WERKS = '2003' OR ITAB-WERKS = '2004'. IF ITAB-MTART EQ 'ROH'.IF ITAB-DISPO+0(1) NE 'M'.MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF.ENDIF.ENDIF .IF ITAB-WERKS = '2001' OR ITAB-WERKS = '2003' OR ITAB-WERKS = '2004'. IF ITAB-MTART EQ 'HALB'.IF ITAB-DISPO+0(1) EQ 'M'.MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF.ENDIF.ENDIF .IF ITAB-BRGEW = 'G' OR ITAB-BRGEW = 'g' .MOVE-CORRESPONDING ITAB TO I_ERROR.COLLECT: I_ERROR.CLEAR : I_ERROR.ENDIF .MODIFY ITAB .ELSE.DELETE ITAB .ENDIF .ENDLOOP .*----------------------------------------------------------------------** End-of-selection **----------------------------------------------------------------------* END-OF-SELECTION.IF I_ERROR[] IS INITIAL.SET PF-STATUS 'P1100'.ELSE.WRITE:/ '请检查以下物料各个字段值:'.ULINE .LOOP AT I_ERROR .WRITE: / I_ERROR-MATNR COLOR COL_NEGATIVE,I_ERROR-WERKS COLOR COL_NEGATIVE.ENDLOOP .ENDIF .WRITE:/ TEXT-T00, LINE_CNT COLOR COL_KEY.*----------------------------------------------------------------------* * at user-command * *----------------------------------------------------------------------* AT USER-COMMAND .CASE SY-UCOMM .WHEN 'MDRCRT' .REFRESH: I_RESULT .CLEAR : I_RESULT .PERFORM MATERIAL_MAINTAIN .PERFORM PREPARE_ALV_FIELDS.PERFORM DISPLAY_ALV_RESULT.ENDCASE .*----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM BDC_DYNPRO USING PROGRAM DYNPRO.CLEAR BDCDATA.BDCDATA-PROGRAM = PROGRAM.BDCDATA-DYNPRO = DYNPRO.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.ENDFORM. "BDC_DYNPRO*----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------* FORM BDC_FIELD USING FNAM FVAL.CLEAR BDCDATA.BDCDATA-FNAM = FNAM.BDCDATA-FVAL = FVAL.APPEND BDCDATA.ENDFORM. "BDC_FIELD*&---------------------------------------------------------------------**& Form UPLOAD_DATA*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM UPLOAD_DATA .CALL FUNCTION 'UPLOAD'EXPORTINGFILENAME = P_FILEFILETYPE = 'DAT'TABLESDATA_TAB = ITABEXCEPTIONSCONVERSION_ERROR = 1INVALID_TABLE_WIDTH = 2INVALID_TYPE = 3NO_BATCH = 4UNKNOWN_ERROR = 5GUI_REFUSE_FILETRANSFER = 6OTHERS = 7.IF ITAB[] IS INITIAL.MESSAGE '导入数据为空,请确认后重新导入! ' TYPE 'I'.EXIT.ENDIF.ENDFORM. " UPLOAD_DATA*&---------------------------------------------------------------------* *& Form MATERIAL_MAINTAIN*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM MATERIAL_MAINTAIN .DATA: L_MARA TYPE I .DATA: L_QMATV LIKE MARC-QMATV .DATA: L_MARC(001).DATA: N_MATNR_CHK LIKE ITAB-MATNR .DATA: O_MATNR_CHK LIKE ITAB-MATNR .CLEAR: N_MATNR_CHK, O_MATNR_CHK.SORT VWS_ITAB BY MTART.IF NOT P_BKJOB IS INITIAL .PERFORM OPEN_GROUP .ENDIF .LOOP AT ITAB .CLEAR: L_CLASS, L_QMATV, L_MARC, L_MARA.* move-corresponding data to header data => HEADDATACLEAR: HEADDATA,CLIENTDATA, CLIENTDATA,PLANTDATA, PLANTDATAX,FORECASTPARAMETERS, FORECASTPARAMETERSX, PLANNINGDATA, PLANNINGDATAX,STORAGELOCATIONDATA, STORAGELOCATIONDATAX, VALUATIONDATA, VALUATIONDATAX,WAREHOUSENUMBERDATA, WAREHOUSENUMBERDATAX, SALESDATA, SALESDATAX,STORAGETYPEDATA, STORAGETYPEDATAX.* get customizing views which need to be selectedCLEAR: VWS_ITAB .READ TABLE VWS_ITAB WITH KEY MTART = ITAB-MTARTWERKS = ITAB-WERKSPROCUREMENT = ITAB-BESKZ . ***** Check Material Plant Data Maintain Or NotCLEAR: MARC .SELECT SINGLE * FROM MARC CLIENT SPECIFIEDWHERE MANDT EQ SY-MANDTAND MATNR EQ ITAB-MATNRAND WERKS EQ ITAB-WERKS .IF SY-SUBRC EQ 0 .IF ITAB-WERKS EQ '2001' ORITAB-WERKS EQ '2003' ORITAB-WERKS EQ '2004' .MOVE MARC-QMATV TO L_QMATV .ELSE .MOVE XFLAG TO L_QMATV.* CLEAR: L_QMATV.ENDIF .MOVE XFLAG TO L_MARC .ELSE.IF ITAB-WERKS EQ '1005' OR ITAB-WERKS EQ '1006'. MOVE XFLAG TO L_QMATV.ELSE.CLEAR: L_QMATV.ENDIF.CLEAR: L_MARC .ENDIF .*** Update QM Data or notIF NOT P_QMDATA IS INITIAL .IF ITAB-WERKS EQ '1005' OR ITAB-WERKS EQ '1006'.MOVE XFLAG TO L_QMATV.ELSE.CLEAR: L_QMATV.ENDIF.ENDIF .*** Update Plant Data or notIF NOT P_MARC IS INITIAL .CLEAR: L_MARC .ENDIF .IF L_MARC IS INITIAL.IF NOT P_MMAM IS INITIAL .CLEAR: MARA .SELECT SINGLE * FROM MARA CLIENT SPECIFIEDWHERE MANDT EQ SY-MANDTAND MATNR EQ ITAB-MATNR .IF SY-SUBRC = 0.IF ITAB-MTART <> MARA-MTART .PERFORM MATERIAL_TYPE_CHANGE .ENDIF .ENDIF .ENDIF .* Conver value to uper caseTRANSLATE ITAB-MEINS TO UPPER CASE.IF ITAB-MEINS EQ 'G' OR ITAB-MEINS EQ 'g'.ITAB-MEINS = 'g'.ELSE.TRANSLATE ITAB-MEINS TO UPPER CASE.ENDIF .TRANSLATE ITAB-GEWEI TO UPPER CASE.PERFORM MAP_MATERIAL_DESCRIPTION .PERFORM MAP_MATERIAL_MASTER_DATA .* determine & select views for material maintainCASE VWS_ITAB-BASIC_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-BASIC_VIEW. "Basic ViewsCASE VWS_ITAB-SALES_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'. " If phantom item, not required for Accts & Co sts % QA Views** assign plant data & ** assign update informationIF NOT ITAB-VKORG IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-SALES_VIEW. "Sales ViewsPERFORM MAP_SALES_DATA .ENDIF .ENDIF.ENDCASE .CASE VWS_ITAB-PURCH_VIEWS.WHEN 'X'.** assign plant data & ** assign update informationIF ITAB-SOBSL NE '50'.IF NOT ITAB-EKGRP IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-PURCHASE_VIEW."Purchasing ViewPERFORM MAP_PURCHASING_DATA .ENDIF .ENDIF .ENDCASE .************ MRP VIEWS ****************CASE VWS_ITAB-MRP_VIEWS.WHEN 'X'.** assign plant data & ** assign update informationIF NOT ITAB-DISMM IS INITIAL .MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .MOVE XFLAG TO HEADDATA-MRP_VIEW. "MRP ViewsPERFORM MAP_MRP_DATA .ENDIF .ENDCASE .************ FORECASTING VIEWS ****************CASE VWS_ITAB-FOREC_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-FORECAST_VIEW."Forecasting View** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .************ WORK SCHEDULING VIEWS ****************CASE VWS_ITAB-WKSCH_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'.MOVE XFLAG TO HEADDATA-WORK_SCHED_VIEW."Work Scheduling ** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDIF .ENDCASE .************ PRT VIEWS ****************CASE VWS_ITAB-PRT_VIEWS.WHEN 'X'. MOVE XFLAG TO HEADDATA-PRT_VIEW. "PRT Views ENDCASE .************ STORAGE VIEWS ****************CASE VWS_ITAB-STORAGE_VIEW.WHEN 'X'.** assign plant data & ** assign update informationIF ITAB-SOBSL NE '50'.MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_STORAGE_DATA .ENDIF .WHEN SPACE.IF ITAB-MTART = 'ABF'.IF NOT ITAB-LGORT IS INITIAL ORNOT ITAB-LGPRO IS INITIAL ORNOT ITAB-LGFSB IS INITIAL.MOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_STORAGE_DATA .ENDIF .ENDIF .ENDCASE .************ WAREHOUSE MANAGEMENT VIEWS ****************CASE VWS_ITAB-WH_VIEWS.WHEN 'X'.MOVE XFLAG TO HEADDATA-WAREHOUSE_VIEW. "** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDCASE .************ QA VIEWS ****************CASE VWS_ITAB-QA_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50'.** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .PERFORM MAP_QA_DATA.ENDIF.ENDCASE .************ ACCOUNTING & COSTINGS VIEWS ****************CASE VWS_ITAB-ACCTS_VIEWS.WHEN 'X'.IF ITAB-SOBSL NE '50' AND ITAB-MTART NE 'ABF'.IF NOT ITAB-BKLAS IS INITIAL .MOVE XFLAG TO HEADDATA-ACCOUNT_VIEW. "Accounting Dat aMOVE XFLAG TO HEADDATA-COST_VIEW. "Costing Data PERFORM MAP_FICO_DATA .ENDIF .** assign plant data & ** assign update informationMOVE ITAB-WERKS TO PLANTDATA-PLANT .MOVE ITAB-WERKS TO PLANTDATAX-PLANT .ENDIF .ENDCASE .************ BATCH MANAGEMENT ****************CASE VWS_ITAB-BATCH_MANAGE.WHEN 'X'.MOVE ITAB-XCHPF TO CLIENTDATA-BATCH_MGMT . "Batch management requ irement indicatorMOVE XFLAG TO CLIENTDATAX-BATCH_MGMT . "Batch management requ irement indicatorENDCASE.CLEAR : RETURN.CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'EXPORTINGHEADDATA = HEADDATACLIENTDATA = CLIENTDATACLIENTDATAX = CLIENTDATAXPLANTDATA = PLANTDATAPLANTDATAX = PLANTDATAXFORECASTPARAMETERS = FORECASTPARAMETERSFORECASTPARAMETERSX = FORECASTPARAMETERSXPLANNINGDATA = PLANNINGDATAPLANNINGDATAX = PLANNINGDATAXSTORAGELOCATIONDATA = STORAGELOCATIONDATASTORAGELOCATIONDATAX = STORAGELOCATIONDATAXVALUATIONDATA = VALUATIONDATAVALUATIONDATAX = VALUATIONDATAXWAREHOUSENUMBERDATA = WAREHOUSENUMBERDATAWAREHOUSENUMBERDATAX = WAREHOUSENUMBERDATAXSALESDATA = SALESDATASALESDATAX = SALESDATAXSTORAGETYPEDATA = STORAGETYPEDATASTORAGETYPEDATAX = STORAGETYPEDATAXFLAG_ONLINE = SPACEFLAG_CAD_CALL = SPACENO_DEQUEUE = SPACENO_ROLLBACK_WORK = SPACEIMPORTINGRETURN = RETURNTABLESMATERIALDESCRIPTION = MATERIALDESCRIPTIONUNITSOFMEASURE = UNITSOFMEASUREUNITSOFMEASUREX = UNITSOFMEASUREXINTERNATIONALARTNOS = INTERNATIONALARTNOSMATERIALLONGTEXT = MATERIALLONGTEXTTAXCLASSIFICATIONS = TAXCLASSIFICATIONSRETURNMESSAGES = RETURNMESSAGESPRTDATA = PRTDATAPRTDATAX = PRTDATAXEXTENSIONIN = EXTENSIONINEXTENSIONINX = EXTENSIONINX.* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.COMMIT WORK.CALL FUNCTION 'BUFFER_REFRESH_ALL'.MOVE-CORRESPONDING ITAB TO I_RESULT.MOVE-CORRESPONDING RETURN TO I_RESULT .ENDIF .CASE VWS_ITAB-QA_VIEWS.WHEN 'X'.IF L_QMATV IS INITIAL AND ITAB-SOBSL NE '50' AND ITAB-MTART NE 'ABF'. REFRESH: INSPECTIONCTRL, QM_RETURN.CLEAR : INSPECTIONCTRL, QM_RETURN.IF NOT ITAB-AKTIV_01 IS INITIAL.MOVE XFLAG TO CLIENTDATA-QM_PROCMNT. "QM in Procurement is A ctiveMOVE XFLAG TO CLIENTDATAX-QM_PROCMNT. "QM in Procurement is A。

相关文档
最新文档