Locking 删除表条目锁

Locking 删除表条目锁,locking,abap,sap-basis,function-module,Locking,Abap,Sap Basis,Function Module,我尝试过使用FM ENQUE_DELETE,但一直没有得到预期的结果来删除某些表项的锁 我注意到有不同类型的锁,锁定这些表条目的程序使用的是锁类型“E” 我是否可以将锁类型设置为“S”(共享),以便第一个程序可以“锁定”表条目,但一旦第二个程序运行,它就可以删除表锁?首先锁定表的程序通常已设置类型。 如果它不是您的程序,那么您肯定不能也不允许修改在运行时设置的标准锁类型。据我所知 如果它是您的程序,那么您可以自定义可以使用的锁类型 http://www.sapdev.co.uk/dictiona

我尝试过使用FM ENQUE_DELETE,但一直没有得到预期的结果来删除某些表项的锁

我注意到有不同类型的锁,锁定这些表条目的程序使用的是锁类型“E”


我是否可以将锁类型设置为“S”(共享),以便第一个程序可以“锁定”表条目,但一旦第二个程序运行,它就可以删除表锁?

首先锁定表的程序通常已设置类型。 如果它不是您的程序,那么您肯定不能也不允许修改在运行时设置的标准锁类型。据我所知

如果它是您的程序,那么您可以自定义可以使用的锁类型

http://www.sapdev.co.uk/dictionary/lock_enqueue.htm

将告诉您有关类型的信息,链接中的代码示例应提供您可能需要的所有信息。

确定。我本应该完成我的调查

我找到了解决这个问题的办法。 通过对FMs ENQUE_报告/读取/删除的调试, 我找到了一种方法来获取外来锁并将其删除,
使程序假定当前用户是锁定外部锁的用户。=]

不需要手动明确删除特定的表锁条目。始终仅使用生成的FM
enqueue_…
dequeue_…
锁定/解锁数据库记录

  • 在您的表格中调用Enqueueezu
  • 对_表进行更改
  • 在您的_表中调用DEQUEUE_

  • 这将删除以前创建的锁项。

    对于您正在使用的表,请检查SE11中的锁对象,例如:ENQUEUE_uu和DEQUEUE_u,如果可用,请在OPEN SQL语句之前和之后调用它们,如果不创建锁对象

    参考: