文章轉自 http://scnblogs.techweb.com.cn/frankyue2001/archives/546.html
參考 http://scnblogs.techweb.com.cn/abap/archives/6.html
在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 自定義表與表鎖定
對於可能有多個人員進行維護的自定義表,也應該設置表條目鎖定機制,防止不同的人同時修改表的同一條記錄。
其實現過程也比較簡單。