我試圖通過ERPConnect的ABAP API查詢SAP的數據字典。下面的代碼很好地檢索表名和各種字段屬性,但未能顯示字段說明。有人知道爲什麼Abap數據字典字段說明
感謝
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.
答案不能更精確。 –
感謝提示,所有這些ABAP malarkey對我來說都是新手。回覆。該函數的使用,儘管我的代碼只是檢索BSAK的元數據,但這只是爲了方便調試,實際上有一些我需要元數據的6k表。在這種情況下,我正確地直接查詢表格會更方便嗎? – rodders
我剛測試過它。在我的系統中,爲39512個數據庫表調用'DDIF_FIELDINFO_GET'需要878秒的總時間。對於一次性行動(DDIC遷移),這在我眼中是可以接受的。如果你仍然堅持你自己的'SELECT'語句,請檢查在該功能模塊中實現的邏輯(並且非常感謝SAP是開源的:-))。還有另外一個表格「DDFTX」涉及到協助文本確定。 – rplantiko