SE16N &SAP_EDIT, ICON at Selection Screen

摘录From blog of 翱翔云天

1. SE16N &SAP_EDIT

Usually we use SE16N to dispaly table data and only few tables can be maintained by it directly, BUT we can use internal command &SAP_EDIT to switch on grayed "Maintain entries" option for changing any table.

 

Example: http://www.abaptech.com/2010/06/change-table-records-with-se16n/

 

2. Add ICON to Selection Screen

 

a) SE38/80 -> GOTO -> Text Elements -> Selection Text
b) Make text to be a value of ICON-ID. eg. "@71@ PO"

 

Example: http://www.abaptech.com/2010/05/add-icon-to-selection-screen/ 

 

3. Class method table - VSEOMETHOD

Usage:  http://www.abaptech.com/2010/05/%e6%9f%a5%e6%89%be%e7%b1%bb%e5%92%8c%e6%96%b9%e6%b3%95%e7%9a%84%e7%ae%80%e5%8d%95%e6%96%b9%e6%b3%95/

<think>好的,我现在需要帮用户解决在SAP中创建一个可以通过SE16N直接进入编辑模式的自定义表的问题。根据用户提供的引用资料,我需要综合这些信息来整理出正确的步骤。 首先,用户提到的引用[4]里提到了创建数据库表时需要使用MANDT作为第一个字段,并且命名以Z或Y开头。所以创建表的时候,必须遵循这些命名规范,否则可能无法直接编辑。 接下来,用户的问题是关于如何让自建表在SE16N中可以直接编辑。根据引用[3],正常情况下,在SE16N中使用&SAP_EDIT命令激活编辑模式,但有时候会失效,这时候需要通过DEBUG修改GD-SAPEDIT和GD-EDIT的值。不过这可能只是临时解决方案,用户可能需要更持久的配置方法。 然后看引用[2],里面提到了在AUTHORITY_CHECK的结尾处理中加入增强代码,判断TCODE是否为ZMODY,并且表名以Z或Y开头时,设置gd-edit和gd-tabedit为X。这说明可能需要通过增强来允许特定表的编辑权限。 但用户希望的是自建表默认可以在SE16N中直接编辑,而不是每次都要调试或者加增强。这时候可能需要检查表的技术设置。通常,SAP系统默认不允许通过SE16N直接编辑生产表,但自建表可能可以通过调整表属性来实现。 在创建表时,表的技术设置中有一个“允许通过标准表格维护工具维护”的选项,可能叫做“允许维护/允许直接输入”。如果启用这个选项,SE16N可能就可以直接编辑了。比如,在SE11创建表时,在技术设置里勾选这个选项,或者在表属性里设置维护允许。 不过根据引用[3],即使用户启用了编辑模式,有时候也需要调试,这可能是因为某些权限或配置的问题。所以可能需要结合表的技术设置和权限配置。例如,除了在表属性里允许维护,可能还需要通过增强或权限对象来控制。 总结步骤可能如下: 1. 创建表时遵循命名规范(Z或Y开头),包含MANDT作为关键字段。 2. 在表的技术设置中启用允许直接维护。 3. 如果仍然无法编辑,可能需要通过增强在AUTHORITY_CHECK中设置编辑权限,如引用[2]所示。 4. 或者通过SE16N调试模式临时修改GD参数,但这不是长久之计。 需要确认是否正确,是否还有其他步骤或注意事项,比如权限配置或者是否需要激活某些服务。</think>### SAP自建表SE16N直接编辑配置方法 在SAP中创建可通过SE16N直接编辑的自定义表,需综合**表结构设计**和**权限配置**两个层面。以下是详细步骤: --- #### 一、创建符合编辑规范的自定义表 1. **命名规范** - 表名必须以`Z`或`Y`开头,例如`ZMY_TABLE`[^4]。 - 第一个字段必须是`MANDT`(客户端字段),并作为关键字段。 2. **表属性配置** - 在SE11中创建表时,勾选**允许通过标准表格维护工具维护**(路径:SE11 → 技术设置 → 数据浏览器/表视图维护 → 允许维护)。 - 若该选项未启用,即使表名符合规范,也无法直接编辑。 --- #### 二、SE16N直接编辑的权限配置 若表已按上述规范创建,但SE16N仍无法直接编辑,需通过以下方式配置权限: 1. **标准编辑模式激活** 在SE16N界面输入事务码后,在命令框输入`&SAP_EDIT`并执行,激活编辑模式[^3]。 2. **增强权限控制(如需永久生效)** 通过隐式增强修改权限检查逻辑,允许特定表直接编辑: ```abap FORM AUTHORITY_CHECK. IF SY-TCODE = 'SE16N' AND ( GD-TAB(1) = 'Z' OR GD-TAB(1) = 'Y' ). "判断表名是否以Z/Y开头 GD-EDIT = 'X'. "激活编辑模式 GD-TABEDIT = 'X'. "允许表级编辑 ENDIF. ENDFORM. ``` 此增强会跳过权限检查,仅限开发/测试环境使用[^2]。 --- #### 三、调试模式临时解决方案(应急场景) 若上述方法失效,可通过调试模式强制开启编辑: 1. 在SE16N输入界面按`/h`进入调试模式。 2. 在调试变量中设置: ``` GD-SAPEDIT = 'X' GD-EDIT = 'X' ``` 3. 执行后进入编辑模式,手动修改数据[^3]。 --- #### 注意事项 - **生产环境限制**:直接开放SE16N编辑可能导致数据一致性风险,建议通过标准事务码(如SM30)维护表数据。 - **权限管理**:通过角色分配`S_TABU_DIS`权限对象,控制用户对表的访问权限。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值