以编程方式获取表字段描述 [英] Get table field description programmatically

查看:83
本文介绍了以编程方式获取表字段描述的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过ERPConnect的ABAP API查询SAP的数据字典。下面的代码可以检索表名称和各种字段属性,但是无法显示字段说明。有人知道为什么吗?

I'm trying to query SAP's data dictionary through ERPConnect's ABAP API. The code below retrieves the table names and various field properties fine but fails to show the field description. Anyone knows why?

谢谢

REPORT  ZSELECTCOMMAND.
TABLES: DD02L,
    DD03L,
    DD02T, DD04T.

DATA: BEGIN OF tb_meta,
    tabname   TYPE  DD02L-tabname,
    fieldname   TYPE  DD03L-fieldname,
    datatype    TYPE  DD03L-datatype,
    leng        TYPE  DD03L-leng,
    decimals    TYPE  DD03L-decimals,
    position    TYPE  DD03L-position,
desc    TYPE  DD04T-ddtext,
    END OF tb_meta.
DATA utb_meta LIKE STANDARD TABLE OF tb_meta.
DATA: ln_meta LIKE LINE OF utb_meta, m1 TYPE i, m2 TYPE i.
SELECT
    tb~tabname
fld~fieldname
    fld~datatype    fld~leng
    fld~decimals    fld~position
x~ddtext
    INTO CORRESPONDING FIELDS OF TABLE utb_meta
FROM
    dd02L AS tb
INNER JOIN dd03L AS fld
    ON tb~tabname = fld~tabname
INNER JOIN DD04T AS x
ON fld~ROLLNAME = x~ROLLNAME
AND x~DDLANGUAGE = 'EN'
WHERE
    CONTFLAG IN ('A', 'C', 'S')  
    AND 
    APPLCLASS <> '' 
    AND 
    tb~TABNAME NOT LIKE '/%' 
    AND 
    tb~TABNAME NOT LIKE '%_BAK'
    AND
   tb~TABNAME = 'BSAK'.
*GET RUN TIME FIELD m1. 
loop at utb_meta into ln_meta.
    write:/ 
    ln_meta-tabname 
    && '>>' && ln_meta-fieldname 
    && '>>' && ln_meta-datatype
    && '>>' && ln_meta-leng
    && '>>' && ln_meta-decimals
    && '>>' && ln_meta-position
    && '>>' && ln_meta-desc.
endloop.


推荐答案

表字段的文本信息在不同的地方或可以存储结构字段。您从 DD04T 中选择的数据元素文本只是这些文本的一个位置。您可以使用内置数据类型而不是字典数据类型定义表组件,然后文本将存储在 DD03T (例如)

There are different places where text information of a table field or structure field can be stored. The data element texts that you are selecting from DD04T are only one place for those texts. You can define table components with built-in data types instead of dictionary data types, then the texts will be stored in DD03T(for example)

由于这些原因( DD * 表的技术细节),我强烈建议您使用功能模块 DDIF_FIELDINFO_GET 而不是滚动自己的 DD * 选择。只需传递参数 TABNAME LANGU ,然后生成内部表 DFIES_TAB 将包含您需要的所有信息,包括文本。

For these reasons (technical details of the DD*tables), I would strongly recommend you to use the function module DDIF_FIELDINFO_GETinstead of rolling your own DD* select. Just pass the parameters TABNAME and LANGU, and the resulting internal table DFIES_TAB will contain all the information you need, including texts.

这篇关于以编程方式获取表字段描述的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