SAPMM物料主数据.docx
《SAPMM物料主数据.docx》由会员分享,可在线阅读,更多相关《SAPMM物料主数据.docx(14页珍藏版)》请在冰豆网上搜索。
![SAPMM物料主数据.docx](https://file1.bdocx.com/fileroot1/2022-10/7/a9627db6-2ba2-472c-99ec-643176c7cb52/a9627db6-2ba2-472c-99ec-643176c7cb521.gif)
物料主数据
ERP中的数据通常有各种相对静态的主数据和交易数据,物料主数据无疑是最重要最复杂的主数据,在SAP中,SAP的主数据包括采购销售计划物控仓库质量进出口财务成本等数据,这些信息的正确输入需要各部门的Co-work才能保证数据的准确性,如果需要,企业可成立专门的主数据小组,一个大集团在全国乃至世界各地都有业务,在集团层面规范物料编码尤其重要,关于物料编码重要性在此不做讨论,这样的吹牛文章到处都有,吹牛他们吹,杀猪就俺来杀,下面看看SAP中关于物料需求的一些有趣的个性的配置。
(1).物料主数据配置
关于物料主数据的一些后台配置.
图1-[1]:
设置物料block参数
默认的是排他锁(LockExclusively)10秒,你可以改成LateLock.或将时间缩短.
SAP的lock机制本来是为了确保业务数据完整性,但是其lock不是在DB层而是在ABAP层(如果需要SE11可自建Lockobject).这样有一个比较大的麻烦,就是如果一个跨国大集团中有人在更改物料特别是一般视图的数据,其它Branch的user可能不能为该料开PO或做物料移动等,非常不方便.
如果物料被某用户锁住,请试着使用Tcode:
SM12处理.
图1-[2]:
激活Consignmentinforecord(Tcode:
OMEV)
如想处理consignment物料(VMI->VendorManagementInventory),你必须激活Consignmentpriceviainforecord,然后在ME11你才被允许建立consignment 类型的inforecord,此配置实乃多此一举.
(2).为用户设置可维护主数据屏幕
SAP的物料主数据包括采购销售工厂质量财务成本相关一大堆屏幕,这些屏幕还允许定义配置,这在实际业务中很有现实应用意义,比如采购部门不能看到财务成视图的价格等”敏感”数据, 生产计划员只能看到和维护和自己相关的物料的MRPView,即除非授权用户,一般各部门只看到和维护和自己工作相关的View。
下面以一个实例,假设现在想让财务部用户STONEF在使用MM01|MM02|MM03只能看到和维护会计成本视图,其它的物料主数据视图对STONEF是不可见的,这个配置很简单,只有小小的4步而已(如图1).
第一步:
维护屏幕顺序.
Tcode:
OMT3B(如图1-[1]).
CopySAP默认的屏幕顺序screensequence 01 成Z1(拷贝一个Z1),将不需要的datascreen删除,我的经验是将08-20,23-24等逻辑屏幕删除就行,尽量保留40以后的所有屏幕,否则在显示物料视图会有些问题(如图2).
在图2中,Datascreen下面还有subscreen可看看,如果读者有ABAP基础,这很好理解,一个mainscreen通常是包括多个subscreen.你对物料主数据的某视图的某字段按F1就可知道屏幕号和子屏幕号.
第二步:
维护主屏幕显示顺序
Tcode:
OMT3R(如图1-[2])
这步非必须的,如果有必要,如图3,调整Mainscreen的顺序,图3-1中可看出BasicData/Accouting/Costing的No.是30/20/10,这也就是财务部用户STONEF以后MM01/MM02/MM03看到的物料视图顺序,BasicData将排在最后.
同时可看到右边的Additionalscreens如图3-2 .
第3步:
分配屏幕顺序
Tcode:
OMT3E(如图1-[3])
接下来,分配ScreenSequences给User/MaterialType/Transaction/Industry.
如图4,假设建立了Transactionscreenreference ZT(就用01,没有找到建地方)并分配给Tcode:
MM01/MM02
/MM03(如图5),Userscreenreference ZS(用Z1 OMT3B中建的).
图4-[1]新增一配置行,表示Transactionscreenreference ZT, Userscreenreference ZS,所有的materialtype(SRef:
matltype->*)和industry(SRef:
Ind->*)都将使用第3步建立的只有basicdata,accouting和costingview的屏幕顺序Z1.
图5是一个集成图,如需要还可建立Materialtypescreenreference和industrysectorscreenreference,就是说配置可以更明细到让财务用户STONE只在维护某物料类型时才可以看到Basicdata/accouting/cost3个view,如不是,甚至啥都看不到,逻辑真是做的太毒了.
到此,财务用户STONE使用MM01建立物料时,看到的将是如图6的3个View,并且basicdataview在显示时确实是排在最后了.
第4步:
维护用户默认设定
Tcode:
OMT3U(如图1-[4])
实际上前面3步配置就实现了,此步是让财务用户STONE选择View时将Accounting和costing默认选上,如图7,将Accouting1/Accounting2/CostEstimate1/Costing2的Selection(如图7-[1])选上,则财务用户STONE在MM01/MM02将发现accounting和costingview默认是已选.
是不是限制了用户只能维护自己相关的视图就完事了呢,如果这样,SAP就不是SAP,SAP铁定要将各种用户如何维护自己业务相关视图数据进行到底,用户还可继续限制财务用户STONE在被授权的BasicData/Accouting/Cost各view的字段哪些是隐藏哪些是必输哪些是可选哪些只让你看看却不能动手摸的,想的真是太细致了,细节决定成败,如果你正在整ERP而你没有想到这些,请不要伤心,你饱尝失败的痛苦就很正常,接下来请看(3).限制维护物料字段.
(3).限制维护物料字段
第一步:
建立字段组
Tcode:
OMS9(配置字段组是必须输入,还是隐藏等)|OMSR(将字段加入到字段组)
Tcode:
OMS9 IMG Logistics-General->MaterialMaster->FieldSelection->AssignFieldstoFieldSelectionGroups
Tcode:
OMSR IMG Logistics-General->MaterialMaster->FieldSelection->MaintainFieldSelectionforDataScreens
此步就是将物料主数据的几个字段打包成一个fieldgroup,这几个字段可以来自多个视图,
比如想让财务用户STONE不能修改Accoutingview1和Costview的某些字段就可以将这些字段设置成一字段组合.
假设现在希望达到这样的目的:
plant5100,materialtypeZRAW(原材料类别),因为材料成本需要根据origingroup细分(即在Tcode:
OKTZ定义产品的成本部件结构时,材料成本继续细分成五金类材料,电子类材料,塑胶类材料成本等),为了保证用户在维护物料主数据必须维护Materialorigin和orgingroup,则将costing1view的origingroup(MBEW-HRKFT)和materialorgin
(MBEW-HKMAT)设成一字段组比如202,将此俩字段设置成必输字段.
*此俩字段默认在字段组41中,因为还有其它字段,所以新建202.
按图1-[1]”NewEntries”按纽建立一field reference5100,其对应的FieldSelectiongroup202设置为必输”Reqdentry”.
*还可定义industry级别,Tcode级别和Materialtype的fieldreference(Tcode:
OMS3)等,比如可限制Materialtype是原材料,MM01时字段才必输入,总之,允许用户玩各种花哨动作.
第二步:
分配字段组(参考)给工厂
Tcode:
OMSA
如图2-[1],将图1建立的fieldreference(fieldselection)5100分配给工厂5100,注意其它的plant没做限制依旧使用默认的0001.
一个小技巧:
设置锁定字段
Tcode:
OMSFIX
如图3-1是物料主数据的一个截图,可将物料主数据的某些重要字段设置成lock-revelant,这样如果被锁住必须由被授权用户解锁后才能被修改.
留一个思考题:
系统可根据Materialtype/Industrysector/plant/T-code/Procurementtype建立所谓的field reference,现在假设你的industry假设是M,将上面的fieldgroup202设置成hide,然后Tcode :
MM01又设置成必输, 然后plant 5100又是hide,最后Materialtype ZRAW又是必输.
我有一个经历就是本来只该在生产工厂Plant5100MM01才设置必输的字段结果在其它销售
工厂也被弄成了必输,结果用户维护主数据时就出现了问题.
现在问:
现在当你MM01为plant5100建立ZRAW时,你家的Industry是M,SAP搞出这么多字段组合花样,那么Group202的俩字段此时究竟是被hide还是必输?
第三步:
增强主数据字段修改授权.
Tcode:
BF24|BF34
SAP还可控制比如象Group202 的俩字段origingroup(MBEW-HRKFT)和materialorgin
(MBEW-HKMAT)只有让授权用户才可维护?
上面的lock-revalant小技巧是一种方法,还可以使用BTE(关于BTE详细请参考本书相关章节)来限制比如不允许非授权用户更改origingroup.
方法如下:
一.Tcode:
BF24 建立一product假设叫ZMMCHK,并激活它.
二.Tcode:
BF34 选择Event选1250(如图4),FunctionZMMCHK是从函数SAMPLE_INTERFACE_00001250
copy出来的(Tcode:
SE37).
*你可以从Event中选择到合适的Event,比如FI的某些预制凭证没有validation,可以使用
BTE来做凭证的有效性检查.
然后在ZMMCHK中写一段代码
Checksy-Tcode='MM02'.
IfI_MBEW_NEW-HRKFTNeI_MBEW_OLD-HRKFT.
MessageE001(00)with'我origingroup跟您老人家又不是很熟,干吗乱改人家?
'.
Endif.
BTE函数非常有用,比如可以检查物料分类帐的Currencytype10必须和30的单价必须相同,因为MM01/MM02没有合适的增强,使用BTE就非常方便,只要加入类似条件:
IfI_MBEW_NEW-Ne I_MBEW_NEW-.
MessageE001(00)with“10和30的单价必须保持一致”.
Endif.
(4).设置物料交易状态(Tcode:
OMS4)
上面着重介绍了物料字段状态的设置,SAP玩了很多花样,留下一个增强BTE更是能满足用户对物料主数据