我的微信群里有敌人发问:
如何找到某个 ABAP structure 里的某个字段,运行时的值是从哪个数据库表的字段里写入的?
以 ABAP structure BAPIAD1VL 为例,假如咱们须要查找 字段 DISTRCT_NO 的起源。
其实没有什么太好太准确的方法。我这里提供一种方法。
选中 DISTRCT_NO, 点击 SE11 工具栏的 Where used list 图标:
有 4 条后果,一条一条人工查看。如果后果数很多,这种办法就很低效了。
第三条记录里,发现是 ADDR1_VAL 构造的 CITYP_CODE 字段,写入了咱们要查找的指标构造 BAPIAD1VL-DISTRCT_NO 字段。
这个 ADDR1_VAL 依然是一个 ABAP 构造,所以咱们这里有两种抉择。
一是咱们的指标,转而划归为查找构造 ADDR1_VAL 的字段 CITYP_CODE 来自何方。能够递归地用 SE11 的 where used list,查找字段 CITYP_CODE, 直至搜寻后果里,发现真正的数据库表才完结摸索。
第二种抉择是,应用 SE80 的 Repository information system.
关上 SE80,右边开展 Fields->Table Fields, 左边输出 CITYP_CODE:
在搜寻后果里,发现 ADRCITYPRT 和 ADRSTREET 这两张表的 CITYP_CODE 字段最有可能是咱们要查找的字段。
此时手动到 SE16 查看这两张表的字段来确认。
另外群里这位敌人还问到了 check table. 这个概念往往容易和另一个 value table 相混同。
check table
它只是蕴含特定外键表字段的所有无效条目标表。用于字段级验证(它限度字段值)。
value table
值表在域 (domain) 级别保护,也称为域级别验证。
二者的区别
- check table 将对在任何应用程序中输出的表字段的输出值进行查看,value table 将在 F4 帮忙上为该表字段提供值。
- check table 定义外键并且是表定义的一部分。而 value table 是域定义的一部分。
- check table 是字段级别的验证,value table 是域级别的验证,用于为援用该域的所有字段提供 F4 帮忙。
更多 Jerry 的原创文章,尽在:” 汪子熙 ”: