ABAP锁对象

article/2025/6/9 10:53:33

1、锁表

在一些业务场景中,我们需要将某张表或某张表中的某些数据锁定,防止多人对该表进行操作,导致数据出现问题。SAP对于表的锁定,有专门的锁对象。

1.1、创建锁

事务代码SE11,表的锁对象名称,需要以EZ或EY开头

1.2、锁模式

模式S:本身不需要更改数据,但是希望显示的数据不被别人更改。

模式E:当更改数据的时候设置为此模式。

模式X:和E类似,但是不允许累加,完全独占。

④如果当前用户在一个程序里成功对一个锁对象加锁之后:

如果模式为S:

其他用户不能再对这个锁对象加E、X模式的锁;

当前用户还可以再对这个锁对象加S模式的锁。如果没有别的用户对其加S模式的锁,那么你还可以对其加E模式的锁。但X模式的不可以。

如果模式为E:

其他用户不能再对这个锁对象加E、X、S模式的锁;

当前用户还可以再对这个锁对象加E、S模式的锁。

如果模式为X:

其他用户和当前用户均不能再对这个锁对象加E、X、S模式的锁;

1.3、激活锁对象

激活创建的锁对象,将会产生两个函数:

加锁:ENQUEUE_<锁对象名>

解锁:DEQUEUE_<锁对象名>

2、程序锁

2.1、示例代码

REPORT y071.
*加锁
CALL FUNCTION 'ENQUEUE_ES_PROG'EXPORTINGmode_trdir     = 'X'name           = 'Y071' "程序名,也可以另起名字x_name         = ' '_scope         = '2'_wait          = ' '_collect       = ' 'EXCEPTIONSforeign_lock   = 1system_failure = 2OTHERS         = 3.
IF sy-subrc EQ 0.
*  模拟逻辑...
*  解锁CALL FUNCTION 'DEQUEUE_ES_PROG'EXPORTINGmode_trdir = 'X'name       = 'Y071'x_name     = ' '_scope     = '3'_synchron  = ' '_collect   = ' '.ELSEIF sy-subrc EQ 1.MESSAGE '程序被锁定' TYPE 'S' DISPLAY LIKE 'E'.STOP.
ENDIF.

运行结果,当一个程序当前正在运行,则在其他窗口运行这个程序,则会报错

 2.2、实际案例

当用户正在查看某ALV报表,其他用户进入后,隐藏掉ALV报表的工具按钮。此实例中不需要写解锁函数,因为用户退出ALV后会自动解锁。

DATA:gv_clock TYPE char1 VALUE 'X'."锁标识
"进入报表先加锁
PERFORM frm_clock_report."进入报表先加锁
PERFORM frm_get_data."查询数据
PERFORM frm_out_alv."显示ALV"加锁方法
FORM frm_clock_report.CALL FUNCTION 'ENQUEUE_ES_PROG'EXPORTINGmode_trdir     = 'X'name           = 'ZMM_CUS_201_A03'x_name         = ' '_scope         = '2'_wait          = ' '_collect       = ' 'EXCEPTIONSforeign_lock   = 1system_failure = 2OTHERS         = 3.IF sy-subrc EQ 0."锁成功gv_clock = 'X'.ELSE."已经被占用gv_clock = ''.ENDIF.
ENDFORM."加锁结果判断是否显示按钮
FORM pf_status USING u_extab TYPE slis_t_extab.DATA:lt_extab TYPE slis_t_extab.IF gv_clock = 'X'."加锁成功不用隐藏ELSE."加锁不成功,就是已经被占用,就隐藏按钮lt_extab = VALUE #(( fcode = 'CHECK' )"库存校验( fcode = 'QRFH' )"确认发货).ENDIF.SET PF-STATUS 'STANDARD' EXCLUDING lt_extab.
ENDFORM.


http://www.hkcw.cn/article/gfoqSkEJVa.shtml

相关文章

YOLO-V2 (学习记录)

