12: -- The string "<" if p_version1 < p_version2
13:
14: x_rowid VARCHAR2(64);
15: type t_fnd_grants IS TABLE OF fnd_grants % rowtype;
16: type t_fnd_menus IS TABLE OF fnd_menus % rowtype;
17: type t_fnd_menu_entries IS TABLE OF fnd_menu_entries % rowtype;
18: type t_fnd_form_functions IS TABLE OF fnd_form_functions % rowtype;
19:
20: function_id fnd_form_functions.function_id%TYPE;
17: type t_fnd_menu_entries IS TABLE OF fnd_menu_entries % rowtype;
18: type t_fnd_form_functions IS TABLE OF fnd_form_functions % rowtype;
19:
20: function_id fnd_form_functions.function_id%TYPE;
21: menu_id fnd_menus.menu_id%TYPE;
22:
23: type t_fnd_menus_tl IS TABLE OF fnd_menus_tl % rowtype;
24: type t_fnd_menu_entries_tl IS TABLE OF fnd_menu_entries_tl % rowtype;
25: type t_fnd_form_functions_tl IS TABLE OF fnd_form_functions_tl % rowtype;
19:
20: function_id fnd_form_functions.function_id%TYPE;
21: menu_id fnd_menus.menu_id%TYPE;
22:
23: type t_fnd_menus_tl IS TABLE OF fnd_menus_tl % rowtype;
24: type t_fnd_menu_entries_tl IS TABLE OF fnd_menu_entries_tl % rowtype;
25: type t_fnd_form_functions_tl IS TABLE OF fnd_form_functions_tl % rowtype;
26:
27:
26:
27:
28: -- to store existing menus and grants
29: v_fnd_grants t_fnd_grants;
30: v_fnd_menus t_fnd_menus;
31: v_fnd_menu_entries t_fnd_menu_entries;
32: v_fnd_form_functions t_fnd_form_functions;
33: v_fnd_menus_tl t_fnd_menus_tl;
34: v_fnd_menu_entries_tl t_fnd_menu_entries_tl;
29: v_fnd_grants t_fnd_grants;
30: v_fnd_menus t_fnd_menus;
31: v_fnd_menu_entries t_fnd_menu_entries;
32: v_fnd_form_functions t_fnd_form_functions;
33: v_fnd_menus_tl t_fnd_menus_tl;
34: v_fnd_menu_entries_tl t_fnd_menu_entries_tl;
35: v_fnd_grants_new t_fnd_grants;
36: v_fnd_menus_new t_fnd_menus;
37: v_fnd_menu_entries_new t_fnd_menu_entries;
32: v_fnd_form_functions t_fnd_form_functions;
33: v_fnd_menus_tl t_fnd_menus_tl;
34: v_fnd_menu_entries_tl t_fnd_menu_entries_tl;
35: v_fnd_grants_new t_fnd_grants;
36: v_fnd_menus_new t_fnd_menus;
37: v_fnd_menu_entries_new t_fnd_menu_entries;
38: v_fnd_form_functions_new t_fnd_form_functions;
39: v_fnd_menus_tl_new t_fnd_menus_tl;
40: v_fnd_menu_entries_tl_new t_fnd_menu_entries_tl;
35: v_fnd_grants_new t_fnd_grants;
36: v_fnd_menus_new t_fnd_menus;
37: v_fnd_menu_entries_new t_fnd_menu_entries;
38: v_fnd_form_functions_new t_fnd_form_functions;
39: v_fnd_menus_tl_new t_fnd_menus_tl;
40: v_fnd_menu_entries_tl_new t_fnd_menu_entries_tl;
41:
42: menu_entry_count number;
43: menu_entry_tl_count number;
225: end if;
226: if v_fnd_menu_entries_tl is not null then
227: v_fnd_menu_entries_tl.DELETE;
228: end if;
229: if v_fnd_menus is not null then
230: v_fnd_menus.DELETE;
231: end if;
232: if v_fnd_menus_tl is not null then
233: v_fnd_menus_tl.DELETE;
226: if v_fnd_menu_entries_tl is not null then
227: v_fnd_menu_entries_tl.DELETE;
228: end if;
229: if v_fnd_menus is not null then
230: v_fnd_menus.DELETE;
231: end if;
232: if v_fnd_menus_tl is not null then
233: v_fnd_menus_tl.DELETE;
234: end if;
228: end if;
229: if v_fnd_menus is not null then
230: v_fnd_menus.DELETE;
231: end if;
232: if v_fnd_menus_tl is not null then
233: v_fnd_menus_tl.DELETE;
234: end if;
235: if v_fnd_grants is not null then
236: v_fnd_grants.DELETE;
229: if v_fnd_menus is not null then
230: v_fnd_menus.DELETE;
231: end if;
232: if v_fnd_menus_tl is not null then
233: v_fnd_menus_tl.DELETE;
234: end if;
235: if v_fnd_grants is not null then
236: v_fnd_grants.DELETE;
237: end if;
1477: BEGIN
1478: -- Start Initialize Collections
1479: v_fnd_menu_entries:= t_fnd_menu_entries();
1480: v_fnd_menu_entries_tl := t_fnd_menu_entries_tl();
1481: v_fnd_menus := t_fnd_menus();
1482: v_fnd_menus_tl := t_fnd_menus_tl();
1483: v_fnd_grants := t_fnd_grants();
1484:
1485: SELECT *bulk collect
1478: -- Start Initialize Collections
1479: v_fnd_menu_entries:= t_fnd_menu_entries();
1480: v_fnd_menu_entries_tl := t_fnd_menu_entries_tl();
1481: v_fnd_menus := t_fnd_menus();
1482: v_fnd_menus_tl := t_fnd_menus_tl();
1483: v_fnd_grants := t_fnd_grants();
1484:
1485: SELECT *bulk collect
1486: INTO v_fnd_form_functions
1540:
1541: end if;
1542:
1543: SELECT *bulk collect
1544: INTO v_fnd_menus_new
1545: FROM fnd_menus
1546: WHERE menu_id = v_fnd_menu_entries_new(j).menu_id;
1547:
1548: v_fnd_menus.extend(1);
1541: end if;
1542:
1543: SELECT *bulk collect
1544: INTO v_fnd_menus_new
1545: FROM fnd_menus
1546: WHERE menu_id = v_fnd_menu_entries_new(j).menu_id;
1547:
1548: v_fnd_menus.extend(1);
1549: menu_count := v_fnd_menus.last;
1544: INTO v_fnd_menus_new
1545: FROM fnd_menus
1546: WHERE menu_id = v_fnd_menu_entries_new(j).menu_id;
1547:
1548: v_fnd_menus.extend(1);
1549: menu_count := v_fnd_menus.last;
1550:
1551: if v_fnd_menus_new is not null and v_fnd_menus_new.count > 0 then
1552:
1545: FROM fnd_menus
1546: WHERE menu_id = v_fnd_menu_entries_new(j).menu_id;
1547:
1548: v_fnd_menus.extend(1);
1549: menu_count := v_fnd_menus.last;
1550:
1551: if v_fnd_menus_new is not null and v_fnd_menus_new.count > 0 then
1552:
1553: FOR k IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1547:
1548: v_fnd_menus.extend(1);
1549: menu_count := v_fnd_menus.last;
1550:
1551: if v_fnd_menus_new is not null and v_fnd_menus_new.count > 0 then
1552:
1553: FOR k IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1554: LOOP
1555: v_fnd_menus(menu_count) := v_fnd_menus_new(k);
1549: menu_count := v_fnd_menus.last;
1550:
1551: if v_fnd_menus_new is not null and v_fnd_menus_new.count > 0 then
1552:
1553: FOR k IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1554: LOOP
1555: v_fnd_menus(menu_count) := v_fnd_menus_new(k);
1556: v_fnd_menus.extend(1);
1557: menu_count :=menu_count+1;
1551: if v_fnd_menus_new is not null and v_fnd_menus_new.count > 0 then
1552:
1553: FOR k IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1554: LOOP
1555: v_fnd_menus(menu_count) := v_fnd_menus_new(k);
1556: v_fnd_menus.extend(1);
1557: menu_count :=menu_count+1;
1558: end loop;
1559:
1552:
1553: FOR k IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1554: LOOP
1555: v_fnd_menus(menu_count) := v_fnd_menus_new(k);
1556: v_fnd_menus.extend(1);
1557: menu_count :=menu_count+1;
1558: end loop;
1559:
1560: end if;
1557: menu_count :=menu_count+1;
1558: end loop;
1559:
1560: end if;
1561: FOR l IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1562: LOOP
1563:
1564: IF v_fnd_menus_new(l).menu_id IS NOT NULL THEN
1565:
1560: end if;
1561: FOR l IN v_fnd_menus_new.FIRST .. v_fnd_menus_new.LAST
1562: LOOP
1563:
1564: IF v_fnd_menus_new(l).menu_id IS NOT NULL THEN
1565:
1566: SELECT *bulk collect
1567: INTO v_fnd_menus_tl_new
1568: FROM fnd_menus_tl
1563:
1564: IF v_fnd_menus_new(l).menu_id IS NOT NULL THEN
1565:
1566: SELECT *bulk collect
1567: INTO v_fnd_menus_tl_new
1568: FROM fnd_menus_tl
1569: WHERE menu_id = v_fnd_menus_new(l).menu_id;
1570:
1571: v_fnd_menus_tl.extend(1);
1564: IF v_fnd_menus_new(l).menu_id IS NOT NULL THEN
1565:
1566: SELECT *bulk collect
1567: INTO v_fnd_menus_tl_new
1568: FROM fnd_menus_tl
1569: WHERE menu_id = v_fnd_menus_new(l).menu_id;
1570:
1571: v_fnd_menus_tl.extend(1);
1572: menu_tl_count := v_fnd_menus_tl.last;
1565:
1566: SELECT *bulk collect
1567: INTO v_fnd_menus_tl_new
1568: FROM fnd_menus_tl
1569: WHERE menu_id = v_fnd_menus_new(l).menu_id;
1570:
1571: v_fnd_menus_tl.extend(1);
1572: menu_tl_count := v_fnd_menus_tl.last;
1573:
1567: INTO v_fnd_menus_tl_new
1568: FROM fnd_menus_tl
1569: WHERE menu_id = v_fnd_menus_new(l).menu_id;
1570:
1571: v_fnd_menus_tl.extend(1);
1572: menu_tl_count := v_fnd_menus_tl.last;
1573:
1574: if v_fnd_menus_tl_new is not null and v_fnd_menus_tl_new.count > 0 then
1575: FOR k IN v_fnd_menus_tl_new.FIRST .. v_fnd_menus_tl_new.LAST
1568: FROM fnd_menus_tl
1569: WHERE menu_id = v_fnd_menus_new(l).menu_id;
1570:
1571: v_fnd_menus_tl.extend(1);
1572: menu_tl_count := v_fnd_menus_tl.last;
1573:
1574: if v_fnd_menus_tl_new is not null and v_fnd_menus_tl_new.count > 0 then
1575: FOR k IN v_fnd_menus_tl_new.FIRST .. v_fnd_menus_tl_new.LAST
1576: LOOP
1570:
1571: v_fnd_menus_tl.extend(1);
1572: menu_tl_count := v_fnd_menus_tl.last;
1573:
1574: if v_fnd_menus_tl_new is not null and v_fnd_menus_tl_new.count > 0 then
1575: FOR k IN v_fnd_menus_tl_new.FIRST .. v_fnd_menus_tl_new.LAST
1576: LOOP
1577: v_fnd_menus_tl(menu_tl_count) := v_fnd_menus_tl_new(k);
1578: v_fnd_menus_tl.extend(1);
1571: v_fnd_menus_tl.extend(1);
1572: menu_tl_count := v_fnd_menus_tl.last;
1573:
1574: if v_fnd_menus_tl_new is not null and v_fnd_menus_tl_new.count > 0 then
1575: FOR k IN v_fnd_menus_tl_new.FIRST .. v_fnd_menus_tl_new.LAST
1576: LOOP
1577: v_fnd_menus_tl(menu_tl_count) := v_fnd_menus_tl_new(k);
1578: v_fnd_menus_tl.extend(1);
1579: menu_tl_count :=menu_tl_count+1;
1573:
1574: if v_fnd_menus_tl_new is not null and v_fnd_menus_tl_new.count > 0 then
1575: FOR k IN v_fnd_menus_tl_new.FIRST .. v_fnd_menus_tl_new.LAST
1576: LOOP
1577: v_fnd_menus_tl(menu_tl_count) := v_fnd_menus_tl_new(k);
1578: v_fnd_menus_tl.extend(1);
1579: menu_tl_count :=menu_tl_count+1;
1580: end loop;
1581: end if ;
1574: if v_fnd_menus_tl_new is not null and v_fnd_menus_tl_new.count > 0 then
1575: FOR k IN v_fnd_menus_tl_new.FIRST .. v_fnd_menus_tl_new.LAST
1576: LOOP
1577: v_fnd_menus_tl(menu_tl_count) := v_fnd_menus_tl_new(k);
1578: v_fnd_menus_tl.extend(1);
1579: menu_tl_count :=menu_tl_count+1;
1580: end loop;
1581: end if ;
1582: SELECT *bulk collect
1581: end if ;
1582: SELECT *bulk collect
1583: INTO v_fnd_grants_new
1584: FROM fnd_grants
1585: WHERE menu_id = v_fnd_menus_new(l).menu_id;
1586:
1587: v_fnd_grants.extend(1);
1588: grants_count := v_fnd_grants.last;
1589:
1604:
1605: END IF;
1606:
1607: -- remove menus
1608: fnd_menus_pkg.delete_row(v_fnd_menus_new(l).menu_id);
1609:
1610: END LOOP;
1611: END IF;
1612:
1638:
1639: -- Restore grants,menus, menu entries
1640: PROCEDURE RESTORE_GRANTS(f_id IN NUMBER, f_name IN VARCHAR) IS
1641:
1642: t_menu_id fnd_menus.menu_id%TYPE;
1643: l_grant_guid raw(16);
1644: error1 varchar2(300);
1645: menu_com_request_status varchar2(30);
1646: BEGIN
1643: l_grant_guid raw(16);
1644: error1 varchar2(300);
1645: menu_com_request_status varchar2(30);
1646: BEGIN
1647: --t_menu_id := fnd_menus_s.nextval;
1648: select fnd_menus_s.nextval into t_menu_id from dual;
1649: IF v_fnd_form_functions is not null and v_fnd_form_functions.COUNT > 0 THEN
1650:
1651: FOR i IN v_fnd_form_functions.FIRST .. v_fnd_form_functions.LAST
1644: error1 varchar2(300);
1645: menu_com_request_status varchar2(30);
1646: BEGIN
1647: --t_menu_id := fnd_menus_s.nextval;
1648: select fnd_menus_s.nextval into t_menu_id from dual;
1649: IF v_fnd_form_functions is not null and v_fnd_form_functions.COUNT > 0 THEN
1650:
1651: FOR i IN v_fnd_form_functions.FIRST .. v_fnd_form_functions.LAST
1652: LOOP
1682:
1683: END IF;
1684:
1685: END LOOP;
1686: IF v_fnd_menus is not null and v_fnd_menus.COUNT > 0 THEN
1687: FOR m IN v_fnd_menus.FIRST .. v_fnd_menus.LAST
1688: LOOP
1689:
1690: IF v_fnd_menus(m).menu_id = v_fnd_menu_entries(k).menu_id THEN
1683: END IF;
1684:
1685: END LOOP;
1686: IF v_fnd_menus is not null and v_fnd_menus.COUNT > 0 THEN
1687: FOR m IN v_fnd_menus.FIRST .. v_fnd_menus.LAST
1688: LOOP
1689:
1690: IF v_fnd_menus(m).menu_id = v_fnd_menu_entries(k).menu_id THEN
1691:
1686: IF v_fnd_menus is not null and v_fnd_menus.COUNT > 0 THEN
1687: FOR m IN v_fnd_menus.FIRST .. v_fnd_menus.LAST
1688: LOOP
1689:
1690: IF v_fnd_menus(m).menu_id = v_fnd_menu_entries(k).menu_id THEN
1691:
1692: FOR j IN v_fnd_menus_tl.FIRST .. v_fnd_menus_tl.LAST
1693: LOOP
1694:
1688: LOOP
1689:
1690: IF v_fnd_menus(m).menu_id = v_fnd_menu_entries(k).menu_id THEN
1691:
1692: FOR j IN v_fnd_menus_tl.FIRST .. v_fnd_menus_tl.LAST
1693: LOOP
1694:
1695: IF v_fnd_menus_tl(j).menu_id = v_fnd_menus(m).menu_id THEN
1696:
1691:
1692: FOR j IN v_fnd_menus_tl.FIRST .. v_fnd_menus_tl.LAST
1693: LOOP
1694:
1695: IF v_fnd_menus_tl(j).menu_id = v_fnd_menus(m).menu_id THEN
1696:
1697: fnd_menus_pkg.insert_row(x_rowid,
1698: t_menu_id,
1699: 'FND_FUNCTION_'||f_id,
1693: LOOP
1694:
1695: IF v_fnd_menus_tl(j).menu_id = v_fnd_menus(m).menu_id THEN
1696:
1697: fnd_menus_pkg.insert_row(x_rowid,
1698: t_menu_id,
1699: 'FND_FUNCTION_'||f_id,
1700: v_fnd_menus_tl(j).user_menu_name,
1701: v_fnd_menus(m).type,
1696:
1697: fnd_menus_pkg.insert_row(x_rowid,
1698: t_menu_id,
1699: 'FND_FUNCTION_'||f_id,
1700: v_fnd_menus_tl(j).user_menu_name,
1701: v_fnd_menus(m).type,
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1697: fnd_menus_pkg.insert_row(x_rowid,
1698: t_menu_id,
1699: 'FND_FUNCTION_'||f_id,
1700: v_fnd_menus_tl(j).user_menu_name,
1701: v_fnd_menus(m).type,
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1698: t_menu_id,
1699: 'FND_FUNCTION_'||f_id,
1700: v_fnd_menus_tl(j).user_menu_name,
1701: v_fnd_menus(m).type,
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1706: v_fnd_menus(m).last_updated_by,
1699: 'FND_FUNCTION_'||f_id,
1700: v_fnd_menus_tl(j).user_menu_name,
1701: v_fnd_menus(m).type,
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1706: v_fnd_menus(m).last_updated_by,
1707: v_fnd_menus(m).last_update_login);
1700: v_fnd_menus_tl(j).user_menu_name,
1701: v_fnd_menus(m).type,
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1706: v_fnd_menus(m).last_updated_by,
1707: v_fnd_menus(m).last_update_login);
1708:
1701: v_fnd_menus(m).type,
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1706: v_fnd_menus(m).last_updated_by,
1707: v_fnd_menus(m).last_update_login);
1708:
1709: EXIT
1702: v_fnd_menus_tl(j).description,
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1706: v_fnd_menus(m).last_updated_by,
1707: v_fnd_menus(m).last_update_login);
1708:
1709: EXIT
1710: WHEN v_fnd_menus_tl(j).menu_id = v_fnd_menus(m).menu_id;
1703: v_fnd_menus(m).creation_date,
1704: v_fnd_menus(m).created_by,
1705: v_fnd_menus(m).last_update_date,
1706: v_fnd_menus(m).last_updated_by,
1707: v_fnd_menus(m).last_update_login);
1708:
1709: EXIT
1710: WHEN v_fnd_menus_tl(j).menu_id = v_fnd_menus(m).menu_id;
1711:
1706: v_fnd_menus(m).last_updated_by,
1707: v_fnd_menus(m).last_update_login);
1708:
1709: EXIT
1710: WHEN v_fnd_menus_tl(j).menu_id = v_fnd_menus(m).menu_id;
1711:
1712: END IF;
1713:
1714: END LOOP;
1719:
1720: FOR l IN v_fnd_grants.FIRST .. v_fnd_grants.LAST
1721: LOOP
1722:
1723: IF v_fnd_grants(l).menu_id = v_fnd_menus(m).menu_id THEN
1724:
1725: SELECT sys_guid()
1726: INTO l_grant_guid
1727: FROM dual;