Abap 如何从扩展语法检查中获得结果

Abap 如何从扩展语法检查中获得结果,abap,rawstring,Abap,Rawstring,我想从SAP中的扩展检查器获取结果。我想我找到了存储结果的表(我想它是slin\u cache\u res)。但该值以原始字符串格式存储。如何以可读的格式获取上次扩展检查的结果?我需要它们来执行进一步的处理任务。如果可能的话,我会尝试使用代码检查器来执行此任务,因为它更灵活,提供更多的检查,并且具有类似API的功能,可用于运行检查并获得结果: DATA: lr_inspection TYPE REF TO cl_ci_inspection, lr_object_s

我想从SAP中的扩展检查器获取结果。我想我找到了存储结果的表(我想它是slin\u cache\u res)。但该值以原始字符串格式存储。如何以可读的格式获取上次扩展检查的结果?我需要它们来执行进一步的处理任务。

如果可能的话,我会尝试使用代码检查器来执行此任务,因为它更灵活,提供更多的检查,并且具有类似API的功能,可用于运行检查并获得结果:

  DATA: lr_inspection       TYPE REF TO cl_ci_inspection,
        lr_object_set       TYPE REF TO cl_ci_objectset,
        lr_check_variant    TYPE REF TO cl_ci_checkvariant,
        lt_result           TYPE scit_alvlist.

  FIELD-SYMBOLS: <ls_result>    TYPE scir_alvlist.

* create an inspection
  CALL METHOD cl_ci_inspection=>create
    EXPORTING
      p_user              = ''
      p_name              = 'MY_INSPECTION_NAME'
    RECEIVING
      p_ref               = lr_inspection
    EXCEPTIONS
      OTHERS              = 1.
  IF sy-subrc <> 0.
*   ... error handling ...
  ELSE.

*   load object set
    CALL METHOD cl_ci_objectset=>get_ref
      EXPORTING
        p_objsnam                 = 'MY_OBJECT_SET_NAME'
      RECEIVING
        p_ref                     = lr_object_set
      EXCEPTIONS
        OTHERS                    = 1.
    IF sy-subrc <> 0.
*     ... error handling ...
    ELSE.

*     load check variant
      CALL METHOD cl_ci_checkvariant=>get_ref
        EXPORTING
          p_user            = ''
          p_name            = 'MY_VARIANT_NAME'
        RECEIVING
          p_ref             = lr_check_variant
        EXCEPTIONS
          OTHERS            = 1.
      IF sy-subrc <> 0.
*       ... error handling ...
      ELSE.

*       assemble inspection
        CALL METHOD lr_inspection->set
          EXPORTING
            p_chkv = lr_check_variant
            p_objs = lr_object_set.
        CALL METHOD lr_inspection->save.

*       run inspection
        CALL METHOD lr_inspection->run
          EXPORTING
            p_howtorun             = 'D' " cl_ci_inspection=>c_run_direct
          EXCEPTIONS
            OTHERS                 = 1.
        IF sy-subrc <> 0.
*         ... error handling ...
        ELSE.

*         get the result list
          CALL METHOD lr_inspection->plain_list
            IMPORTING
              p_list = lt_result.

*         ... do something with the results ...

        ENDIF. " sy-subrc after lr_inspection->run
      ENDIF. " sy-subrc after cl_ci_checkvariant=>get_ref
    ENDIF. " sy-subrc after cl_ci_objectset=>get_ref
  ENDIF. " sy-subrc after cl_ci_inspection=>create
数据:lr\U检验类型参考cl\U ci\U检验,
lr_对象集类型引用到cl_ci_对象集,
lr\U检查变量类型参考cl\U ci\U检查变量,
lt_结果类型scit_列表。
字段符号:键入scir\U alvlist。
*创建检查
调用方法cl\u ci\u inspection=>create
出口
p_user=“”
p_name=‘我的检查_name’
接收
p_ref=lr_检查
例外情况
其他=1。
如果sy subrc为0。
*   ... 错误处理。。。
其他的
*加载对象集
调用方法cl\u ci\u objectset=>get\u ref
出口
p_objsnam='MY_OBJECT_SET_NAME'
接收
p_ref=lr_对象集
例外情况
其他=1。
如果sy subrc为0。
*     ... 错误处理。。。
其他的
*负载检查变量
调用方法cl\u ci\u checkvariant=>get\u ref
出口
p_user=“”
p_名称='我的变量名称'
接收
p_ref=lr_check_变量
例外情况
其他=1。
如果sy subrc为0。
*       ... 错误处理。。。
其他的
*装配检验
调用方法lr_检验->设置
出口
p_chkv=lr_检查_变量
p_objs=lr_object_set。
调用方法lr_检验->保存。
*运行检查
调用方法lr_检验->运行
出口
p_howtorun='D'”cl_ci_检验=>c_运行_直接
例外情况
其他=1。
如果sy subrc为0。
*…错误处理。。。
其他的
*获取结果列表
调用方法lr\U检查->普通检查列表
进口
p_列表=lt_结果。
*…对结果做点什么。。。
ENDIF.“lr_检查后的sy subrc->运行
恩迪夫。“cl\U ci\U checkvariant=>get\U ref后的sy subrc
ENDIF.“cl\u ci\u objectset=>get\u ref之后的sy subrc
恩迪夫。“cl_ci_检查后的sy subrc=>创建

是否可以选择使用仅包含扩展检查的变量运行代码检查器,然后提取代码检查器结果?非常感谢。这是一个好主意。现在,我在代码检查器上运行扩展检查器后,从SCIREST\u PS表中获取结果。