锁对象的实现

2020-09-09 10:26发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我迫切需要实现锁定对象,以避免更改来自不同用户和程序的客户ID(来自自定义数据库的自定义字段)...

因此,为了实现这一点,我进行了如下处理:

  1. 在se11中创建了锁定对象
  2. 提供所需的字段
  3. 在第一个程序中调用锁定功能。
通话功能'ENQUEUE_ZTABLE'导出
       mode_Ztable ='E'
       mandt = sy-mandt
       客户编号= lv_Customer_ID
 * X_Customer ID =''
 * _SCOPE ='2'
 * _WAIT =''
 * _COLLECT =''
     例外情况
       foreign_lock = 1
       system_failure = 2
       其他=3。

4-该对象已在T.cde SM12中显示。

5-同时在第二个程序中,我已调用数据取决于锁定的customer_ID:

  • 通话正常
  • 现在更新数据
 更新Ztable设置Ztable〜Customer_ID = new_customer_id
                    其中Customer_ID = lv_Customer_ID
                                                                         
  • 不幸的是,记录已成功更新...

那么为什么不被阻止,什么也没有说出这个customer_id已被另一个用户阻止的过程。

即使删除,它也会被删除...

您提出的满足我要求的建议将受到高度赞赏。

最好的问候

Khaled

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我迫切需要实现锁定对象,以避免更改来自不同用户和程序的客户ID(来自自定义数据库的自定义字段)...

因此,为了实现这一点,我进行了如下处理:

  1. 在se11中创建了锁定对象
  2. 提供所需的字段
  3. 在第一个程序中调用锁定功能。
通话功能'ENQUEUE_ZTABLE'导出
       mode_Ztable ='E'
       mandt = sy-mandt
       客户编号= lv_Customer_ID
 * X_Customer ID =''
 * _SCOPE ='2'
 * _WAIT =''
 * _COLLECT =''
     例外情况
       foreign_lock = 1
       system_failure = 2
       其他=3。

4-该对象已在T.cde SM12中显示。

5-同时在第二个程序中,我已调用数据取决于锁定的customer_ID:

  • 通话正常
  • 现在更新数据
 更新Ztable设置Ztable〜Customer_ID = new_customer_id
                    其中Customer_ID = lv_Customer_ID
                                                                         
  • 不幸的是,记录已成功更新...

那么为什么不被阻止,什么也没有说出这个customer_id已被另一个用户阻止的过程。

即使删除,它也会被删除...

您提出的满足我要求的建议将受到高度赞赏。

最好的问候

Khaled

付费偷看设置
发送
5条回答
能不能别闹
1楼-- · 2020-09-09 10:30

您非常急需了解锁定概念的工作原理 。 它不会阻止对数据库的更改。 它不像您认为的那样起作用。

宇峰Kouji
2楼-- · 2020-09-09 10:51
哈利德·阿尔·沙巴吉您已经做了几乎所有事情; 您可以使用ENQUEUE_READ来检查是否有锁,但是也可以通过使用MODE_ZTABLE ='V'调用ENQUEUE_ZTABLE来执行相同的检查(参见"检查"锁定模式),它检查是否设置了一个互斥锁,而没有设置该锁定。
Alawn_Xu
3楼-- · 2020-09-09 10:31

尝试更改范围模式

小熊yu生菜
4楼-- · 2020-09-09 10:55

嗨,Raghu,

感谢您的评论,

您能否提供一个示例或链接来实现Lock对象

最好的问候

吹牛啤
5楼-- · 2020-09-09 10:50

Hello Khaled Al Sharbaji,

首先,您必须创建一个锁定对象,以防止其他用户在更改表时对其进行更改。 这样可以防止多个字段同时更改字段。

创建锁定对象

,或者,如果您想锁定表,则可以使用CALL FUNCTION'ENQUEUE_E_TABLE'

锁定和解锁表格

最诚挚的问候

易卜拉欣

一周热门 更多>