SAP 小技巧打造全新的配置体系二实现方式

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

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

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

前言

标准配置体系中都是使用事务代码SM30维护配置表内容.

相对于事务代码SE16N,SM30维护界面过于简陋.无法提供更好的用户体验,尤其是维护数据量较大的时候,用户体验将非常糟糕

**本文主要介绍怎么把SIMGH与SE16N结合,打造成一个全新的配置体系**

_感谢曾经的关键用户,现在的公众号群里的活跃用户郝同学对本文的贡献_

实现效果

在配置树节点点击执行图标后, 进入表的SE16N维护界面

> SIMGH使用方式详见链接 无峰,公众号:ABAP开发技巧 [ SAP小技巧之 建立你自己的SPRO

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485125&idx=1&sn=d4813d8395040d94752d3d2b36dd30ef&chksm=cf5ddbf3f82a52e516e289f09af54ed815b1e780e83e656af17a22ee92975456ebc92be03922&token=1825370405&lang=zh_CN#rd)

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

程序准备

创建程序ZBC_CONF及对应TCODE: ZBC_CONF

这个程序用于SIMGH中配置的TCODE调用打开特定表的SE16N编辑

程序中通过两种方式识别SIMGH传递表内容

• 包含表名的事务代码,命名规范 ZCONF_<表名>

• 参数ID CUO 传递的表名

程序逻辑非常简单.核心逻辑是调用标准函数 SE16N_START

文末有源代码, 想偷懒的同学可以直接复制

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

通过TCODE识别表名的示例:使用ZBC_CONF程序直接创建事务代码ZCONF_ZTIF002. 执行事务代码会直接进入ZTIF002的SE16N维护界面

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

配置树维护报错

使用SIMGH配置实施指南活动

在配置IMG实施指南活动时,如果输入的定制对象没有维护对象(通过SE11创建的维护对象).系统会显示如下消息. "指定现有定制对象"

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

重要字段

**定制对象**

一般输入表或者维护视图

• 输入表时 后续类型选择 T 或 S

• 输入维护视图 后续类型选择 V

**类型**

• C 视图簇

• L 逻辑传输对象

• S 表 (带文本表格): 类型设置为S时. 后面可以输入用户的事务代码

• T 单个事务对象

• V 视图

• D 名义对象

解决维护对象报错的方式

• 方式一:使用通用的维护对象ZTCONF_DEMO,通过TCODE命名识别具体的表名

• 方式二:手工写入表 OBJH/OBJS/TADR 相关记录.

• 方式三:使用通用的维护对象ZTCONF_DEMO,TCODE : ZBC_CONF后修改表内容CUS_ACTOBJ

_**01** _

**方式一**

创建一个配置表ZTCONF_DEMO. 为它创建定制对象

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

在配置IMG实施指南活动时,使用通用配置对象ZTCONF_DEMO.使用包含表名信息的TCODE 跳转.事务代码调用程序ZBC_CONF

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

_**02** _

**方式二**

手工写入表 OBJH/OBJS/TADR 相关记录.跳过系统检查.

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

如果上述表记录维护不完整,系统会报错

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

新增这些表记录的代码可以写在函数CTO_OBJECT_GET函数开头的隐式增强中自动写入.

维护结果如下图

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

_**03** _

**方式三**

使用通用对象 ZTCONF_DEMO 和事务代码 ZBC_CONF维护好实施指南对象后. 修改表CUS_ACTOBJ中的内容.

把ZTCONF_DEMO修改为特定的表.

该表中对象名称字段是关键字, 只能通过新增记录,删除记录的方式修改对象内容

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

实现原理

标准SIMGH 在点击节点执行按钮时,会执行到如下代码, 把定制对象放入参数ID CUO中. 同时调用配置的TCODE.

调用的TCODE 都指向程序ZBC_CONF. 在程序中通过参数ID或者TCODE 识别表名后,调用SE16N_START进入表的SE16N维护界面.

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

批量迁移

既然新的配置体系有维护方便的优势,怎么批量把旧的配置体系迁移到新的配置体系?

迁移方式很简单. 把表CUS_ACTOBJ中特定定制活动的内容调整即可.(实测方案可行)

如下图

删除记录 ZTIF002_C V ZVIF002_N SM30

新增记录 ZVIF002_C S ZTIF002 ZBC_CONF

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

SE16N改造

SE16N可以非常方便的进行单表的维护操作: 新增,修改,删除,传输. 数据过滤,排序等等操作. 对SE16N改造后. 可以实现更多的功能

• 增强的全删功能

• 数据变更文档

• 配置SE16N授权体系: 通过SE16N的授权配置,还可以实现对配置树的授权.

• 配置字段的关键字描述(码表)显示

• 配置字段的隐藏,只读属性

• 配置关联字段内容显示

• 配置字段默认值

• 配置字段检验

• 配置日期范围间隔校验

• 配置启用ZTBC001A中的校验

• ......

SE16N改造系列是一系列介绍SE16N改造的文章. 让SE16N事务代码拥有更多实用功能. 有兴趣的读者可以在公众号中菜单中找到这些文章.

> 详见链接

>

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

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

SE16N新增功能及可配置功能示意图

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

授权配置

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

字段属性配置

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

字段检验配置

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

总结

通过SIMGH与SE16N的结合,可以快速构建出全新的配置树体系. 相比于原本的SM30维护配置表内容,启用SE16N维护配置表可以让表内容的维护更加方便.

但是还需要解决数据新增/修改/删除写入传入请求的问题. 该问题解决之前, SE16N维护的配置只能手工传输(还存在删除的对象可能无法传输的风险).

ZBC_CONF是一个很简单的程序,在新的配置体系中打通了SIMGH与SE16N的连接. 这个程序也可以用于快速生成一个表维护的TCODE .

SAP 小技巧打造全新的配置体系二实现方式 - 封面图
SAP 小技巧打造全新的配置体系二实现方式 - 封面图

*&---------------------------------------------------------------------**& Report ZBC_CONF*&---------------------------------------------------------------------**&单表通用维护程序:整合表,,SE16N_START*创建TCODE 时,按照 ZCONF_<表名>命名.程序从TCODE中解析表名.*&---------------------------------------------------------------------*REPORT zbc_conf.PARAMETERS: p_tab TYPE tabname DEFAULT '' NO-DISPLAY.

INITIALIZATION.*标准IMG执行时在程序 LS_CUS_ACTIVITYF01 472 行左右 会调用预定义的事务代码并通过PARAMETER ID 'CUO' 传递配置对象* SET PARAMETER ID 'CUO' FIELD objectname.* CALL FUNCTION 'SPROJECT_BUFFER_NOTE'.* CALL TRANSACTION p_tcode. IF sy-tcode = 'ZBC_CONF'. DATA: lv_objectname TYPE ob_object. GET PARAMETER ID 'CUO' FIELD lv_objectname. IF lv_objectname IS NOT INITIAL. p_tab = lv_objectname . ENDIF. ELSE. SPLIT sy-tcode AT '_' INTO DATA(lv_1) DATA(lv_2). SELECT SINGLE * FROM dd02l INTO @DATA(ls_dd02l) WHERE tabname = @lv_2. IF sy-subrc = 0. p_tab = lv_2. ENDIF. ENDIF.

START-OF-SELECTION.

CALL FUNCTION 'SE16N_START' EXPORTING i_tab = p_tab* I_DISPLAY = ' '* I_EXIT_SELFIELD_FB = ' ' i_single_table = 'X' "表名字段不允许输入* I_HANA = ' ' .
ABAP技巧与实战

关于作者:ABAP技巧与实战

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

来源说明:本文内容由「SAP小技巧打造全新的配置体系二实现方式.md」整理生成,仅用于内部技术分享与学习交流。