abap 如何锁表

abap 如何锁表,第1张

首先要在 ABAP 字典中创建锁对象,然后才能在 ABAP 程序中设锁。创建锁对象时,系统会自动生成两个 FM 来进行锁管理。

用于设锁的 FM 为: ENQUEUE_<锁对象名>。它用于在锁表(Lock Table)中生成一个锁项(Lock Entry)。若设锁不成功的话,就会在 Return 中反映出来。

用于释放锁的 FM 为:DEQUEUE_<锁对象名>。它用于从锁表中删除一个锁项。

在 ABAP 程序中,只需使用 "CALL FUNCITION ..." 语句就可以调用它们。

这两个锁 FM 是在 SAP 系统的一个特殊工作进程中执行的,专门进行锁管理。它运行在一个单独的服务器上,而该服务器专门用于维护整个 SAP 系统的主锁表(Central Locak Table)。

有两种锁类型:

共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据。

独占锁——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据。

在se11中创建锁对象Lock Object

创建Lock Object后,激活,会产生两个Function,

如你的锁对象叫EZTEST,那么会生成ENQUEUE_EZTEST以及DEQUEUE_EZTEST

调用这两个function进行加锁及解锁,具体的上网查一下锁对象的内容

注意锁对象的三种类型,独占锁、累积锁和非累积锁的区别

需要加锁,比如HR更新组织和关系 ,表之间关联系太多,不能直接用SQL语句更新数据,需要调用标准的BAPI,更新时,需要先锁更新人员,更新完解锁,否则数据可能更新失败,gui里可以用事务码打开URL,反过来好像不行,这个就有点高端了!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11331582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存