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类型限定了该物料的生产是否按照物料需求计划来运行。

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

关于MARA新增字段并保证BAPI能传输成功

关于MARA新增字段并保证BAPI能传输成功

1.在MARA表中新增一个结构。

如下图:
2.
使用OMT3C复制函数组。

这里不能使用SE37建立的。

1)先新增ZMGD1到,然后进去以后使用复制功能,复制MGD1 到ZMGD1.
3.
使用SE51: 复制屏幕程序,SAPLMGD1到SAPLZMGD1.我更改的是2033的屏幕号。

按照自己需要,使用不同的屏幕号。

屏幕新增字段如图:
图纸号:100个字段,使用MARA-ZZEXIT. 属性选择从字典。

代码新增:
4.使用配置:
OMT3B 或者路径:后勤-常规---》物料主记录------》配置物料主记录--------》定义每个屏幕列的数据屏幕结构
将2033屏幕的屏幕程序使用配置成自己开发的程序。

5. BAPI :BAPI_MATERIAL_SAVEDATA增强。

1)将MARA新增字段结构,新增到BAPI_TE_MARA结构.
2) 如下图新增字段到BAPI_TE_MARX结构.
然后在使用BAPI的时候,使用如下方式调用:
然后使用在BAPI_MATERIAL_SAVEDATA。

给出EXTENSIONTINX,EXTENSIONTINXX. 3)需要在OMSR里配置字段组(必须)。

接口rfc(pp模块)

接口rfc(pp模块)

1.物料主数据1.1创建/扩展物料主数据:1.1.1 除分类视图和检验视图的创建和扩展CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'EXPORTINGHEADDATA = IS_HEADERCLIENTDATA = IS_MARACLIENTDATAX = IS_MARAXPLANTDATA = IS_MARCPLANTDATAX = IS_MARCXSTORAGELOCATIONDATA = IS_MARDSTORAGELOCATIONDATAX = IS_MARDXVALUATIONDATA = IS_MBEWVALUATIONDATAX = IS_MBEWXSALESDATA = IS_MVKESALESDATAX = IS_MVKEXIMPORTINGRETURN = OS_RETURNTABLESMATERIALDESCRIPTION = IT_MAKTUNITSOFMEASURE = IT_MARMUNITSOFMEASUREX = IT_MARMXMATERIALLONGTEXT = IT_TEXTTAXCLASSIFICATIONS = IT_MLANRETURNMESSAGES = OT_LOG.1.1.2 分类视图的创建和扩展CALL FUNCTION 'BAPI_OBJCL_CREATE'EXPORTINGOBJECTKEYNEW = ZOBJCTOBJECTTABLENEW = 'MARA'CLASSNUMNEW = IS_OBJECT-CLASSNUMNEW CLASSTYPENEW = IS_OBJECT-CLASSTYPENEW STATUS = '1'KEYDATE = SY-DATUMIMPORTINGCLASSIF_STATUS = EP_CLASSIF_STATUSTABLESRETURN = TAB_LOG1.1.1.3 检验视图的创建和扩展CALL FUNCTION 'BAPI_MATINSPCTRL_SAVEREPLICA'TABLESRETURN = TAB_LOGINSPECTIONCTRL = IT_QMAT.1.2 显示物料主数据1.2.1 主要的数据可直接查询表MARA,MARC,MARD,MVKE,MARM,MLAN,MAKT,QMAT,MBEW; 1.2.2 分类视图的显示CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'EXPORTINGclass = 'BATCH'classtext = 'X'classtype = '023'language = sy-languobject = p_objectobjecttable = 'MARA'key_date = sy-datuminitial_charact = 'X'TABLESt_class = et_classt_objectdata = et_objectdataEXCEPTIONSno_classification = 1no_classtypes = 2invalid_class_type = 3OTHERS = 4.1.2.3 文本的读取CALL FUNCTION 'READ_TEXT'1.3 修改物料主数据(除修改分类视图调用的函数不一样外其余相同) CALL FUNCTION 'BAPI_OBJCL_CHANGE'EXPORTINGobjectkey = zobjctobjecttable = is_object-objecttablenew"'MARA' classnum = is_object-classnumnew"'BATCH' classtype = is_object-classtypenew "'023' status = '1'keydate = sy-datumIMPORTINGclassif_status = ep_classif_statusTABLESallocvaluesnumnew = it_allocvaluesnumallocvaluescharnew = it_allocvaluescharallocvaluescurrnew = it_allocvaluescurrreturn = tab_log1.1.4 删除、解除删除物料主数据CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTINGheaddata = is_matheadclientdata = is_maraclientdatax = is_maraxplantdata = is_marcplantdatax = is_marcxsalesdata = is_mvkesalesdatax = is_mvkexIMPORTINGreturn = os_logTABLESreturnmessages = ot_log.1.5 物料修改记录的查询CALL FUNCTION 'CHANGEDOCUMENT_READ'EXPORTINGobjectclass = 'MATERIAL'objectid = ip_matnrTABLESeditpos = ot_positionsEXCEPTIONSno_position_found = 1wrong_access_to_archive = 2time_zone_conversion_error = 3OTHERS = 4.1.6 修改物料类型:使用BDC即可1.7 查询物料的诸多单位1.7.1 主要数据可直接查询表MARA,MARM表单位相关表T006 计量单位T006_OIB 计量单位,附加定义T006A 分配内部到语言相关单位(内部单位转换到外部贸易、技术单位用T006A表,比如要显示CAR则把数据库中的KAR在次表中转换)T006B 贸易分配到内部测量单位( 外部贸易单位和转换到内部单位就是用T006B表,比如PC转到ST,CAR转到KAR等) T006C 外部技术到内部测量单位的分配T006D 尺寸T006D_OIB 附加维数T006E 计量单位系统(组件,映射)T006EE 计量单位系统(实用程序)T006ET 计量单位系统(使用程序-> 文T006I 计量单位的ISO 代码T006J ISO 测量文本单位码T006M 计量单位组T006T 维数文本...1.7.2 单位转换1.7.2.1转换为外部格式CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'EXPORTINGinput =IMPORTINGoutput =1.7.2.1转换为内部格式CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'EXPORTINGinput =IMPORTINGoutput =1.7.2.2 物料数量不同单位的转换CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'EXPORTINGI_MATNR = IOMAMO_TAB-MATNRI_IN_ME = IOMAMO_TAB-ERFMEI_OUT_ME = 'KG'I_MENGE = IOMAMO_TAB-ERFMGIMPORTINGE_MENGE = IOMAMO_TAB-ERFMGEXCEPTIONSERROR_IN_APPLICATION = 1ERROR = 2OTHERS = 3.1.7.2.3 物料基本计量单位转换为其他单位CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'2 库存需求查询CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'EXPORTINGmatnr = ip_matnrwerks = ip_werksIMPORTINGe_mdsta = os_mdstaTABLESmdezx = ot_mdezxEXCEPTIONSmaterial_plant_not_found = 1plant_not_found = 2OTHERS = 3.3 物料库存查询:通过标准程序RMMMBESTN做 SET PARAMETER ID XXXX FIELD XXXXX在RFC内接GET即可.4 生产订单4.1 创建生产订单CALL FUNCTION 'BAPI_PRODORD_CREATE'EXPORTINGORDERDATA = ORDERDATAIMPORTINGRETURN = RETURNORDER_NUMBER = ORDER_NUMBER.4.2 修改生产订单CALL FUNCTION 'BAPI_PRODORD_CHANGE' "订单数量和交货数量未判断EXPORTINGNUMBER = IS_ORDER-AUFNRORDERDATA = ORDERDATAORDERDATAX = ORDERDATAXIMPORTINGRETURN = RETURN.4.3 显示生产订单CALL FUNCTION 'BAPI_PRODORD_GET_DETAIL' "根据实际情况调整输出信息 EXPORTINGNUMBER = IP_AUFNRORDER_OBJECTS = ORDER_OBJECTSTABLESHEADER = HEADEROPERATION = OPERATIONPROD_REL_TOOL = PROD_REL_TOOL.5.工程更改号5.1创建、修改、删除工程更改号CALL FUNCTION 'CCAP_ECN_MAINTAIN' "根据实际情况调整输入信息EXPORTINGCHANGE_HEADER = CHANGE_HEADEROBJECT_BOM = OBJECT_BOMOBJECT_DOC = OBJECT_DOCOBJECT_TLIST = OBJECT_TLISTIMPORTINGCHANGE_NO = CHANGE_NOEXCEPTIONSCHANGE_NO_ALREADY_EXISTS = 1ERROR = 2.5.2 显示工程更改号,查询表AENR , AENV即可5.3 工程更改号有效期CALL FUNCTION 'CC_CHANGE_NUMBER_READ' EXPORTINGEAENNR = IS_ZRFC_S_PP005-AENNRIMPORTINGADATUV = ADATUV_XEXCEPTIONSNO_RECORD_FOUND = 1OTHERS = 2.6 BOM6.1 初始化APICALL FUNCTION 'CALO_INIT_API'.6.2 创建BOMCALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'EXPORTINGMATERIAL = IS_ZRFC_S_PP001-MATNRPLANT = IS_ZRFC_S_PP001-WERKSBOM_USAGE = IS_ZRFC_S_PP001-STLANALTERNATIVE = IS_ZRFC_S_PP001-STLAL CHANGE_NO = IS_ZRFC_S_PP001-AENNR I_STKO = I_STKOFL_NO_CHANGE_DOC = ' 'FL_COMMIT_AND_WAIT = 'X'FL_CAD = ' 'FL_BOM_CREATE = 'X'FL_NEW_ITEM = 'X'FL_COMPLETE = 'X'FL_DEFAULT_VALUES = 'X'FL_IDENTIFY_BY_GUID = ' 'IMPORTINGFL_WARNING = FL_WARNINGO_STKO = O_STKOTABLEST_STPO = T_STPOEXCEPTIONSERROR = 1OTHERS = 2.6.3 拷贝日志CALL FUNCTION 'CALO_MSG_APPEND_DB_LOG'EXCEPTIONSLOG_OBJECT_NOT_FOUND = 1LOG_SUBOBJECT_NOT_FOUND = 2LOG_INTERNAL_ERROR = 3OTHERS = 4.6.4 读取日志CALL FUNCTION 'CALO_LOG_READ_MESSAGES'TABLESMESSAGES_AND_PARAMETERS = LT_MESSAGESEXCEPTIONSOTHERS = 1.6.5 修改、删除BOM"修改时IS_ZRFC_S_PP003-ITEM_GUID+ IS_ZRFC_S_PP003-ITEM_NO 为项目唯一标示"文本相关:抬头长文本OBJECT_ID = '0',可选长文本 OBJECT_ID = '1' 各需添加一行空行;行项目长文本OBJECT_ID = '2',每个行项目文本需添加两行空行CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'EXPORTINGMATERIAL = IS_ZRFC_S_PP004-MATNRPLANT = IS_ZRFC_S_PP004-WERKSBOM_USAGE = '1'ALTERNATIVE = '1'FL_NEW_ITEM = 'X'CHANGE_NO = IS_ZRFC_S_PP004-AENNRI_STKO = TSTK1IMPORTINGFL_WARNING = FLG_WARNINGO_STKO = TSTK2TABLEST_STPO = TSTP3T_LTX_LINE = IS_LTX_LINEEXCEPTIONSOTHERS = 1.6.6 读取BOM(修改时调用)CALL FUNCTION 'CSAP_MAT_BOM_OPEN' EXPORTINGMATERIAL = IS_ZRFC_S_PP005-MATNR PLANT = IS_ZRFC_S_PP005-WERKSBOM_USAGE = IS_ZRFC_S_PP005-STLAN ALTERNATIVE = IS_ZRFC_S_PP005-STLAL VALID_FROM = DATUVCHANGE_NO = IS_ZRFC_S_PP005-AENNR IMPORTINGO_STKO = STKO1TABLEST_STPO = OT_STPOEXCEPTIONSERROR = 1OTHERS = 2.6.7 读取BOM(显示)CALL FUNCTION 'CSAP_MAT_BOM_READ' EXPORTINGMATERIAL = IS_ZRFC_S_PP005-MATNR PLANT = IS_ZRFC_S_PP005-WERKSBOM_USAGE = IS_ZRFC_S_PP005-STLAN ALTERNATIVE = IS_ZRFC_S_PP005-STLAL VALID_FROM = DATUVCHANGE_NO = IS_ZRFC_S_PP005-AENNR TABLEST_STPO = OT_STPO1T_LTX_LINE = OT_LTX_LINEEXCEPTIONSERROR = 1OTHERS = 2.6.8 BOM更改记录CONCATENATE : SY-MANDT 'M' OT_STKO-BOM_NO INTO OBJECTID. CALL FUNCTION 'CHANGEDOCUMENT_READ'EXPORTINGOBJECTCLASS = 'STUE'OBJECTID = OBJECTIDDATE_UNTIL = '99991231'TIME_UNTIL = '235959'TABLESEDITPOS = OT_EDITPOSEXCEPTIONSNO_POSITION_FOUND = 1WRONG_ACCESS_TO_ARCHIVE = 2TIME_ZONE_CONVERSION_ERROR = 3OTHERS = 4.6.9 BOM多层展开CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'EXPORTINGaltvo = ' 'aufsw = ' 'auskz = ' 'bagrp = ' 'beikz = ' 'bessl = ' 'brems = ' 'capid = is_zrfc_s_pp008-capiddatuv = is_zrfc_s_pp008-datuvdrldt = ' 'ehndl = '1'erskz = ' 'erssl = ' 'mtnrv = is_zrfc_s_pp008-matnrmehrs = 'X' "多层mmory = '1'stlal = is_zrfc_s_pp008-stlalstlan = '1'werks = is_zrfc_s_pp008-werksaumgb = 'X'IMPORTINGtopmat = topmatTABLESstb = stbmatcat = matcatEXCEPTIONSalt_not_found = 1call_invalid = 2material_not_found = 3missing_authorization = 4no_bom_found = 5no_plant_data = 6no_suitable_bom_found = 7conversion_error = 8OTHERS = 9.6.10 BOM使用位置清单CALL FUNCTION 'CS_WHERE_USED_MAT' EXPORTINGDATUB = SY-DATUMDATUV = SY-DATUMMATNR = ZIDNRKWERKS = ZWERKSIMPORTINGTOPMAT = TOPMATTABLESWULTB = WULTBEQUICAT = EQUICATKNDCAT = KNDCATMATCAT = MATCATSTDCAT = STDCATTPLCAT = TPLCATPRJCAT = PRJCATEXCEPTIONSCALL_INVALID = 1MATERIAL_NOT_FOUND = 2NO_WHERE_USED_REC_FOUND = 3NO_WHERE_USED_REC_SELECTED = 4NO_WHERE_USED_REC_VALID = 5OTHERS = 6.7 工艺路线7.1 创建修改工艺路线,使用BDC7.2 查询物料的工艺路线CALL FUNCTION 'CP_SE_ALT_READ_BY_MAT' EXPORTINGkunr_max = ''kunr_min = ''lifnr_max = ''lifnr_min = ''matnr = is_zrfc_s_pp017-matnrplnal_max = ''plnal_min = ''plnme = ''plnnr = ''plnty_max = ''plnty_min = 'N'statu = ''aennr = is_zrfc_s_pp017-aennrsttag = is_zrfc_s_pp017-sttagwerks_mat = is_zrfc_s_pp017-werksTABLESmapl_exp = mapl_expplko_exp = plko_expEXCEPTIONSnot_found = 1OTHERS = 2.CALL FUNCTION 'CARO_ROUTING_READ' EXPORTINGdate_from = date_fromdate_to = date_fromplnty = ot_zrfc_s_pp018-plntyplnnr = ot_zrfc_s_pp018-plnnrplnal = ot_zrfc_s_pp018-plnalmatnr = is_zrfc_s_pp017-matnrbuffer_del_flg = 'X'delete_all_cal_flg = 'X'adapt_flg = 'X'iv_create_add_change = ' 'TABLEStsk_tab = tsk_tabseq_tab = seq_tabopr_tab = opr_tabcom_tab = com_tabEXCEPTIONSnot_found = 1ref_not_exp = 2not_valid = 3OTHERS = 4.。

