查找透明表的實用方法

1、通過字段查表:先通過SE16在表DD03L(保存有SAP所有字段)中通過字段查找到所有引用此字段的表名,再在表DD02L(保存有SAP所有表)中篩選表類別爲透明表的表。可以做成一個Query,方便以後查詢。其它相關表:DD02T(SAP表文本)、DD04T(數據元素文本)。另外,表DDFTX也有部分對應關係,但具體不清楚用在哪。

2、寫個小程序,通過字段找表:

*****&&&&&查找透明表&&&&&*****
*&---------------------------------------------------------------------*
*& Report    ZTABLEFIND
*&
*&---------------------------------------------------------------------*
*& Author: Mao JH
*&
*&---------------------------------------------------------------------*

REPORT ztablefind.
TABLES: dd02t, dd03l, dd02l.
DATA: BEGIN OF field1 OCCURS 0.
        INCLUDE STRUCTURE dd03l.
DATA: END OF field1.
DATA: BEGIN OF field2 OCCURS 0.
        INCLUDE STRUCTURE dd03l.
DATA su TYPE i.
DATA: END OF field2.
DATA:field_sum TYPE i.

SELECT-OPTIONS ified FOR dd03l-fieldname.
SELECT-OPTIONS ittype FOR dd02l-tabclass.
DATA   fieldsum TYPE i.
SELECT * FROM dd03l INTO TABLE field1 WHERE fieldname IN ified.
SORT field1 BY tabname.
LOOP AT ified.

  fieldsum = sy-tabix.
ENDLOOP.
LOOP AT field1.
    field_sum = field_sum + 1.
  MOVE-CORRESPONDING field1 TO field2.
    AT END OF tabname.
*field2-tabname = field1-tabname.
*move-corresponding field1 to field2.
    field2-su = field_sum.
    COLLECT field2.
    CLEAR field2.
    CLEAR field_sum.
  ENDAT.
ENDLOOP.
LOOP AT field2 WHERE su = fieldsum.
    SELECT SINGLE * FROM dd02t WHERE tabname = field2-tabname AND
         ddlanguage = sy-langu.
    SELECT SINGLE * FROM dd02l WHERE tabname = field2-tabname AND
                      tabclass IN ittype AND
                      as4local =  field2-as4local AND
                      as4vers = field2-as4vers.
    IF sy-subrc = 0.
    WRITE: / field2-tabname,dd02l-tabclass,dd02t-ddtext.
  ENDIF.
ENDLOOP.

 

3、記錄幾個有用的表:

通用角色與本地角色的關係表:AGR_DEFINE

角色與事務代碼的關係表:AGR_TCODES(用於查詢角色中包含了哪些T-CODE,或一個T-CODE都被哪些角色使用)

這兩個表是我用ST05追蹤到的,記錄一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章