在SAP中,经常需要自定义数据库表。而且可能需要人工维护数据库表中的数据,可以通过SM30进行维护数据;但是SM30事务的权限太大,不适宜将SM30直接分配;因此,可以通过给维护表分配事务代码,来达到控制权限的目的。通过下例,来展示大致的维护过程;
1、首先通过SE11,创建一个自建表,在‘Delivery and Maintenance’页签里,需要维护‘Date Browser/Table View Maint.’,如图1;
(图1)
如果在这里不进行设个该选择项,则在使用SE16时,无法进行创建新条目的操作,如图1.1;在使用SM30时,也无法进行相应的操作,如图1.2;
(图1.1)(图1.2)
2、在维护完基本的数据后,还需要维护‘表生成器’,维护步骤如下;
(图2)
(图3)
(图4)
(图5)
经过以上的步骤,就完成对‘表维护生成器’的创建。
3、SE93维护创建事务代码,选择‘Transaction with parameters(parameter transaction)’;进入维护界面后,‘事务’填写‘SM30’,并将‘跳过起始屏幕’复选框选中,在‘Classification’中选中‘Inherit GUI attributes’,然后在‘Default values’里填入两个变量的值:UPDATE = 'X' 、VIEWNAME = 自定义数据库表名,保存后,就可以使用生成的事务代码直接进行维护数据了,如下;
(图6)
(图7)
4、对维护的对象增加代码
在一个项目中最好统一一个函数组,如果有多个表需要维护,只要对应的递增‘概述屏幕’号就可以了,如图所示:
(图8)
如果需要在维护的时候对已知的表字段做些增强,如描述自动带出等功能,则可以通过如下步骤实现:
4.1 在表格维护生成器中点击左上角的‘源代码’,在弹出的‘程序组件部分’中双击对应的函数(函数名为‘SAPL+函数组’,如下图:
(图9)
4.2 双击程序名后,会跳转至SE38,进入程序,点击‘显示清单对象’,就可以在左侧的‘屏幕’下拉中找到对应的屏幕号,这时双击屏幕号,就可以进入对应的屏幕及逻辑设计,如下图:
(图10)
(注:在维护表生成器时,维护类型选择‘一步’,否则在维护数据的时候会产生请求号,如下图:)
(图11)