BAPI创建和修改物料主数据

BAPI创建和修改物料主数据

BAPI创建和修改物料主数据BAPI创建和修改物料主数据BAPI_MATERIAL_SAVEDATA简述:创建和修改物料主数据功能描述:可以用此BAPI创建新物料和修改已存在物料主数据。

当创建物料时,必须输入物料号(material number),物料类型(material type),Industry sector,同时也要输入物料描述(material description,参数为MATERIALDESCRIPTION)和描述语言(language)。

当要修改物料时,你只需输入物料号(material number)就可以了。

在header data(必传的参数)中,至少要选定一个物料数据视图来创建,依据选定的视图,必须维护其他的参数,如果每个视图中必须的field没有维护,FM执行会返回错误,物料创建不会成功。

所有要维护的物料视图所需的数据,都要在调用此BAPI前在调用程序中填好相应的参数值,并且要打上操作标记,这样数据才能被FM 维护到数据库中。

如参数CLIENTDATA,其field 的操作标记要维护到参数CLIENTDATAX中。

有关联的操作标记checkbox table 的物料视图数据table中不包括:语言相关文本数据(MAKT,MLTX),International Article Numbers (MEAN), 税的分类(MLAN),这些物料数据可直接传入相应的参数来生成。

如果内表或structure(参数)中含有度量单位(如CLIENTDATA-BASE_UOM),语言标识(如MATERIALDESCRIPTION-LANGU),或者是国家标识(如TAXCLASSIFICATIONS-DEPCOUNTRY),此参数总会有一个以_ISO 结尾的同名field。

这就使得度量单位、语言标识、国家标识等我们可用标准的SAP code,也可以ISO 标准code。

在未来业务流程中每个ISO code都有对应的标准SAP code。

SAP LSMW BAPI 上传主数据

SAP LSMW BAPI 上传主数据

Uploading Material Master data using BAPI method in LSMWBy Phani MarepalliStep1: Use the transaction code LSMW to upload the data using Legacy System Migration Work Bench. Here in this scenario, uploading Material Master Data using BAPI.Provide descriptions for Project, Subproject and Object respectively. And press execution button.Step2: Select Settings -> IDOC Inbound ProcessingStep3: “IDOC Inbound Processing” screen appears. Enter the required details as shown below:Step4: Define port and partner profile.Now come back to initial screen and click execute button. Step5: The following screen appears.Step6: Select st ep1 ‘Maintain Object Attributes’ and Execute.Provide business object detailsProvide MethodSave and click BACK button.Step7: Now select step2 ‘Maintain Source Structure’ and click execute button.Step8: Place the cursor on Source structure and click create. Provide name and descriptionSave and click BACK button.Step9: Selec t step3 ‘Maintain Source Fields’ and click execute button.Press create button and provide details for Field Name, Field Description and Field Length.Step10: Enter all required fields as shown below.Save and back to main screen.Step 11: Select step4 ‘’Maintain Source Relations’.Save and click BACK button.Step12: Select step5 ‘Maintain Field Mapping and Conversion Rules’.Step13: Select step7 ‘Specify Files’. Create a test file with the same structure as defined earlier.Save and return to main screen.Step14: Select step8 ‘Assign Files’ and click execute.Assign File Structure to Source Structure.Save and return to main screen.Step15: Select step9 ‘Read Data’ and click execute.Click Execute button.Click BACK button and return to main screen.Step16: Select step10 ‘Display Read Data’ and execute.Step17: Select step11 ‘Convert Data’ and execute.Click execution button.Step18: Select step12 ‘Display Converted Data’ and execute.Step19: Select step13 ‘3 Start IDoc Generation’.Click the execution button.Step20: Select step 14 ‘Start IDoc Processing’.And click execute button.Step21: Select the step 15 ‘Create IDoc Overview’.Check the data in the data records.。

物料主数据导入

物料主数据导入
VABME like mara-VABME,"可变采购订单单位活动
mstae like mara-mstae,"跨工厂物料状态
EKWSL like mara-EKWSL,"采购价值代码
end of itab .
data: begin of ierror occurs 0 ,
OTHERS = 17.
ENDFORM. " FILL_UPLOAD
*&---------------------------------------------------------------------*
OTHERS = 5.
ENDFORM. " GET_FIELD_DATA
*&---------------------------------------------------------------------*
*& Form FILL_UPLOAD
CLEAR bdcmsg . REFRESH bdcmsg .
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MTART'.
CLEAR bdcdata . REFRESH bdcdata .
CLEAR bdcmsg . REFRESH bdcmsg .
*---> Matrial record
LOOP AT itab .
CLEAR bdcdata . REFRESH bdcdata .

