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


转载自:http://blog.sina.com.cn/s/blog_4986104501015ne0.html


你可能感兴趣的:(object,锁,Lock,Lock,锁表,SE11)