Sm12表条目冻结说明
在SAP中,当用户使用修改(新建)的事务代码来维护数据时,系统将会该数据相关的表来进行锁定,以防止其他用户同时该数据。
譬如:用户A正在对物料1001在工厂1000下维护工厂数据,此时用户B如果也对物料1001在工厂1000下进行维护,一般来说,此时系统将出现提示,提示用户B,该物料已经在工厂1000下锁定。
根据当前的具体操作,系统将锁定表的特定条目。
下文中,将列举示例来说明表条目锁定。
1.1.1 操作实例
如图所示,在客户端820系统中,用户S821使用事务代码MM02修改T-ASA02的物料主数据的销售视图。
此时执行事务代码SM12
字段“用户名”:在用户名中输入S821,不输入则显示当前系统所有用户正在锁定的表条目。
字段“锁定参数”
如果我们希望查询特定对象(如物料AAA被谁锁定),则可以在锁定参数中输入具体的对象和对象值,可用通配符*,如*AAA*。
执行事务代码,查看到如下图所示结果
字段“时间”代表用户开始锁定的时间,本例中,即用户S821使用事务代码MM02修改物料T-ASA02的开始时间,一般来说,用户使用事务代码修改某对象的开始时间即为锁定时间。
字段“表名”和“锁定参数”:代表锁定的表,本例中用户修改物料主数据的销售视图等信息,因此将会锁定四个物料的相关表,具体而言如下
MARA 是物料主数据的基本视图的表,锁定参数分别代表820客户端 物料T-ASA02
MARC 是物料主数据的工厂视图的表, 锁定参数分别代表820客户端 物料T-ASA02 工厂1200
MBEW是物料主数据的工厂评估视图的表,锁定参数分别代表820客户端 物料T-ASA02 评估类型(工厂)1200
MVKE是物料主数据的销售视图表,其锁定参数分别代表820客户端 物料T-ASA02 销售组织1000,分销渠道10
字段:锁定方式(Lock Mode)
锁定方式有三种
S (Shared lock, read lock)
E (Exclusive lock, write lock)
X (Exclusive lock, extended write lock, cannot be cumulated)
模式E:当更改数据的时候设置为此模式。
模式S:本身不需要更改数据,但是希望显示的数据不被别人更改。
模式X:和E类似,但是不允许累加,完全独占。
双击任意一行,可以看到用户S821在使用何事务代码(MM02)锁定了该表记录。
1.2 发票校验与表锁定
正常来说,当我们一进入维护业务数据的界面后,系统就对该业务数据相关的表进行锁定,直至该用户推出某个操作,才结束表条目的锁定。
对于部分操作,如发票校验系统可以配置何时进行表锁定
如下图所示,事务代码MIRO对物料ZMTO的二张采购订单(4500017313
4500017348)进行发票校验
此时通过事务代码SM12查看表条目锁定
系统锁定了三个表
EKPO:采购订单行项目表
EKKO:采购订单抬头表
由于发票校验可能会影响物料的评估价格,因此系统将锁定表MBEW:物料主数据的评估视图表
修改后台配置
事务代码SRPO>物料管理》General Settings for Materials Management》Set Up Material Block for Invoice Verification
在此处设置发票校验时,系统如何锁定物料的表(MBEW),是在发票校验的开始,还是在发票校验过账或者模拟时进行锁定。
当修改为在发票过账时,再进行锁定,再次通过SM12查看,可以看到发票校验时,在发票过账前,表MBEW不会被锁定了。
1.3 物料移动与表锁定
事务代码SRPO>物料管理》General Settings for Materials Management》Set material block for goods movements
后台还可以设置物料货物移动时,如何锁定表
可以设置二种锁定机制
锁定机制1:Exclusive block(排斥性锁定)
该机制同大部分的机制,一进入货物移动的界面,输入某个物料,则锁定关于该物料的工厂和评估视图的表(MARC和MBEW).
锁定机制2:Late block for goods movements
当数据真正将要保存时,才进行锁定,尽可能晚的锁定来保证锁定时间尽可能的短
优点是通过设置共享锁定(shared lock)几个用户可以同时对物料进行货物移动,也就是用户A进行货物移动的界面时,不会排斥性的锁定表,其他用户仍然可以进入,当数据最终保存时,系统才真正锁定表。
缺点是物料主数据将会被多次读取,将对系统负荷产生负面的影响。
1.4 自定义表与表锁定
对于可能有多个人员进行维护的自定义表,也应该设置表条目锁定机制,防止不同的人同时修改表的同一条记录。
其实现过程也比较简单。
更多文章请参见: