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即可。

posted @ 2020-11-05 16:14  荒野游侠  阅读(1747)  评论(0编辑  收藏  举报