EBS根据表单、功能反查其职责、菜单路径

EBS菜单繁多,有时候难免找不到北,下面以实际例子来说明查找方法。


54.2 解决方案


假设在某个职责下通过Ctrl+L找到某个功能,如下,其实Ctrl+L查找的是功能名,假设我查到的功能名称是HEL:物料编码申请,


当然如果打开看了界面,通过菜单栏的帮助>关于Oracle Applications查看,比如查看到的表单名是HELINVIC.fmx,那么该表单的简称按照规范应该是HELINVIC。

然后使用应用开发员职责,打开应用产品>表单,通过刚才查询到的表单简称HELINVIC查询到结果如下,看到了用户表单名是HEL:物料编码申请,

然后再打开应用产品>功能 ,根据用户功能名 HEL:物料编码申请 查询到的结果如下,当然如果是按照规范的话,也可以根据表单简称HELINVIC 作为表单查询项也可以查询到同样的结果:

在该界面的菜单栏 帮助>诊断>检查 的弹出框中,字段选择FUNCTION_ID,则可查到该功能的ID,是27191。

然后通过如下SQL语句可以查询到哪些菜单用到了这个功能,注意更改红色部分为上步所查找到的功能ID:
SELECT fmv.MENU_ID,
       fmv.MENU_NAME,
       fmv.USER_MENU_NAME,
       fmv.TYPE,
       fmv.DESCRIPTION
  FROM FND_MENUS_VL fmv
where exists (SELECT fmev.MENU_ID
          FROM FND_MENU_ENTRIES_VL fmev
         where fmev.FUNCTION_ID = 27191
           and fmev.MENU_ID = fmv.MENU_ID)


 


然后这些菜单在哪些职责中呢?职责对应哪个菜单可以通过系统管理员职责的安全性>责任>定义界面看到,一个责任名对应哪个菜单呢?


可以通过如下语句查看,将红色部分换成你需要查看的职责名:

SELECT RESPONSIBILITY_NAME,
       RESPONSIBILITY_KEY,
       DESCRIPTION,
       MENU_ID 
  FROM FND_RESPONSIBILITY_VL
WHERE (version = '4' or version = 'W' or version = 'M')
   and RESPONSIBILITY_NAME=' HELC_客户化开发'

但是这样找到职责对应的菜单没有用,你还无法确认该职责是否会包含你要查找的功能。


下面我介绍一种查出所有包含该功能的职责及其菜单ID的方法,红色部分换成你找到的功能ID,本例是27191:请注意写法:一定要用IN,若换成EXISTS的话就会很慢,甚至不能出来结果,所以啊,不能盲目迷信EXISTS一定比IN好。


   select frv.RESPONSIBILITY_NAME,

          frv.RESPONSIBILITY_KEY,
          frv.DESCRIPTION,
          frv.MENU_ID,
          fmv.MENU_NAME,
          fmv.USER_MENU_NAME
     from FND_RESPONSIBILITY_VL frv
    inner join FND_MENUS_VL fmv on frv.MENU_ID = fmv.MENU_ID
    where (frv.version = '4' or frv.version = 'W' or frv.version = 'M')
      and frv.MENU_ID in
          (select fmev.MENU_ID
             from FND_MENU_ENTRIES_VL fmev
           connect by prior fmev.MENU_ID = fmev.SUB_MENU_ID
            start with fmev.FUNCTION_ID = 27191)


 


不要以为现在万事大吉了,那么我到这些菜单中去找到功能就OK拉,这样还是不方便,刚才查出来的结果有30多个职责用到了这个功能,这些职责不乏菜单较多,层级也较多的,那么一层层一个个找到这个最底层的菜单可能比较费力。比如HELC_客户化开发 这个职责能使用的功能就超过了一万个,你要一个个找,那就费事费时了,所以这里提供一种更加方便的方法,假设我要查找其中一个职责比如是HELC_客户化开发 职责下这个菜单在哪儿?根据刚才的语句我知道这个职责对应的MENU_ID是80573,根据下面这个语句我就知道是这个职责对应菜单的路径,第一个红色部分为功能ID,第二个红色部分为职责对应的MENU_ID。


 


select level,a.* from 
(select fmev.MENU_ID, fmev.SUB_MENU_ID, fmev.PROMPT
  from FND_MENU_ENTRIES_VL fmev
connect by prior fmev.MENU_ID = fmev.SUB_MENU_ID
start with fmev.FUNCTION_ID = 27191) a 
  connect by prior a.sub_menu_id=a.menu_id 
  start with a.menu_id=80573


 


 


下面这句是查找功能id得方法


SELECT FUNCTION_ID
  FROM FND_FORM_FUNCTIONS_VL
WHERE USER_FUNCTION_NAME = '你的功能名'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值