43:
44: -- Added for Function Security Cache Invalidation Project
45: fnd_function_security_cache.insert_menu(X_MENU_ID);
46:
47: insert into FND_MENUS_TL (
48: MENU_ID,
49: USER_MENU_NAME,
50: LAST_UPDATE_DATE,
51: LAST_UPDATED_BY,
67: userenv('LANG')
68: from FND_LANGUAGES L
69: where L.INSTALLED_FLAG in ('I', 'B')
70: and not exists (select NULL
71: from FND_MENUS_TL T
72: where T.MENU_ID = X_MENU_ID
73: and T.LANGUAGE = L.LANGUAGE_CODE);
74:
75: open c;
98:
99: cursor c1 is select
100: USER_MENU_NAME,
101: DESCRIPTION
102: from FND_MENUS_TL
103: where MENU_ID = X_MENU_ID
104: and LANGUAGE = userenv('LANG')
105: for update of MENU_ID nowait;
106: tlinfo c1%rowtype;
172: -- Added for Function Security Cache Invalidation Project
173: fnd_function_security_cache.update_menu(X_MENU_ID);
174: end if;
175:
176: update FND_MENUS_TL
177: set USER_MENU_NAME = X_USER_MENU_NAME,
178: DESCRIPTION = X_DESCRIPTION,
179: LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
180: LAST_UPDATED_BY = X_LAST_UPDATED_BY,
285: -- Added for Function Security Cache Invalidation Project
286: fnd_function_security_cache.delete_menu(X_MENU_ID);
287: end if;
288:
289: delete from FND_MENUS_TL
290: where MENU_ID = X_MENU_ID;
291:
292: if (sql%notfound) then
293: raise no_data_found;
302: /* as a quick workaround to fix the time-consuming table handler issue */
303: /* Eventually we'll need to turn them into a separate fix_language procedure */
304: /*
305:
306: delete from FND_MENUS_TL T
307: where not exists
308: (select NULL
309: from FND_MENUS B
310: where B.MENU_ID = T.MENU_ID
309: from FND_MENUS B
310: where B.MENU_ID = T.MENU_ID
311: );
312:
313: update FND_MENUS_TL T set (
314: USER_MENU_NAME,
315: DESCRIPTION
316: ) = (select
317: B.USER_MENU_NAME,
315: DESCRIPTION
316: ) = (select
317: B.USER_MENU_NAME,
318: B.DESCRIPTION
319: from FND_MENUS_TL B
320: where B.MENU_ID = T.MENU_ID
321: and B.LANGUAGE = T.SOURCE_LANG)
322: where (
323: T.MENU_ID,
324: T.LANGUAGE
325: ) in (select
326: SUBT.MENU_ID,
327: SUBT.LANGUAGE
328: from FND_MENUS_TL SUBB, FND_MENUS_TL SUBT
329: where SUBB.MENU_ID = SUBT.MENU_ID
330: and SUBB.LANGUAGE = SUBT.SOURCE_LANG
331: and (SUBB.USER_MENU_NAME <> SUBT.USER_MENU_NAME
332: or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
334: or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
335: ));
336: */
337:
338: insert into FND_MENUS_TL (
339: MENU_ID,
340: USER_MENU_NAME,
341: LAST_UPDATE_DATE,
342: LAST_UPDATED_BY,
356: B.CREATED_BY,
357: B.DESCRIPTION,
358: L.LANGUAGE_CODE,
359: B.SOURCE_LANG
360: from FND_MENUS_TL B, FND_LANGUAGES L
361: where L.INSTALLED_FLAG in ('I', 'B')
362: and B.LANGUAGE = userenv('LANG')
363: and not exists
364: (select NULL
361: where L.INSTALLED_FLAG in ('I', 'B')
362: and B.LANGUAGE = userenv('LANG')
363: and not exists
364: (select NULL
365: from FND_MENUS_TL T
366: where T.MENU_ID = B.MENU_ID
367: and T.LANGUAGE = L.LANGUAGE_CODE);
368: end ADD_LANGUAGE;
369:
407: f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
408:
409: select LAST_UPDATED_BY, LAST_UPDATE_DATE
410: into db_luby, db_ludate
411: from FND_MENUS_TL
412: where MENU_ID = X_MENU_ID
413: and userenv('LANG') = LANGUAGE;
414:
415: if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
413: and userenv('LANG') = LANGUAGE;
414:
415: if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
416: db_ludate, X_CUSTOM_MODE)) then
417: update FND_MENUS_TL set
418: USER_MENU_NAME = X_USER_MENU_NAME,
419: DESCRIPTION = X_DESCRIPTION,
420: LAST_UPDATE_DATE = f_ludate,
421: LAST_UPDATED_BY = f_luby,