程序调用目标包中所有对象的"使用位置"列表?

2020-08-13 23:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 正如标题所示,我正在...

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

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


大家好,

正如标题所示,我正在尝试开发一个程序,该程序获取包名称作为输入,并对该包中的每个对象进行用处搜索。 之后,我希望它显示未在任何地方使用的对象。 这是我的方法:

不幸的是,这总是导致输出一个空表,我的逻辑不正确吗? 方法get_unused_objects。

数据:found_check rsfindlst的类型标准表,
           itab TYPE TABLE OF字符串。
     选择 *
      来自塔迪尔
      插入表@DATA(package_tab)
      在哪里devclass = @i_packagename。  "要从我需要的确切包装中获取物品

     在package_tab处分配ASSIGNING FIELD-SYMBOL()。  "将其转换为字符串,否则将不适用于FM"
       将 -obj_name附加到itab。
     结局。

     在package_tab处分配ASSIGNING FIELD-SYMBOL()。
       通话功能'RS_EU_CROSSREF'
         出口
           i_find_obj_cls ='CLAS'
           no_dialog ='X'
         桌子
           o_founds = found_check
           i_findstrings = Itab
         例外情况
           批次= 1
           batchjob_error = 2
           非法对象= 3
           not_executed = 4
           not_found = 5
           no_cross_for_this_object = 6
           object_not_exist = 7
           错误类型= 8
           其他= 9。
       案例sy-subrc。
         何时1。
           cl_demo_output => display('Some exception')。
         何时2。
           "另一个例外,依此类推。
       结束。
       如果found_check是INITIAL。  "如果FM找不到该对象的用途,
         追加到unused_objects_tab。  "将其添加到表格中,我稍后再返回
       其他。
         清除found_check。  "如果FM发现使用情况,请清除检查并继续。
         继续。
       万一。
     结局。
     r_objects_tab =未使用的_objects_tab。
   终结法。
             
            
                            
   
5条回答
歪着头看世界
2020-08-14 00:04

您好 Radoslav Pavlov

首先,您需要对所有 找到的对象,对于找到的每个对象。

 LOOP AT package_tab ASSIGNING FIELD-SYMBOL()。  "将其转换为字符串,否则将不适用于FM"
       将 -obj_name附加到itab。
     结局。

     在package_tab处分配ASSIGNING FIELD-SYMBOL()。  " <-每个对象
       通话功能'RS_EU_CROSSREF'
         出口
           i_find_obj_cls ='CLAS'
           no_dialog ='X'
         桌子
           o_founds = found_check
           i_findstrings = itab" <-所有找到的对象 

第二,您只在寻找类。

 i_find_obj_cls ='CLAS'

从 该软件包,您应该阅读有关它们的更多信息(准确地说是它们的类型),然后在I_FIND_OBJ_CLS参数中使用此信息。例如:

  • ABAP OO类-CLAS
  • < li> ABAP程序-REPS
  • ABAP函数-FUNC

亲切的问候

Mateusz

一周热门 更多>