采购信息记录批导bapi

采购信息记录批导bapi

采购信息记录批导bapi可以批导创建及修改信息记录的主数据。

⽽且可以对条件中的时间段及其数量等级中的⾦额进⾏批导及修改。

可以根据⾃⼰的实际需求进⾏修改。

这就很棒,就很nice!!!*********************代码功能**************************************(1) 批量创建信息记录*(2) 批量修改信息记录及创建信息记录的有效期间和数量等级**********************************************************************REPORT zmmr_me11_12 NO STANDARD PAGE HEADING.TYPE-POOLS:truxs,icon.TABLES:eina,sscrfields.DATA:BEGIN OF it_fname OCCURS0,name TYPE char255,END OF it_fname.DATA:bdcdata LIKE bdcdata OCCURS0WITH HEADER LINE. "⽤来存储屏幕字段参数值,传递录屏参数DATA:messtab LIKE bdcmsgcoll OCCURS0WITH HEADER LINE. "记录执⾏BDC过程中产⽣的消息DATA:result_mesg TYPE TABLE OF string WITH HEADER LINE. "结果信息DATA: ti_bapicondct LIKE STANDARD TABLE OF bapicondct WITH HEADER LINE ,ti_bapicondhd LIKE STANDARD TABLE OF bapicondhd WITH HEADER LINE ,ti_bapicondit LIKE STANDARD TABLE OF bapicondit WITH HEADER LINE ,ti_bapicondqs LIKE STANDARD TABLE OF bapicondqs WITH HEADER LINE ,ti_bapicondvs LIKE STANDARD TABLE OF bapicondvs WITH HEADER LINE,bapiret2 LIKE STANDARD TABLE OF bapiret2 WITH HEADER LINE,to_bapiknumhs LIKE STANDARD TABLE OF bapiknumhs WITH HEADER LINE,to_mem_initial LIKE STANDARD TABLE OF cnd_mem_initial WITH HEADER LINE,ls_a017 TYPE a017.DATA text2 TYPE text1_007s. "附加税值名DATA p TYPE i.TYPES:BEGIN OF ty_tab1,flag TYPE c, "记录标识wx TYPE c, "是否外协eina_mahn1 TYPE mahn1, "CLXeina_urztp TYPE urztp, "价格执⾏⽅式eina_urzzt TYPE urzzt, "编号eine_norbm TYPE norbm, "标准数量eine_mwskz TYPE mwskz, "税代码eine_netpr TYPE iprei, "净价、含税价eine_peinh TYPE epein, "价格单位eine_waers TYPE waers, "净价货币eine_angnr TYPE angnr, "报价/⽬标价* rm06i_ltex1 TYPE ltext, "记录信息⽂本rv13a_datab TYPE kodatab, "有效时间从rv13a_datbi TYPE kodatbi, "有效时间到* konp_konwa TYPE konwa, "PB00⽐率单位(货币或百分数)konp_kschl2 TYPE kscha, "条件类型2konm_kbetr2 TYPE konp-kbetr, "条件⾦额2konp_konwa2 TYPE konwa, "ZVA1⽐率单位(货币或百分数)eina_lifnr TYPE elifn, "供应商eina_matnr TYPE matnr, "材料eine_ekorg TYPE ekorg, "采购组织eine_werks TYPE ewerk, "⼯⼚konm_kstbm TYPE kstbm, "条件等级数量konm_kbetr TYPE konp-kbetr, "条件⾦额END OF ty_tab1.DATA:gt_tab1 TYPE TABLE OF ty_tab1,wa_tab1 TYPE ty_tab1.DATA:gt_tab2 TYPE TABLE OF ty_tab1,wa_tab2 TYPE ty_tab1,temp_tab TYPE TABLE OF ty_tab1 WITH HEADER LINE.TYPES:BEGIN OF numb_levels,flag TYPE c, "记录标识eina_lifnr TYPE elifn, "供应商eina_matnr TYPE matnr, "材料eine_ekorg TYPE ekorg, "采购组织eine_werks TYPE ewerk, "⼯⼚konm_kstbm TYPE kstbm, "条件等级数量konm_kbetr TYPE kbetr, "条件⾦额rv13a_datab TYPE kodatab, "有效时间从rv13a_datbi TYPE kodatbi, "有效时间到END OF numb_levels.DATA:gt_nl TYPE TABLE OF numb_levels,wa_nl TYPE numb_levels,gt_nl2 TYPE TABLE OF numb_levels,wa_nl2 TYPE numb_levels.DATA: aplfzc(3) TYPE c, "计划交货天数normbc(16) TYPE c , "标准数量netprcx(14) TYPE c, "净价 GYPnetprc TYPE iprei, "净价peinhc(5) TYPE c, "条件定价单位lv_bprme TYPE bprme. "条件单位SELECTION-SCREEN BEGIN OF BLOCK blk_001 WITH FRAME TITLE text-001 . PARAMETERS:p_file LIKE rlgrap-filename.SELECTION-SCREEN END OF BLOCK blk_001.SELECTION-SCREEN FUNCTION KEY 1. "应⽤⼯具栏增加按钮INITIALIZATION.WRITE icon_change_text AS ICON TO sscrfields-functxt_01+0(4).sscrfields-functxt_01+4(*) = '下载模板'."分配字符位置AT SELECTION-SCREEN.PERFORM dl_template. "模板下载AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .PERFORM open.START-OF-SELECTION.PERFORM upload_file1.PERFORM process_file.IF NOT gt_tab1 IS INITIAL.PERFORM create_me11.ENDIF.IF NOT gt_tab2 IS INITIAL.PERFORM update_me12.ENDIF.END-OF-SELECTION.PERFORM result_message. "显⽰执⾏结果*&---------------------------------------------------------------------**& Form PROCESS_FILE1*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM process_file.LOOP AT gt_tab1 INTO wa_tab1 WHERE flag = 'X'.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_tab1-eina_matnrIMPORTINGoutput = wa_tab1-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_tab1-eina_lifnrIMPORTINGoutput = wa_tab1-eina_lifnr.SELECT SINGLE eina~infnr INTO eina-infnr FROM eina INNER JOIN eine ON eina~infnr = eine~infnr WHERE eina~matnr = wa_tab1-eina_matnr AND eina~lifnr = wa_tab1-eina_lifnrAND eine~werks = wa_tab1-eine_werks AND eine~ekorg = wa_tab1-eine_ekorg. "判断该数据是否已近创建IF sy-subrc <> 0.MOVE-CORRESPONDING wa_tab1 TO wa_nl.APPEND wa_nl TO gt_nl.ELSE.MOVE-CORRESPONDING wa_tab1 TO wa_nl2.APPEND wa_nl2 TO gt_nl2.ENDIF.ENDLOOP.MOVE gt_tab1 TO temp_tab[].CLEAR:gt_tab1[],gt_tab1.LOOP AT gt_nl INTO wa_nl.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = wa_nl-eina_matnrIMPORTINGoutput = wa_nl-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = wa_nl-eina_lifnrIMPORTINGoutput = wa_nl-eina_lifnr.LOOP AT temp_tab WHERE eina_matnr = wa_nl-eina_matnr AND eina_lifnr = wa_nl-eina_lifnrAND eine_werks = wa_nl-eine_werks AND eine_ekorg = wa_nl-eine_ekorg.MOVE-CORRESPONDING temp_tab TO wa_tab1.APPEND wa_tab1 TO gt_tab1.ENDLOOP.ENDLOOP.LOOP AT gt_nl2 INTO wa_nl2.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = wa_nl2-eina_matnrIMPORTINGoutput = wa_nl2-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = wa_nl2-eina_lifnrIMPORTINGoutput = wa_nl2-eina_lifnr.LOOP AT temp_tab WHERE eina_matnr = wa_nl2-eina_matnr AND eina_lifnr = wa_nl2-eina_lifnrAND eine_werks = wa_nl2-eine_werks AND eine_ekorg = wa_nl2-eine_ekorg.MOVE-CORRESPONDING temp_tab TO wa_tab2.APPEND wa_tab2 TO gt_tab2.ENDLOOP.ENDLOOP.CLEAR:temp_tab[],temp_tab.ENDFORM. " PROCESS_FILE1*&---------------------------------------------------------------------**& Form create_me11*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM create_me11.LOOP AT gt_tab1 INTO wa_tab1 WHERE flag = 'X'.CLEAR: aplfzc,normbc,netprc,netprcx,peinhc.aplfzc = wa_tab1-eina_mahn1.normbc = wa_tab1-eine_norbm.netprc = wa_tab1-eine_netpr. "净价peinhc = wa_tab1-eine_peinh.CONDENSE aplfzc NO-GAPS.CONDENSE normbc NO-GAPS.CONDENSE netprcx NO-GAPS. "GYPCONDENSE peinhc NO-GAPS.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_tab1-eina_matnrIMPORTINGoutput = wa_tab1-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_tab1-eina_lifnrIMPORTINGoutput = wa_tab1-eina_lifnr.SELECT SINGLE waers FROM lfm1 INTO wa_tab1-eine_waers WHERE lifnr = wa_tab1-eina_lifnr AND ekorg = wa_tab1-eine_ekorg.IF wa_tab1-eine_waers = 'USD'.wa_tab1-eine_mwskz = 'J0'.ELSEIF wa_tab1-eine_waers = 'CNY'.wa_tab1-eine_mwskz = 'J6'.ENDIF.SELECT SINGLE t007s~text1 INTO text2 FROM t007s WHERE t007s~mwskz = wa_tab1-eine_mwskz AND t007s~spras = sy-langu AND t007s~kalsm = 'TAXCN'. "附加税值名IF text2+1(1) = '%'.p = text2+0(1).ELSE.p = text2+0(2).ENDIF.netprc = netprc / ( 1 + ( p / 100 ) ). "增值税netprcx = netprc.* netprc = netprc * ( 1 + ( p / 100 ) ). "增值税 GYPCONDENSE netprcx NO-GAPS. "gypCLEAR: bdcdata,bdcdata[] .PERFORM bdc_dynpro USING'SAPMM06I''0100'.PERFORM bdc_field USING'BDC_CURSOR''EINE-WERKS'.PERFORM bdc_field USING'BDC_OKCODE''/00'.PERFORM bdc_field USING'EINA-LIFNR' wa_tab1-eina_lifnr."供应商PERFORM bdc_field USING'EINA-MATNR' wa_tab1-eina_matnr. "材料PERFORM bdc_field USING'EINE-EKORG' wa_tab1-eine_ekorg. "采购组织PERFORM bdc_field USING'EINE-WERKS' wa_tab1-eine_werks. "⼯⼚IF wa_tab1-wx = 'X'.PERFORM bdc_field USING'RM06I-LOHNB''X'.ELSE.PERFORM bdc_field USING'RM06I-NORMB''X'.ENDIF.PERFORM bdc_dynpro USING'SAPMM06I''0101'.PERFORM bdc_field USING'BDC_CURSOR''EINA-URZZT'.PERFORM bdc_field USING'BDC_OKCODE''/00'.PERFORM bdc_field USING'EINA-MAHN1' aplfzc. "CLXPERFORM bdc_field USING'EINA-URZTP' wa_tab1-eina_urztp. "价格执⾏⽅式PERFORM bdc_field USING'EINA-URZZT' wa_tab1-eina_urzzt. "编号PERFORM bdc_dynpro USING'SAPMM06I''0102'.PERFORM bdc_field USING'BDC_CURSOR''EINE-MWSKZ'.PERFORM bdc_field USING'BDC_OKCODE''=KO'. "/00PERFORM bdc_field USING'EINE-NORBM' normbc. "标准数量PERFORM bdc_field USING'EINE-MWSKZ' wa_tab1-eine_mwskz. "税代码PERFORM bdc_field USING'EINE-NETPR' netprcx. "净价PERFORM bdc_field USING'EINE-WAERS' wa_tab1-eine_waers. "净价货币PERFORM bdc_dynpro USING'SAPMV13A''0201'.PERFORM bdc_field USING'BDC_CURSOR''RV13A-DATBI'.PERFORM bdc_field USING'BDC_OKCODE''=BACK'.PERFORM bdc_field USING'RV13A-DATAB' wa_tab1-rv13a_datab. "开始时间PERFORM bdc_field USING'RV13A-DATBI' wa_tab1-rv13a_datbi. "结束时间PERFORM bdc_field USING'KONP-KPEIN(01)' peinhc. "单位PERFORM bdc_dynpro USING'SAPMM06I''0102'.PERFORM bdc_field USING'BDC_CURSOR''EINE-APLFZ'.PERFORM bdc_field USING'BDC_OKCODE''/00'. "/00PERFORM bdc_field USING'EINE-NORBM' normbc. "标准数量PERFORM bdc_field USING'EINE-MWSKZ' wa_tab1-eine_mwskz. "税代码PERFORM bdc_field USING'EINE-NETPR' netprcx. "净价PERFORM bdc_dynpro USING'SAPMM06I''0105'.PERFORM bdc_field USING'BDC_CURSOR''EINE-ANGNR'.PERFORM bdc_field USING'BDC_OKCODE''/00'.PERFORM bdc_field USING'EINE-ANGNR' wa_tab1-eine_angnr. "报价PERFORM bdc_dynpro USING'SAPMM06I''0103'.PERFORM bdc_field USING'BDC_CURSOR''RM06I-LTEX1(01)'.PERFORM bdc_field USING'BDC_OKCODE''=BU'.* PERFORM bdc_field USING 'RM06I-LTEX1(01)' wa_tab1-rm06i_ltex1. "记录信息CALL TRANSACTION'ME11'USING bdcdata MODE 'A'UPDATE'S' MESSAGES INTO messtab. READ TABLE messtab WITH KEY msgtyp = 'E'.IF sy-subrc = 0.LOOP AT messtab WHERE msgtyp = 'E'.CALL FUNCTION'MESSAGE_TEXT_BUILD'"消息编号及变量使⽤函数转换为消息内容输出EXPORTINGmsgid = messtab-msgidmsgnr = messtab-msgnrmsgv1 = messtab-msgv1msgv2 = messtab-msgv2msgv3 = messtab-msgv3msgv4 = messtab-msgv4IMPORTINGmessage_text_output = result_mesg.ENDLOOP.CONCATENATE'物料' wa_tab1-eina_matnr ':' result_mesg INTO result_mesg.APPEND result_mesg.CLEAR result_mesg.ELSE.PERFORM condition USING wa_tab1.ENDIF.ENDLOOP.ENDFORM. "create_me11*&---------------------------------------------------------------------**& Form CONDITION*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_wa_tab1 text*----------------------------------------------------------------------*FORM condition USING value(lt_tab) TYPE ty_tab1.DATA num TYPE n LENGTH 4. "数量等级⾏号CLEAR:ti_bapicondct[],ti_bapicondct,ti_bapicondhd[],ti_bapicondhd,ti_bapicondit[],ti_bapicondit,ti_bapicondqs[],ti_bapicondqs,lv_bprme. DATA esokzc TYPE c.IF lt_tab-wx = 'X'.esokzc = '3'.ELSE.esokzc = '0'.ENDIF.SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_a017FROM a017 WHERE kschl = 'PB00'"条件类型 "kappl = 'M' "应⽤:M采购AND lifnr = lt_tab-eina_lifnr "供应商帐户号AND matnr = lt_tab-eina_matnr "物料AND ekorg = lt_tab-eine_ekorg "采购组织AND werks = lt_tab-eine_werks "⼯⼚AND esokz = esokzc. "采购信息记录分类-(0:标准 3:分包合同)CLEAR esokzc.SELECT SINGLE kmein INTO lv_bprme FROM konp WHERE knumh = ls_a017-knumh. "konp:条件(项⽬) kmein:条件单位ti_bapicondct-operation = '004' . "004修改 _009创建ti_bapicondct-cond_usage = 'A'. "条件表⽤途:定价ti_bapicondct-table_no = '017' . "条件表ti_bapicondct-applicatio = 'M' .ti_bapicondct-cond_type = 'PB00' .ti_bapicondct-valid_to = lt_tab-rv13a_datbi. "条件记录有效截⽌⽇期ti_bapicondct-valid_from = lt_tab-rv13a_datab. "条件记录有效起始⽇ti_bapicondct-cond_no = ls_a017-knumh . "条件记录号APPEND ti_bapicondct .CLEAR ti_bapicondct .*KONH的BAPI结构----条件( 抬头 )ti_bapicondhd-operation = '004' .ti_bapicondhd-cond_no = ls_a017-knumh . "条件记录号ti_bapicondhd-created_by = sy-uname. "创建对象的⼈员名称ti_bapicondhd-creat_date = sy-datum. "记录的创建⽇期ti_bapicondhd-cond_usage = 'A' .ti_bapicondhd-table_no = ' 017' .ti_bapicondhd-applicatio = 'M' .ti_bapicondhd-cond_type = ' PB00' .ti_bapicondhd-valid_from = lt_tab-rv13a_datbi.ti_bapicondhd-valid_to = lt_tab-rv13a_datab.APPEND ti_bapicondhd.CLEAR ti_bapicondhd.*KONP的BAPI结构ti_bapicondit-operation = '004' .ti_bapicondit-cond_no = ls_a017-knumh.ti_bapicondit-cond_count = '01' . "条件的序列号ti_bapicondit-applicatio = 'M' .ti_bapicondit-cond_type = 'PB00' .ti_bapicondit-scaletype = 'A' .ti_bapicondit-scalebasin = 'C' . "等级基值指⽰符,数量规模ti_bapicondit-scale_qty = 1 . "条件等级数量ti_bapicondit-calctypcon = 'C' . "条件计算类型--- C:数量 A:百分⽐ti_bapicondit-cond_value = lt_tab-eine_netpr. "BAPIs 的货币⾦额(带有 9 个⼩数位)-净价ti_bapicondit-condcurr = lt_tab-eine_waers. "⽐率单位(货币或百分数):CNYti_bapicondit-cond_p_unt = peinhc. "条件定价单位(单位=1)ti_bapicondit-cond_unit = lv_bprme. "条件单位(EA)ti_bapicondit-condcurren = lt_tab-eine_waers.ti_bapicondit-unitmeasur = lv_bprme. "条件等级计量单位APPEND ti_bapicondit.CLEAR ti_bapicondit.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = lt_tab-eina_lifnrIMPORTINGoutput = lt_tab-eina_lifnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = lt_tab-eina_matnrIMPORTINGoutput = lt_tab-eina_matnr.*PB00--->设置等级数量CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = lt_tab-eina_matnrIMPORTINGoutput = lt_tab-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = lt_tab-eina_lifnrIMPORTINGoutput = lt_tab-eina_lifnr.LOOP AT gt_tab1 INTO wa_tab1 WHERE konm_kbetr > 0AND eina_lifnr = lt_tab-eina_lifnr AND eina_matnr = lt_tab-eina_matnr AND eine_ekorg = lt_tab-eine_ekorg AND eine_werks = lt_tab-eine_werks. "数量等级⾦额>0num = num + 1.ti_bapicondqs-operation = '004' .ti_bapicondqs-cond_no = ls_a017-knumh.ti_bapicondqs-cond_count = '01' .ti_bapicondqs-line_no = num.ti_bapicondqs-scale_qty = wa_tab1-konm_kstbm. "条件等级数量ti_bapicondqs-cond_unit = lv_bprme. "条件单位ti_bapicondqs-currency = wa_tab1-konm_kbetr. "BAPIs 的货币⾦额(带有 9 个⼩数位)ti_bapicondqs-condcurr = lt_tab-eine_waers. "⽐率单位(货币或百分数)APPEND ti_bapicondqs .CLEAR ti_bapicondqs .ENDLOOP.CLEAR num.IF lt_tab-eine_waers = 'CNY'.*如果货币单位为CNY,添加ZVA1类型ti_bapicondit-operation = '004' .ti_bapicondit-cond_no = ls_a017-knumh.ti_bapicondit-cond_count = '02'. "条件的序列号ti_bapicondit-applicatio = 'M'.ti_bapicondit-cond_type = 'ZVA1'. "类型2:ZVA1ti_bapicondit-scaletype = 'A'. "A基础等级ti_bapicondit-scalebasin = 'C' . "等级基值指⽰符,数量规模ti_bapicondit-scale_qty = '2'. "条件等级数量ti_bapicondit-calctypcon = 'A' . "条件计算类型--- C:数量 A:百分⽐IF lt_tab-konm_kbetr2 <> 0OR lt_tab-konm_kbetr2 <> ''.ti_bapicondit-cond_value = lt_tab-konm_kbetr2. "BAPIs 的货币⾦额(带有 9 个⼩数位)-(-5%)konm_kbetr2 ENDIF.ti_bapicondit-condcurr = lt_tab-konp_konwa2. "⽐率单位(货币或百分数):CNYti_bapicondit-cond_unit = lt_tab-konp_konwa2. "条件单位ti_bapicondit-cond_unit = lv_bprme.ti_bapicondit-unitmeasur = lv_bprme. "条件等级计量单位APPEND ti_bapicondit.CLEAR ti_bapicondit.*ZVA1--->设置等级数量LOOP AT gt_tab1 INTO wa_tab1 WHERE konm_kbetr > 0AND eina_lifnr = lt_tab-eina_lifnr AND eina_matnr = lt_tab-eina_matnr AND eine_ekorg = lt_tab-eine_ekorg AND eine_werks = lt_tab-eine_werks. "数量等级⾦额>0num = num + 1.ti_bapicondqs-operation = '004' .ti_bapicondqs-cond_no = ls_a017-knumh.ti_bapicondqs-cond_count = '02' .ti_bapicondqs-line_no = num.ti_bapicondqs-scale_qty = wa_tab1-konm_kstbm. "条件等级数量ti_bapicondqs-cond_unit = lv_bprme. "条件单位ti_bapicondqs-currency = wa_tab1-konm_kbetr. "BAPIs 的货币⾦额(带有 9 个⼩数位)ti_bapicondqs-condcurr = lt_tab-konp_konwa2. "⽐率单位(货币或百分数)APPEND ti_bapicondqs .CLEAR ti_bapicondqs .ENDLOOP.CLEAR num.ENDIF.CALL FUNCTION'BAPI_PRICES_CONDITIONS'TABLESti_bapicondct = ti_bapicondctti_bapicondhd = ti_bapicondhdti_bapicondit = ti_bapiconditti_bapicondqs = ti_bapicondqsti_bapicondvs = ti_bapicondvsto_bapiret2 = bapiret2to_bapiknumhs = to_bapiknumhsto_mem_initial = to_mem_initialEXCEPTIONSupdate_error = 1OTHERS = 2.IF sy-subrc = 0.DATA gv_infnr TYPE infnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = lt_tab-eina_lifnrIMPORTINGoutput = lt_tab-eina_lifnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = lt_tab-eina_matnrIMPORTINGoutput = lt_tab-eina_matnr.SELECT SINGLE infnr INTO gv_infnr FROM eina WHERE matnr = lt_tab-eina_matnr AND lifnr = lt_tab-eina_lifnr. CONCATENATE gv_infnr '信息记录已创建!'INTO result_mesg.APPEND result_mesg.CLEAR result_mesg.ELSE.CALL FUNCTION'BAPI_TRANSACTION_ROLLBACK'.CONCATENATE lt_tab-eina_matnr '操作错误!'INTO result_mesg.APPEND result_mesg.CLEAR:gv_infnr,result_mesg.ENDIF.ENDFORM. " CONDITION*&---------------------------------------------------------------------**& Form UPDATE_ME12*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM update_me12.LOOP AT gt_tab2 INTO wa_tab2 WHERE flag = 'X'.CLEAR: aplfzc,normbc,netprc,netprcx,peinhc.peinhc = wa_tab2-eine_peinh.CONDENSE peinhc NO-GAPS.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_tab2-eina_matnrIMPORTINGoutput = wa_tab2-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_tab2-eina_lifnrIMPORTINGoutput = wa_tab2-eina_lifnr.netprc = wa_tab2-eine_netpr.netprcx = netprc.CONDENSE netprcx NO-GAPS. "GYPCLEAR bdcdata[].PERFORM bdc_dynpro USING'SAPMM06I''0100'.PERFORM bdc_field USING'BDC_CURSOR''EINE-WERKS'.PERFORM bdc_field USING'BDC_OKCODE''/00'.PERFORM bdc_field USING'EINA-LIFNR' wa_tab2-eina_lifnr.PERFORM bdc_field USING'EINA-MATNR' wa_tab2-eina_matnr.PERFORM bdc_field USING'EINE-EKORG' wa_tab2-eine_ekorg.PERFORM bdc_field USING'EINE-WERKS' wa_tab2-eine_werks.IF wa_tab2-wx = 'X'.PERFORM bdc_field USING'RM06I-LOHNB''X'.ELSE.PERFORM bdc_field USING'RM06I-NORMB''X'.ENDIF.PERFORM bdc_dynpro USING'SAPMM06I''0101'.PERFORM bdc_field USING'BDC_CURSOR''EINA-URZTP'.PERFORM bdc_field USING'BDC_OKCODE''/00'.PERFORM bdc_field USING'EINA-URZTP'''.PERFORM bdc_field USING'EINA-URZTP' wa_tab2-eina_urztp.PERFORM bdc_dynpro USING'SAPMM06I''0102'.PERFORM bdc_field USING'BDC_CURSOR''EINE-MWSKZ'.PERFORM bdc_field USING'BDC_OKCODE''/00'.PERFORM bdc_field USING'EINE-MWSKZ' wa_tab2-eine_mwskz.PERFORM bdc_dynpro USING'SAPMM06I''0105'.PERFORM bdc_field USING'BDC_CURSOR''EINE-ANGNR'.PERFORM bdc_field USING'BDC_OKCODE''=KO'.PERFORM bdc_field USING'EINE-ANGNR' wa_tab2-eine_angnr.PERFORM bdc_dynpro USING'SAPLV14A''0102'.PERFORM bdc_field USING'BDC_CURSOR''VAKE-DATAB(01)'.PERFORM bdc_field USING'BDC_OKCODE''=NEWD'.PERFORM bdc_dynpro USING'SAPMV13A''0201'.PERFORM bdc_field USING'BDC_CURSOR''KONP-KBETR(01)'.PERFORM bdc_field USING'BDC_OKCODE''=SICH'.PERFORM bdc_field USING'RV13A-DATAB' wa_tab2-rv13a_datab.PERFORM bdc_field USING'RV13A-DATBI' wa_tab2-rv13a_datbi.PERFORM bdc_field USING'KONP-KBETR(01)' netprcx.CALL TRANSACTION'ME12'USING bdcdataMODE 'N'UPDATE'S'MESSAGES INTO messtab.READ TABLE messtab WITH KEY msgtyp = 'E'.IF sy-subrc = 0.LOOP AT messtab WHERE msgtyp = 'E'.CALL FUNCTION'MESSAGE_TEXT_BUILD'"消息编号及变量使⽤函数转换为消息内容输出EXPORTINGmsgid = messtab-msgidmsgnr = messtab-msgnrmsgv1 = messtab-msgv1msgv2 = messtab-msgv2msgv3 = messtab-msgv3msgv4 = messtab-msgv4IMPORTINGmessage_text_output = result_mesg.ENDLOOP.CONCATENATE'物料' wa_tab2-eina_matnr ':' result_mesg INTO result_mesg.APPEND result_mesg.CLEAR result_mesg.ELSE.PERFORM condition2 USING wa_tab2. "更新数量等级ENDIF.ENDLOOP.ENDFORM. "UPDATE_ME12*&---------------------------------------------------------------------**& Form condition2*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->LT_TAB text*----------------------------------------------------------------------*FORM condition2 USING value(lt_tab) TYPE ty_tab1.DATA num TYPE n LENGTH 4. "数量等级⾏号CLEAR:ti_bapicondct[],ti_bapicondct,ti_bapicondhd[],ti_bapicondhd,ti_bapicondit[],ti_bapicondit,ti_bapicondqs[],ti_bapicondqs,lv_bprme,num. DATA esokzc TYPE c.IF lt_tab-wx = 'X'.esokzc = '3'.ELSE.esokzc = '0'.ENDIF.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = lt_tab-eina_matnrIMPORTINGoutput = lt_tab-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = lt_tab-eina_lifnrIMPORTINGoutput = lt_tab-eina_lifnr.SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_a017FROM a017 WHERE kschl = 'PB00'"条件类型AND lifnr = lt_tab-eina_lifnr "供应商帐户号AND matnr = lt_tab-eina_matnr "物料AND ekorg = lt_tab-eine_ekorg "采购组织AND werks = lt_tab-eine_werks "⼯⼚AND datab = lt_tab-rv13a_datab "起始时间AND datbi = lt_tab-rv13a_datbi "截⽌时间AND esokz = esokzc. "采购信息记录分类-(0:标准 3:分包合同)CLEAR esokzc.SELECT SINGLE kmein INTO lv_bprme FROM konp WHERE knumh = ls_a017-knumh. "konp:条件(项⽬) kmein: ti_bapicondct-operation = '004' . "004修改 _009创建ti_bapicondct-cond_usage = 'A'. "条件表⽤途:定价ti_bapicondct-table_no = '017' . "条件表ti_bapicondct-applicatio = 'M' .ti_bapicondct-cond_type = 'PB00' .ti_bapicondct-valid_from = lt_tab-rv13a_datab. "条件记录有效起始⽇ti_bapicondct-valid_to = lt_tab-rv13a_datbi. "条件记录有效截⽌⽇期ti_bapicondct-cond_no = ls_a017-knumh . "条件记录号APPEND ti_bapicondct .CLEAR ti_bapicondct .*KONH的BAPI结构----条件( 抬头 )ti_bapicondhd-operation = '004' .ti_bapicondhd-cond_no = ls_a017-knumh . "条件记录号ti_bapicondhd-created_by = sy-uname. "创建对象的⼈员名称ti_bapicondhd-creat_date = sy-datum. "记录的创建⽇期ti_bapicondhd-cond_usage = 'A' .ti_bapicondhd-table_no = ' 017' .ti_bapicondhd-applicatio = 'M' .ti_bapicondhd-cond_type = ' PB00' .ti_bapicondhd-valid_from = lt_tab-rv13a_datab.ti_bapicondhd-valid_to = lt_tab-rv13a_datbi.APPEND ti_bapicondhd .CLEAR ti_bapicondhd .*KONP的BAPI结构ti_bapicondit-operation = '004' .ti_bapicondit-cond_no = ls_a017-knumh.ti_bapicondit-cond_count = '01' . "条件的序列号ti_bapicondit-applicatio = 'M' .ti_bapicondit-cond_type = 'PB00' .ti_bapicondit-scaletype = 'A' .ti_bapicondit-scalebasin = 'C' . "等级基值指⽰符,数量规模ti_bapicondit-scale_qty = 1 . "条件等级数量ti_bapicondit-calctypcon = 'C' . "条件计算类型--- C:数量 A:百分⽐ti_bapicondit-cond_value = netprcx. "BAPIs 的货币⾦额(带有 9 个⼩数位)-净价ti_bapicondit-condcurr = lt_tab-eine_waers. "⽐率单位(货币或百分数):CNYti_bapicondit-cond_p_unt = peinhc. "条件定价单位(单位=1)ti_bapicondit-cond_unit = lv_bprme. "条件单位ti_bapicondit-condcurren = lt_tab-eine_waers.ti_bapicondit-unitmeasur = lv_bprme. "条件等级计量单位APPEND ti_bapicondit.CLEAR ti_bapicondit.*PB00--->设置等级数量CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = lt_tab-eina_matnrIMPORTINGoutput = lt_tab-eina_matnr.CALL FUNCTION'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput = lt_tab-eina_lifnrIMPORTINGoutput = lt_tab-eina_lifnr.LOOP AT gt_tab2 INTO wa_tab2 WHERE konm_kbetr > 0AND eina_lifnr = lt_tab-eina_lifnr AND eina_matnr = lt_tab-eina_matnr AND eine_ekorg = lt_tab-eine_ekorg AND eine_werks = lt_tab-eine_werks. "数量等级⾦额>0num = num + 1.ti_bapicondqs-operation = '004' .ti_bapicondqs-cond_no = ls_a017-knumh.ti_bapicondqs-cond_count = '01' .ti_bapicondqs-line_no = num.ti_bapicondqs-scale_qty = wa_tab2-konm_kstbm. "条件等级数量ti_bapicondqs-cond_unit = lv_bprme. "条件单位ti_bapicondqs-currency = wa_tab2-konm_kbetr. "BAPIs 的货币⾦额(带有 9 个⼩数位)ti_bapicondqs-condcurr = lt_tab-eine_waers. "⽐率单位(货币或百分数)APPEND ti_bapicondqs .CLEAR ti_bapicondqs .ENDLOOP.CLEAR num.IF lt_tab-eine_waers = 'CNY'.*如果货币单位为CNY,添加ZVA1类型ti_bapicondit-operation = '004' .ti_bapicondit-cond_no = ls_a017-knumh.ti_bapicondit-cond_count = '02'. "条件的序列号ti_bapicondit-applicatio = 'M'.ti_bapicondit-cond_type = lt_tab-konp_kschl2. "进项税扣除ZVA1ti_bapicondit-scaletype = 'A'. "A基础等级ti_bapicondit-scalebasin = 'C' . "等级基值指⽰符,数量规模ti_bapicondit-scale_qty = '2'. "条件等级数量ti_bapicondit-calctypcon = 'A' . "条件计算类型--- C:数量 A:百分⽐IF lt_tab-konm_kbetr2 <> 0OR lt_tab-konm_kbetr2 <> ''.ti_bapicondit-cond_value = lt_tab-konm_kbetr2. "BAPIs 的货币⾦额(带有 9 个⼩数位)-(-5%)konm_kbetr2 ENDIF.ti_bapicondit-condcurr = lt_tab-konp_konwa2. "⽐率单位(货币或百分数):CNYti_bapicondit-cond_unit = lt_tab-konp_konwa2. "条件单位ti_bapicondit-cond_unit = lv_bprme.ti_bapicondit-unitmeasur = lv_bprme. "条件等级计量单位APPEND ti_bapicondit.CLEAR ti_bapicondit.*ZVA1--->设置等级数量LOOP AT gt_tab2 INTO wa_tab2 WHERE konm_kbetr > 0AND eina_lifnr = lt_tab-eina_lifnr AND eina_matnr = lt_tab-eina_matnr AND eine_ekorg = lt_tab-eine_ekorg AND eine_werks = lt_tab-eine_werks. "数量等级⾦额>0num = num + 1.ti_bapicondqs-operation = '004' .ti_bapicondqs-cond_no = ls_a017-knumh.ti_bapicondqs-cond_count = '02' .ti_bapicondqs-line_no = num.ti_bapicondqs-scale_qty = wa_tab2-konm_kstbm. "条件等级数量ti_bapicondqs-cond_unit = lv_bprme. "条件单位ti_bapicondqs-currency = wa_tab2-konm_kbetr. "BAPIs 的货币⾦额(带有 9 个⼩数位)ti_bapicondqs-condcurr = lt_tab-konp_konwa2. "⽐率单位(货币或百分数)APPEND ti_bapicondqs .CLEAR ti_bapicondqs .ENDLOOP.CLEAR num.ENDIF.CALL FUNCTION'BAPI_PRICES_CONDITIONS'TABLESti_bapicondct = ti_bapicondctti_bapicondhd = ti_bapicondhdti_bapicondit = ti_bapiconditti_bapicondqs = ti_bapicondqsti_bapicondvs = ti_bapicondvsto_bapiret2 = bapiret2to_bapiknumhs = to_bapiknumhsto_mem_initial = to_mem_initialEXCEPTIONSupdate_error = 1OTHERS = 2.IF sy-subrc = 0.CALL FUNCTION'MESSAGE_TEXT_BUILD'"消息编号及变量使⽤函数转换为消息内容输出EXPORTINGmsgid = messtab-msgidmsgnr = messtab-msgnrmsgv1 = messtab-msgv1msgv2 = messtab-msgv2msgv3 = messtab-msgv3msgv4 = messtab-msgv4。

sap数据批量导入教程、BDC实例详细讲解步骤

sap数据批量导入教程、BDC实例详细讲解步骤

SAP数据批量导入教程文章第59页第4部分为BDC批导入处理教程1.前言1.1.ECATT解释Extended Computer Aided Test Tool(T-code:SECATT)ECATT是SAP自带的功能测试工具,主要目标用来作SAP业务流程的自动化测试,每个测试都会生成一个详细的日志来显示测试流程和测试结果。

和CATT相比,CATT操作简单,类似于BDC的录屏功能,用于常用的简单业务数据导入,基本已被ECATT完全取代。

除了CATT功能之后,ECATT主要应用于基于GUI Windows/Gui Java自动化测试,同时也为外部工具提供了第三方接口(获BC-ECATT授权)。

所有的测试脚本,无论是ECATT自已生成的还是外部工具的他们都应该具有相同的数据对象类型,与SAP结合在一起并保存在相同的位置。

在R/3的功能测试中,ECATT录屏功能简单实用,测试脚本、测试数据、系统数据分别存放,可重复使用,并附有详细测试报告以及纠错功能,作为自带工具简单实用。

对于WEB方面的测试的话就要借用第三方的测试软件,如知名的Mercury的QTP。

1.2.LSMW解释Legacy System Migration Workbench (T-code: LSMW)LSMW, 是SAP推荐用来从旧的系统或非SAP系统把大批量或周期性的数据迁移到SAP的主力工具,类似于ECATT/SCATT,其优点可以在一个Session中处理大批量数据,并灵活易学易用。

