ABAP用表格维护生成器维护数据sm30

本文详细介绍了在SAP系统中创建自定义数据库表的过程,包括使用SE11建立表结构、设置技术参数、配置维护生成器及事务代码等步骤,并提供了界面定制和编程示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



之前做过一个这样的例子,但是在老师的指导下,觉得挺简单的

后来业务需要,需再做一个配置表,居然死活不成功

最后,经过多方面的努力,终于成功

现把步骤具体得记录下来,JUST FYI

1 用se11新建一个自定义数据库表,假设表名为 ZMARA ,

其中数据库字段有:

mandt matnr zstop ernam ersda crtime lauser ladate latime

客户端(必须的,key) 物料号(key) 停用标识 创建人 创建日期 创建时间 最后修改人 最后修改日期 最后修改时间

其中创建人、创建日期、创建时间不需要,因为只要记录最后修改的信息即可

2 进入 技术设置,如图


数据类:选择APPL0

大小范畴: 写0 或者1 都可以(我认为既然是用表格维护生成器做的对话程序,数据量不会很大,所以选择写0就可以了)

缓冲 :不允许缓冲

缓冲类型:空

关键字段号:空



3 维护完技术设置之后,回到维护的界面,进入菜单:实用程序 - 表格维护生成器


权限组:&NC&(我认为这个和BASIS有关,在此选择大权限)

权限对象 函数组 package 在维护数据字典的时候已经设定,会自动带过来

维护屏幕:

              如果“维护类型”选择“一步”,则“维护屏幕编号”是只需要有“概述屏幕”即可,“单一屏幕”为空

           如果“维护类型”选择“两步”,则“维护屏幕编号”中“概述屏幕”和“单一屏幕”都需要 有屏幕号

          对于“一步”和“两步”的概念,自己体会

          对于所需要的屏幕号,则点击工具栏上的“查找屏幕号”,选择第一个建议的即可(这里如果重复的屏幕号就生成不了)

4 创建相应的tcode

    进入se93 , 输入tcode名称

开始对象选择最后一个:Transaction with parameters (parameter transaction)



属性设置如图


   事务:sm30

跳过起始屏幕:勾选

Inherit GUI attributes :勾选

5 即可进入创建的tcode进入

除了以上最基本的东西,还可以修改界面,写代码

     该例子设计的数据字典中创建信息相当于没用,所以不需要显示创建信息,具体操作:

         进入tcode,菜单:系统 - 状态 - 双击屏幕编号 (切记不是程序名称)

         进入格式界面,修改状态,把创建信息一列删除:先删文本,再删可输入列;

         修改“修改信息”的可输入状态,设为“不可输入”

         在PAI中,把不要的字段注释掉,并在其后添加一个module

     MODULE set_0027_change_info ON CHAIN-REQUEST.

         PROCESS AFTER INPUT.
       MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
      MODULE LISTE_BEFORE_LOOP.
       LOOP AT EXTRACT.
          MODULE LISTE_INIT_WORKAREA.
          CHAIN.
             FIELD ZIEBBFWLZ-MATKL .
             FIELD ZIEBBFWLZ-ZSTOP .
*     FIELD ZIEBBFWLZ-ERNAM .
*     FIELD ZIEBBFWLZ-LAUSER .
             MODULE set_0027_change_info ON CHAIN-REQUEST.
            MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
          ENDCHAIN.
          FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
         CHAIN.
             FIELD ZIEBBFWLZ-MATKL .
             MODULE LISTE_UPDATE_LISTE.
          ENDCHAIN.
       ENDLOOP.
   MODULE LISTE_AFTER_LOOP.

在新添加的module中写入如下代码即可:

   zmara-lauser = sy-uname.
   zmara-ladate = sy-datum.
   zmara-latime = sy-uzeit.

注意module的位置,如果位置不对,该段程序也不会执行

