SAP 直接修改表
1.1.1 SAP表修改概览
SAP中的表分为配置表和业务数据表二大类,正常来说
后台的表中如果有错误,应该通过修改配置的方式来修改。
前台的表中如果有错误,应该修改相应的单据,如果该单据无法修改,应采用冲销单据,然后重新创建新的单据的方法。
但在某些情况下,我们可能需要采用暴力手段,直接修改表,最典型的情况是在一台无数人使用、非规范管理的Ides系统中,在这个Ides系统中有时会有一些错误存在,譬如本人使用的一台Ides系统中,MRP运行后,产生541的预留69014,查看该预留时,系统出现错误。
正常来说是通过事务代码OMJJ来配置移动类型,但是字段预留是无法修改的,此时只能通过暴力方法。
直接修改表最重要的原则就是,在采用暴力手段之前,务必保证修改的值是准确的,否则将导致不可预测的结果,我们首先要在另外一台SAP服务器中查看,该字段正确的值是什么,可以看到该字段正确的值为U。
1.2 修改表的方法
SAP中,具体而言,可以有以下三种方法可以直接修改表
本例中,移动类型的参数预留对应的表字段为T156-rstyp,移动类型为541.
1.2.1 方法1:通过SE16N用&SAP_EDIT直接修改表记录
SE16N,输入表名、移动类型以及选择相应字段,然后输入&sap_edit,回车,即提示,点击执行(F8)
此时系统为可编辑状态
可以直接修改值,可以插入值、删除值
1.2.2 方法2:事务代码SE16进入Debug界面,直接修改表字段值
事务代码SE16,输入表T156,移动类型541,执行,在下图中命令输入框中,输入/H,系统则将进入debug,出现提示
在Debug的界面中的第八十六行,设置断点(BreakPoint),然后执行到断点,修改字段Code的值,从Show(显示)修改为Edit(编辑)。
修改Code值完毕后,继续执行,则可以修改表字段的值,当修改晚相应的字段值,点击保存
1.2.3 方法3通过ABAP程序更改表
譬如在本例中,通过以下程序,可直接修改表字段值
REPORT zchange_t156_rstyp.
tables t156.
UPDATE T156 SET rstyp = 'U'
WHERE bwart = '541'.
if sy-subrc is initial.
WRITE / 'Field T156-RSTYP changed from " " to "U"'.
else.
WRITE / 'Field T156-RSTYP could not be changed'.
endif.