如果用BDC 和ECATT只能根据定制好的画面输入参数。

一旦没有这个值系统就会报错。

比喻我们根据业务对FI Account Document或者主数据一些参数作了扩展,一旦参数缺失或者不匹配,不得不终止Session,通过SM35手动去更正或者重新录屏。

LSMW具有一般的通用性,他导入模板的设计过程包括15个步骤,每个都是独立的单元并可进行单独的更新和修改,而不影响其它的模块只需作一些调整做出相应mapping,将必要的数据指定对应的字段就可行了,无需额外的编码。

SAP各模块中涉及到BAPI

SAP各模块中涉及到BAPI

SAP项目中开发用到的BAPISAP项目中开发用到的BAPIMM模块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_code GOODSMVT_CODE参数对应值01 MB0102 MB3103 MB1A04 MB1B05 MB1C06 MB1107 MB046、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 发票的冲销8、修改外向交货单9、SD_DELIVERY_UPDATE_PICKING 修改外向交货单拣配数量10、WS_DELIVERY_UPDATE 外向交货单的发货过账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的预算。

SAP各模块常用的BAPI

SAP各模块常用的BAPI

SAP各模块常⽤的BAPIPP模块⽣产计划的BAPI列表::Routing(⼯艺路线)BAPI_ROUTING_CREATE 创建⼯艺路线BAPI - ca03BAPI_ROUTING_EXISTENCE_CHECK 检查⼯艺路线是否存在Reference operation set:(参考操作集)BAPI_REFSETOFOPERATIONS_CREATE 创建参考参考⼯序集BAPI_REFSETOFOPR_EXISTENCE_CHK 检查参考参考⼯序集Planned order:(计划订单)BAPI_PLANNEDORDER_CHANGE 更改计划订单 -md04BAPI_PLANNEDORDER_CREATE 创建计划订单BAPI_PLANNEDORDER_DELETE 删除计划订单BAPI_PLANNEDORDER_EXIST_CHECK 检查计划订单是否存在BAPI_PLANNEDORDER_GET_DETAIL 获取计划订单详细信息(计划订单)BAPI_PLANNEDORDER_GET_DET_LIST 获得计划订单信息Planned Independent Requirement:(计划独⽴需求)BAPI_REQUIREMENTS_CHANGE 更改计划独⽴需求 -md61BAPI_REQUIREMENTS_CREATE 创建计划独⽴需求BAPI_REQUIREMENTS_GETDETAIL 显⽰计划独⽴需求Production order:(⽣产订单)BAPI_PRODORD_WM_MAT_STAGING WM材料分期BAPI_PRODORD_SETUSERSTATUS 设置⽤户状态BAPI_PRODORD_SET_DEL_INDICATOR 设置删除标识BAPI_PRODORD_SET_DELETION_FLAG 设置删除标识BAPI_PRODORD_SCHEDULE 进⾏调整BAPI_PRODORD_REVOKEUSERSTATUS 取消⽤户状态BAPI_PRODORD_RELEASE 发布BAPI_PRODORD_GET_LIST 列表抬头订单BAPI_PRODORD_GET_DETAIL 抬头订单明细BAPI_PRODORD_EXIST_CHECK 确认检查性BAPI_PRODORD_CREATE_FROM_REF 创建模板BAPI_PRODORD_CREATE_FROM_PLORD 创建带有计划订单BAPI_PRODORD_CREATE_CAP_REQ 产⽣能⼒需求BAPI_PRODORD_CREATE 创建⽣产订单BAPI_PRODORD_COSTING 创建成本估计BAPI_PRODORD_COMPLETE_TECH 完整的技术BAPI_PRODORD_CLOSE 关闭订单BAPI_PRODORD_CHECK_MAT_AVAIL 检查物料可⽤性BAPI_PRODORD_CHANGE 更改⽣产订单Production order confirmation:(⽣产订单确认)BAPI_PRODORDCONF_GET_TT_PROP 确认计⼯单BAPI_PRODORDCONF_GET_TE_PROP 确认计⼯单BAPI_PRODORDCONF_GETLIST ⽣产订单确认BAPI_PRODORDCONF_GETDETAIL ⽣产订单确认详细信息BAPI_PRODORDCONF_GET_HDR_PROP 确认计划订单BAPI_PRODORDCONF_EXIST_CHK 检查⼯单是否存在BAPI_PRODORDCONF_CREATE_TT 确认计划⼯单BAPI_PRODORDCONF_CREATE_TE 确认计划⼯单BAPI_PRODORDCONF_PDC_UPLOAD_TT PP 确认计⼯单BAPI_PRODORDCONF_PDC_UPLOAD_TE PP 确认计⼯单BAPI_PRODORDCONF_CREATE_HDR 输⼊订单确认BAPI_PRODORDCONF_CREATE_ACT 输⼊订单激活确认BAPI_PRODORDCONF_CANCEL 取消⽣产订单BDC Download & Upload for production order: (下载和上传的BDC的⽣产订单)BAPI_RCVPRORDCF_RECEIVEPRODORD PP-PDC: 下载⽣产订单BAPI_RCVPRORDCF_RECEIVEWORKC PP-PDC: 下载⼯作中⼼BAPI_RCVPRODCF_REQUEST_CONF PP-PDC: 上传请求KANBAN: (看板)BAPI_KANBAN_CHANGE 更改kanban数据BAPI_KANBAN_CHANGESTATUS 更改kanban状态BAPI_KANBAN_CHANGESTATUS1 更改kanban状态1BAPI_KANBAN_GETLIST 匹配选择标准KANBAN的测定BAPI_KANBAN_GETLIST_ALL 匹配选择标准KANBAN的测定BAPI_KANBAN_GETLISTFORSUPPLIE1 匹配选择标准KANBAN的测定BAPI_KANBAN_GETLISTFORSUPPLIER 为供应商提供kanban数据BAPI_KANBAN_SETINPROCESS 为供应商提供kanban数据KANBAN CONTROL CYCLE: (看板)BAPI_KANBANCC_ADDEVENTDRKANBAN Create Event-Driven KANBAN for Control Cycle BAPI_KANBANCC_CHANGE Change Control CycleBAPI_KANBANCC_CREATE Create Control CycleBAPI_KANBANCC_DELETE Delete Control CyclesBAPI_KANBANCC_EXISTCHECK Check Existence of Control CycleBAPI_KANBANCC_GETLIST Determine Kanban Control Cycles with Selection Criteria BAPI_KANBANCC_GETLIST_ALL Determine Kanban Control Cycles with Selection Criteria BAPI_KANBANCC_WITHDRAWQUANTITY Quantity Signal for Kanban Control CycleREM Confirmation: ( REM确认)BAPI_REPMANCONF_CANCEL 处理的重复制造取消BAPI_REPMANCONF_CREATE_MTO 销售订单执⾏重复制造情况BAPI_REPMANCONF_CREATE_PLOT 执⾏⽣产成本BAPI_REPMANCONF_CREATE_MTS 在很多情况下,执⾏⽣产成本BAPI_REPMANCONF_EXIST_CHK 检查对象存在REM Confirmation1:BAPI_REPMANCONF1_CANCEL 处理的重复制造取消BAPI_REPMANCONF1_CREATE_MTO 销售订单执⾏重复制造情况BAPI_REPMANCONF1_CREATE_MTP 在很多情况下,执⾏⽣产成本BAPI_REPMANCONF1_CREATE_MTS 在很多情况下,执⾏⽣产成本BAPI_REPMANCONF1_EXIST_CHK 检查对象存在FI模块1、K_HIERARCHY_TABLES_READ 成本要素组明细2、BAPI_ACC_DOCUMENT_POST 创建会计凭证3、BAPI_ACC_DOCUMENT_REV_POST 反冲会计凭证可以冲销⾃开发程序⽣成的凭证必须传⼊交易码参数 BAPI_ACC_GL_POSTING_REV_POST 只能冲销标准TCODE⽣成的凭证4、FCOM_COSTCENTER_CHANGEMULTIPLEFCOM_COSTCENTER_CREATEMULTIPLEBAPI_COSTCENTER_CHANGEMULTIPLE :Change One or More Cost CentersBAPI_COSTCENTER_CHECKMULTIPLE :Check One or More Cost CentersBAPI_COSTCENTER_CREATEMULTIPLE :Create One or More Cost CentersBAPI_COSTCENTER_DELETEMULTIPLE :Delete One or More Cost Centers4、BAPI_INCOMINGINVOICE_CREATE 发票检验(miro)5、BAPI_INCOMINGINVOICE_CANCEL 发票校验冲销(mr8m)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的预算PM模块1、BAPI_OBJCL_CREATE 、BAPI_OBJCL_CHANGE、BAPI_OBJCL_GETDETAIL计量点通⽤属性导⼊2、MEASUREM_DOCUM_RFC_SINGLE_001 计量凭证创建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_CANCEL1 发票的冲销8、 BAPI_OUTB_DELIVERY_CHANGE 修改外向交货单9、 SD_DELIVERY_UPDATE_PICKING 修改外向交货单拣配数量10、WS_DELIVERY_UPDATE 外向交货单的发货过账11、SD_CUSTOMER_MAINTAIN_ALL 创建客户。

