问题出现
原本在 CodingBlock 中新增了自定义字段用于预留。现在公司业务发展,需要启动这个字段。
问题:在后台表中将这个域的描述从“预留字段”改为“票账比对”,发现在凭证更改的屏幕上 ACDOCA 表的这个字段能够正确显示,但是 BSEG 表的值还是叫预留字段。如下:
因此,第一时间在屏幕上进行 Debug,定义这个字段描述从哪里获取,很快就找到了缓冲区表 TNAMN:
BSEG 表内容如下
ACDOCA 表内容如下:
症结
系统可能会在屏幕变体的显示/维护事务中错误地显示字段标签,以便快速输入(FAKP、OKOL 等;Module pool SAPDFKA6 screen 0120) 。显示的技术名称与指定屏幕中的字段标签不匹配。字段标签应与字段名称的 ABAP/4 词典中定义的数据元素的字段标签相对应。对字段标签的更改在数据元素中的显示不正确之前。这不会直接影响维护事务。
不正确的字段描述存储在缓冲区表 TNAMN 中,该表不会作为默认值进行更新。
但是,如果 TNAMN 中缺少条目,则系统会从字典表 DD03P 中读取这些条目并生成它们。因此,不一致会自行解决,即使不正确的 TNAMN 条目根本不可用。
解决方法
删除表 TNAMN 中不正确的条目,并重新调用相应的维护事务。利用事务码 SM30
删除的相应条目。
例如:
对于字段 BSEG-WRBTR
,系统以“德语”语言显示不正确的字段标签。
使用表 TNAMN 调用事务 SM30
并将光标定位在输入上
Language : ‘DE’
Table name : ‘BSEG’
Field name : ‘WRBTR’
并将其删除,再次调用维护事务(例如 FAKP)后,TNAMN 将正确填充。
在本系统中,是删除这个字段:
如果删除不行,就通过事务码 SM30 直接在表 TNAMN 中直接更改为成正确的描述。
参考Notes:
- 211592 - Incorrect field labels in screen variants
- 336562 - Field name user-defined data element not transferrd
- 3418264 - Fields description change in data dictionary is not reflected in change log