如何获取包的所有功能组及其功能模块?

2020-09-01 23:00发布

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

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


专家们,

我需要一个报告,该报告从给定的程序包中获取所有功能组,然后从每个功能组中获取所有功能模块。

我有一个包/MSG/R_VERTRAG ,我需要所有以

开头的功能组

/MSG/R_VPLAUSI /MSG/R_VPRUEF ,然后是一个包含所有功能模块的表。

我该怎么做?

希望您能提供帮助。

此致

Basti

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

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


专家们,

我需要一个报告,该报告从给定的程序包中获取所有功能组,然后从每个功能组中获取所有功能模块。

我有一个包/MSG/R_VERTRAG ,我需要所有以

开头的功能组

/MSG/R_VPLAUSI /MSG/R_VPRUEF ,然后是一个包含所有功能模块的表。

我该怎么做?

希望您能提供帮助。

此致

Basti

付费偷看设置
发送
10条回答
shere_lin
1楼 · 2020-09-01 23:54.采纳回答

嗨,

选择对我有效...

代替您的功能组名称。.我尝试使用XM06 ..它正常工作..

手动检查TADIR和TFDIR表中SE16中是否有任何数据。对于相应的功能组。

谢谢,

Naren

Haoba3210
2楼-- · 2020-09-01 23:36

嘿,纳伦,那我现在发现了错误..:X你明白了;)