ABAP_BOM导入

ABAP_BOM导入
p_stlal LIKE rc29n-stlal DEFAULT '1',"可选的BOM
p_postp LIKE rc29p-postp DEFAULT 'L',
p_kmpmg TYPE kmpmg DEFAULT 1,
DATA: www_in TYPE string,
ww_out TYPE string,
www_out TYPE string.
DATA lt_out LIKE TABLE OF lt_in WITH HEADER LINE .
DATA:BEGIN OF it_error OCCURS 0,"message
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
* FIELD_NAME = ' '
IMPORTING
wa LIKE LINE OF it_fieldcat,
alv_wa LIKE LINE OF it_fieldcat,
alv_top_of_page TYPE slis_formname,
i_list_comments TYPE slis_t_listheader,
it_bomgroup LIKE bapi1080_bgr_c OCCURS 0 WITH HEADER LINE,
*可选/变式 CREATE-/CHANGE BAPI 物料 BOM
it_variants LIKE bapi1080_bom_c OCCURS 0 WITH HEADER LINE,

MM物料库存转移(bapi)

MM物料库存转移(bapi)

*&---------------------------------------------------------------------**& Report ztmm_e001*& Report Name: MM 物料库存转移*& Report Description: MM 物料库存转移*& T-Code: zmme001*&---------------------------------------------------------------------**& Created By: TTC Created On: 2021-11-15*& Updated By: TTC Updated On: 2021-11-15*&---------------------------------------------------------------------*REPORT ztmm_e001.TABLES: mkpf,mseg,mara,mska,mchb,ztmm_e001,vbap,rm07m,t158b,t001l,msegk. DATA: lv_bwart(5), "移动类型lv_sobkz LIKE mseg-sobkz, "特殊库存lv_bldat LIKE mkpf-bldat, "凭证中的凭证日期lv_budat LIKE mkpf-budat, "凭证中的过帐日期lv_werks LIKE mseg-werks, "工厂lv_matnr LIKE mara-matnr, "物料号lv_vbeln LIKE mska-vbeln, "销售单lv_posnr LIKE mska-posnr, "销售项目lv_vbeln_in LIKE mska-vbeln, "接收销售单lv_posnr_in LIKE mska-posnr, "接收销售项目LV_WERKS_IN LIKE mseg-werks, "接下班厂rp1(1),rp2(1).*SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME TITLE text-001.*PARAMETERS: P1 TYPE C RADIOBUTTON GROUP GP1 USER-COMMAND UC01, * P2 TYPE C RADIOBUTTON GROUP GP1.*SELECTION-SCREEN END OF BLOCK bl .*功能码返回值DATA: ok_code TYPE sy-ucomm,save_ok TYPE sy-ucomm.CONTROLS: ztmm_1001 TYPE TABLEVIEW USING SCREEN 1001,ztmm_1002 TYPE TABLEVIEW USING SCREEN 1002,ztmm_1003 TYPE TABLEVIEW USING SCREEN 1003,ztmm_1004 TYPE TABLEVIEW USING SCREEN 1004.DATA: lv_cols LIKE LINE OF ztmm_1001-cols,lv_line TYPE i.DATA: lo_grid TYPE REF TO cl_gui_alv_grid.DATA:gt_ztmm_e001 TYPE ztmm_e001 OCCURS 0 WITH HEADER LINE. DATA:gt_ztmm_e002 TYPE ztmm_e001 OCCURS 0 WITH HEADER LINE. DATA:gt_ztmm_e003 TYPE ztmm_e001 OCCURS 0 WITH HEADER LINE. DATA:gt_ztmm_e004 TYPE ztmm_e001 OCCURS 0 WITH HEADER LINE.TYPE-POOLS: slis, icon.DATA: g_repid LIKE sy-repid,gt_fieldcat TYPE slis_t_fieldcat_alv,wa_fieldcat TYPE slis_fieldcat_alv,gt_event TYPE slis_t_event,wa_event TYPE slis_alv_event,gt_selfield TYPE slis_selfield OCCURS 0,l_layout TYPE slis_layout_alv.START-OF-SELECTION.CALL SCREEN 1010."库存转移主窗口INCLUDE ztmm_e001_status_1010o01.INCLUDE ztmm_e001_user_command_1010i01.* "411 移动类型INCLUDE ztmm_e001_status_1001o01. "411-PBO INCLUDE ztmm_e001_user_command_1001i01. "411-BAI* "412 移动类型INCLUDE ztmm_e001_status_1002o01. "412-PBO INCLUDE ztmm_e001_user_command_1002i01. "412-PAI* "413 移动类型INCLUDE ztmm_e001_status_1003o01. "413-PBO INCLUDE ztmm_e001_user_command_1003i01. "413-PAI* "301 移动类型INCLUDE ztmm_e001_status_1004o01. "301-PBOINCLUDE ztmm_e001_user_command_1004i01. "301-PAI*&---------------------------------------------------------------------**& Form get_matnrdesc*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM get_matnrdesc. "网络值描述DATA: wa_j_3apghd TYPE SORTED TABLE OF j_3apghdWITH UNIQUE KEY mandt j_3apgnr j_3avdat WITH HEADER LINE.DATA: wa_j_3apgen TYPE SORTED TABLE OF j_3apgenWITH UNIQUE KEY mandt j_3apgnr j_3avdat j_3akord1 j_3akord2 j_3akord3 WITH HEADER LINE.DATA: wa_cawn TYPE SORTED TABLE OF cawnWITH UNIQUE KEY mandt atinn atzhl adzhl WITH HEADER LINE.DATA: wa_cawnt TYPE SORTED TABLE OF cawntWITH UNIQUE KEY mandt atinn atzhl spras adzhl WITH HEADER LINE.DATA: BEGIN OF lt_j_3apgnr OCCURS 0,j_3apgnr LIKE mara-j_3apgnr,END OF lt_j_3apgnr.DATA: BEGIN OF lt_charact OCCURS 0,g_3abzd TYPE j_3apghd-j_3abzd1,END OF lt_charact.DATA: BEGIN OF lt_cawn OCCURS 0,atinn TYPE cawn-atinn,END OF lt_cawn.DESCRIBE TABLE wa_j_3apghd LINES lv_line.IF lv_line = 0.LOOP AT gt_ztmm_e001.lt_j_3apgnr-j_3apgnr = gt_ztmm_e001-j_3apgnr.COLLECT lt_j_3apgnr.ENDLOOP.SORT lt_j_3apgnr.SELECT * INTO CORRESPONDING FIELDS OF TABLE wa_j_3apghd FROM j_3apghdFOR ALL ENTRIES IN lt_j_3apgnr WHERE j_3apgnr = lt_j_3apgnr-j_3apgnr.SELECT * INTO CORRESPONDING FIELDS OF TABLE wa_j_3apgen FROM j_3apgen FOR ALL ENTRIES IN lt_j_3apgnr WHERE j_3apgnr = lt_j_3apgnr-j_3apgnr.LOOP AT wa_j_3apghd.CLEAR lt_charact.lt_charact-g_3abzd = wa_j_3apghd-j_3abzd1.COLLECT lt_charact.CLEAR lt_charact.lt_charact-g_3abzd = wa_j_3apghd-j_3abzd2.COLLECT lt_charact.ENDLOOP.LOOP AT lt_charact.lt_cawn-atinn = lt_charact-g_3abzd.APPEND lt_cawn.ENDLOOP.SORT lt_cawn.SELECT * INTO CORRESPONDING FIELDS OF TABLE wa_cawn FROM cawnFOR ALL ENTRIES IN lt_cawn WHERE atinn = lt_cawn-atinn.SELECT * INTO CORRESPONDING FIELDS OF TABLE wa_cawnt FROM cawnt FOR ALL ENTRIES IN lt_cawn WHERE atinn = lt_cawn-atinn.ENDIF.*****************************************************************LOOP AT gt_ztmm_e001."网络值描述DATA:g_3abzd1 TYPE string,g_3abzd2 TYPE string,g_color TYPE string,g_size TYPE string,g_atzhl1 TYPE string,g_atzhl2 TYPE string,g_desc1 TYPE string,g_desc2 TYPE string.CLEAR:g_3abzd1,g_3abzd2,g_color,g_size,g_atzhl1,g_atzhl2,g_desc1,g_desc2. "通过物料网格编号:取得维值1,维值2(内部特性号)READ TABLE wa_j_3apghd WITH KEY mandt = sy-mandtj_3apgnr = gt_ztmm_e001-j_3apgnr .g_3abzd1 = wa_j_3apghd-j_3abzd1.g_3abzd2 = wa_j_3apghd-j_3abzd2."通过网格值及物料网格编号:取得颜色及尺码READ TABLE wa_j_3apgen WITH KEY mandt = sy-mandt j_3apgnr = gt_ztmm_e001-j_3apgnrj_3akordx = gt_ztmm_e001-j_3asize.g_color = wa_j_3apgen-j_3akord1.g_size = wa_j_3apgen-j_3akord2."内部计数器值READ TABLE wa_cawn WITH KEY mandt = sy-mandtatinn = g_3abzd1atwrt = g_color.g_atzhl1 = wa_cawn-atzhl.READ TABLE wa_cawn WITH KEY mandt = sy-mandtatinn = g_3abzd2atwrt = g_size.g_atzhl2 = wa_cawn-atzhl."网络值描述READ TABLE wa_cawnt WITH KEY mandt = sy-mandtatinn = g_3abzd1spras = 1atzhl = g_atzhl1.g_desc1 = wa_cawnt-atwtb.READ TABLE wa_cawnt WITH KEY mandt = sy-mandtatinn = g_3abzd2spras = 1atzhl = g_atzhl2.g_desc2 = wa_cawnt-atwtb.IF g_desc1 IS INITIAL AND g_desc2 IS INITIAL.gt_ztmm_e001-j_3asize_dsc = ''.ELSEIF g_desc2 IS INITIAL.CONCATENATE g_desc1 '' INTO gt_ztmm_e001-j_3asize_dsc.ELSE.CONCATENATE g_desc1 '/' g_desc2 INTO gt_ztmm_e001-j_3asize_dsc. ENDIF.MODIFY gt_ztmm_e001.ENDLOOP.FREE: wa_j_3apghd,wa_j_3apgen,wa_cawn,wa_cawnt.ENDFORM. " matnrdesc*&---------------------------------------------------------------------**& Form clear_data*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM clear_data.CLEAR:lv_bwart, "移动类型lv_sobkz, "特殊库存lv_werks, "工厂lv_matnr, "物料号lv_vbeln, "销售单lv_posnr, "销售项目lv_vbeln_in, "接收销售单lv_posnr_in. "接收销售项目REFRESH: gt_ztmm_e001,gt_ztmm_e002,gt_ztmm_e003,gt_ztmm_e004. FREE:ztmm_e001.ENDFORM. "get_matnrdesc一、执行以上代码得出以下界面:1-1、主窗口界面逻辑流:PROCESS BEFORE OUTPUT.MODULE STATUS_1010.*PROCESS AFTER INPUT.MODULE USER_COMMAND_1010.1-2、主窗口OUTPUT模块代码:MODULE status_1010 OUTPUT.SET PF-STATUS 'ZTMM_STATE'.SET TITLEBAR 'ZTMM_E001_10'. "USER_COMMAND ENDMODULE. " STATUS_1010 OUTPUT1-2、主窗口INPUT模块代码:MODULE user_command_1010 INPUT.save_ok = sy-ucomm.CASE save_ok.WHEN 'LV_BTN1'.CALL SCREEN 1001.WHEN 'LV_BTN2'.CALL SCREEN 1002.WHEN 'LV_BTN3'.CALL SCREEN 1003.WHEN 'LV_BTN4'.CALL SCREEN 1004.WHEN 'LV_BTN5' OR 'EXIT' OR 'BACK' OR 'CANC' .SET SCREEN 0. LEAVE SCREEN.WHEN 'SAVE'.MODIFY SCREEN.ENDCASE.ENDMODULE. " USER_COMMAND_1010 INPUT2-1、1001屏幕界面逻辑流:PROCESS BEFORE OUTPUT.FIELD !lv_bldat MODULE %_lv_bldat.FIELD !lv_budat MODULE %_lv_budat.FIELD !lv_werks MODULE %_lv_werks.FIELD !lv_vbeln MODULE lv_vbeln.FIELD !lv_posnr MODULE lv_posnr.FIELD !lv_matnr MODULE lv_matnr.MODULE status_1001.LOOP AT gt_ztmm_e001 WITH CONTROL ztmm_1001 CURSOR ztmm_1001-top_line. MODULE display_ztmm_1001.ENDLOOP.PROCESS AFTER INPUT.LOOP AT gt_ztmm_e001.MODULE modify_data_1001.ENDLOOP.MODULE user_command_1001.2-2、1001屏幕OUTPUT模块代码:MODULE status_1001 OUTPUT.SET PF-STATUS 'ZTMM_STATE'.SET TITLEBAR 'ZTMM_E001_01'.DESCRIBE TABLE gt_ztmm_e001 LINES lv_line.ztmm_1001-lines = lv_line.IF gt_ztmm_e001 IS INITIAL.lv_bldat = sy-datum.lv_budat = sy-datum.lv_bwart = '411'.lv_sobkz = 'E'.ENDIF.ENDMODULE. " STATUS_1001 OUTPUT*----------------------------------------------------------------------** MODULE display_ztmm_1001 OUTPUT*----------------------------------------------------------------------***----------------------------------------------------------------------*MODULE display_ztmm_1001 OUTPUT.READ TABLE gt_ztmm_e001 INTO ztmm_e001 INDEX ztmm_1001-current_line. " DISPLAY OUTP UTENDMODULE. " DISPLAY_ZTMM_1001 OUTPUT2-2、1001屏幕INPUT模块代码:*----------------------------------------------------------------------****INCLUDE ZTMM_E001_USER_COMMAND_1001I01 .*----------------------------------------------------------------------**&---------------------------------------------------------------------**& Module USER_COMMAND_1001 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE user_command_1001 INPUT.save_ok = sy-ucomm. "ok_code .CASE save_ok.WHEN 'EXIT' OR 'BACK' OR 'CANC' .PERFORM clear_data.SET SCREEN 0. LEAVE SCREEN.WHEN 'SAVE' .PERFORM save_data_1001 .WHEN 'BTN_CLEAR' .FREE:gt_ztmm_e001. "清空列表WHEN 'BTN_GET_STOCK'.PERFORM get_data_1001. "读取数据。

  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。

相关文档
最新文档