SAP中直接修改表、视图的Tcode有SE16N和SM30。
其中使用SE16N修改表需要先输入命令&SAP_EDIT,回车左下角显示激活SAP编辑功能后,就可以对相应的表进行新增、删除、修改的操作。
有时输入&SAP_EDIT后还是不能激活,是因为另有地方限制,执行程序RKSE16N_EDIT,选中激活编辑功能后,问题得以解决。
事务代码se38,执行程序RKSE16N_EDIT,选中激活编辑功能后,激活。
另外,在EHP5版本中,激活编辑功能是不被允许的,不过程序中是通过一个判断语句来限制的,可以通过将相关的判断值判断前加断点,手工修改赋予值之后,问题也迎刃而解。相关的判断语句可以通过查找关键字SE16N来寻找。
命令框中,输入/h,回车,2次调出调试器,或者或者输入&sap_edit,回车,系统提示修改状态激活。
在变量1中输入如下两个参数,并将其值都改为X ,GD-SAPEDIT、 GD-EDIT。如图:
此时,按F8,刷新,进入表中,进行修改相应的参数。
在SAP中,如果使用SE16N直接修改表中的记录,特别是add-on表记录的修改,SAP会记录下来。记录的内容分别放在两个表中:SE16N_CD_DATA&SE16N_CD_KEY,其中Key是抬头信息,DATA是修改的内容。
如果使用SE16N对表做了修改,想查询修改记录,可以使用报表:RKSE16N_CD查看修改的历史。起初,这个报表只能查看,不能删除,不过到Ehp4版本的时候,删除功能也集成到这个报表中。如果不想使用这个报表,可以使用另外一个报表来进行删除:RKSE16N_CD_SHOW_DELETE
当然,这几个程序都是版本相关的,大家可以参考Notes:1275614,或者1263844。
附加操作说明:
通过debug在SE16下修改数据表数据
1、进入SE16,选择要修改的表,设置Data Browser 的Output list 为“SE16 standard list”;
2、让SE16显示出你要修改的数据,命令栏里输入“/h”;
3、双击要修改的行,进入debug界面,
在程序 SAPLSETB / LSETBF01 的第25行的if处设置断点
refresh exclude_tab.
if code = 'SHOW'.
F8执行,在断点处,将code的值改为“EDIT”(当然也可以改为“INSR”、“DELE”)
4、修改除key值外的任何值,然后保存。
第一步,进入SE16,输入需要修改的表的名字
第二步,在选择屏里输入点选择项来找数据,找你需要修改的那行
第三步,在表的内容输出的界面,在command field里,就是用来输入tcode的那个地方,输入/H,回车,会看到下面有绿色提示,意思是debug on
第四步,找到需要修改的那一行,双击来显示,这个时候会进入代码,main program是“SAPLSETB”,source code of 是“LSETBF01”,在25行处,可以看到以下代码:
refresh exclude_tab.
if code = "SHOW".
……
第五步,在这个if前加个断点,然后把code的值改成‘EDIT’
第六步,按F8运行,看到出来的结果是除了key field,其他的字段都可以被修改了,修改后按保存按钮
事务代码se37,SE16N_INTERFACE,测试执行,如图: