Abap 使用rs\u dd\u检查进行数据字典对象检查

Abap 使用rs\u dd\u检查进行数据字典对象检查,abap,sap-data-dictionary,Abap,Sap Data Dictionary,rs_dd_check是检查ddic对象的强大功能。但是功能模块不适合我,我可以直接调用它,因为我需要在只有对话框的旧系统上使用它,并且您不能将消息导出fm 所以我从中提取了一些代码(执行check_object子例程的代码),这些代码应该足够了,而且对于表和结构来说是有效的!!!但对于其他所有元素,它都不起作用( 基本上,我创建一个日志,然后进行检查,然后从内存id“CHE”导入变量/表lt\u log,例如CHETABLSFLIGHT 我确定它正在为其他元素创建日志,但我不确定它是否已填充这

rs_dd_check是检查ddic对象的强大功能。但是功能模块不适合我,我可以直接调用它,因为我需要在只有对话框的旧系统上使用它,并且您不能将消息导出fm

所以我从中提取了一些代码(执行check_object子例程的代码),这些代码应该足够了,而且对于表和结构来说是有效的!!!但对于其他所有元素,它都不起作用(

基本上,我创建一个日志,然后进行检查,然后从内存id“CHE”导入变量/表lt\u log,例如CHETABLSFLIGHT

我确定它正在为其他元素创建日志,但我不确定它是否已填充这些日志…因为lt_日志保持为空

report report name.

    data:  objname type rsedd0-ddobjname value 'object_name', eg sflighs
           eutype  type rsdxx-eutype value 'object_type', eg T 
           enqtype type rsdeo-objtype,
           protid  type sy-tabix,
           titletxt TYPE sprot_i-prot,
           actmode TYPE ddrefstruc-mode VALUE 9,
           act_res type STANDARD TABLE OF dctablres,
           lt_log type STANDARD TABLE OF trlogm .






*TRANSLATE T INTO TABL ETC
    call function 'INTERN_TRANSL_EUTYPE' "Sperrtyp
      exporting
        eutype       = eutype
      importing
        enqueue_type = enqtype.

*CREATING LOG?
    call function 'DD_OBJ_PROT_OPEN'
      exporting
        objectname = objname
        objecttype = enqtype
        level      = 1
        device     = 'M'  "Memory with report RSPUTPRT as frontend
        ddfunc     = 'CHE'
      importing
        prid       = protid
      exceptions
        others     = 01.



*CHECKING SYNTAX
    case eutype .

      when 'T'.
        titletxt = 'CHECKING TABLES'.
        call function 'DD_TABL_ACT'
          exporting
            device      = 'M'
            path        = ' '
            tabname     = objname
            timer_on    = ' '
            prid        = protid
            act_mode    = actmode
            protname    = ''
          tables
            act_res_tab = act_res
          exceptions
            others      = 03.    "Abbruch -> Protokoll anzeigen

         when 'V'.                        "View
          titletxt = 'CHECKING VIEWS'.
          call function 'DD_VIEW_ACT'
            exporting
              viewname  = objname
              get_state = 'M'
              act_mode  = actmode
              prid      = protid
              protname  = ''
            exceptions
              others    = 03.


      when others.
    endcase.


TRANSLATE OBJNAME USING '/-\-'.
data lv_mem_id(200) type c.
CONCATENATE 'CHE' enqtype objname into lv_mem_id. "EX CHETABLTABLE_NAME
IMPORT lt_log FROM MEMORY ID lv_mem_id.

…那么实际的问题是什么呢?导入检索空数组(lt_log)。(我代码的最后一行)它仅在检查表和结构时返回值。是否填充了
objname
enqtype
变量?