一MM常用表格及其关联关系图范文.docx
-.MM常用表格及其关联关系图1.物料主数据表名表描述备注MARA物料基本信息表1 .常对应到basicdata1-2view,在SAP中,同一物料在所有的plant中的基本信息比如物料描述等都是相同的.2 .一物料只能对应一种materialtype,虽然可能在一plant此物料是半成品但在另一plant却是原料.3 .建立物料必须建立基本视图,就是说此表必有数据.MAKT物料描述表1 .如有需要,可对应多语言版本的描述信息2 .建立物料,此表必有数据(除非将物料描述默认的必输去除).MARC物料工厂信息表1 .其实物料MRP1-MRP4view对应的信息就保存在此表.2 .如果MRPview没维护,MMSC是扩充不了仓位.3 .建立物料时如没建立MRPview此表就无数据.MARM物料度量信息表1.对应到basicdata1view的DimensionsZEANsTab页重量等信息的附加表,从物料主数据的additionaldata进去也可维护.2 .这些信息在表MARA也能找到.3 .如相关数据没维护表中数据就为空.MBEW物料评估表1 .对应到物料accounting1-2和costing!-2view2 .特别需要强调的是,如.有分割评后,通常一个物料一plant在此表只有一条记录,启动了分割评估比如批次,在MBEW中每批次都会有条带评估类型Mbew-BWTAR的记录.所以启动批次的物料有plantlevel和batchlevel的评估记录.读者看到的物料价格实际上是plantlevel的价格.3 .如没有维护会计和成本视图,这两表也不会有数据.MVKE销售相关表1 .对应到物料的销售视图.2 .如没有维护相关信息此表也无数据.M1.AN销售税务表1 .对应salesorg1view的taxdata.如有需求,可维护对应到不同国家的多个税种.2 .如没维护销售视图此表当然无数据.1由于SAP物料数据牵涉多个部门,通常企业会成立专门的物料维护小组,从各部门收集各物料视图的数据后再统一维护进系统,也有企业是由各部门自行维护相关数据,这样可能造成某些视图的维护不及时.如此时需写Query查询数据注意以MARA为basictable同时要注意使用leftouterjoin.2.MBEW的valuationarea通常就是Plant,因为通常valuationIeVel(C)X14)是plant级.其他相关表格:表名描述备注M1.GNMaterialDataperWarehouseNumberM1.GTMaterialDataperStorageTypeMSTAMaterialMasterStatusMVERMaterialconsumptionMVKEMaterialMaster:SalesDataMKA1.ProductionVersionC223,MM01建立,期间生产MARDMaterialMaster:Storage1.ocationZBatch各location现有库存SegmentMARVMaterialControlRecordMMPVtMMPI后此表更改MBPRStockatProductionStorageBinMCHABatCheS(批次表)MSC3N可查看批此MCHBSTXHSTX1.BatchStocksBasicData1(BaiscdataSAPscripttextfileheadertext),PurchaseorderText和Salestext视图的文本数据,实际上所有的文本(Po,SO,Mat.)SAPscripttextfilelines都保存在此两表.关于物料E数据相关文本更详细请看开发实例物料主数据编程.图3.1.1显示的使用query查询物料主数据字段的一个图例(在接下来的表示表关联都会使用query的tablejoin并给予详细说明),注意使用左关联.a3.1.1I口MARA:GeneralMater?1AKT:MaterialD<MARC:PhntDatfJ?21VKE:SalesDaUfoTechnicalNam<1.ongTechnical>1.ongI.73TechnicalNam<1.onqTechnicalPMATNRVKORGVTWEG1.ongTe>MaUrii*SaIesCDistribMAT*ERSDA-MATNRSPRASM品"H1.angUaMATNRWERKSMPlERNAMNrMAKTXM*nilPSTATM1.VORMInd.:F1.AEDADatMAKTGMaterial1.VORMHAENAMNr8WTTYVjVERSGMt»i;VPSTAMaiXCHARB<BONUSVolu11>PSTAT1.VORMFbMMSTAMMSTDPlD.PROVGSKTOFCommCashcMTARTMAABCAlVMSTADistrihMBRSHIncKKRIIrVMSTDDatefrMATK1.MEKGRPP(AUMNGMnirmBISMTOlcAUSMEUi1.FMNG琳nir11MEINSB*DISPRMEFMNG4Jrj»<2Tr.l12JClF1DISMMIIMd»RMATNRMXerialMBEW:MaterialVahIilTechnicaM1.AN:TaxClassikhwid1.ogTejeftOJterJOh|DeleteUnkVERPRMovingASTPRSStSehrdPEINHPrkeUnitBK1.ASVtluttionSA1.KVVatuebas<WKUMTotlWU"FTAXM2TaxChssifTAXM3TaXCIaSSiFTAXM4TaXchziifTAXMSTaxChSsiFTAXM&TaXclasfTAXM7TaxclasrfTAXMBTaxclasafTAXM9TaxclassifTAXIMTixindicaIJJI为什么要使用做关联?这很容易理解,就是如果某些物料只维护了基本视图,不妨假设一新建plant中只有两个物料,物料A只维护了基本视图,物料B维护了所有相关视图,如不使用左外关联,查询出的将只有B物料,A物料由于其他视图没维护将不显示.*和数据库类似,SAPquery提供了innerjoin和IeftOUtjOin(而有的数据库是分左关联,右关联,内关联和外关联的),具体的意思相近.物料主数据/期间主要相关Tcode:Tcode描述MMOl新建物料主数据,当物料基本视图存在也使用它扩充物料视图.MM02修改物料主数据,有些关键字段有了业务数据修改要一定规则比如修改单位,修改评估类型等.MM03显示物料主数据MM04显示物料被修改日志MM06将物料标志为删除.MM17批量修改,类SCAT和BDC功能,限制同MMO2,MMAM修改物料的materialIype,有一定条件限制.C223(MM01)建立物料生产版本(通常是为Byperiod生产方式)MSC1N-MSC4N批次操作TcodeMMPV,MMPI加MMRV,OMSY操作物料期间或允许向上物料期间记帐2.PR,Source1.ist和PO(Deleted-.)二.开发实例下面是一个企业的参考MM开发需求清单(并不包括用户出口等).供应商列表I信息记录PR,PO打印(SCriP或Smartform)MRB物料清单I物料报废报表物料入库报表物料运输申请单物料主数据查询报表I收货单打印IIQC报表IPIIn1.iStI发料单(生产定单)1物料转移单IDeIiVerylIoteSlPaCkiilg1.istRMA发料单I库存分析报告IPO分析报告IGR/IR分析报告I物料盘点单I盘点物料报告等.如项目紧急而开发人手不足(有些中小企业专职的ABAPer可能只有一个或各模块的SAP内部支持顾问兼做开发),必须排定开发优先次序,除了比如PO套打收货单打印等必须在项目正式上线前完成的开发任务,相关查询报表可在上线后开发.如果是专职负责开发,依旧需要很好理解业务,最好和负责业务支持的多沟通,一个最有效的方法就是将相关模块的业务流程(通常在业务蓝图阶段会有非常详细的相关资料)在测试系统走一遍,这样对以后开发是大有益处的.1.MM相关单据打印之所以将单据打印放在第一位是因为其他的report可在上线后慢慢开发,可是比如PO等单据打印不出来是不行的.相关配置:O昌PurchaseRequisition国PurchaseOrder图GDefineNumberRanges国卷DefineDocumentTypes国.SetTolerance1.imitsforPriceVarianceO昌ReleaseProcedureforPurchaseOrders四卷DefineScreen1.ayoutatDocument1.evelQ昌TeXtSforPUrchaSeOrderSQDefineTextTypesforHeaderTextsDefineCopyingRulesforHeaderTextsDefineTextTypesforItemTextsQDefheCoPyingRlJleSforIternTeXtSPo和收货单打印开发NACE,MB04外协POQMRMM8504(Sel6:V_T100C)设成error就可.>P0数量也可以.此处N个增强省去2. PO增强编程SAP1.XMO6:A11ME21NenhancementSaplxmbciMIGOPc)Changehistory*&* &IncludeZXM06U42* &*data:ZwatekpoIikebekpo,ZIEINFO1.IKEEINFOoccurs0withheaderline,ZERMSG(73)TYPEC.TAB1.ESEKBE.* *TEKPOrecordsal1theoldPOitemdate.* *I_EKPOrecordscurrentlyprocessedPOitem.READTAB1.ETEKPOINTOZWATEKPOWITHKEYEBE1.P=1.EKPo-EBE1.P.* *只对ME22N才生效.CHECKSY-TCODE=,ME21N,or,ME22N'or''ME23N'.* *EKBE是POhistory表,如有Q,R表示有发票校验历史,不允许更改价#SE1.ECTSING1.E*FROMEKBEMIEREEBE1.N=I1.EKPo-EBE1.nANDEBE1.P=1.EKPo-EBE1.PAND(BEWTP='Q'ORBEWTP='R').CHECKSY-SUBRC=0.* *如果SY-SUBRC=0表示发票已经校验,不允许更改价格,否则还是可更改价格#IFI_EKPO-NETPROZWATEKPo-NETPR.* *Changeel7(ZFTMSG)accordingly*MESSAGEeO17(ZFIMSG).”使用下面函数代替.CA1.1.FUNCTION'READ_CUSTOMIZEDJfESSAGE,EXPORTINGI_ARBGB='ZFIMSG,I_DTYPE=''I_MSGNR=,017,IMPORTINGE_MSGTY=SY-MSGTY.CHECKSY-MSGTYNE,-.REFRESHZIEINFO.Zieinfo-MSGID='zfimsg,.Zieinfo-Msgno=,oi7>.Zieinfo-Msgvi=,vari,.ZIEINF0-MSGV2='VAR2'.APPENDZIEINFO.CA1.1.FUNCTION,MESSAGE-GET-TEXT,EXPORTINGIEINFO=ZIEINFOI1.ANGU=SY-1.ANGUIMPORTINGETEXT=ZERMSG.MESSAGEZERMSGTYPESY-MSGTY.ENDIF.3.物料主数据编程BADI也是enhanccmnct的一种,可以在SE19中建立自定义的ImPICmentationname激活系统自带的badis,系统的badis可以在SE18中看。物料主数据中有很多Text(文本),比如有两个视图Purchaseordertext和Salestext,在basicdatal视图中单击BaSiCdatatext按钮或直接点击Additionaldata按钮能看见Basicdatatext和InSPeCtiontext两tab页,在此可写入一些相关信息,这些信息没别的,就是将来可用在打印PO或SO上而己(更详细请看MM相关单据打印).如图3.2.3T,在purchaseordertext中保存了9行数据,每行使用回车键分开.FCTeJontradeImport导PurchaseordertextMRP1k&MRP2EQMaterialS1.62BP1.S49HlS35S1.62AEP1.S49H153503.2.3-1同回PurchaseordertextEnglish1.angsmaritanedIr-¾lIAlI-fJI-,I'-i11ISj)ij画画l.THis2.this3*this4,this5.this6.,this7."this8this9.thisisPurchaseispurchasexspurchaseisorder4.isonly5isonly6.Isorder7.isorder8order9orderorder2order3当物料保存时,SE16检查STXH和STX1.,图3.2.3-2是STX1.表的结果,注意画红圈的字段,数据以binary格式保存在STX1.字段C1.USTR里.1 .其实STX1.就是一个所谓的簇式数据库(一个有特定结构的透明表),详情请看第篇的第12节簇数据库和逻辑数据库.2 .注意簇数据库和簇表的区别.簇数据库(ABAP层的概念)是透明表对应一个SAP系统用的数据库的个物理表,ClientCHARO2dataelenenttorSYSTTextobjectTextNane-220MATERIA1.S1.62ABP1.S49H1535220MATERIA1.S1.62ABP1.S49H1535一220MATERIA1.S1.62ABP1.S49H1535一220JivkES1.62ABP1.S49H1535510001220HVKES1.62ABP1.S49H1535510002TableJSTX1.图3g.32Displayedfields:8of9Fixedcolxmns:一1.istwidth02S0TextIDBESTGRUMPRUEOOOl0001=,BEST,=SY-1.ANGUno+salesorg.+dist.chann.=,S1.62ABP1.S49H1535,REPORTZMATTXT.data:itab_headlikethead,itab-li11liketlineoccurs0withheaderline.CA1.1.FUNCTION'READ.TEXT,EXPORTING* *ID:1.BSET:PurchaseOrderText(物料视图)* *2.GRUNzBasicDataText(从additionaldata按钮进去)* *3.PRUE:InspectionText* *4.0001:SalesTextID1.ANGUAGE* *对1.2.3是Name就是mat.no.* *4salestext对应的name是Mat.NAME* *1.2.3MATERIA1.,4MVKE.OBJECT=,MATERIA1.*IMPORTINGHEADER=itab_headTAB1.ES1.INES=itab_lineEXCEPTIONSID=11.ANGUAGE=2NAME=3NOT.FOUND=4OBJECT=5REFERENCE-CHECK=6WRONG_ACCESS_TO_ARCHIVE=7OTHERS=8.checksy-subrceq0.*此例是读出materailmasterdata的PurChaSeordertext. *P0text可有多行,使用Enter键分行,所以使用内表.1.oopatitab_line.write:/itab_line-tdformat,itab_line-tdline.endlp. *下面是读出mat.masterdata的SaleStext的例子. *注意NAME是物料(补满18位)+Salesorg.+dist.chann.data:itab_soheadlikethead,itabsolineliketlineoccurs0withheaderline.CA1.1.FUNCTION'READ,TEXT,EXPORTINGID1.ANGUAGENAMEOBJECTIMPORTINGHEADERTAB1.ES1.INESEXCEPTIONS='0001,=SY-1.ANGU=,S1.62ABP1.S49H1535'=,MVKE,*Salestext是MVKE=itabsohead=itabsolineID=11.ANGUAGE=2NAME=3NOT_FOUND=4OBJECT=5REFERENCE_CHECK=6WRONG_ACCESS_TO_ARCHIVE=7OTHERS=8.1.oopatitab_soline.write:/itab_soline-tdformat,itab_soline-tdline.endlp.