如果有 对代码很感兴趣..您在这里..

 *&---------------------------------------------  ------------------------ *
 *&报告Z_KOHL_FUBAALV
 *&
 *&------------------------------------------------  --------------------- *
 *&报告适用于所有功能
 *&
 *&埃斯特尔特:01.03.07冯·巴斯蒂安·科尔
 *&letzteÄnderung:06.03.07 von Bastian Kohl
 *&
 *&------------------------------------------------  --------------------- *

 报告z_kohl_fubaalv没有标准页面标题。

 *本地数据声明

 类型:typ_fugr的开头,
           fugr类型sobj_name,
           fugr_t类型区域,
        typ_fugr的结尾。

 数据:typ_fugr的lt_fugr类型表,
       ls_fugr类似于lt_fugr的行,
       tfdir的lt_fm类型表,
       tfdir的lt_fm_lcl类型表,
       wa输入tfdir,
       rsfind的lt_findstring类型表,
       ls_findstring类型rsfind,
       lt_func类型的函数名称标准表,
       wa2就像tfdir-funcname一样,
       lv_devclass类型tdevc-devclass,
       lt_scope_object_cls类型seu_obj的标准表,
       ls_scope_object_cls类型seu_obj,
       ls_scope_devclass类型为range_dev,
       范围_dev的lt_scope_devclass类型表,
       lt_founds rsfindlst的类型表,
       rsfindlst的lt_founds2类型表,
       ls_founds,例如rsfindlst,
       v_lsd1类型c值" I",
       v_lsd2(2)输入c值'EQ',
       lt_sa就像zzsa的表格一样,
       ls_sa类似于lt_sa的行,
       nix(50)c型值" Baustein wird noch nicht verwendet",
       container_r输入对cl_gui_custom_container的引用,
       grid_r键入对cl_gui_alv_grid的引用,
       ok_code,例如sy-ucomm,
       save_ok就像sy-ucomm。

 字段符号:键入funcname。

 * ----------------------------------------

 *套餐选择
 屏幕100的选择屏幕开始
                   作为窗口标题text-010。
 选择屏幕:跳过,
                b1块的开始
                框架标题为text-020。

 参数:paket类型tdevc-devclass默认为"/img/MSG/"。

 选择屏幕:b1块的结尾,
                   跳跃,
                   b2块的开始
                   框架标题为text-030。

 参数:fugrn1(50)类型c默认为"/img/MSG/R_VPRUEF%"。
 参数:fugrn2(50)类型c默认为"/img/MSG/R_VPLAUSI%"。

 选择屏幕:b2块的结尾,
                   跳跃,
                   b3块的开始
                   框架标题为text-040。

 参数:such_p作为复选框,
             如复选框一样,
             如复选框
             如复选框一样,
             such_ps作为复选框,
             such_dd作为复选框。
 选择屏幕:b3块的结尾,
                   跳跃,
                   屏幕100的结尾。

 选择开始。

   呼叫选择屏幕100。

 * ----------------------------------------

   刷新lt_fugr。

 * ----------------------------------------

 *获取功能组
   如果fugrn2不是初始的。
     选择obj_name
        来自塔迪尔
        进入ls_fugr-fugr
        其中devclass = paket
          和object ='FUGR'
       和obj_name(如fugrn1)或obj_name(如fugrn2)。
       如果(sy-subrc = 0)。
         将ls_fugr附加到lt_fugr。
       万一。
     最终选择。
   其他。
 *如果fugrn2 =''。
     选择obj_name
      来自塔迪尔
      进入ls_fugr-fugr
      其中devclass = paket
        和object ='FUGR'
     和obj_name像fugrn1。
       如果(sy-subrc = 0)。
         将ls_fugr附加到lt_fugr。
       万一。
     最终选择。
   万一。

 *将" SAPL"添加到ls_fugr-fugr的正确位置
 *获得tfdir的pname

   在lt_fugr处循环进入ls_fugr。
     将"/img/MSG/"替换为"/img/MSG/SAPL"到ls_fugr-fugr中。
     将ls_fugr-fugr移至wa-pname。
     将wa附加到lt_fm_lcl。
   结束循环。

   如果不是,则lt_fm_lcl []是初始的。
     从tfdir选择*
       进入表lt_fm
       对于lt_fm_lcl中的所有条目
       其中pname = lt_fm_lcl-pname。
   万一。
   排序lt_fm。

 *在lt_func中解析lt_fm
   在lt_fm处循环进入wa。
     将wa附加到lt_func。
   结束循环。

 *添加在哪里搜索fuba的位置
   如果such_p ='X'。
     ls_scope_object_cls ='P'。  "程序员
     将ls_scope_object_cls附加到lt_scope_object_cls。
   elseif such_o ='X'。
     ls_scope_object_cls ='O'。  "克拉森/界面
     将ls_scope_object_cls附加到lt_scope_object_cls。
   elseif such_wo ='X'。
     ls_scope_object_cls ='WO'。  " BSP应用程序
     将ls_scope_object_cls附加到lt_scope_object_cls。
   elseif such_ff ='X'。
     ls_scope_object_cls ='FF'。  " Funktionsbausteinschnittstellen
     将ls_scope_object_cls附加到lt_scope_object_cls。
   elseif such_ps ='X'。
     ls_scope_object_cls ='PS'。  " Dynpros
     将ls_scope_object_cls附加到lt_scope_object_cls。
   elseif such_dd ='X'。
     ls_scope_object_cls ='DD'。  "多马嫩
     将ls_scope_object_cls附加到lt_scope_object_cls。
   万一。
 *将paket强制转换为tdevc-devclass类型
   lv_devclass =包装。

 *在lt_scope_devclass中附加包装以进行交叉引用检查
 *在lt_scope_devclass的字段中添加值
   如果lv_devclass不是初始的。
     将v_lsd1移至ls_scope_devclass-sign。
     将v_lsd2移至ls_scope_devclass-option。
     将lv_devclass移到ls_scope_devclass-low。
     将ls_scope_devclass附加到lt_scope_devclass。
   万一。


 *在哪里检查lt_func的所有行

   在lt_func处循环,分配。

     刷新lt_findstring。
     刷新lt_founds。


     ls_findstring-object = 。
     将ls_findstring附加到lt_findstring。



 *调用使用函数
     调用函数" RS_EU_CROSSREF"
       出口
         i_find_obj_cls ='FF'
         no_dialog ='X'
       桌子
         i_findstrings = lt_findstring
         o_founds = lt_founds
         i_scope_devclass = lt_scope_devclass
       例外情况
         not_exected = 1
         not_found = 2
         非法对象= 3
         no_cross_for_this_object = 4
         批次= 5
         batchjob_error = 6
         错误类型= 7
         object_not_exist = 8
         其他= 9。
     如果sy-subrc <> 0。
       如果sy-subrc = 2。
       其他。
         消息ID sy-msgid类型sy-msgty编号sy-msgno
                 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
       万一。
     万一。


     将" Funktionsbaustein:" ls_findstring连接到ls_sa。
     将ls_sa附加到lt_sa。
     清除ls_sa。
     将ls_sa附加到lt_sa。


     在lt_founds循环到ls_sa。
       将ls_sa-sa1附加到lt_sa。
     结束循环。
     如果lt_founds是初始的。
       将nix附加到lt_sa。
     万一。
     清除ls_sa。
     将ls_sa附加到lt_sa。
   结束循环。

   呼叫屏幕" 200"。


   包括z_kohl_fubaalv_status_0200。

   包括z_kohl_fubaalv_user_200。
callcenter油条
3楼-- · 2020-09-01 23:58

嗨,

转到表TADIR并传递DEVCLASS = ackage名称。

所有返回的对象都属于该pacjage

您可以根据对象='FUGR'进一步过滤功能组。

关于此,

Ravi

悠然的二货
4楼-- · 2020-09-01 23:57
< p>您好

我相信您不需要自己的自定义报告,但是您可以使用trx SE84

编程->函数生成器->功能模块

< p> Max

shere_lin
5楼-- · 2020-09-01 23:44

转到SE80,您将在功能组下找到所有FM。

谢谢

Santosh

蓋茨
6楼-- · 2020-09-01 23:54

嗨,

转到表TADIR。在DEVCLASS字段中输入开发类名称。

然后 在对象中提供用于功能组的FUGR ..

然后在对象名称中给出带有* ..的功能组名称。

您还可以获取用于 功能组..使用表TFDIR ..

在字段PNAME中给出功能组名称...例如,如果功能组名称为XM06 ..则必须在字段PNAME中输入SAPLXM06 来获取FM。

谢谢

Naren

Tong__Ming
7楼-- · 2020-09-01 23:47

Hi

您可以选择表ENLFDIR从每个FG获取FM。

关于

一周热门 更多>