怎样在 EBS 里面找到一个 Form
2014-11-07 12:36
369 查看
比方说客户告诉你一个 Form 上有问题, 但是你又找不到这个 Form 在哪个 Menu 下面, 也不知道应该切换到哪个 Responsibility 下面. 下面列出一系列步骤, 可以找到这个Form:
1. 用数据字典查到跟 Function 有关的表
我们可以在返回的结果中找到相关的表: FND_FORM_FUNCTIONS, FND_FORM_FUNCTIONS_TL
2. 然后查这两个表里面有哪些字段, 通过观察我们发现, 带 _TL 的表里面都是存放跟 User_Name 相关的信息. 比方说我们要找的 Form 的名字是 "Organization Access", 那么
然后就可以得到 FUNCTION_ID = 1565;
就可以得到 FUNCTION_NAME = INV_INVSDORA 了; 不过 FUNCTION_NAME 通常用处不大, 因为一般其他表存放FUNCTION 信息的时候都是用 ID
3. 下面就要去找哪些 MENU 里面包含这个 Function 了. 因为我们在 Form 上访问的次序是 Responsibility -> Menu -> Sub menu -> Function
再次从数据字典里面找到跟 MENU 相关的表
找到 4 个有关的: FND_MENUS FND_MENUS_TL FND_MENU_ENTRIES FND_MENU_ENTRIES_TL
这样就要依次看看这些表有哪些内容了, 哪个会包含FUNCTION_ID 这个字段;
这样我们就可以得到一个 MENU_ID 列表, 这些 Menu 里面是包含这个 FUNCTION 的;
4. 需要注意的是, FND_MENU_ENTRIES 这个表不仅包含 FUNCTION_ID, 也包含 SUB_MENU_ID 这个字段, 也就是说, 如果我们在 step 3 中得到的 MENU 列表中找不到这个 FUNCTION, 那么可能的原因是 FUNCTION 是包含在 Sub Menu 中, 再被其他 MENU 包含的. 通过上面的 MENU 列表, 我们获取到包含这些 MENU 的父 MENU:
5. 然后就可以去找包含这些 MENU ID 的 Responsibility 了; 同样通过数据字典:
找到相关的表: FND_RESPONSIBILITY, FND_RESPONSIBILITY_TL, 还有一个好像有点关系: FND_LOGIN_RESPONSIBILITIES
可以找到包含这些 MENU 的 Responsibility ID; 然后通过这些 ID 去找到这个Responsibility 的名字:
然后看看这些 Responsibility 的名字中, 哪些是跟 Organization Access 这个 Function 有点关系的; 由于这个 Function 是跟 Inventory 相关的, 看起来 Manufacturing and Distribution Manager 或者 Inventory 最像; 这样去找就可以了;
1. 用数据字典查到跟 Function 有关的表
select * from dba_objects where object_type = 'TABLE' and object_name like 'FND%FUNCTION%';
我们可以在返回的结果中找到相关的表: FND_FORM_FUNCTIONS, FND_FORM_FUNCTIONS_TL
2. 然后查这两个表里面有哪些字段, 通过观察我们发现, 带 _TL 的表里面都是存放跟 User_Name 相关的信息. 比方说我们要找的 Form 的名字是 "Organization Access", 那么
select * from FND_FORM_FUNCTIONS_TL where user_function_name = 'Organization Access';
然后就可以得到 FUNCTION_ID = 1565;
select * from FND_FORM_FUNCTIONS where function_id = 1565;
就可以得到 FUNCTION_NAME = INV_INVSDORA 了; 不过 FUNCTION_NAME 通常用处不大, 因为一般其他表存放FUNCTION 信息的时候都是用 ID
3. 下面就要去找哪些 MENU 里面包含这个 Function 了. 因为我们在 Form 上访问的次序是 Responsibility -> Menu -> Sub menu -> Function
再次从数据字典里面找到跟 MENU 相关的表
select * from dba_objects where object_type = 'TABLE' and object_name like 'FND%MENU%';
找到 4 个有关的: FND_MENUS FND_MENUS_TL FND_MENU_ENTRIES FND_MENU_ENTRIES_TL
这样就要依次看看这些表有哪些内容了, 哪个会包含FUNCTION_ID 这个字段;
select * from FND_MENU_ENTRIES where function_id = 1565;
这样我们就可以得到一个 MENU_ID 列表, 这些 Menu 里面是包含这个 FUNCTION 的;
4. 需要注意的是, FND_MENU_ENTRIES 这个表不仅包含 FUNCTION_ID, 也包含 SUB_MENU_ID 这个字段, 也就是说, 如果我们在 step 3 中得到的 MENU 列表中找不到这个 FUNCTION, 那么可能的原因是 FUNCTION 是包含在 Sub Menu 中, 再被其他 MENU 包含的. 通过上面的 MENU 列表, 我们获取到包含这些 MENU 的父 MENU:
select * from FND_MENU_ENTRIES where sub_menu_id in (1004348 ,1017519 ,1013241 ,67608 ,...);
5. 然后就可以去找包含这些 MENU ID 的 Responsibility 了; 同样通过数据字典:
select * from dba_objects where object_type = 'TABLE' and object_name like 'FND%RESPON%';
找到相关的表: FND_RESPONSIBILITY, FND_RESPONSIBILITY_TL, 还有一个好像有点关系: FND_LOGIN_RESPONSIBILITIES
SELECT * FROM FND_RESPONSIBILITY where MENU_ID in (...);
可以找到包含这些 MENU 的 Responsibility ID; 然后通过这些 ID 去找到这个Responsibility 的名字:
SELECT * FROM FND_RESPONSIBILITY_TL where responsibility_id in (...);
然后看看这些 Responsibility 的名字中, 哪些是跟 Organization Access 这个 Function 有点关系的; 由于这个 Function 是跟 Inventory 相关的, 看起来 Manufacturing and Distribution Manager 或者 Inventory 最像; 这样去找就可以了;
相关文章推荐
- 怎样判断一个form1窗体存在?
- 两个数据表链接怎样把它们的数据在一个页面里面显示
- 怎样在resin里面建一个虚拟目录!
- 怎样找到一个适合你的博士后老板?一个老板的建议 (博士后系列1)
- 在一个升序排列好的数列里面找到最长的等差数列
- 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
- 13个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
- 怎样在vs2010里面实现两个编辑控件对应一个消息处理函数
- c#中怎样在打开一个form后让第二个form出现一段时间后自动消失
- 13个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
- 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
- 基于form的身份验证怎样设置一个特例(使某页不需要验证)
- 怎样在一个form里放两个submit按钮,按了以后分别提交到不同的程序
- (winform)在一个form里面显示google地图
- VB数据库编程怎样将一个表里面的一个字段的记录赋值给一个字符串
- 谁知道怎样才能找到一个外国人进行口语训练
- 怎样在一个Iframe里面打开一个层使它占满整个浏览器的窗口
- 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
- 怎样用JS提交一个Form(href submit)
- 13个球一个天平,现知道只有一个和其它的重量不同,怎样称才能用三次就找到那个球?