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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM