SAP日常运维中,难免会遇到改系统标准表的情况,传统的方式是通过/H进入调试,更改系统字段标识达成维护标准表的目的,偶然间发现了系统函数'SE16N_START',可以直接进入标准表的维护界面,下面说明步骤。
一、分析一下事务代码SE16N,打开SE93后发现对应的程序RK_SE16N,
查看代码就可以看到系统函数'SE16N_START',
但是,实际上调用这个程序,对于标准报表比如BKPF是不能够直接维护的,如图,维护条目这里的勾选框是灰色的,代表不能直接改表,所以我们可以通过增强的方式实现直接维护标准表。
二、拷贝标准函数'SE16N_START'为'ZSE16N_START',注意放到跟原来标准函数同一个函数组SE16N下,如下图,并从拷贝后的函数一开始就对编辑字段赋初始值GD-SAPEDIT = 'X'.GD-EDIT = 'X'.
三、对包含文件LSE16NF10增强,FORM FILL_TC_0100,子例程的结构增加这样几行代码,
IF sy-tcode EQ 'ZSE16N'.
gd-EDIT = 'X'.
gd-tabedit = 'X'.
ENDIF.
四、拷贝标准程序RK_SE16N为ZRK_SE16N,调用的函数改为拷贝后的自定义函数。
五、为方便使用,可以对程序给定事务代码,比如ZSE16N
六、测试ZSE16N标准表BKPF维护,可以看到维护条目这里的勾选框已经是打勾状态,可以直接维护系统表啦。
七、SE16N修改表的记录,会保存在系统表SE16N_CD_KEY; SE16N_CD_DATA中。