Mik*_*lly 2 abap sap-erp sap-data-dictionary
SAP 表 DD02L 列出了 SAP 中的每个表以及每个表中的字段数。例如,根据 T 代码 S_PH0_48000138,PLPO(PM 任务列表)表包含 244 个字段。对于业务报告和使用 SQL,我最多只想看到 5、6 个字段值,但整个表都被复制,所有 244 个字段!
所以,我想知道有多少个透明表包含超过 20 个字段。如果我运行上面的 t 代码,我将花费 10 年时间才能一次完成一张表。
迈克·麦克纳利
我不是一个经验丰富的 ABAPer,所以我不知道如何设置。
表DD02L“只是”SAP 中所有表的列表。我没有在这个表中找到任何字段,这可以告诉实际表有多少个字段。
可以使用表DD03L(SAP表字段),它列出了SAP中的所有字段和表。字段按位置列出,这意味着我们可以选择所有存在位置为 21 的字段的表(位置 21 存在 = 表中字段超过 20 个):
SELECT FROM dd02l
INNER JOIN dd03l
ON dd02l~tabname EQ dd03l~tabname AND
dd02l~as4local EQ dd03l~as4local AND
dd02l~as4vers EQ dd03l~as4vers
FIELDS dd02l~tabname
WHERE dd02l~tabclass EQ 'TRANSP' "only transparent tables
AND dd03l~position EQ '0021'
INTO TABLE @DATA(lt_dd02l).
Run Code Online (Sandbox Code Playgroud)
结果(内表lt_dd02l)将包含所有表,其中有超过20个字段。我目前使用的是 R/3 系统,查询只花了几秒钟,但仍然有超过 12.000 个表,超过 20 个字段。
*在 Gert Beukema 发表评论后编辑的答案(见下文)