SAP表的锁定与解锁
表的锁定模式有三种模式。
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即可。