SAP 小技巧之改造 SE16N 六解决全选删除的 BUG

作者:ABAP技巧与实战 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, Data Engineering, PP, SD, 开发, 数据工程, 生产, 系统管理, 销售分销

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

**点击蓝字** 关注我们

前言

SE16N是SAP

ERP软件提供的一个表内容浏览/编辑器的事务代码.一般情况下,用于查看单表的数据内容.也可以用于编辑表内容.改造SE16N系列就是尝试对SE16N增强一些功能.让它变得更加好用.

本文介绍了SE16N全选删除数据的BUG及修补方式

问题描述

你是否也碰到过这个问题

用SE16N删除数据的时候,如果查询出来的条目比较多. 例如1000行.

通过标准功能的全选,删除. (如下图)

发现这个全选并非我们想象的全选

我们想象的是查询的1000条记录都被删除. 但是系统似乎只是全选了当前屏幕的数据.删除也只是删除了当前屏幕的数据

选择重复很多次这个操作才能把查询出来的1000条记录全部删除. 这是一个痛苦的过程.

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

问题分析

进一步的操作发现系统全选的也并非当前屏幕的.

如果多次使用PAGE DOWN按钮显示完整查询表的所有内容后, 此时全选,删除就能把这1000行删除掉.

所以猜测标准逻辑的处理原理如下

当SE16N查询的数据量过大时,为了性能考虑,

服务器不会把这1000条全部推送给GUI(估计有个参数控制了这个条目数或内存数).当用户确实需要查看剩余的数据时, 服务器才会把翻页翻到的数据推送给GUI.

有点像大家使用搜索引擎所有关键字的时候,每次只返回一页的数据, 点击下一页时,才会继续请求数据,返回下一页的内容.

手机浏览器在此基础上有点改进: 点击下一页时,会把保留历史页的内容,同时补充下一页的内容.

**全选删除并非删除所有查询的数据,而是所有查询后推送到GUI的缓存数据**

所幸.这个机制只对ALV的标准功能按钮有效, 开发自定义添加的ALV按钮功能不受这个机制的影响.

标准解决方案

SAP似乎已经发现这个问题,从操作逻辑上来讲. 这算是一个BUG. 新版的GUI770中已经改进了这个处理机制,表现为 GUI770 版本中.

SE16N中的全选,删除可以全部删除.无需多次翻页. 但是GUI770中的大数据量的ALV呈现性能似乎也下降了很多.

**有得必有失,就看你更关注的是什么了.**

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

增强方案

_如果你已经安装了GUI 770, 那么可以无视下面的内容了._

怎么通过增强方式解决SAP GUI 760以下版本中SE16N全选,删除不生效的BUG.

_**01** _

**添加按钮**

增强SE16N的ALV.添加按钮 <全选> <删除>.

增强点: 程序 LSE16NLCL

METHOD handle_toolbar 方法末尾隐式增强
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

为什么不添加 取消全选按钮?

任意点击ALV中的任意单元格即可取消全选. 无需再通过按钮实现.

_**02** _

**添加按钮功能**

增强SE16N的ALV中新加按钮的功能

增强点: 程序 LSE16NLCL

METHOD handle_user_command. 方法末尾隐式增强

通过特定逻辑赋予这个全选,删除按钮功能.实现数据的删除

想看源代码的, 请移步到文末查看.

_**03** _

**效果验证**

SE16N显示数据后, 使用新增的全选按钮选择所有数据.

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

点击删除按钮后,所有的内容都会被删除.

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

此时和标准逻辑一样. 需要点击保存按钮确认删除,同时删除信息也会被记录在日志表SE16N_CD_DATA中

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

**BINGO. 问题被完美解决**

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群

SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
SAP 小技巧之改造 SE16N 六解决全选删除的 BUG - 封面图
ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP小技巧之改造SE16N六解决全选删除的BUG.md」整理生成,仅用于内部技术分享与学习交流。