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