代码检查员的出口结果

2020-08-25 21:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我正在尝试使代码检查器结果自动化。 我的要求是,当我们在se38中手动打开任何程序并转到program-> check-> code inspector时,我们得到一个包含所有检查,错误,警告消息等的屏幕。我希望此输出以可用格式输出到内部表中 。 我尝试使用fm SCI_INSPECT_LIST并得到了结果屏幕,但是我无法将此结果作为内部表输入代码。 此fm还会以p_results的形式提供结果表,但即使该表也不能使用,因为值是十六进制或任何其他格式。 any1可以知道如何仅以可打印格式提取屏幕上的输出吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我正在尝试使代码检查器结果自动化。 我的要求是,当我们在se38中手动打开任何程序并转到program-> check-> code inspector时,我们得到一个包含所有检查,错误,警告消息等的屏幕。我希望此输出以可用格式输出到内部表中 。 我尝试使用fm SCI_INSPECT_LIST并得到了结果屏幕,但是我无法将此结果作为内部表输入代码。 此fm还会以p_results的形式提供结果表,但即使该表也不能使用,因为值是十六进制或任何其他格式。 any1可以知道如何仅以可打印格式提取屏幕上的输出吗?

付费偷看设置
发送
7条回答
黑丝骑士
1楼 · 2020-08-25 21:51.采纳回答

对于单个程序,最简单的操作是使用Code Inspector的外部接口:

数据:check_result类型参考cl_ci_check_result,
       列出TYPE scit_alvlist。

 cl_ci_check =>单(
   出口
     p_variant_user =空间
     p_variant ='默认'
     p_obj_type ='PROG'
     p_obj_name =程序名称
   输入
     p_result = check_result)。

 check_result-> get_result(IMPORTING p_list = list)。
 

使用变体DEFAULT将产生与"检查">"代码检查器"可通过菜单获得的相同结果。

悻福寶寶
2楼-- · 2020-08-25 21:52

谢谢您Gábor

四川大学会员
3楼-- · 2020-08-25 21:54

使用类CL_CI_INSPECTION,方法GET_REF来获取实例,然后调用方法GET_RESULTS或GET_RESULT_TREE。

或 直接使用这些表中的结果:

  • SCIREST_HD
  • SCIREST_PS

NB:

  • 您是否要切换到现代ATC? (非常强大的Code Inspector封装程序和更好的UI)
骆驼绵羊
4楼-- · 2020-08-25 21:55

感谢sandra,但是这里的想法是在不创建检查的情况下获得结果,就像我们手动访问

程序->检查->代码检查器。 所以在这里,我们不会以我想创建一个程序的方式来创建检查,在该程序中,如果我输入程序名,它将在表格中显示结果。

Climb_Ma
5楼-- · 2020-08-25 21:51

嗨,

尝试使用FM SCI_GET_INSPECTION_PLAIN_LIST来返回纯文本。 您可以选择尝试使用CL_CI_INSPECTION类,如下所示

数据:lr_inspection类型参考cl_ci_inspection,
         lr_object_set类型参考cl_ci_objectset,
         lr_check_variant类型参考cl_ci_checkvariant,
         lt_result TYPE scit_alvlist。
   FIELD-SYMBOLS:类型scir_alvlist。
 *创建检查
   呼叫方法cl_ci_inspection =>建立
     出口
       p_user =''
       p_name ='MY_INSPECTION_NAME'
     接收
       p_ref = lr_inspection
     例外情况
       其他= 1。
   如果sy-subrc <> 0。
 * ...错误处理...
   其他。
 *加载对象集
     调用方法cl_ci_objectset => get_ref
       出口
         p_objsnam ='MY_OBJECT_SET_NAME'
       接收
         p_ref = lr_object_set
       例外情况
         其他= 1。
     如果sy-subrc <> 0。
 * ...错误处理...
     其他。
 *负载检查变型
       呼叫方法cl_ci_checkvariant => get_ref
         出口
           p_user =''
           p_name ='MY_VARIANT_NAME'
         接收
           p_ref = lr_check_variant
         例外情况
           其他= 1。
       如果sy-subrc <> 0。
 * ...错误处理...
       其他。
 *组装检查
         呼叫方法lr_inspection-> set
           出口
             p_chkv = lr_check_variant
             p_objs = lr_object_set。
         调用方法lr_inspection-> save。

 *运行检查
         调用方法lr_inspection-> run
           出口
             p_howtorun ='D'" c_run_direct
           例外情况
             其他= 1。
         如果sy-subrc <> 0。
 * ...错误处理...
         其他。
 *获取结果列表
           呼叫方法lr_inspection-> plain_list
             输入
               p_list = lt_result。


 * ...对结果做些...
         万一。  " lr_inspection-> run之后的sy-subrc
       万一。  " cl_ci_checkvariant => get_ref之后的sy-subrc
     万一。  " cl_ci_objectset => get_ref之后的sy-subrc
   万一。  "在cl_ci_inspection => create 
小灯塔
6楼-- · 2020-08-25 21:58

之后的sy-subrc,谢谢gayathri,但是我已经浏览了您引用的博客,但仍然没有得到预期的结果。 根据我的要求,请提供帮助。谢谢。

四川大学会员
7楼-- · 2020-08-25 22:03

嗨,

您可以尝试FM EXTENDED_PROGRAM_CHECK。

一周热门 更多>