SAP 小技巧之改造 SE16N 五

作者:ABAP技巧与实战 约 8 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, 开发, 数据工程, 物料管理

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

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

前言

SE16N是SAP

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

**本文介绍录入数据后的内容自动补充及检查**

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

一个简单的需求

SE16N用来可以用来维护单表记录,我们可以通过调用SE16N_INTERFACE 快速构造一个单表维护的程序.但是这个程序往往缺少一些单表维护的要素.

示例表 ZTTS_001(入上图所示)

我们在维护示例表时,业务可能会提出下面这些需求.

• 授权检查( **详见其它SE16N改造文章** )

• 维护时,输入商品后需要看到商品描述,但是无需存储(归纳为: **获取特定对象的描述** )

• 输入商品后,从商品主档获取MATKL内容放到MATKL_N,允许修改内容(归纳为: **获取特定对象的属性** )

• ACTIVE字段默认为'X'(归纳为: **字段获取默认值** )

• 扩展结构 ZSBC001中的创建信息在输入时自动填充

• 扩展结构 ZSBC001中的修改信息在修改时自动填充(归纳为: **日志内容填充** )

• 数据保存时, 检查同一个商品不能出现重复的日期范围(归纳为: **日期定界检查** )

• 数据保存时的可配置检查(归纳为: **可配置检查** )

• 保存数据时,需要检查MATKL的内容是否符合业务的特定需求(比如MATKL必须存在与另外一个配置表中).(归纳为: **自定义检查** )

开发的选择

当业务提出上述需求的时候, 你可能就会觉得通过调用SE16N_INTERFACE的程序已经不能满足业务的需求了.

• 一个简单的办法是重新按业务需求单独开发一个程序.

• 一个复杂的办法是改造SE16N,归纳上述业务需求,通过配置实现上述功能.( **这样做的好处是:不用每一个业务的单表维护需求都去开发了,简单配置一下,就可以搞定.** )

配置实现过程

接下来就看看怎么用配置的方式实现上述功能.

_**01** _

**获取特定对象的描述**

这部分在上一篇文章中讲过.

> SE16N获取码表描述

>

> 无峰,公众号:ABAP 技巧与实战 [ SAP小技巧之 改造SE16N(四)

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485323&idx=1&sn=830bc4bc14c530f3402d3859f1cdcc69&chksm=cf5ddabdf82a53abd5eb1d6f6f769ca22ba5fad21867a1c098ab29404d8719282ee24e0db197#rd)

但是在输入新记录时补充文本需要再额外添加一些增强,这些增强在记录录入的时候回车触发DATA_CHANGED 事件中执行, 获取码表描述.

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

_**02** _

**获取特定对象的属性**

获取特定对象的属性需要配置对象的字段,对象属性所在的表,及属性字段. 目前只支持单一关键字的对象,比如商品编码.

地点编码.尚未支持多关键字的对象,比如库存地点

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

_**03** _

**字段获取默认值**

这个配置比较简单,默认值允许固定文本, 也可以使用系统变量,配置字段的F1帮助详细描述了配置方式

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

_**04** _

**日志内容填充**

这部分功能无需配置.在DATA_CHANGED 事件中增强补充创建/修改相关的简单日志信息

> 这个和SM30配置表简单日志功能类似 无峰,公众号:ABAP 技巧与实战 [ SAP小技巧 自定义配置表的简单日志

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485160&idx=1&sn=7f51fd03774c712c060889f1be2cd0dd&chksm=cf5ddbdef82a52c8be5e540fd8478b874ad8df51d3e31f613d04db459bacdb39b8f0671ae33b#rd)

_**05** _

**日期定界检查**

日期定界检查需要配置一个标记,一个日期范围检查的关键字组合及需要定界检查的日期字段名称

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

_**06** _

**可配置的检查**

通过标记,与数据导入框架中的检查整合.示例配置了一个字段POSNR的非空检查

> 数据导入框架 无峰,公众号:ABAP 技巧与实战 [ SAP开发框架系列之 数据导入

> ](http://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247484735&idx=1&sn=edc8f6365cccd5e4880cf1f40f8a4e4d&chksm=cf5dd809f82a511fa50458df27b0bb27b4601c50d927f67ce5d89998b91bb4ccbc7e6ad7525a#rd)

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

_**07** _

**自定义检查**

通过配置一个检查函数,在执行检查时调用,完成特殊的业务检查需求.

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

配置效果呈现

上述配置完成之后. 通过SE16N维护表,或者通过程序调用函数SE16N_INTERFACE 维护表.就会实现上述本文开头列出的业务需求

新增行输入物料

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

回车后,获取商品分类,自动设置激活标记. 获取商品描述 日志相关字段自动添加创建者等信息

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

保存时.配置的字段非空检查,日期定界检查生效,弹窗提示,阻止用户的保存动作.

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

用户解决所有问题后, 才能保存数据

(保存数据部分使用了SE16N的标准功能,其中包含了数据锁定,日志记录等信息.SE16N的标准数据修改日志表: SE16N_CD_KEY和

SE16N_CD_DATA . 这两个日志表和我们平常在商品主档中看到的变更记录不太一样. 后面会尝试改造它,显示一个类似于商品变更记录的内容 )

关于上述增强的实现

数据录入后内容补充,在图一部分添加隐式增强实现.

数据合法性检查,在图二部分添加隐式增强实现

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

图一

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

图二

关于源代码

这篇文章中涉及的源代码实在有点分散,包含了码表框架, 导入框架部分. 无法一一贴出分享, 如果你有兴趣, 可以自行尝试在上述增强位置实现本文中提到的功能.

** THE **

** END **

**约定**

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

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

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

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

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

SAP 小技巧之改造 SE16N 五 - 封面图
SAP 小技巧之改造 SE16N 五 - 封面图
ABAP技巧与实战

关于作者:ABAP技巧与实战

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

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