Script that queries the Menu structure
SELECT LPAD (' ', 6 * (LEVEL - 1)) || menu_entry.entry_sequence SEQUENCE, LPAD (' ', 6 * (LEVEL - 1)) || menu_entry.prompt prompt, menu_entry.grant_flag grant_flag, DECODE (menu_entry.sub_menu_id, NULL, 'FUNCTION', DECODE (menu_entry.function_id, NULL, 'SUBMENU', 'BOTH') ) TYPE, menu2.user_menu_name, func2.user_function_name FROM fnd_menu_entries_vl menu_entry, fnd_menus_tl menu, fnd_form_functions_tl func, fnd_form_functions_tl func2, fnd_menus_tl menu2 WHERE menu_entry.sub_menu_id = menu.menu_id(+) AND menu_entry.function_id = func.function_id(+) AND menu_entry.sub_menu_id = menu2.menu_id(+) AND menu_entry.function_id = func2.function_id(+) AND grant_flag = 'Y' START WITH menu_entry.menu_id = (SELECT menu_id FROM fnd_menus_tl menu2 WHERE menu2.user_menu_name = 'INV_TRANSACTIONS') --Your Menu Name Here(Parent_Menu_User_Name) CONNECT BY menu_entry.menu_id = PRIOR menu_entry.sub_menu_id ORDER SIBLINGS BY menu_entry.entry_sequence;Output:
The query gives you one level of sub menus for any responsibility specified
SELECT FMEV.ENTRY_SEQUENCE, FMEV.PROMPT, FMEV.DESCRIPTION, SUB_MENU_FMEV.USER_MENU_NAME SUB_MENU_NAME, SUB_MENU_FMEV.DESCRIPTION SUB_MENU_DESCRIPTION, FFFT.USER_FUNCTION_NAME, FMEV.GRANT_FLAG FROM apps.FND_MENU_ENTRIES_VL FMEV, apps.FND_MENUS_TL SUB_MENU_FMEV, APPS.FND_FORM_FUNCTIONS_TL FFFT, apps.FND_RESPONSIBILITY_VL FRV WHERE FRV.MENU_ID = FMEV.menu_id AND SUB_MENU_FMEV.MENU_ID(+) = FMEV.SUB_menu_id AND SUB_MENU_FMEV.LANGUAGE(+) = 'US' AND FFFT.FUNCTION_ID(+) = FMEV.FUNCTION_ID AND FFFT.LANGUAGE(+) = 'US' AND FRV.responsibility_name = 'Manufacturing and Distribution Manager' --Your Responsibility Name ORDER BY FMEV.entry_sequence;
Output:
This QUERY will retrieve the Function(s) and Submenu(s) which those all are attached to the given input responsibility.
SELECT NVL2 (fme.sub_menu_id, '+', '-') || LPAD (NVL ((SELECT prompt FROM apps.fnd_menu_entries_vl WHERE menu_id = fme.menu_id AND sub_menu_id = fme.sub_menu_id AND fme.function_id IS NULL), (SELECT prompt FROM apps.fnd_menu_entries_vl WHERE menu_id = fme.menu_id AND function_id = fme.function_id AND fme.sub_menu_id IS NULL) ), LENGTH (NVL ((SELECT prompt FROM apps.fnd_menu_entries_vl WHERE menu_id = fme.menu_id AND sub_menu_id = fme.sub_menu_id AND fme.function_id IS NULL), (SELECT prompt FROM apps.fnd_menu_entries_vl WHERE menu_id = fme.menu_id AND function_id = fme.function_id AND fme.sub_menu_id IS NULL) ) ) + (LEVEL * 5), '-' ) tree_structure FROM apps.fnd_menu_entries fme START WITH fme.menu_id = (SELECT menu_id FROM apps.fnd_responsibility fr, apps.fnd_responsibility_tl frt WHERE fr.responsibility_id = frt.responsibility_id AND frt.responsibility_name = '&responsibility_name') -- 'Application Developer' CONNECT BY PRIOR fme.sub_menu_id = fme.menu_id;Output:
TREE_STRUCTURE
+-----Flexfield
+----------Key
----------------Register
----------------Segments
----------------Aliases
----------------CrossValidation
----------------Values
----------------Groups
----------------Accounts
+----------Descriptive
----------------Register
----------------Segments
----------------Values
-----------Flexfield Test
+-----Concurrent
-----------Program
-----------Executable
-----------Library
+-----Application
-----------Register
-----------Form
-----------Function
-----------Menu
-----------Messages
+----------Database
----------------Table
----------------Sequence
----------------View
+----------Lookups
----------------Application Object Library
----------------Common
----------------CE lookups
----------------GCS Lookups
----------------IA Lookups
----------------igi lookups
----------------XLA Lookups
----------------XLE Lookups
----------------FUN Lookups
----------------Service Lookups
+----------Validation
----------------Set
----------------Values
------Profile
+-----Attachments
-----------Document Entities
-----------Document Categories
-----------Attachment Functions
-----------Repositories
+-----Other
+----------Requests
----------------Run
----------------View
----------------Set
-----------Profile
-----------Concurrent
-----------Change Organization
-----------Running Jobs
+----------EDI
----------------EDI Setup
----------------EDI Data
From Function to Menu(Basic Queries)
SELECT * FROM FND_FORM_FUNCTIONS_TL WHERE user_function_name LIKE '%Define Material Status%';
SELECT * FROM FND_MENU_ENTRIES_VL WHERE function_id = 1006916; --Get Menu_id
SELECT * FROM FND_MENU_ENTRIES_VL WHERE menu_id = 67607 --同一Level都有哪些其他功能
SELECT * FROM FND_MENUS WHERE menu_id = 67607 --查看上层的Menu,Menu_Name:INV_SETUP_TRANSACTIONS
SELECT * FROM FND_MENU_ENTRIES WHERE sub_menu_id = 67607 --上层Menu_id:67579
SELECT * FROM FND_MENUS WHERE menu_id = 67579 --查看上层的Menu_Name:INV_SETUP
SELECT * FROM FND_MENU_ENTRIES WHERE sub_menu_id = 67579 --上层Menu_id:67579
SELECT * FROM FND_MENUS WHERE menu_id IN (SELECT menu_id FROM FND_MENU_ENTRIES WHERE sub_menu_id = 67579)
SELECT fmt.description,fm.*
FROM FND_MENUS fm,FND_MENUS_TL fmt WHERE fmt.LANGUAGE = 'US' AND fm.menu_id = fmt.menu_id
AND fm.menu_id IN
(SELECT menu_id FROM FND_MENU_ENTRIES_VL WHERE function_id IN
(SELECT function_id FROM FND_FORM_FUNCTIONS_TL WHERE user_function_name LIKE '%Define Material Status%'))