<think>我们正在处理用户的问题:如何在ABAP中打开表维护生成器(Table Maintenance Generator) 根据引用[1]和引用[2]的内容,我们可以知道: 引用[1]提到:在数据字典表中创建Table Maintenance Generator(表维护生成器)的方法是:点击utilities>Table Maintenance Generator,然后点击创建。 引用[2]提到:表维护生成器SM30)以及一些相关的设置步骤。 因此,打开表维护生成器通常有两种方式: 1. 通过SE11事务码(数据字典)进入表定义,然后通过菜单路径打开表维护生成器。 2. 直接使用事务码SM30维护表,但创建表维护生成器是在SE11中完成的。 用户问题是如何打开表维护生成器,这通常指的是创建或修改表维护生成器,因此我们需要通过SE11进入。 步骤: 1. 在SAP命令框中输入事务码SE11,按回车。 2. 选择“数据库表”,输入要维护的表名(例如:ZTEST_TABLE)。 3. 点击工具栏上的“显示”或“修改”按钮(如果是新建表,需要先创建表结构)。 4. 进入表定义界面后,在菜单栏上选择“实用程序”(Utilities)-> “表维护生成器”(Table Maintenance Generator)。 5. 此时将打开表维护生成器的设置界面。 另外,引用[1]还提到可以通过事务码/OSM30(打开维护表工具)和/OSE16N(看表和视图的工具),但注意,/OSM30实际上就是SM30,而表维护生成器的创建是在SE11中。 因此,总结回答: 要打开表维护生成器,首先通过SE11进入表的定义界面,然后通过菜单路径“实用程序”->“表维护生成器”来打开。 同时,根据引用[3]的内容,我们提醒用户在实际操作前,确保使用一个合适的用户(而非默认的DDIC或SAP*)进行工作,并设置好相应的角色和权限。 生成相关问题: 1. 如何通过事务码SM30维护数据? 2. 在创建表维护生成器时,授权组和函数组的作用是什么? 3. 如何设置表维护生成器的事件?</think>### ABAP 中打开表维护生成器(Table Maintenance Generator)的步骤 1. **进入数据字典(SE11)** 在 SAP 命令框中输入事务码 `SE11`,按回车进入 ABAP 数据字典工具。 2. **选择数据库表** - 选择 "数据库表" 选项 - 输入需要维护的表名(例如 `ZTEST_TABLE`) - 点击 "显示"(Display)或 "修改"(Change)按钮进入表定义界面。 3. **打开表维护生成器** 在表定义界面顶部菜单栏: **实用程序(Utilities) → 表维护生成器(Table Maintenance Generator)**[^1] 4. **配置维护生成器** - **授权组**:输入授权对象(如 `&NC&`) - **函数组**:创建或指定用于生成维护屏幕的函数组 - **维护类型**:选择维护方式(单屏/步进式) - **事件**:通过 `Environment → Modification → Events` 添加事件代码[^2] ```abap " 示例:添加事件程序名到表格 SET|FD PROGRAM_NAME ``` 5. **生成并激活** 点击 "创建"(Create)按钮生成维护对话框,激活后即可通过事务码 `SM30` 维护数据[^1][^2]。 --- ### 表维护字段属性说明 | 字段属性 | 功能说明 | |---------|----------| | **空** | 字段可自由维护 | | **R** | 只读字段(不可修改) | | **S** | 子集字段(按值筛选数据)| | **H** | 隐藏字段(不在维护界面显示)[^2] | --- ### 访问表数据的快捷方式 - **表维护**:直接使用事务码 `SM30` 输入表名维护数据 - **数据浏览**:使用事务码 `SE16N` 查看表内容[^1] > ⚠️ **操作注意**:建议使用专用用户账号(非 `DDIC`/`SAP*`)执行维护操作,通过 `SU01` 分配 `SAP_ALL` 参数文件或自定义角色权限[^3]。 --- ### 相关问题 1. 如何为表维护生成器添加自定义校验逻辑? 2. SM30 维护表时如何设置字段级权限控制? 3. 表维护生成器中的“授权组”参数具体作用是什么? 4. 如何通过程序代码调用 SM30维护功能? [^1]: 在数据字典表中创建 Table Maintenance Generator(表维护生成器)点击 utilities>Table Maintenance Generator 点击创建 [^2]: SE11 进入表维护界面创建界面, Environment->Modification->Events, 添加ST|FD对应程序名至表格中 [^3]: 创建用户的过程很简单,只要以 su01 事务码进入用户维护屏幕。在用户栏填上新增的用户名,按新建按钮创建
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值