目录 一、记录YOLO-v2 的处理流程步骤 二、优势与不足 三、细节分析 1.候选框K-means计算细节 2.网络输出 3.损失函数&#xff08;Loss Function&#xff09; 学习之前&#xff0c;需要补充下论文中提到知识点。 1.什么是Batch Normalization 参考博文&#xff1a;Batc…

AI Coding 资讯 2025-06-03

Prompt工程 RAG-MCP&#xff1a;突破大模型工具调用瓶颈&#xff0c;告别Prompt膨胀 大语言模型(LLM)在工具调用时面临Prompt膨胀和决策过载两大核心挑战。RAG-MCP创新性地引入检索增强生成技术&#xff0c;通过外部工具向量索引和动态检索机制&#xff0c;仅将最相关的工具信…

CAMEL-AI开源自动化任务执行助手OWL一键整合包下载

OWL 是由 CAMEL-AI 团队开发的开源多智能体协作框架&#xff0c;旨在通过动态智能体交互实现复杂任务的自动化处理&#xff0c;在 GAIA 基准测试中以 69.09 分位列开源框架榜首&#xff0c;被誉为“Manus 的开源平替”。我基于当前最新版本制作了免安装一键启动整合包。 CAMEL-…

线程池RejectedExecutionException异常

文章目录 1、报错2、定位3、修复4、线程池使用的一点思考 1、报错 检索项目日志时&#xff0c;发现一个异常堆栈信息&#xff0c;核心报错&#xff1a; java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.CompletableFuture$AsyncSupply480a10c7…

视频监控管理平台EasyCVR安防小知识:监控摄像头异响问题排查与处理

在视频监控系统广泛应用于日常生活的当下&#xff0c;监控摄像头出现异响是常见且影响使用体验的问题。为快速定位和解决该问题&#xff0c;特制定本应用解决方案&#xff0c;依据异响来源分为硬盘录像机异响与监控摄像头异响两类进行处理。 一、硬盘录像机发出异响 硬盘录像机…

NX890NX894美光固态闪存NX906NX908

美光NX系列固态闪存深度解析 技术架构与性能突破 美光NX系列固态闪存&#xff08;如NX890、NX894、NX906、NX908&#xff09;的技术核心基于G9 NAND技术&#xff0c;通过优化晶体管结构与制程工艺&#xff0c;显著提升存储密度与读写速度。例如&#xff0c;NX895的MT29F8T08G…

RHEL7安装教程

RHEL7安装教程 下载RHEL7镜像 通过网盘分享的文件&#xff1a;RHEL 7.zip 链接: https://pan.baidu.com/s/1ExLhdJigj-tcrHJxIca5XA?pwdjrrj 提取码: jrrj --来自百度网盘超级会员v6的分享安装 1.打开VMware&#xff0c;新建虚拟机&#xff0c;选择自定义然后下一步 2.点击…

无人机智能识别交通目标,AI视觉赋能城市交通治理新高度

在城市化快速发展的当下&#xff0c;如何实现对道路交通的智能化管理、保障出行安全&#xff0c;成为城市治理的重要命题。传统的交通监控往往依赖地面摄像头&#xff0c;受限于固定视角与安装环境。而今&#xff0c;随着人工智能与无人机技术的深度融合&#xff0c;一种更高效…

使用 HTML + JavaScript 实现文章逐句高亮朗读功能

在这个信息爆炸的时代&#xff0c;我们每天都要面对大量的文字阅读。无论是学习、工作还是个人成长&#xff0c;阅读都扮演着至关重要的角色。然而&#xff0c;在快节奏的生活中&#xff0c;我们往往难以找到足够的安静时间专注于阅读。本文用 HTML JavaScript 实现了一个基于…

《TCP/IP 详解 卷1:协议》第5章:Internet协议

IPv4和IPv6头部 IP是TCP/IP协议族中的核心协议。所有TCP、UDP、ICMP和IGMP 数据都通过IP数据报传输。IP提供了一种尽力而为、无连接的数据报交付服务。 IP头部字段 IPv4 头部通常为 20 字节&#xff08;无选项时&#xff09;&#xff0c;而 IPv6 头部固定为 40 字节。IPv6 不…

