49:
50: if l_menu_name = p_menu_name then
51: FND_MESSAGE.SET_NAME('BIS','BIS_NAME_UNIQUE_ERR');
52: FND_MSG_PUB.ADD;
53: RAISE FND_API.G_EXC_ERROR;
54: end if;
55:
56: if l_user_menu_name = p_user_menu_name then
57: FND_MESSAGE.SET_NAME('BIS','BIS_DISPLAY_NAME_UNIQUE_ERR');
55:
56: if l_user_menu_name = p_user_menu_name then
57: FND_MESSAGE.SET_NAME('BIS','BIS_DISPLAY_NAME_UNIQUE_ERR');
58: FND_MSG_PUB.ADD;
59: RAISE FND_API.G_EXC_ERROR;
60: end if;
61:
62: if X_MENU_ID IS NULL then
63: select FND_MENUS_S.NEXTVAL into l_new_menu_id from dual;
82: X_MENU_ID := l_new_menu_id;
83: end if;
84:
85: EXCEPTION
86: WHEN FND_API.G_EXC_ERROR THEN
87: x_return_status := FND_API.G_RET_STS_ERROR;
88: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
89: ,p_data => x_msg_data);
90:
83: end if;
84:
85: EXCEPTION
86: WHEN FND_API.G_EXC_ERROR THEN
87: x_return_status := FND_API.G_RET_STS_ERROR;
88: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
89: ,p_data => x_msg_data);
90:
91: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
87: x_return_status := FND_API.G_RET_STS_ERROR;
88: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
89: ,p_data => x_msg_data);
90:
91: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
92: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
93: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
94: ,p_data => x_msg_data);
95:
88: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
89: ,p_data => x_msg_data);
90:
91: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
92: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
93: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
94: ,p_data => x_msg_data);
95:
96: WHEN NO_DATA_FOUND THEN
93: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
94: ,p_data => x_msg_data);
95:
96: WHEN NO_DATA_FOUND THEN
97: x_return_status := FND_API.G_RET_STS_ERROR;
98: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
99: ,p_data => x_msg_data);
100: WHEN OTHERS THEN
101: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
97: x_return_status := FND_API.G_RET_STS_ERROR;
98: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
99: ,p_data => x_msg_data);
100: WHEN OTHERS THEN
101: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
102: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
103: ,p_data => x_msg_data);
104: if (x_msg_data is null) then
105: x_msg_data := SQLERRM;
153:
154: if l_count > 0 then
155: FND_MESSAGE.SET_NAME('BIS','BIS_DISPLAY_NAME_UNIQUE_ERR');
156: FND_MSG_PUB.ADD;
157: RAISE FND_API.G_EXC_ERROR;
158: end if;
159: end if;
160:
161: if (p_description <> BIS_COMMON_UTILS.G_DEF_CHAR) then
172: X_LAST_UPDATED_BY => fnd_global.user_id,
173: X_LAST_UPDATE_LOGIN => fnd_global.user_id
174: );
175: EXCEPTION
176: WHEN FND_API.G_EXC_ERROR THEN
177: if cFndMenu%ISOPEN then
178: CLOSE cFndMenu;
179: end if;
180: x_return_status := FND_API.G_RET_STS_ERROR;
176: WHEN FND_API.G_EXC_ERROR THEN
177: if cFndMenu%ISOPEN then
178: CLOSE cFndMenu;
179: end if;
180: x_return_status := FND_API.G_RET_STS_ERROR;
181: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
182: ,p_data => x_msg_data);
183: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
184: if cFndMenu%ISOPEN then
179: end if;
180: x_return_status := FND_API.G_RET_STS_ERROR;
181: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
182: ,p_data => x_msg_data);
183: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
184: if cFndMenu%ISOPEN then
185: CLOSE cFndMenu;
186: end if;
187: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
183: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
184: if cFndMenu%ISOPEN then
185: CLOSE cFndMenu;
186: end if;
187: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
188: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
189: ,p_data => x_msg_data);
190: WHEN NO_DATA_FOUND THEN
191: if cFndMenu%ISOPEN then
190: WHEN NO_DATA_FOUND THEN
191: if cFndMenu%ISOPEN then
192: CLOSE cFndMenu;
193: end if;
194: x_return_status := FND_API.G_RET_STS_ERROR;
195: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
196: ,p_data => x_msg_data);
197: WHEN OTHERS THEN
198: if cFndMenu%ISOPEN then
197: WHEN OTHERS THEN
198: if cFndMenu%ISOPEN then
199: CLOSE cFndMenu;
200: end if;
201: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
202: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
203: ,p_data => x_msg_data);
204: if (x_msg_data is null) then
205: x_msg_data := SQLERRM;
239: for c in cr_menu_usage loop
240: FND_MESSAGE.SET_NAME('FND','MENU-USED BY MENUS');
241: FND_MESSAGE.SET_TOKEN('MENU', c.user_menu_name);
242: FND_MSG_PUB.ADD;
243: RAISE FND_API.G_EXC_ERROR;
244: end loop;
245:
246: for c in cr_resp_usage loop
247: FND_MESSAGE.SET_NAME('FND','FND-RESP CALLS MENU');
246: for c in cr_resp_usage loop
247: FND_MESSAGE.SET_NAME('FND','FND-RESP CALLS MENU');
248: FND_MESSAGE.SET_TOKEN('RESPONSIBILITY', c.responsibility_name);
249: FND_MSG_PUB.ADD;
250: RAISE FND_API.G_EXC_ERROR;
251: end loop;
252:
253: if cr_menu_usage%ISOPEN then
254: CLOSE cr_menu_usage;
257: CLOSE cr_resp_usage;
258: end if;
259:
260: EXCEPTION
261: WHEN FND_API.G_EXC_ERROR THEN
262: if cr_menu_usage%ISOPEN then
263: CLOSE cr_menu_usage;
264: end if;
265: if cr_resp_usage%ISOPEN then
264: end if;
265: if cr_resp_usage%ISOPEN then
266: CLOSE cr_resp_usage;
267: end if;
268: x_return_status := FND_API.G_RET_STS_ERROR;
269: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
270: ,p_data => x_msg_data);
271: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
272: if cr_menu_usage%ISOPEN then
267: end if;
268: x_return_status := FND_API.G_RET_STS_ERROR;
269: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
270: ,p_data => x_msg_data);
271: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
272: if cr_menu_usage%ISOPEN then
273: CLOSE cr_menu_usage;
274: end if;
275: if cr_resp_usage%ISOPEN then
274: end if;
275: if cr_resp_usage%ISOPEN then
276: CLOSE cr_resp_usage;
277: end if;
278: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
279: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
280: ,p_data => x_msg_data);
281: WHEN NO_DATA_FOUND THEN
282: if cr_menu_usage%ISOPEN then
284: end if;
285: if cr_resp_usage%ISOPEN then
286: CLOSE cr_resp_usage;
287: end if;
288: x_return_status := FND_API.G_RET_STS_ERROR;
289: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
290: ,p_data => x_msg_data);
291: WHEN OTHERS THEN
292: if cr_menu_usage%ISOPEN then
294: end if;
295: if cr_resp_usage%ISOPEN then
296: CLOSE cr_resp_usage;
297: end if;
298: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
299: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
300: ,p_data => x_msg_data);
301: if (x_msg_data is null) then
302: x_msg_data := SQLERRM;
325: exception
326: when others then
327: FND_MESSAGE.SET_NAME('BIS','BIS_MENU_DELETED_ERROR');
328: FND_MSG_PUB.ADD;
329: RAISE FND_API.G_EXC_ERROR;
330: end;
331: end if;
332:
333: EXCEPTION
330: end;
331: end if;
332:
333: EXCEPTION
334: WHEN FND_API.G_EXC_ERROR THEN
335: x_return_status := FND_API.G_RET_STS_ERROR;
336: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
337: ,p_data => x_msg_data);
338: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
331: end if;
332:
333: EXCEPTION
334: WHEN FND_API.G_EXC_ERROR THEN
335: x_return_status := FND_API.G_RET_STS_ERROR;
336: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
337: ,p_data => x_msg_data);
338: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
339: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
334: WHEN FND_API.G_EXC_ERROR THEN
335: x_return_status := FND_API.G_RET_STS_ERROR;
336: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
337: ,p_data => x_msg_data);
338: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
339: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
340: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
341: ,p_data => x_msg_data);
342: WHEN NO_DATA_FOUND THEN
335: x_return_status := FND_API.G_RET_STS_ERROR;
336: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
337: ,p_data => x_msg_data);
338: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
339: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
340: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
341: ,p_data => x_msg_data);
342: WHEN NO_DATA_FOUND THEN
343: x_return_status := FND_API.G_RET_STS_ERROR;
339: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
340: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
341: ,p_data => x_msg_data);
342: WHEN NO_DATA_FOUND THEN
343: x_return_status := FND_API.G_RET_STS_ERROR;
344: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
345: ,p_data => x_msg_data);
346: WHEN OTHERS THEN
347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
343: x_return_status := FND_API.G_RET_STS_ERROR;
344: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
345: ,p_data => x_msg_data);
346: WHEN OTHERS THEN
347: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
348: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
349: ,p_data => x_msg_data);
350: if (x_msg_data is null) then
351: x_msg_data := SQLERRM;
383: exception
384: when no_data_found then
385: FND_MESSAGE.SET_NAME('BIS','BIS_MENU_DELETED_ERROR');
386: FND_MSG_PUB.ADD;
387: RAISE FND_API.G_EXC_ERROR;
388: end;
389: end if;
390:
391: EXCEPTION
388: end;
389: end if;
390:
391: EXCEPTION
392: WHEN FND_API.G_EXC_ERROR THEN
393: x_return_status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
395: ,p_data => x_msg_data);
396: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
389: end if;
390:
391: EXCEPTION
392: WHEN FND_API.G_EXC_ERROR THEN
393: x_return_status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
395: ,p_data => x_msg_data);
396: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
397: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
392: WHEN FND_API.G_EXC_ERROR THEN
393: x_return_status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
395: ,p_data => x_msg_data);
396: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
397: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
398: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
399: ,p_data => x_msg_data);
400: WHEN NO_DATA_FOUND THEN
393: x_return_status := FND_API.G_RET_STS_ERROR;
394: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
395: ,p_data => x_msg_data);
396: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
397: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
398: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
399: ,p_data => x_msg_data);
400: WHEN NO_DATA_FOUND THEN
401: x_return_status := FND_API.G_RET_STS_ERROR;
397: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
398: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
399: ,p_data => x_msg_data);
400: WHEN NO_DATA_FOUND THEN
401: x_return_status := FND_API.G_RET_STS_ERROR;
402: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
403: ,p_data => x_msg_data);
404: WHEN OTHERS THEN
405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
401: x_return_status := FND_API.G_RET_STS_ERROR;
402: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
403: ,p_data => x_msg_data);
404: WHEN OTHERS THEN
405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
406: FND_MSG_PUB.Count_And_Get( p_encoded => 'F' ,p_count => x_msg_count
407: ,p_data => x_msg_data);
408: if (x_msg_data is null) then
409: x_msg_data := SQLERRM;
438:
439: if (cMenu%notfound) then
440: FND_MESSAGE.SET_NAME('BIS','BIS_MENU_DELETED_ERROR');
441: FND_MSG_PUB.ADD;
442: RAISE FND_API.G_EXC_ERROR;
443: end if;
444:
445: if p_last_update_date is not null then
446: if p_last_update_date <> l_last_update_date then
445: if p_last_update_date is not null then
446: if p_last_update_date <> l_last_update_date then
447: FND_MESSAGE.SET_NAME('BIS','BIS_MENU_CHANGED_ERROR');
448: FND_MSG_PUB.ADD;
449: RAISE FND_API.G_EXC_ERROR;
450: end if;
451: end if;
452:
453: rollback to SP_LOCK_ROW;
453: rollback to SP_LOCK_ROW;
454: CLOSE cMenu;
455:
456: EXCEPTION
457: WHEN FND_API.G_EXC_ERROR THEN NULL;
458: WHEN OTHERS THEN
459: close cMenu;
460: rollback to SP_LOCK_ROW;
461: FND_MESSAGE.SET_NAME('BIS','BIS_MENU_LOCKED_ERROR');
459: close cMenu;
460: rollback to SP_LOCK_ROW;
461: FND_MESSAGE.SET_NAME('BIS','BIS_MENU_LOCKED_ERROR');
462: FND_MSG_PUB.ADD;
463: RAISE FND_API.G_EXC_ERROR;
464: END LOCK_ROW;
465:
466:
467: