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.

  IF sy-subrc <> 0.
   "sy-msgv1  锁定账号
  ENDIF.


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

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值