WPS word 已有多级列表序号

wps的word中&#xff0c;原来已生成的文档里&#xff0c;已存在序号。比如&#xff0c;存在2、2.1、2.1.1、2.1.1.1、2.1.1.1.1 5层序号&#xff0c;而且已分为5级。但增加内容的时候&#xff0c;并不会自动增加序号&#xff0c;应该如何解决&#xff1f; 原来长这样&#xff…

5 个经典的大模型微调技术

传统微调方法&#xff08;如下图所示&#xff09;对于大语言模型而言并不可行&#xff0c;因为这些模型具有数百亿甚至千亿的参数量&#xff0c;而且显存需求高达数百GB&#xff0c;并非所有人都能获得如此规模的计算资源。 但如今&#xff0c;我们拥有多种优化大语言模型的微调…

爱耕云课时管理系统评测

1 核心功能模块与代码实现 1.1 智能排课引擎&#xff08;Python伪代码示例&#xff09; 爱耕云的排课系统采用约束满足算法&#xff08;Constraint Satisfaction Problem&#xff09;解决教培机构最头疼的资源冲突问题。该系统将教师、教室、课程和时间段抽象为多维资源&…

Go的隐式接口机制

正确使用Interface 不要照使用C/Java等OOP语言中接口的方式去使用interface。 Go的Interface的抽象不仅可以用于dynamic-dispatch 在工程上、它最大的作用是&#xff1a;隔离实现和抽象、实现完全的dependency inversion 以及interface segregation(SOLID principle中的I和D)。…

Linux总结

一、Linux linux系统的构成 1.linux系统内核&#xff1a;提供最核心的功能&#xff0c;如&#xff1a;调度CPU、调度内存、调度文件系统、调度网络通信、调度IO等。 2.系统级应用程序&#xff1a;出厂自带程序&#xff0c;可供用户快速上手操作系统。如&#xff1a;文件管理…

嵌入式复习小练

1.ARM处理器中用作程序计数器PC的通用寄存器是&#xff08;&#xff09; A.R12 B.R13 C.R14 D.R15 答案&#xff1a;D。在 ARM 处理器中&#xff0c;R15 用作程序计数器&#xff08;PC&#xff09; &#xff0c;用于存放下一条要执行指令的地址 2.以下关于ARM程序状态寄存器C…

Python Day41学习(日志Day8复习)

对信贷数据中的离散特征重新进行独热编码 重写代码时出现的问题&#xff1a; .tolist()是一个方法对象&#xff0c;调用时须加()。刚开始书写时漏掉了()&#xff0c;导致报错。 复习“日志Day8”的内容 今日有点事耽搁了&#xff0c;少复习了些内容&#xff0c;明日继续加油&…

入门AJAX——XMLHttpRequest(Post)

一、前言 在上篇文章中&#xff0c;我们已经介绍了 HMLHttpRequest 的GET 请求的基本用法&#xff0c;并基于我提供的接口练习了两个简单的例子。如果你还没有看过第一篇文章&#xff0c;强烈建议你在学习完上篇文章后再学习本篇文章&#xff1a; &#x1f517;入门AJAX——XM…

网络交换机:构建高效、安全、灵活局域网的基石

在数字化时代&#xff0c;网络交换机作为局域网(LAN)的核心设备&#xff0c;承担着数据转发、通信优化和安全防护的关键任务。其通过独特的MAC地址学习、冲突域隔离、VLAN划分等技术&#xff0c;显著提升了网络性能&#xff0c;成为企业、学校、医院等场景不可或缺的基础设施。…

《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化

第三篇&#xff1a;FPGA实现关键技术与优化 聚焦高速时序、资源复用与信号完整性 1. 时序收敛关键策略 1.1 源同步时序约束 tcl # Vivado XDC约束示例 create_generated_clock -name spi_sck -source [get_pins clk_gen/CLKOUT] \-divide_by 1 [get_ports sck]# 建立时间约…