表的鎖定模式有三種模式。
lock mode有三種模式:分別是S,E,X.含義如下:
S (Shared lock, read lock)
E (Exclusive lock, write lock)
X (eXclusive lock, extended write lock, cannot be cumulated)
模式E:當更改數據的時候設置為此模式。
模式S:本身不需要更改數據,但是希望顯示的數據不被別人更改。
模式X:和E類似,但是不允許累加,完全獨占。
允許附加鎖模式 E S X
E 否(是) 否(是) 否(否)
S 否(是[無其他用戶加S]) 是(是) 否(否)
X 否(否) 否(否) 否(否)
括號外為其他用戶操作,括號內為同一個用戶的操作
1、鎖表的通用函數:
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
* MODE_RSTABLE = 'E'
TABNAME = 'SFLIGHT'
* VARKEY =
* X_TABNAME = ' '
* X_VARKEY = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
2、為表解鎖的通用函數:
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXPORTING
* MODE_RSTABLE = 'E'
TABNAME = 'SFLIGHT'
* VARKEY =
* X_TABNAME = ' '
* X_VARKEY = ' '
* _SCOPE = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '.
.
也可以為特定的表創建鎖對象,在SE11事物里,選擇lock object(鎖對象),點擊創建
輸入相應的參數,最后保存,激活即可。注意,要允許RFC
在激活之后,會產生兩個function module,一個用來對對象進行鎖定,另一個是釋放對象。二者的名字都很有規律。
DEQUEUE_<lock object的名字> 解鎖
ENQUEUE_<lock object的名字> 鎖定
到時要使用的時候直接call function module即可。