[Home] [Help]
PACKAGE BODY: APPS.ORACLENAVIGATE
Source
1 package body OracleNavigate as
2 /* $Header: ICXSENB.pls 120.2 2007/11/21 19:24:40 amgonzal ship $ */
3
4 TYPE object IS RECORD (
5 location varchar2(30),
6 display_sequence pls_integer,
7 type varchar2(30),
8 resp_appl_id pls_integer,
9 responsibility_id pls_integer,
10 security_group_id pls_integer,
11 parent_menu_id pls_integer,
12 entry_sequence pls_integer,
13 menu_id pls_integer,
14 function_id pls_integer,
15 function_type varchar2(30),
16 menu_explode varchar2(30),
17 function_explode varchar2(30),
18 level pls_integer,
19 prompt varchar2(240),
20 description varchar2(240),
21 web_html_call varchar2(240));
22
23 TYPE objectTable IS TABLE OF object index by binary_integer;
24
25 g_nulllist objectTable;
26 g_list objectTable;
27 g_executablelist objectTable;
28
29 procedure timer(message VARCHAR2) is --defaulted to NULL, removed for GSCC
30 l_hsecs pls_integer;
31 begin
32 select HSECS into l_hsecs from V$TIMER;
33 htp.p('DEBUG ('||l_hsecs||') '||message);htp.nl;
34 end;
35
36 function security_group(p_responsibility_id number,
37 p_application_id number) return boolean is
41
38 l_security_group_count pls_integer;
39 l_security_group varchar2(30);
40 l_profile_defined BOOLEAN;
42 begin
43
44 /*
45 select count(*)
46 into l_security_group_count
47 from fnd_security_groups
48 where security_group_id >= 0;
49 */
50 --l_security_group := fnd_profile.value('ENABLE_SECURITY_GROUPS');
51
52 fnd_profile.get_specific(
53 name_z => 'ENABLE_SECURITY_GROUPS',
54 responsibility_id_z => p_responsibility_id,
55 application_id_z => p_application_id,
56 val_z => l_security_group,
57 defined_z => l_profile_defined);
58
59 if l_security_group = 'Y'
60 then
61 return TRUE;
62 else
63 return FALSE;
64 end if;
65
66 end;
67
68 -- ***********************************************
69 -- Procedure listMenuEntries
70 -- ***********************************************
71 procedure listMenuEntries(p_object in object,
72 p_entries in BOOLEAN, --defaulted to true, removed for GSCC
73 p_executable in BOOLEAN) is --defaulted to false, removed for GSCC
74
75 l_index pls_integer;
76 l_object object;
77 l_count pls_integer;
78 c_error_msg varchar2(240);
79
80 cursor menuentries is
81 select prompt,
82 description,
83 sub_menu_id,
84 entry_sequence
85 from fnd_menu_entries_vl
86 where menu_id = p_object.parent_menu_id
87 and sub_menu_id is not null
88 and function_id is null
89 and prompt is not null
90 AND nvl(SUB_MENU_ID,-1) not IN -- add support for submenu exclusions 2029055
91 (select ACTION_ID
92 from FND_RESP_FUNCTIONS
93 where RESPONSIBILITY_ID = p_object.responsibility_id
94 and APPLICATION_ID = p_object.resp_appl_id)
95 order by entry_sequence;
96
97 cursor functionentries is --mputman removed nvl() 1911095
98 SELECT b.prompt prompt, --mputman removed nvl() 1911095
99 nvl(b.description,b.prompt) description,
100 b.function_id,
101 b.entry_sequence,
102 a.type,
103 a.web_html_call
104 from fnd_form_functions_vl a,
105 fnd_menu_entries_vl b
106 where b.menu_id = p_object.parent_menu_id
107 AND b.prompt IS NOT NULL -- mputman added 1815466
108 --AND b.grant_flag='Y'
109 --removed grant_flag bug 3575253
110 and a.function_id = b.function_id
111 and a.type in ('WWW','WWK','SERVLET','JSP','FORM','INTEROPJSP')
112 and nvl(a.FUNCTION_ID,-1) not in -- menu exclusion support 1911095 mputman
113 (select ACTION_ID
114 from FND_RESP_FUNCTIONS
115 where RESPONSIBILITY_ID = p_object.responsibility_id
116 and APPLICATION_ID = p_object.resp_appl_id)
117 order by entry_sequence;
118
119
120 begin
121
122 -- Bug 3575253 - Added the below to use fnd_function_id.test_id
123
124 if (FND_FUNCTION.G_ALREADY_FAST_COMPILED <> 'T') then
125 FND_FUNCTION.FAST_COMPILE;
126 end if;
127
128
129
130 fnd_global.apps_initialize(icx_sec.g_user_id,
131 p_object.responsibility_id,
132 p_object.resp_appl_id,
133 p_object.security_group_id);
134
135 -- Bug 3575253
136
137 if not p_executable
138 and (p_object.function_explode = 'Y' or (p_entries and p_object.level = 1))
139 then
140
141 select count(*)
142 into l_count
143 from fnd_form_functions a,
144 fnd_menu_entries b
145 where b.menu_id = p_object.parent_menu_id
146 and a.function_id = b.function_id
147 and a.type in ('WWW','WWK','SERVLET','JSP','FORM','INTEROPJSP')
148 --AND b.grant_flag='Y'
149 --removed grant_flag bug 3575253
150
151 and nvl(a.FUNCTION_ID,-1) not in -- menu exclusion support 1911095 mputman
152 (select ACTION_ID
153 from FND_RESP_FUNCTIONS
154 where RESPONSIBILITY_ID = p_object.responsibility_id
155 and APPLICATION_ID = p_object.resp_appl_id);
156
157 if l_count > 0
158 then
159 if p_object.level = 1
160 then
161 l_index := g_list.COUNT;
162 g_list(l_index).type := 'MENU';
163 g_list(l_index).resp_appl_id := p_object.resp_appl_id;
164 g_list(l_index).responsibility_id := p_object.responsibility_id;
165 g_list(l_index).security_group_id := p_object.security_group_id;
166 g_list(l_index).parent_menu_id := p_object.parent_menu_id;
167 g_list(l_index).entry_sequence := 0;
168 g_list(l_index).level := p_object.level;
169 g_list(l_index).prompt := p_object.prompt;
170 g_list(l_index).description := p_object.description;
171 end if;
172
173 for f in functionentries loop
174 l_index := g_list.COUNT;
175 g_list(l_index).type := 'FUNCTION';
176 g_list(l_index).resp_appl_id := p_object.resp_appl_id;
177 g_list(l_index).responsibility_id := p_object.responsibility_id;
178 g_list(l_index).security_group_id := p_object.security_group_id;
179 g_list(l_index).parent_menu_id := p_object.parent_menu_id;
180 g_list(l_index).entry_sequence := f.entry_sequence;
181 g_list(l_index).function_id := f.function_id;
182 g_list(l_index).function_type := f.type;
183 g_list(l_index).web_html_call := f.web_html_call;
184 g_list(l_index).level := p_object.level;
185
186
187 --Bug 3575253 used fnd_function_test_id
188
189 if (f.prompt is not null) and (fnd_function.test_id(f.function_id))
190 then
191 g_list(l_index).prompt := f.prompt;
192 if (f.description is not null) and (fnd_function.test_id(f.function_id))
193 then
194 g_list(l_index).description := f.description;
195
196 else if (fnd_function.test_id(f.function_id))
197 then
198
199 g_list(l_index).description := f.prompt;
200
201 else if (fnd_function.test_id(f.function_id))
202
203 then
204
205 g_list(l_index).prompt := f.description;
206
207 g_list(l_index).description := f.description;
208 end if;
209 end if;
210
211
212 end if;
213
214 /*
215 if f.prompt is not null
216 then
217 g_list(l_index).prompt := f.prompt;
218 if f.description is not null
219 then
220 g_list(l_index).description := f.description;
221 else
222 g_list(l_index).description := f.prompt;
223 end if;
224 else
225 g_list(l_index).prompt := f.description;
226 g_list(l_index).description := f.description;
227 */
228
229 end if;
230 end loop; -- menuentries
231 end if;
232 end if;
233
234 select count(*)
235 into l_count
236 from fnd_menu_entries
237 where menu_id = p_object.parent_menu_id
238 and sub_menu_id is not null;
239
240 if l_count > 0
241 then
242 for m in menuentries loop
243 l_index := g_list.COUNT;
244 g_list(l_index).type := 'MENU';
245 g_list(l_index).resp_appl_id := p_object.resp_appl_id;
246 g_list(l_index).responsibility_id := p_object.responsibility_id;
247 g_list(l_index).security_group_id := p_object.security_group_id;
248 g_list(l_index).parent_menu_id := p_object.parent_menu_id;
249 g_list(l_index).entry_sequence := m.entry_sequence;
250 g_list(l_index).level := p_object.level;
251 g_list(l_index).prompt := m.prompt;
252 g_list(l_index).description := m.description;
253 if p_object.menu_explode = 'Y'
254 then
255 l_object.resp_appl_id := p_object.resp_appl_id;
256 l_object.responsibility_id := p_object.responsibility_id;
257 l_object.security_group_id := p_object.security_group_id;
258 l_object.parent_menu_id := m.sub_menu_id;
259 l_object.menu_explode := p_object.menu_explode;
260 l_object.function_explode := p_object.function_explode;
261 l_object.level := p_object.level+1;
262 l_object.prompt := p_object.prompt;
263 l_object.description := p_object.description;
264 listMenuEntries(p_object =>l_object,
265 p_entries => p_entries,
266 p_executable => p_executable);
267 end if;
268 end loop; -- menuentries
269 end if;
270
271 exception
272 when others then
273 -- htp.p(SQLERRM);
274 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
275 c_error_msg := fnd_message.get;
276 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
277
278
279 end;
280
281 procedure listMenu(p_object in object,
282 p_entries in BOOLEAN) is
283 l_prompt varchar2(240);
284 l_description varchar2(240);
285 l_sub_menu_id pls_integer;
286 l_index pls_integer;
287 l_object object;
288 c_error_msg varchar2(240);
289
290 begin
291
292 select prompt,
293 description,
294 sub_menu_id
295 into l_prompt,
296 l_description,
297 l_sub_menu_id
298 from fnd_menu_entries_vl
299 where menu_id = p_object.parent_menu_id
300 and entry_sequence = p_object.entry_sequence
301 order by entry_sequence;
302
303 l_index := g_list.COUNT;
304 g_list(l_index).location := p_object.location;
305 g_list(l_index).display_sequence := p_object.display_sequence;
306 g_list(l_index).type := 'MENU';
307 g_list(l_index).responsibility_id := p_object.responsibility_id;
308 g_list(l_index).parent_menu_id := p_object.parent_menu_id;
309 g_list(l_index).entry_sequence := p_object.entry_sequence;
310 g_list(l_index).menu_explode := p_object.menu_explode;
311 g_list(l_index).function_explode := p_object.function_explode;
312 g_list(l_index).level := p_object.level;
313
314 if l_prompt is not null
315 then
316 g_list(l_index).prompt := l_prompt;
317 if l_description is not null
318 then
319 g_list(l_index).description := l_description;
320 else
321 g_list(l_index).description := l_prompt;
322 end if;
323 else
324 g_list(l_index).prompt := l_description;
325 g_list(l_index).description := l_description;
326 end if;
327
328 l_object.responsibility_id := p_object.responsibility_id;
329 l_object.parent_menu_id := l_sub_menu_id;
330 l_object.menu_explode := p_object.menu_explode;
331 l_object.function_explode := p_object.function_explode;
332 l_object.level := p_object.level+1;
333 listMenuEntries(p_object => l_object,
334 p_entries => p_entries,
335 p_executable => FALSE); -- pass in defaults (GSCC)
336
340 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
337 exception
338 when others then
339 -- htp.p(SQLERRM);
341 c_error_msg := fnd_message.get;
342 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
343
344
345
346 end;
347
348 -- ***********************************************
349 -- Procedure listResponsibility
350 -- ***********************************************
351 procedure listResponsibility(p_object in object,
352 p_entries in BOOLEAN, --defaulted to true, removed for GSCC
353 p_executable in BOOLEAN) is --defaulted to fales, removed for GSCC
354
355 l_responsibility_name varchar2(100);
356 l_description varchar2(240);
357 l_menu_id pls_integer;
358 l_index pls_integer;
359 l_object object;
360 c_error_msg varchar2(240);
361
362 begin
363
364 -- 1584809 nlbarlow, add application_id
365 select responsibility_name,
366 description,
367 menu_id
368 into l_responsibility_name,
369 l_description,
370 l_menu_id
371 from fnd_responsibility_vl
372 where application_id = p_object.resp_appl_id
373 and responsibility_id = p_object.responsibility_id
374 and version in ('4','W')
375 and start_date <= sysdate
376 and (end_date is null or end_date > sysdate);
377
378 l_index := g_list.COUNT;
379 g_list(l_index).location := p_object.location;
380 g_list(l_index).display_sequence := p_object.display_sequence;
381 g_list(l_index).type := 'RESPONSIBILITY';
382 g_list(l_index).resp_appl_id := p_object.resp_appl_id;
383 g_list(l_index).responsibility_id := p_object.responsibility_id;
384 g_list(l_index).security_group_id := p_object.security_group_id;
385 g_list(l_index).prompt := l_responsibility_name;
386 g_list(l_index).description := l_description;
387 g_list(l_index).menu_explode := p_object.menu_explode;
388 g_list(l_index).function_explode := p_object.function_explode;
389 g_list(l_index).level := p_object.level;
390
391 if p_object.menu_explode = 'Y'
392 or (p_entries and p_object.level = 0)
393 then
394 l_object.resp_appl_id := p_object.resp_appl_id;
395 l_object.responsibility_id := p_object.responsibility_id;
396 l_object.security_group_id := p_object.security_group_id;
397 l_object.parent_menu_id := l_menu_id;
398 l_object.menu_explode := p_object.menu_explode;
399 l_object.function_explode := p_object.function_explode;
400 l_object.level := p_object.level+1;
401 l_object.prompt := p_object.prompt;
402 l_object.description := p_object.description;
403 listMenuEntries(p_object =>l_object,
404 p_entries => p_entries,
405 p_executable => p_executable);-- pass in defaults (GSCC)
406 end if;
407
408 exception
409 when others then
410 -- htp.p(SQLERRM);
411 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
412 c_error_msg := fnd_message.get;
413 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
414
415
416 end;
417
418 procedure displayUnderConstruction is
419
420 l_title varchar2(80);
421 l_name varchar2(80);
422
423 begin
424
425 htp.p('<html>');
426 htp.p('<head>');
427
428 htp.p('<title>'||l_title||'</title>');
429
430 htp.p('<SCRIPT LANGUAGE="JavaScript">');
431
432 htp.p('var function_window = new Object();');
433 htp.p('function_window.open = false;');
434
435 htp.p('function icx_nav_window(mode, url, name){
436 if (mode == "WWK" || mode =="FORM") {
437 attributes = "status=yes,resizable=yes,scrollbars=yes,menubar=no,toolbar=no";
438 function_window.win = window.open(url, "function_window", attributes);
439 if (function_window.win != null)
440 if (function_window.win.opener == null)
441 function_window.win.opener = self;
442 function_window.win.focus();
443 }
444 else {
445 top.location = url;
446 };
447 };');
448
449 htp.p('function topwindowfocus() {
450 if (document.functionwindowfocus.X.value == "TRUE") {
451 function_window.win.focus();
452 }
453 };');
454
455 icx_admin_sig.help_win_script('ICXPHP', null, 'FND');
456
457 htp.p('</SCRIPT>');
458
459 htp.p('</head>');
460 -- htp.p('<body bgcolor="'||icx_plug_utilities.bgcolor||'" onfocus="topwindowfocus()">');
461 htp.p('<body bgcolor= #FFFFFF onfocus="topwindowfocus()">');
462
463 htp.formOpen(curl => 'XXX',
464 cattributes => 'NAME="functionwindowfocus"');
465 htp.formHidden('X','FALSE');
466 htp.formClose;
467
468 icx_plug_utilities.toolbar(p_text => l_title,
469 p_language_code => icx_sec.g_language_code,
470 p_disp_help => 'Y',
471 p_disp_exit => 'Y',
472 p_disp_menu => 'N');
473
474 htp.p('<!- Outer table ->');
475 htp.p('<table border=0 cellspacing=0 cellpadding=0>');
476 htp.p('<tr>');
477 htp.p('<!- Left Column ->');
478 htp.p('<td valign=top align=left width="1%"> This feature is not available yet.');
479 htp.p('</td></tr>');
480 htp.p('</table>'); -- outer table
481 htp.p('</html>');
482
483 end;
484
485
486 -- ************************************************************
487 -- Responsibility
491 D in varchar2,
488 -- ************************************************************
489
490 procedure Responsibility(P in pls_integer,
492 S in pls_integer,
493 M in pls_integer,
494 tab_context_flag in varchar2) is
495 --P = responsibility
496 --D = plug name
497 --S = security group
498 --M = menu id - defaults to 9999
499
500
501 l_resp_appl_id number;
502 l_responsibility_id number;
503 l_responsibility_name varchar2(240);
504 l_responsibility_description varchar2(240);
505 l_security_group_id number;
506 l_security_group_name varchar2(80);
507 l_object object;
508 l_message varchar2(2000);
509 l_title varchar2(80);
510 l_name varchar2(80);
511 l_toolbar_color varchar2(30);
512 l_url varchar2(4000);
513 l_target varchar2(30);
514 l_agent varchar2(80);
515 l_page_id number;
516 l_session_id number;
517 l_menu_id number;
518 l_prompts icx_util.g_prompts_table;
519 l_title2 varchar2(80);
520 l_function_id NUMBER;
521 l_menu_type VARCHAR2(50);
522
523 c_error_msg varchar2(240);
524
525 --Modified this cursor to join to menus 2314636 --mputman
526 cursor responsibilities is
527 select distinct b.RESPONSIBILITY_APPLICATION_ID,
528 a.RESPONSIBILITY_ID,
529 b.SECURITY_GROUP_ID,
530 a.RESPONSIBILITY_NAME,
531 a.DESCRIPTION,
532 fsg.SECURITY_GROUP_NAME,
533 m.TYPE,
534 m.menu_id
535 from FND_SECURITY_GROUPS_VL fsg,
536 FND_RESPONSIBILITY_VL a,
537 FND_USER_RESP_GROUPS b,
538 fnd_menus m
539 where b.user_id = icx_sec.g_user_id
540 AND a.menu_id = m.menu_id
541 and b.start_date <= sysdate
542 and (b.end_date is null or b.end_date > sysdate)
543 and b.RESPONSIBILITY_id = a.responsibility_id
544 and b.RESPONSIBILITY_application_id = a.application_id
545 and a.version IN ('W')
546 and a.start_date <= sysdate
547 and (a.end_date is null or a.end_date > sysdate)
548 AND b.SECURITY_GROUP_ID IN (-1, fsg.SECURITY_GROUP_ID)
549 AND fsg.SECURITY_GROUP_ID >= 0
550 AND nvl(FND_PROFILE.VALUE('NODE_TRUST_LEVEL'),1) <=
551 nvl(FND_PROFILE.VALUE_SPECIFIC('APPL_SERVER_TRUST_LEVEL',b.USER_ID,a.RESPONSIBILITY_ID,b.RESPONSIBILITY_APPLICATION_ID),1)
552 ORDER BY a.RESPONSIBILITY_NAME, fsg.SECURITY_GROUP_NAME;
553
554 begin
555
556 if icx_sec.validateSession
557 then
558
559 -- 2758891 nlbarlow APPLICATIONS_HOME_PAGE
560 if (icx_sec.g_mode_code = '115X') then -- Oracle Portal, nlbarlow
561
562 fnd_profile.get(name => 'APPS_PORTAL',
563 val => l_url);
564
565 if l_url IS NULL Then
566 htp.p ('Please contact System Administrator. ');
567 htp.p ('Profile - APPS_PORTAL is null') ;
568 end If ;
569
570 owa_util.mime_header('text/html', FALSE);
571 owa_util.redirect_url(l_url);
572 owa_util.http_header_close;
573
574 elsif fnd_profile.value('APPLICATIONS_HOME_PAGE') = 'FWK'
575 then
576 select FUNCTION_ID
577 into l_function_id
578 from FND_FORM_FUNCTIONS
579 where FUNCTION_NAME = 'OAHOMEPAGE';
580
581 l_url := icx_portlet.createExecLink
582 (p_application_id => nvl(icx_sec.g_resp_appl_id,'-1'),
583 p_responsibility_id => nvl(icx_sec.g_responsibility_id,'-1'),
584 p_security_group_id => nvl(icx_sec.g_security_group_id,'0'),
585 p_function_id => l_function_id,
586 p_url_only => 'Y');
587
588 owa_util.mime_header('text/html', FALSE);
589 owa_util.redirect_url(l_url);
590 owa_util.http_header_close;
591
592 elsif fnd_profile.value('APPLICATIONS_HOME_PAGE') = 'PHP_FWK'
593 then
594 select FUNCTION_ID
595 into l_function_id
596 from FND_FORM_FUNCTIONS
597 where FUNCTION_NAME = 'FND_NAVIGATE_PAGE';
598
599 l_url := icx_portlet.createExecLink
600 (p_application_id => nvl(icx_sec.g_resp_appl_id,'-1'),
601 p_responsibility_id => nvl(icx_sec.g_responsibility_id,'-1'),
602 p_security_group_id => nvl(icx_sec.g_security_group_id,'0'),
603 p_function_id => l_function_id,
604 p_url_only => 'Y');
605
606 owa_util.mime_header('text/html', FALSE);
607 owa_util.redirect_url(l_url);
608 owa_util.http_header_close;
609
610 elsif (icx_sec.g_mode_code in ('115J', '115P', 'SLAVE') and
611 tab_context_flag = 'ON') then
612
613 OracleMyPage.DrawTabContent;
614
615 else -- PHP
616
617 l_title := icx_util.getPrompt(601,'ICX_OBIS_NAVIGATE',178,'ICX_MAIN_MENU');
618 l_toolbar_color := icx_plug_utilities.toolbarcolor;
619
620 /*
621 ** The agent must have the web server in front of it to ensure
622 ** it works in ie javascript. The problem is if your running the
623 ** old style OBIS mode, you'll get an extra slash from
624 ** icx_plug_utilities.getPLSQLagent. Will remove here.
625 */
626 if (substr(icx_plug_utilities.getPLSQLagent, 1, 1) = '/') then
627
628 l_agent := FND_WEB_CONFIG.WEB_SERVER||
629 substr(icx_plug_utilities.getPLSQLagent,2);
630
631 else
632
633 l_agent := FND_WEB_CONFIG.WEB_SERVER||icx_plug_utilities.getPLSQLagent;
634
635 end if;
636
637
638 if P is null
639 then
640
641 l_responsibility_id := icx_sec.getID(icx_sec.PV_RESPONSIBILITY_ID);
642 if NVL(l_responsibility_id, -1) = -1
643 then
644 open responsibilities;
645 fetch responsibilities into l_resp_appl_id,
646 l_responsibility_id,
647 l_security_group_id,
648 l_responsibility_name,
649 l_responsibility_description,
650 l_security_group_name,
651 l_menu_type,
652 l_menu_id;
653 close responsibilities;
654 l_menu_id := NULL;
655 l_menu_type := NULL;
656 end if;
657 else
658 l_responsibility_id := icx_call.decrypt2(P);
659 end if;
660
661 /* ensure that menu is set to a not null value so that Main Menu icon
662 is painted only for functions called from the Navigate plug. */
663 if M is null then
664 l_menu_id := 9999;
665 else
666 l_menu_id := M;
667 end if;
668
669 if (D is null) then
670 -- check to see if need to get page for new style or old style page.
671 if (icx_sec.g_mode_code in ('115J', '115P', 'SLAVE')) then
672
673 l_session_id := icx_sec.getsessioncookie;
674
675 select page_id into l_page_id
676 from icx_sessions
677 where session_id = l_session_id;
678
679 -- see if display name is associated with navigate plug with a value of -1
680 begin
681 select display_name
682 into l_name
683 from icx_page_plugs a,
684 icx_pages b
685 where b.user_id = icx_sec.g_user_id
686 and b.page_id = a.page_id
687 and a.page_id = l_page_id
688 and a.responsibility_id = -1
689 and a.menu_id = -1;
690 exception
691 when no_data_found then
692 l_name := null;
693 end;
694
695 if (l_name is null) then
696 -- display_name is associated with a non -1 navigate plug
697 -- also since there could be more than one such plug on a page
698 -- use select distinct so only one row is returned. This may
699 -- return the incorrect name but we can't help that because
700 -- currently there is no way for us to know what navigate plug
701 -- to return to.
702
703 begin
704 select distinct NVL(ipp.DISPLAY_NAME, fme.prompt)
705 into l_name
706 from icx_page_plugs ipp,
707 fnd_menu_entries_vl fme,
708 fnd_form_functions fff
709 where ipp.page_id = l_page_id
710 and ipp.menu_id = fme.menu_id
711 and ipp.entry_sequence = fme.entry_sequence
712 and fff.function_id = fme.function_id
713 and fff.function_name = 'ICX_NAVIGATE_PLUG';
714 exception
715 when no_data_found then
716 l_name := null;
717 end;
718
719 end if;
720
721 else -- need to return to the old style page
722
723 begin
724 select DISPLAY_NAME
725 into l_name
726 from ICX_PAGE_PLUGS a,
727 ICX_PAGES b
728 where b.USER_ID = icx_sec.g_user_id
729 and b.PAGE_ID = a.PAGE_ID
730 and a.RESPONSIBILITY_ID = -1
731 and a.MENU_ID = -1
732 and b.page_id in (select MIN(page_id)
733 from ICX_PAGES
734 where user_id = icx_sec.g_user_id
735 and PAGE_TYPE = 'USER');
736 exception
737 when no_data_found then
738 l_name := null;
739 end;
740
741 if (l_name is null) then
742 -- display_name is associated with a non -1 navigate plug
743 -- also since there could be more than one such plug on a page
744 -- use select distinct so only one row is returned. This may
745 -- return the incorrect name but we can't help that because
746 -- currently there is no way for us to know what navigate plug
747 -- to return to.
748
749 begin
750 select distinct NVL(ipp.DISPLAY_NAME, fme.prompt)
751 into l_name
752 from icx_page_plugs ipp,
753 fnd_menu_entries_vl fme,
754 fnd_form_functions fff
755 where ipp.menu_id = fme.menu_id
756 and ipp.entry_sequence = fme.entry_sequence
757 and fff.function_id = fme.function_id
758 and fff.function_name = 'ICX_NAVIGATE_PLUG'
759 and ipp.page_id in (select MIN(page_id)
760 from ICX_PAGES
761 where user_id = icx_sec.g_user_id
762 and PAGE_TYPE = 'USER');
763 exception
764 when no_data_found then
765 l_name := null;
766 end;
767
768 end if;
769
770 end if; -- need to return to the old style page
771 else
772 BEGIN
773 SELECT display_name
774 INTO l_name
775 FROM icx_page_plugs
776 WHERE plug_id= D;
777 EXCEPTION
778 WHEN OTHERS THEN
779
780 l_name :=D;
781 END;
782 --l_name := D;
783 end if;
784
785 IF l_name IS NULL THEN
786 icx_util.getprompts(601, 'ICX_OBIS_NAVIGATE', l_title2, l_prompts);
787 l_name:=l_prompts(1);
788 END IF;
789
790 if S is null
791 then
792 l_security_group_id := icx_sec.g_security_group_id;
793 else
794 l_security_group_id := S;
795 end if;
796
797 if l_security_group_id is null
798 then
799 l_security_group_id := 0;
800 end if;
801
802 select b.RESPONSIBILITY_APPLICATION_ID,
803 b.SECURITY_GROUP_ID,
804 a.RESPONSIBILITY_NAME,
805 a.DESCRIPTION,
806 fsg.SECURITY_GROUP_NAME
807 into l_resp_appl_id,
808 l_security_group_id,
809 l_responsibility_name,
810 l_responsibility_description,
811 l_security_group_name
812 from FND_SECURITY_GROUPS_VL fsg,
813 FND_RESPONSIBILITY_VL a,
814 FND_USER_RESP_GROUPS b
815 where b.USER_ID = icx_sec.g_user_id
816 and a.APPLICATION_ID = b.RESPONSIBILITY_APPLICATION_ID
817 and a.RESPONSIBILITY_ID = b.RESPONSIBILITY_ID
818 and a.RESPONSIBILITY_ID = l_responsibility_id
819 and b.SECURITY_GROUP_ID = fsg.SECURITY_GROUP_ID
820 and fsg.SECURITY_GROUP_ID = l_security_group_id;
821
822 g_list := g_nulllist;
823
824 l_object.type := 'RESPONSIBILITY';
825 l_object.resp_appl_id := l_resp_appl_id;
826 l_object.responsibility_id := l_responsibility_id;
827 l_object.security_group_id := l_security_group_id;
828 l_object.parent_menu_id := '';
829 l_object.entry_sequence := '';
830 l_object.menu_explode := 'Y';
831 l_object.function_explode := 'Y';
832 l_object.level := 0;
833
834 if security_group(l_responsibility_id, l_resp_appl_id)
835 then
836 l_object.prompt := l_responsibility_name||', '||l_security_group_name;
837 else
838 l_object.prompt := l_responsibility_name;
839 end if;
840 l_object.description := l_responsibility_description;
841
842 listResponsibility(p_object => l_object,
843 p_entries => TRUE,
844 p_executable => FALSE); -- pass in defaults (GSCC)
845
846 htp.p('<html>');
847 if icx_cabo.g_base_href is null
848 then
849 htp.p('<BASE HREF="'||FND_WEB_CONFIG.WEB_SERVER||'">');
850 else
851 -- htp.p('<SCRIPT LANGUAGE="JavaScript">
852 -- base.href="'||icx_cabo.g_base_href||'"
853 -- </SCRIPT>');
854 htp.p('<BASE HREF="'||icx_cabo.g_base_href||'">');
855 end if;
856 htp.p('<head>');
857 htp.p('<title>'||l_title||'</title>');
858
859 htp.p('<SCRIPT LANGUAGE="JavaScript">');
860
861 htp.p('var function_window = new Object();');
862 htp.p('var counter=0;'); -- add support for unique window names 1812147
863 htp.p('var hostname="'||replace((replace(FND_WEB_CONFIG.DATABASE_ID,'-','_')),'.','_')||'";');
864 htp.p('function_window.open = false;');
865 --mputman added 1743710
866 htp.p('function icx_nav_window2(mode, url, resp_app, resp_key, secgrp_key, name){
867 counter=counter+1;
868 hostname=hostname;
869 resp_app=escape(unescape(resp_app));
870 resp_key=escape(unescape(resp_key));
871 secgrp_key=escape(unescape(secgrp_key));
872 url=url+"RESP_APP="+resp_app+"&RESP_KEY="+resp_key+"&SECGRP_KEY="+secgrp_key;
873 if (mode == "WWK" || mode =="FORM") {
874 attributes = "status=yes,resizable=yes,scrollbars=yes,menubar=no,toolbar=no";
875 function_window.win = window.open(url, "function_window"+counter_hostname, attributes);
876 if (function_window.win != null)
877 if (function_window.win.opener == null)
878 function_window.win.opener = self;
879 function_window.win.focus();
880 }
881 else {
882 self.location = url;
883 };
884
885
886 };');
887
888 htp.p('function icx_nav_window(mode, url, name){
889 if (mode == "WWK" || mode =="FORM") {
890 attributes = "status=yes,resizable=yes,scrollbars=yes,menubar=no,toolbar=no";
891 function_window.win = window.open(url, "function_window", attributes);
892 if (function_window.win != null)
893 if (function_window.win.opener == null)
894 function_window.win.opener = self;
895 function_window.win.focus();
896 }
897 else {
898 top.location = url;
899 };
900 };');
901
902 htp.p('function topwindowfocus() {
903 if (document.functionwindowfocus.X.value == "TRUE") {
904 function_window.win.focus();
905 }
906 };');
907
908 icx_admin_sig.help_win_script('ICXPHP', null, 'FND');
909
910 htp.p('</SCRIPT>');
911
912 htp.p('</head>');
913
914 if (icx_sec.g_mode_code in ('115J', '115P', 'SLAVE')) then
915 htp.p('<body bgcolor="#CCCCCC" onfocus="topwindowfocus()">');
916 else
917 htp.p('<body bgcolor="'||icx_plug_utilities.bgcolor||'" onfocus="topwindowfocus()">');
918 end if;
919
920 -- Needed for RF.jsp
921 -- htp.p(FND_RUN_FUNCTION.GET_FORMS_LAUNCHER_SETUP);
922
923 htp.formOpen(curl => 'XXX',
924 cattributes => 'NAME="functionwindowfocus"');
925 htp.formHidden('X','FALSE');
926 htp.formClose;
927
928 if ( substr(icx_sec.g_mode_code,1,3) = '115' or
929 icx_sec.g_mode_code = 'SLAVE')
930 then
931 l_target := '_self';
932 else
933 l_target := '_top';
934
935 icx_plug_utilities.toolbar(p_text => l_title,
936 p_language_code => icx_sec.g_language_code,
937 p_disp_help => 'Y',
938 p_disp_exit => 'Y',
939 p_disp_menu => 'N');
940 end if;
941
942 htp.p('<!- Outer table ->');
943 htp.p('<table border=0 cellspacing=0 cellpadding=0>');
944 htp.p('<tr><td><img src="/OA_MEDIA/FNDINVDT.gif" width=8 height=12></td>');
945
946 htp.p('<!- Left Column ->');
947
948 htp.p('<td valign=top align=left width="1%">');
949 htp.p('<table border=0 cellspacing=0 cellpadding=0><tr><td>');
950 icx_plug_utilities.banner(l_name);
951 htp.p('</td></tr>');
952 htp.p('<tr><td><font size=-2><BR></font></td></tr>');
953 htp.p('<tr><td>');
954
955 htp.p('<table border=0 cellspacing=0 cellpadding=0 valign=top align=left>');
956 for r in responsibilities loop
957
958 if security_group (r.responsibility_id, r.responsibility_application_id)
959 then
960 l_responsibility_name := r.responsibility_name||', '||r.security_group_name;
961 else
962 l_responsibility_name := r.responsibility_name;
963 end if;
964
965 if l_responsibility_id = r.responsibility_id and
966 l_security_group_id = r.security_group_id
967 then
968
969 htp.p('<tr>');
970 htp.p('<td>');
971 htp.p('<image src="/OA_MEDIA/FNDREDPT.gif" alt="'||icx_util.replace_alt_quotes(r.description)||'">');
972 htp.p('</td>');
973 htp.p('<td valign=middle NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||l_responsibility_name||'</td></tr>');
974 htp.p('</tr>');
975
976 else
977
978 htp.p('<tr>');
979 htp.p('<td></td>');
980 htp.p('<td NOWRAP><font face="Arial" size=2><b>');
981 --Put IF logic here for bug 2314636 --mputman
982 IF r.TYPE = 'HOMEPAGE' THEN
983 BEGIN
984 SELECT function_id
985 INTO l_function_id
986 FROM fnd_menu_entries_vl
987 WHERE menu_id=r.menu_id
988 AND FUNCTION_ID is not null
989 AND ROWNUM=1
990 ORDER BY entry_sequence;
991 END;
992
993 l_url := icx_portlet.createExecLink
994 (p_application_id => r.responsibility_application_id,
995 p_responsibility_id => r.responsibility_id,
996 p_security_group_id => r.security_group_id,
997 p_function_id => l_function_id,
998 p_link_name => l_responsibility_name,
999 p_url_only => 'N');
1000
1001 htp.p(l_url);
1002
1003 ELSE
1004 htp.anchor(curl => l_agent||'OracleNavigate.Responsibility?P='||icx_call.encrypt2(r.responsibility_id)||'&'||'D='||wfa_html.conv_special_url_chars(D)||'&'||'S='||r.security_group_id||'&'||'tab_context_flag=OFF',
1005 ctext => l_responsibility_name,
1006 cattributes => 'TARGET="'||l_target||'" onMouseOver="window.status='''||icx_util.replace_quotes(r.description)||''';return true"');
1007 END IF;
1008 htp.p('</td>');
1009 htp.p('</tr>');
1010
1011 end if; -- P = r.responsibility_id
1012
1013 end loop;
1014
1015 htp.p('<tr><td colspan=3><img src="/OA_MEDIA/FNDINVDT.gif" width=8 height=12></td></tr>');
1016 htp.p('</table>');
1017
1018 htp.p('</td></tr></table>');
1019
1020 htp.p('<!- Vertical Divider ->');
1021 htp.p('<td width="1"><img src="/OA_MEDIA/FNDINVDT.gif" width=8 height=12></td>');
1022 htp.p('<td width="1"><img src="/OA_MEDIA/FNDINVDT.gif" width=8 height=12></td>');
1023 htp.p('<td bgcolor="'||l_toolbar_color||'" width="1" cellpadding=0 cellspacing=0><img src="/OA_MEDIA/FNDINVDT.gif" width=1></td>');
1024
1025
1026 htp.p('<!- Right Column ->');
1027 htp.p('<td valign=top align=left width="99%">');
1028 htp.p('<table border=0 cellspacing=0 cellpadding=0 width="100%">');
1029
1030 for i in 1..g_list.LAST loop -- functions
1031
1032 if g_list(i).prompt is not null -- null prompt
1033 then
1034 if g_list(i).type = 'MENU' -- menu type
1035 then
1036 if g_list(i+1).type <> 'MENU'
1037 then
1038 htp.p('<tr>');
1039 htp.p('<td>');
1040 icx_plug_utilities.banner(g_list(i).prompt);
1041 htp.p('</td>');
1042 htp.p('</tr><tr><td><font size=-2><BR></font></td>');
1043 htp.p('</tr>');
1044 end if;
1045
1046
1047 else
1048 htp.p('<tr>');
1049 htp.p('<td align=left>');
1050 htp.p('&'||'nbsp<image src="/OA_MEDIA/FNDWATHS.gif" alt="'||icx_util.replace_alt_quotes(g_list(i).description)||'">');
1051 htp.p('<font face="Arial" size=2><b>');
1052 if substr(g_list(i).web_html_call,1,10) = 'javascript' -- javascript
1053 then
1054 l_url := replace(g_list(i).web_html_call,'"','''');
1055 l_url := replace(l_url,'[RESPONSIBILITY_ID]',g_list(i).responsibility_id);
1056 l_url := replace(l_url,'[PLSQL_AGENT]',icx_plug_utilities.getPLSQLagent);
1057 l_url := '<A HREF="'||l_url||'" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(g_list(i).description)||''';return true">'||g_list(i).prompt||'</b></font></A>';
1058
1059 htp.p(l_url);
1060
1061 else
1062 -- 2903730 nlbarlow
1063 if g_list(i).FUNCTION_TYPE = 'WWK'
1064 then
1065 l_url := icx_portlet.createExecLink
1066 (p_application_id => g_list(i).resp_appl_id,
1067 p_responsibility_id => g_list(i).responsibility_id,
1068 p_security_group_id => g_list(i).security_group_id,
1069 p_function_id => g_list(i).function_id,
1070 p_link_name => g_list(i).prompt,
1071 p_url_only => 'Y');
1072
1073 l_url := 'javascript:top.main.icx_nav_window('''||g_list(i).FUNCTION_TYPE||''','''||l_url||''', '''||icx_util.replace_quotes(g_list(i).PROMPT)||''')';
1074
1075 htp.anchor(curl => l_url,
1079 else if g_list(i).FUNCTION_TYPE = 'WWW' -- bug 3764537
1076 ctext => g_list(i).prompt,
1077 cattributes => 'onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(g_list(i).description)||''';return true"');
1078
1080 then
1081
1082 l_url := icx_portlet.createExecLink
1083 (p_application_id => g_list(i).resp_appl_id,
1084 p_responsibility_id => g_list(i).responsibility_id,
1085 p_security_group_id => g_list(i).security_group_id,
1086 p_function_id => g_list(i).function_id,
1087 p_link_name => g_list(i).prompt,
1088 p_url_only => 'N');
1089 htp.p(l_url);
1090
1091 -- end bug 3764537
1092
1093 else
1094 l_url := icx_portlet.createExecLink
1095 (p_application_id => g_list(i).resp_appl_id,
1096 p_responsibility_id => g_list(i).responsibility_id,
1097 p_security_group_id => g_list(i).security_group_id,
1098 p_function_id => g_list(i).function_id,
1099 p_link_name => g_list(i).prompt,
1100 p_url_only => 'N',
1101 p_parameters=> 'OAFMID=' || to_char(g_list(i).parent_menu_id) || '&OAPB=_OAFMID' ); -- bug 3456465
1102
1103 htp.p(l_url);
1104 end if;
1105 end if;
1106 /*
1107 if ( substr(icx_sec.g_mode_code,1,3) = '115' OR
1108 icx_sec.g_mode_code = 'SLAVE')
1109 then
1110 IF ((g_list(i).FUNCTION_TYPE = 'WWK') OR (g_list(i).FUNCTION_TYPE = 'FORM')) THEN
1111 l_url := 'javascript:top.main.icx_nav_window('''||g_list(i).FUNCTION_TYPE||''','''||l_url||''', '''||icx_util.replace_quotes(g_list(i).PROMPT)||''')';
1112 END IF;
1113 else
1114 IF ((g_list(i).FUNCTION_TYPE = 'WWK') OR (g_list(i).FUNCTION_TYPE = 'FORM')) THEN
1115 l_url := 'javascript:icx_nav_window('''||g_list(i).FUNCTION_TYPE||''','''||l_url||''', '''||icx_util.replace_quotes(g_list(i).PROMPT)||''')';
1116 END IF;
1117 end if;
1118 */
1119 end if;
1120
1121 /*
1122 IF ((g_list(i).FUNCTION_TYPE = 'WWK') OR (g_list(i).FUNCTION_TYPE = 'FORM')) THEN
1123 htp.anchor(curl => l_url,
1124 ctext => g_list(i).prompt,
1125 cattributes => 'onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(g_list(i).description)||''';return true"');
1126 ELSE
1127 htp.anchor2(curl => l_url,
1128 ctext => g_list(i).prompt,
1129 cattributes => 'onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(g_list(i).description)||''';return true"',
1130 ctarget => '_top');
1131 END IF;
1132 */
1133
1134
1135 htp.p('</td>');
1136 htp.p('</tr>');
1137 if i+1 = g_list.COUNT
1138 then
1139 htp.p('<tr><td><BR></td></tr>');
1140
1141 else
1142 if g_list(i+1).type = 'MENU'
1143 then
1144 htp.p('<tr><td><BR></td></tr>');
1145
1146 end if;
1147 end if;
1148 end if; -- menu type
1149 end if; -- null prompt
1150 end loop; -- functions
1151
1152
1153 htp.p('</table>');
1154
1155 if l_url is null
1156 then
1157
1158 fnd_message.set_name('FND','FND_APPSNAV_NO_AVAIL_APPS');
1159 c_error_msg := fnd_message.get;
1160
1161 htp.p('<font size=-2></font>');
1162 htp.p('</b>');
1163 htp.p('<font face="Arial" size=2><b>'||c_error_msg);
1164
1165 else
1166
1167 htp.p('</tr>');
1168
1169 htp.p('</table>');
1170
1171 --htp.p('<script>'||substr(l_url,12)||'</script>');--mputman debug
1172 end if; --icx_sec.validatesession
1173
1174 end if; -- icx_sec.g_mode_code in ('115J', '115P');
1175
1176 --added end if;
1177 end if;
1178
1179
1180
1181 exception
1182 when others then
1183 -- htp.p(SQLERRM);
1184 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
1185 c_error_msg := fnd_message.get;
1186 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
1187
1188 end;
1189
1190
1191 procedure Navigate(p_session_id pls_integer,
1192 p_plug_id pls_integer,
1193 p_display_name varchar2,
1194 p_delete VARCHAR2) is
1195
1196 l_object object;
1197 l_url varchar2(4000);
1198 l_title varchar2(80);
1199 l_php_mode varchar2(30);
1200 l_prompts icx_util.g_prompts_table;
1201 l_agent varchar2(80);
1202 l_responsibility_name varchar2(240);
1203 l_encrypted_session_id varchar2(240);
1204 l_target varchar2(30);
1205 l_function_id NUMBER;
1206 c_error_msg varchar2(240);
1207
1208 cursor responsibilities_W is
1209 select distinct a.responsibility_id,
1210 a.responsibility_name,
1211 a.description,
1212 a.responsibility_key,
1213 b.responsibility_application_id,
1214 fsg.SECURITY_GROUP_NAME,
1215 fsg.SECURITY_GROUP_ID,
1216 fsg.security_group_key,
1217 fa.application_short_name,
1218 m.menu_id,
1219 m.type,
1220 a.version
1221 from FND_SECURITY_GROUPS_VL fsg,
1222 fnd_responsibility_vl a,
1223 FND_USER_RESP_GROUPS b,
1224 FND_APPLICATION fa,
1225 FND_MENUS m
1226 where b.user_id = icx_sec.g_user_id
1227 AND m.menu_id = a.menu_id
1228 and version in ('4','W')
1232 and b.RESPONSIBILITY_application_id = a.application_id
1229 and b.start_date <= sysdate
1230 and (b.end_date is null or b.end_date > sysdate)
1231 and b.RESPONSIBILITY_id = a.responsibility_id
1233 and a.application_id = fa.application_id
1234 and a.start_date <= sysdate
1235 and (a.end_date is null or a.end_date > sysdate)
1236 AND b.SECURITY_GROUP_ID IN (-1, fsg.SECURITY_GROUP_ID)
1237 AND fsg.SECURITY_GROUP_ID >= 0
1238 AND nvl(FND_PROFILE.VALUE('NODE_TRUST_LEVEL'),1) <=
1239 nvl(FND_PROFILE.VALUE_SPECIFIC('APPL_SERVER_TRUST_LEVEL',b.USER_ID,a.RESPONSIBILITY_ID,b.RESPONSIBILITY_APPLICATION_ID),1)
1240 ORDER BY a.RESPONSIBILITY_NAME, fsg.SECURITY_GROUP_NAME;
1241
1242 begin
1243
1244 if p_delete = 'Y'
1245 then
1246 l_agent := l_agent;
1247 elsif icx_sec.validatePlugSession(p_plug_id,p_session_id)
1248 then
1249 /*
1250 ** The agent must have the web server in front of it to ensure
1251 ** it works in ie javascript. The problem is if your running the
1252 ** old style OBIS mode, you'll get an extra slash from
1253 ** icx_plug_utilities.getPLSQLagent. Will remove here.
1254 */
1255
1256 if (substr(icx_plug_utilities.getPLSQLagent, 1, 1) = '/') then
1257
1258 l_agent := FND_WEB_CONFIG.WEB_SERVER||
1259 substr(icx_plug_utilities.getPLSQLagent,2);
1260
1261 else
1262
1263 l_agent := FND_WEB_CONFIG.WEB_SERVER||icx_plug_utilities.getPLSQLagent;
1264
1265 end if;
1266
1267 icx_util.getprompts(601, 'ICX_OBIS_NAVIGATE', l_title, l_prompts);
1268
1269 l_php_mode := fnd_profile.value('APPLICATIONS_HOME_PAGE');
1270
1271 if l_prompts.COUNT = 7 -- remove once seeddate available
1272 then
1273 l_prompts(6) := '';
1274 l_prompts(7) := '';
1275 end if;
1276
1277 htp.p('<table border=0 cellspacing=0 cellpadding=0 width=100%>');
1278 htp.p('<tr><td>');
1279 icx_plug_utilities.plugbanner(nvl(p_display_name,l_prompts(1)),'','FNDNAVIG.gif');
1280 htp.p('</td></tr>');
1281
1282 htp.p('<tr><td><font size=-2><BR></font></td></tr>');
1283
1284 htp.p('<tr><td>');
1285 htp.p('<table border=0 cellspacing=0 cellpadding=0 width=100%>');
1286
1287 if ( substr(icx_sec.g_mode_code,1,3) = '115' OR
1288 icx_sec.g_mode_code = 'SLAVE')
1289 then
1290 l_target := '_self';
1291 else
1292 l_target := '_top';
1293 end if;
1294
1295 for r in responsibilities_W loop
1296
1297 if security_group(r.responsibility_id, r.responsibility_application_id)
1298 then
1299 l_responsibility_name := r.responsibility_name||', '||r.security_group_name;
1300 else
1301 l_responsibility_name := r.responsibility_name;
1302 end if;
1303
1304 htp.p('<tr>');
1305 htp.p('<td align="left" valign="top" NOWRAP>');
1306 htp.p('<font face="Arial" size=2>');
1307 --Put IF logic here for bug 2314636 --mputman
1308 IF r.type='HOMEPAGE' THEN
1309 BEGIN
1310 SELECT function_id
1311 INTO l_function_id
1312 FROM fnd_menu_entries_vl
1313 WHERE menu_id=r.menu_id
1314 AND FUNCTION_ID is not null
1315 AND ROWNUM=1
1316 ORDER BY entry_sequence;
1317 END;
1318
1319 if l_php_mode = 'PHP_FWK'
1320 then
1321 l_url := icx_portlet.createExecLink
1322 (p_application_id => r.responsibility_application_id,
1323 p_responsibility_id => r.responsibility_id,
1324 p_security_group_id => r.security_group_id,
1325 p_function_id => l_function_id,
1326 p_link_name => l_responsibility_name,
1327 p_url_only => 'N');
1328
1329 htp.p('<image src="/OA_MEDIA/tree_document.gif" alt="'||icx_util.replace_alt_quotes(r.description)||'">');
1330 htp.p(l_url);
1331 else
1332 htp.p('<image src="/OA_MEDIA/FNDWATHS.gif" height=18 width=18 alt="'||icx_util.replace_alt_quotes(r.description)||'">');
1333
1334 htp.anchor(curl => l_agent||'OracleSSWA.Execute?E='||icx_call.encrypt(r.responsibility_application_id||'*'||r.responsibility_id||'*'||r.security_group_id||'*'||l_function_id||'**]'),
1335 ctext => l_responsibility_name,cattributes => 'TARGET="_top" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(r.description)||''';return true"');
1336 end if;
1337
1338 ELSE
1339
1340 if l_php_mode = 'PHP_FWK'
1341 then
1342 select FUNCTION_ID
1343 into l_function_id
1344 from FND_FORM_FUNCTIONS
1345 where FUNCTION_NAME = 'FND_NAVIGATE_PAGE';
1346
1347 l_url := icx_portlet.createExecLink
1348 (p_application_id => r.responsibility_application_id,
1349 p_responsibility_id => r.responsibility_id,
1350 p_security_group_id => r.security_group_id,
1351 p_function_id => l_function_id,
1352 p_parameters => 'navRespId='||r.responsibility_id||'&'||'navRespAppId='||r.responsibility_application_id||'&'||'navSecGrpId='||r.security_group_id,
1353 p_link_name => l_responsibility_name,
1354 p_url_only => 'N');
1355
1356 htp.p('<image src="/OA_MEDIA/tree_folder.gif" alt="'||icx_util.replace_alt_quotes(r.description)||'">');
1357
1358 htp.p(l_url);
1359
1360 elsif r.version = '4'
1361 then
1362 htp.p('<image src="/OA_MEDIA/FNDWATHS.gif" height=18 width=18 alt="'||icx_util.replace_alt_quotes(r.description)||'">');
1363
1364 l_url := 'javascript:top.main.icx_nav_window2(''WWK'', '''||l_agent|| 'fnd_icx_launch.runforms?ICX_TICKET=&''';
1365
1369 ||''','''||icx_util.replace_quotes(l_responsibility_name)||''')';
1366 l_url := l_url||','''||wfa_html.conv_special_url_chars(r.application_short_name)
1367 ||''','''||wfa_html.conv_special_url_chars(r.responsibility_key)
1368 ||''','''||wfa_html.conv_special_url_chars(r.security_group_key)
1370
1371 htp.anchor(curl => l_url,
1372 ctext => l_responsibility_name,
1373 cattributes => 'TARGET="_top" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(r.description)||''';return true"');
1374
1375 else
1376 htp.p('<image src="/OA_MEDIA/FNDWATHS.gif" height=18 width=18 alt="'||icx_util.replace_alt_quotes(r.description)||'">');
1377
1378 htp.anchor(curl => l_agent||'OracleNavigate.Responsibility?P='||icx_call.encrypt2(r.responsibility_id)||'&'||'D='||wfa_html.conv_special_url_chars(p_plug_id)||'&'||'S='||r.security_group_id||'&'||'tab_context_flag=OFF'||'&'||'M=
1379 9999',
1380 ctext => l_responsibility_name,
1381 cattributes => 'TARGET="'||l_target||'" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(r.description)||''';return true"');
1382 end if;
1383
1384 END IF;
1385 htp.p('</td></tr>');
1386
1387 end loop;
1388
1389 htp.p('</td></tr></table>');
1390 htp.p('</TABLE>');
1391
1392 end if;
1393
1394 exception
1395 when others then
1396 -- htp.p(SQLERRM);
1397 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
1398 c_error_msg := fnd_message.get;
1399 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
1400
1401
1402 end;
1403
1404 procedure Favorites(p_session_id pls_integer,
1405 p_plug_id pls_integer,
1406 p_display_name varchar2,
1407 p_delete varchar2) is
1408
1409 l_object object;
1410 l_url varchar2(2000); --changed from 240 to 2000 bug#1333631, mputman
1411 l_title varchar2(100);
1412 l_prompts icx_util.g_prompts_table;
1413 l_agent varchar2(80);
1414 c_error_msg varchar2(240);
1415
1416 cursor Favorites is
1417 select RESPONSIBILITY_APPLICATION_ID,
1418 RESPONSIBILITY_ID,
1419 a.SECURITY_GROUP_ID,
1420 PROMPT,
1421 DESCRIPTION,
1422 a.FUNCTION_ID,
1423 FUNCTION_TYPE,
1424 URL,
1425 WEB_HTML_CALL
1426 from FND_FORM_FUNCTIONS_VL b,
1427 ICX_CUSTOM_MENU_ENTRIES a
1428 where USER_ID = icx_sec.g_user_id
1429 and PLUG_ID = p_plug_id
1430 and b.FUNCTION_ID(+) = a.FUNCTION_ID
1431 and ( RESPONSIBILITY_ID in
1432 (select responsibility_id from
1433 icx_custom_menu_entries
1434 where USER_ID=icx_sec.g_user_id
1435 intersect
1436 select RESPONSIBILITY_ID from fnd_user_resp_groups where
1437 USER_ID=icx_sec.g_user_id
1438 and
1439 start_date <= sysdate
1440 and
1441 (end_date is null or end_date > sysdate)
1442 ) or responsibility_id=0)
1443 order by DISPLAY_SEQUENCE;
1444 begin
1445
1446 if p_delete = 'Y'
1447 then
1448 begin
1449 delete ICX_CUSTOM_MENU_ENTRIES
1450 where USER_ID = icx_sec.g_user_id
1451 and PLUG_ID = p_plug_id;
1452 exception
1453 when others then
1454 l_agent := l_agent;
1455 end;
1456
1457 elsif icx_sec.validatePlugSession(p_plug_id,p_session_id)
1458 then
1459 /*
1460 ** The agent must have the web server in front of it to ensure
1461 ** it works in ie javascript. The problem is if your running the
1462 ** old style OBIS mode, you'll get an extra slash from
1463 ** icx_plug_utilities.getPLSQLagent. Will remove here.
1464 */
1465 if (substr(icx_plug_utilities.getPLSQLagent, 1, 1) = '/') then
1466
1467 l_agent := FND_WEB_CONFIG.WEB_SERVER||
1468 substr(icx_plug_utilities.getPLSQLagent,2);
1469
1470 else
1471
1472 l_agent := FND_WEB_CONFIG.WEB_SERVER||icx_plug_utilities.getPLSQLagent;
1473
1474 end if;
1475
1476 icx_util.getprompts(601, 'ICX_OBIS_NAVIGATE', l_title, l_prompts);
1477
1478 htp.p('<!-- Favorites Plug -->');
1479
1480 htp.p('<table border=0 cellspacing=0 cellpadding=0 width=100%>');
1481 htp.p('<tr><td>');
1482 icx_plug_utilities.plugbanner(nvl(p_display_name,l_prompts(1)),l_agent||'OracleNavigate.customizeFavorites?X='||icx_call.encrypt2(p_plug_id,p_session_id), 'FNDNAVIG.gif');
1483 htp.p('</td></tr>');
1484
1485 htp.p('<tr><td><font size=-2><BR></font></td></tr>');
1486
1487 htp.p('<tr><td>');
1488 htp.p('<table border=0 cellspacing=0 cellpadding=0 width=100%>');
1489
1490 for f in Favorites loop
1491
1492 htp.p('<tr>');
1493 if f.URL is null
1494 then
1495 if substr(f.WEB_HTML_CALL,1,10) = 'javascript'
1496 then
1497 l_url := replace(f.WEB_HTML_CALL,'"','''');
1498 l_url := replace(l_url,'[RESPONSIBILITY_ID]',f.responsibility_id);
1499 l_url := replace(l_url,'[PLSQL_AGENT]',l_agent);
1500 l_url := '<A HREF="'||l_url||'" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(f.description)||''';return true">'||f.prompt||'</A>';
1501 else
1502 l_url := icx_portlet.createExecLink
1503 (p_application_id => f.responsibility_application_id,
1504 p_responsibility_id => f.responsibility_id,
1505 p_security_group_id => f.security_group_id,
1506 p_function_id => f.function_id,
1510 end if;
1507 p_link_name => f.prompt,
1508 p_url_only => 'N');
1509
1511
1512 -- Bug 3240178 htp.p('<td align="left" valign="top" NOWRAP>');
1513
1514 htp.p('<td align="left" valign="top" NOWRAP><image src="/OA_MEDIA/FNDWATHS.gif" height=18 width=18 alt="'||icx_util.replace_alt_quotes(f.prompt)||'">');
1515
1516 htp.p('<font face="Arial" size=2>');
1517 htp.p(l_url);
1518 else
1519 if instr(upper(f.URL),'HTTP') > 0
1520 then
1521 l_url := f.URL;
1522 elsif instr(f.URL, 'file://') > 0
1523 then
1524 l_url := f.URL;
1525 else
1526 l_url := 'http://'||f.URL; -- This http: OK, nlbarlow
1527 end if;
1528
1529 htp.p('<td align="left" valign="top" NOWRAP>');
1530 htp.p('<image src="/OA_MEDIA/FNDWATHS.gif" height=18 width=18 alt="'||f.prompt||'">');
1531 htp.p('<font face="Arial" size=2>');
1532 if ( substr(icx_sec.g_mode_code,1,3) = '115' OR
1533 icx_sec.g_mode_code = 'SLAVE')
1534 then
1535 htp.anchor(curl => 'javascript:top.main.icx_nav_window(''WWK'','''||l_url||''','''||f.PROMPT||''')',
1536 ctext => f.PROMPT,
1537 cattributes => ' onMouseOver="window.status='''||l_url||''';return true"');
1538
1539 else
1540 htp.anchor(curl => 'javascript:icx_nav_window(''WWW'','''||l_url||''','''||f.PROMPT||''')',
1541 ctext => f.PROMPT,
1542 cattributes => ' onMouseOver="window.status='''||l_url||''';return true"');
1543 end if;
1544 end if;
1545
1546 htp.p('</b></td></tr>');
1547
1548 end loop;
1549
1550 htp.p('</td></tr></table>');
1551 htp.p('</TABLE>');
1552
1553 end if;
1554 exception
1555 when others then
1556 -- htp.p(SQLERRM);
1557 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
1558 c_error_msg := fnd_message.get;
1559 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
1560
1561 end;
1562
1563 procedure FavoriteCreate is
1564
1565 l_title varchar2(80);
1566 l_prompts icx_util.g_prompts_table;
1567 c_error_msg varchar2(240);
1568
1569 begin
1570
1571 if(icx_sec.validateSession)
1572 then
1573 icx_util.getprompts(601, 'ICX_OBIS_FAVORITE_CREATE', l_title, l_prompts);
1574
1575 htp.p('<html>');
1576 htp.p('<head>');
1577 htp.p('<title>'||l_title||'</title>');
1578 htp.p('</head>');
1579
1580 if (icx_sec.g_mode_code in ('115J', '115P', 'SLAVE')) then
1581 htp.p('<body bgcolor= #FFFFFF onload="Javascrpit:window.focus()">');
1582 else
1583 htp.p('<body bgcolor="'||icx_plug_utilities.bgcolor||'" onload="Javascrpit:window.focus()">');
1584 end if;
1585
1586 htp.p('<SCRIPT LANGUAGE="JavaScript">');
1587
1588 htp.p('function saveCreate() {
1589
1590 if (document.createFavorite.LOCATION.value == "")
1591 alert("'||l_prompts(1)||'");
1592 else
1593 if (document.createFavorite.NAME.value == "")
1594 alert("'||l_prompts(2)||'");
1595 else {
1596 var end=parent.opener.parent.document.Favorites.C.length-1;
1597 var totext=document.createFavorite.NAME.value;
1598 var tovalue="0*0*0*X" + document.createFavorite.LOCATION.value + "*WWW";
1599
1600 if (end > 0)
1601 if (parent.opener.parent.document.Favorites.C.options[end-1].value == "")
1602 end = end - 1;
1603
1604 parent.opener.parent.document.Favorites.C.options[end].text = totext;
1605 parent.opener.parent.document.Favorites.C.options[end].value = tovalue;');
1606 if instr(owa_util.get_cgi_env('HTTP_USER_AGENT'),'MSIE') = 0
1607 then
1608 htp.p('parent.opener.parent.history.go(0);');
1609 end if;
1610 htp.p('window.close();
1611 };
1612 }');
1613
1614 htp.p('</SCRIPT>');
1615
1616 htp.formOpen('javascript:saveCreate()','POST','','','NAME="createFavorite"')
1617 ;
1618 htp.tableOpen;
1619 htp.tableRowOpen;
1620 htp.tableData(l_prompts(1), 'RIGHT');
1621 htp.tableData(htf.formText(cname => 'LOCATION',
1622 csize => '35',
1623 cmaxlength => '2000'), 'LEFT');
1624 htp.tableRowClose;
1625 htp.tableRowOpen;
1626 htp.tableData(l_prompts(2), 'RIGHT');
1627 htp.tableData(htf.formText(cname => 'NAME',
1628 csize => '35',
1629 cmaxlength => '240'), 'LEFT');
1630 htp.tableRowClose;
1631 htp.tableRowOpen;
1632 htp.p('<td align=center colspan=2>');
1633 htp.p('<table width="100%"><tr>');
1634 htp.p('<td align="right" width="50%">');
1635 icx_plug_utilities.buttonLeft(l_prompts(3),'javascript:saveCreate()','FNDJLFOK.gif');
1636 htp.p('</td><td align="right" width="50%">');
1637 icx_plug_utilities.buttonRight(l_prompts(4),'javascript:window.close()','FNDJLFCN.gif');
1638 htp.p('</td></tr></table>');
1639 htp.p('</td>');
1640 htp.tableRowClose;
1641 htp.tableClose;
1642 htp.formClose;
1643
1644 htp.bodyClose;
1645 htp.htmlClose;
1646
1647 end if;
1648
1649 exception
1650 when others then
1651 -- htp.p(SQLERRM);
1652 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
1653 c_error_msg := fnd_message.get;
1654 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
1655
1656
1657 end;
1658
1659 procedure FavoriteRename(item_name VARCHAR2) is
1660 -- added item name to pass get location 976843 mputman
1661 l_title varchar2(80);
1662 l_prompts icx_util.g_prompts_table;
1663 l_location VARCHAR2(2000);
1664 c_error_msg varchar2(240);
1665
1666 begin
1667
1668 if(icx_sec.validateSession)
1669 then
1670 icx_util.getprompts(601, 'ICX_OBIS_FAVORITE_RENAME', l_title, l_prompts);
1671
1672
1673 htp.p('<html>');
1674 htp.p('<head>');
1675 htp.p('<title>'||l_title||'</title>');
1676 htp.p('</head>');
1677 if (icx_sec.g_mode_code in ('115J', '115P', 'SLAVE')) then
1678 htp.p('<body bgcolor= #FFFFFF onload="Javascrpit:window.focus()">');
1679 else
1680 htp.p('<body bgcolor="'||icx_plug_utilities.bgcolor||'" onload="Javascrpit:window.focus()">');
1681 end if;
1682
1683 htp.p('<SCRIPT LANGUAGE="JavaScript">');
1684 l_location:=(substr(item_name,8,length(item_name)-11)); -- used to get location URL without codes 976843 mputman
1685 htp.p('var temp=parent.opener.parent.document.Favorites.C.selectedIndex;
1686 var l_location=parent.opener.parent.document.Favorites.C.options[temp].value;
1687 var fav_type=l_location.substring(0,7);
1688 var l_location=l_location.substring(7,(l_location.length-4));
1689 ');
1690
1691 htp.p('function loadName() {
1692 document.renameFavorite.NAME.value = parent.opener.parent.document.Favorites.C.options[temp].text;
1693 document.renameFavorite.LOCATION.value = l_location
1694 }'); --added code to show location in text box 976843 mputman
1695
1696 htp.p('function saveRename() {
1697 var temp=parent.opener.parent.document.Favorites.C.selectedIndex;
1698
1699 if (document.renameFavorite.LOCATION.value == "")
1700 alert("'||l_prompts(5)||'");
1701 else
1702 if (document.renameFavorite.NAME.value == "")
1703 alert("'||l_prompts(1)||'");
1704 else {
1705 parent.opener.parent.document.Favorites.C.options[temp].text = document.renameFavorite.NAME.value;');-- added code to show alert if location is null 976843 mputman
1706 IF (item_name='0*0*0*X') THEN -- prevents updating location for non custom locations 976843 mputman
1707 htp.p('parent.opener.parent.document.Favorites.C.options[temp].value="0*0*0*X" + document.renameFavorite.LOCATION.value + "*WWW";'); --wrapps location in codes 976843 mputman
1708 END IF;
1709 if instr(owa_util.get_cgi_env('HTTP_USER_AGENT'),'MSIE') = 0
1710 then
1711 htp.p('parent.opener.parent.history.go(0);');
1712 end if;
1713 htp.p('window.close();
1714 };
1715 }');
1716
1717 htp.p('</SCRIPT>');
1718
1719 htp.formOpen('javascript:saveRename()','POST','','','NAME="renameFavorite"');
1720 htp.tableOpen;
1721 htp.tableRowOpen;
1722 htp.tableData(l_prompts(1), 'RIGHT');
1723 htp.tableData(htf.formText(cname => 'NAME',
1724 csize => '35',
1725 cmaxlength => '50'), 'LEFT');
1726 htp.tableRowClose;
1727 htp.tableRowOpen;
1728 IF (substr(item_name,1,7)='0*0*0*X') THEN -- only show this if it is a custom URL 976843 mputman
1729 htp.tableData(l_prompts(5), 'RIGHT');
1730 htp.tableData(htf.formText(cname => 'LOCATION',
1731 csize => '35',
1732 cmaxlength => '2000'), 'LEFT');
1733 ELSE -- if not a custom URL... still need this for the save function to work 976843 mputman
1734 htp.tableData(' ', 'RIGHT'); -- add text box but save NULL value 976843 mputman
1735 htp.tableData(htf.formHidden(cname => 'LOCATION'),'LEFT'); -- hidden text box 976843 mputman
1736
1737 END IF;
1738 htp.tableRowClose;
1739 htp.tableRowOpen;
1740 htp.p('<td align=center colspan=2>');
1741 htp.p('<table width="100%"><tr>');
1742 htp.p('<td align="right" width="50%">');
1743 icx_plug_utilities.buttonLeft(l_prompts(2),'javascript:saveRename()','FNDJLFOK.gif');
1744 htp.p('</td><td align="right" width="50%">');
1745 icx_plug_utilities.buttonRight(l_prompts(3),'javascript:window.close()','FNDJLFCN.gif');
1746 htp.p('</td></tr></table>');
1747 htp.p('</td>');
1748 htp.tableRowClose;
1749 htp.tableClose;
1750 htp.formClose;
1751
1752 htp.p('<SCRIPT LANGUAGE="JavaScript">loadName();</SCRIPT>');
1753
1754 htp.bodyClose;
1755 htp.htmlClose;
1756
1757 end if;
1758
1759 exception
1760 when others then
1761 -- htp.p(SQLERRM);
1762 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
1763 c_error_msg := fnd_message.get;
1764 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
1765
1766
1767 end;
1768
1769 procedure customizeFavorites(X in pls_integer) is
1770
1771 l_plug_id pls_integer;
1772 l_counter pls_integer;
1773 l_count pls_integer;
1774 l_object object;
1775 l_title varchar2(80);
1776 l_favorite varchar2(2000); --changed from 80 to 2000 bug#1333631, mputman
1777 l_prompts icx_util.g_prompts_table;
1778 l_message varchar2(2000);
1779 l_responsibilities icx_sec.g_char_tbl_type;
1780 l_resp_appl_ids icx_sec.g_num_tbl_type;
1781 l_responsibility_ids icx_sec.g_num_tbl_type;
1782 l_security_group_ids icx_sec.g_num_tbl_type;
1783 l_initialize varchar2(80);
1784 r_initialize varchar2(80);
1785 l_nbsp varchar2(240);
1786 l_history varchar2(240);
1787 l_resp_counter number;
1788 l_prompt_length number;
1789 c_error_msg varchar2(240);
1793 a.responsibility_name,
1790
1791 cursor responsibilities is
1792 select distinct a.responsibility_id,
1794 a.application_id,
1795 b.security_group_id,
1796 fsg.SECURITY_GROUP_NAME
1797 from FND_SECURITY_GROUPS_VL fsg,
1798 fnd_responsibility_vl a,
1799 FND_USER_RESP_GROUPS b
1800 where b.user_id = icx_sec.g_user_id
1801 and b.start_date <= sysdate
1802 and (b.end_date is null or b.end_date > sysdate)
1803 and b.RESPONSIBILITY_id = a.responsibility_id
1804 and b.RESPONSIBILITY_application_id = a.application_id
1805 and a.version IN ('W')
1806 and a.start_date <= sysdate
1807 and (a.end_date is null or a.end_date > sysdate)
1808 AND b.SECURITY_GROUP_ID IN (-1, fsg.SECURITY_GROUP_ID)
1809 AND fsg.SECURITY_GROUP_ID >= 0
1810 AND nvl(FND_PROFILE.VALUE('NODE_TRUST_LEVEL'),1) <=
1811 nvl(FND_PROFILE.VALUE_SPECIFIC('APPL_SERVER_TRUST_LEVEL',b.USER_ID,a.RESPONSIBILITY_ID,b.RESPONSIBILITY_APPLICATION_ID),1)
1812 ORDER BY a.RESPONSIBILITY_NAME, fsg.SECURITY_GROUP_NAME;
1813
1814 cursor Favorites is
1815 select PROMPT,
1816 RESPONSIBILITY_APPLICATION_ID,
1817 RESPONSIBILITY_ID,
1818 SECURITY_GROUP_ID,
1819 FUNCTION_ID,
1820 FUNCTION_TYPE,
1821 URL
1822 from ICX_CUSTOM_MENU_ENTRIES
1823 where USER_ID = icx_sec.g_user_id
1824 and PLUG_ID = l_plug_id
1825 order by DISPLAY_SEQUENCE;
1826
1827 begin
1828
1829 if(icx_sec.validateSession)
1830 then
1831 l_plug_id := icx_call.decrypt2(X);
1832 icx_util.getprompts(601, 'ICX_OBIS_FAVORITES', l_title, l_prompts);
1833 l_title := icx_plug_utilities.getPlugTitle(l_plug_id);
1834 l_nbsp := '&'||'nbsp;';
1835 l_initialize := '1234567890123456789012345678901234567890';
1836 r_initialize := '1234567890123456789012345678901234567890';
1837
1838 --bug 2644185
1839 -- if instr(owa_util.get_cgi_env('HTTP_USER_AGENT'),'MSIE') > 0
1840 -- then
1841
1842 l_history := '';
1843
1844 -- else
1845 -- l_history := 'history.go(0);';
1846 -- end if;
1847 --bug 2644185
1848
1849 htp.p('<html>');
1850 htp.p('<head>');
1851 htp.p('<title>'||l_title||'</title>');
1852 htp.p('</head>');
1853
1854 if (icx_sec.g_mode_code in ('115J', '115P', 'SLAVE')) then
1855 htp.p('<body bgcolor= "#CCCCCC">');
1856 else
1857 htp.p('<body bgcolor="'||icx_plug_utilities.bgcolor||'">');
1858 end if;
1859
1860 htp.p('<SCRIPT LANGUAGE="JavaScript">');
1861
1862 htp.p('function loadFrom() {
1863 var temp=document.Favorites.A.selectedIndex;
1864 var resp=document.Favorites.A[temp].value;
1865 for (var i=0; i<document.Favorites.B.length; i++)
1866 document.Favorites.B.options[i] = new Option("","");');
1867
1868 l_object.type := 'RESPONSIBILITY';
1869 l_object.parent_menu_id := '';
1870 l_object.entry_sequence := '';
1871 l_object.menu_explode := 'Y';
1872 l_object.function_explode := 'Y';
1873 l_object.level := 0;
1874 l_resp_counter := 0;
1875 l_prompt_length := 0;
1876 for r in responsibilities loop
1877 l_counter := 0;
1878 g_list := g_nulllist;
1879 l_object.responsibility_id := r.responsibility_id;
1880 l_object.resp_appl_id := r.application_id;
1881 l_object.security_group_id := r.security_group_id;
1882 listResponsibility(p_object => l_object,
1883 p_entries => TRUE,
1884 p_executable => FALSE);-- pass in defaults (GSCC)
1885 if g_list.COUNT > 1
1886 then
1887 if security_group(r.responsibility_id, r.application_id)
1888 then
1889 l_responsibilities(l_resp_counter) := r.responsibility_name||', '||r.security_group_name;
1890 else
1891 l_responsibilities(l_resp_counter) := r.responsibility_name;
1892 end if;
1893 l_resp_appl_ids(l_resp_counter) := r.application_id;
1894 l_responsibility_ids(l_resp_counter) := r.responsibility_id;
1895 l_security_group_ids(l_resp_counter) := r.security_group_id;
1896 l_resp_counter := l_resp_counter + 1;
1897 htp.p('if (resp == "'||r.application_id||'*'||r.responsibility_id||'*'||r.security_group_id||'") {');
1898 for i in 1..g_list.LAST loop
1899 if g_list(i).type = 'FUNCTION'
1900 then
1901 htp.p('document.Favorites.B.options['||l_counter||'] = new Option("'||g_list(i).prompt||'","'||g_list(i).function_id||'*'||g_list(i).function_type||'");');
1902 l_counter := l_counter + 1;
1903 if l_resp_counter = 1
1904 and length(g_list(i).prompt) > l_prompt_length
1905 then
1906 l_prompt_length := length(g_list(i).prompt);
1907 end if;
1908 end if;
1909 end loop;
1910 htp.p('}');
1911 end if; -- g_list.COUNT > 0
1912 end loop;
1913 htp.p('}');
1914 l_initialize := substr(l_initialize,1,l_prompt_length);
1915
1916 fnd_message.set_name('ICX','ICX_OBIS_SELECT_OPTION');
1917 l_message := icx_util.replace_quotes(fnd_message.get);
1918
1919 htp.p('function selectFrom() {
1920 alert("'||l_message||'")
1921 }');
1922
1923 htp.p('function addTo() {
1924 var temp=document.Favorites.B.selectedIndex;
1925
1926 if (temp < 0)
1927 selectFrom();
1928 else {
1929 var end=document.Favorites.C.length;
1930 if (end > 0)
1934 var totext=document.Favorites.B[temp].text;
1931 if (document.Favorites.C.options[end-1].value == "")
1932 end = end - 1;
1933 var resp=document.Favorites.A.selectedIndex;
1935 var tovalue=document.Favorites.A[resp].value + "*" + document.Favorites.B[temp].value;
1936 document.Favorites.C.options[end] = new Option(totext,tovalue);
1937 document.Favorites.C.selectedIndex = end;
1938 '||l_history||'
1939 }
1940 }');
1941
1942 fnd_message.set_name('ICX','ICX_OBIS_SELECT_SELECTION');
1943 l_message := icx_util.replace_quotes(fnd_message.get);
1944
1945 htp.p('function selectTo() {
1946 alert("'||l_message||'")
1947 }');
1948
1949 htp.p('function upTo() {
1950 var temp=document.Favorites.C.selectedIndex;
1951 var end=document.Favorites.C.length;
1952 if (document.Favorites.C.options[end-1].value == "")
1953 end = end - 1;
1954
1955 if (temp < 0)
1956 selectTo();
1957 else
1958 if (temp != 0) {
1959 document.Favorites.C.options[end] = new Option(document.Favorites.C.options[temp].text,document.Favorites.C.options[temp].value);
1960 document.Favorites.C.options[temp] = new Option(document.Favorites.C.options[temp-1].text, document.Favorites.C.options[temp-1].value);
1961 document.Favorites.C.options[temp-1] = new Option(document.Favorites.C.options[end].text,document.Favorites.C.options[end].value);
1962 document.Favorites.C.options[end] = null;
1963 document.Favorites.C.selectedIndex = temp-1;
1964 };
1965 }');
1966
1967 htp.p('function downTo() {
1968 var temp=document.Favorites.C.selectedIndex;
1969 var end=document.Favorites.C.length;
1970 if (document.Favorites.C.options[end-1].value == "")
1971 end = end - 1;
1972
1973 if (temp < 0)
1974 selectTo();
1975 else
1976 if (temp != end-1) {
1977 document.Favorites.C.options[end] = new Option(document.Favorites.C.options[temp].text,document.Favorites.C.options[temp].value);
1978 document.Favorites.C.options[temp] = new Option(document.Favorites.C.options[temp+1].text, document.Favorites.C.options[temp+1].value);
1979 document.Favorites.C.options[temp+1] = new Option(document.Favorites.C.options[end].text,document.Favorites.C.options[end].value);
1980 document.Favorites.C.options[end] = null;
1981 document.Favorites.C.selectedIndex = temp+1;
1982 };
1983 }');
1984
1985 l_message := icx_util.replace_quotes(l_prompts(11))||': ';
1986
1987 htp.p('function deleteTo() {
1988 var temp=document.Favorites.C.selectedIndex;
1989
1990 if (temp < 0)
1991 selectTo();
1992 else {
1993 document.Favorites.C.options[temp] = null;
1994 };
1995 '||l_history||'
1996 }');
1997
1998 htp.p('function open_new_browser(url,x,y){
1999 var attributes = "resizable=yes,scrollbars=yes,toolbar=no,width="+x+",height="+ y;
2000 var new_browser = window.open(url, "new_browser", attributes);
2001 if (new_browser != null) {
2002 if (new_browser.opener == null)
2003 new_browser.opener = self;
2004 new_browser.location.href = url;
2005 }
2006 }');
2007
2008 htp.p('function renameTo() {
2009 var temp=document.Favorites.C.selectedIndex;
2010 var temp2=document.Favorites.C.options[document.Favorites.C.selectedIndex].value;
2011 temp2=temp2.substring(0,7);
2012
2013 if (temp < 0)
2014 selectTo();
2015 else
2016 open_new_browser(''OracleNavigate.FavoriteRename?item_name=''+temp2,400,110);
2017 }'); -- add parameter to send item name to rename box 976843 mputman
2018
2019
2020 htp.p('function createTo() {
2021 var end=document.Favorites.C.length;
2022 document.Favorites.C.options[end] = new Option("","");
2023 open_new_browser(''OracleNavigate.FavoriteCreate'',400,145);
2024 }');
2025
2026 htp.p('function saveFavorites() {
2027 var end=document.Favorites.C.length;
2028
2029 for (var i=0; i<end; i++)
2030 if (document.Favorites.C.options[i].value != "")
2031 document.updateFavorites.X.value = document.updateFavorites.X.value + "+" + document.Favorites.C.options[i].value + "*" + document.Favorites.C.options[i].text;
2032
2033 document.updateFavorites.X.value = document.updateFavorites.X.value + "+";
2034 document.updateFavorites.submit();
2035 }');
2036
2037 icx_admin_sig.help_win_script('ICXCFGPG', null, 'BIS');
2038
2039 htp.p('</SCRIPT>');
2040
2041 icx_plug_utilities.toolbar(p_text => l_title,
2042 p_language_code => icx_sec.g_language_code,
2043 p_disp_help => 'Y',
2044 p_disp_mainmenu => 'N',
2045 p_disp_menu => 'N');
2046
2047 htp.formOpen('OracleNavigate.updateFavorites','POST','','','NAME="updateFavorites"');
2048 htp.formHidden('X');
2049 htp.formHidden('Y',X);
2050 htp.formClose;
2051
2052 fnd_message.set_name('ICX','ICX_CUSTOMIZE_FAVORITES');
2053 l_message := fnd_message.get;
2054
2055 htp.p('<table width="100%" border=0 cellspacing=0 cellpadding=0>');
2056 htp.p('<tr><td width=5%></td><td width=90%><I>'||l_message||'</I></td><td width=5%></td></tr>');
2057 htp.p('</table>');
2058
2059 htp.formOpen('javascript:saveFavorites()','POST','','','NAME="Favorites"');
2060 htp.p('<table width="100%" border=0 cellspacing=0 cellpadding=0>'); -- main
2061 htp.p('<tr><td align=center>');
2062 --Bug 2687577
2063 -- htp.p('<table width="10%" border=0 cellspacing=0 cellpadding=0>'); -- Cell
2064 --
2065 htp.p('<tr><td colspan=2>');
2066 htp.p(l_prompts(1));
2067 htp.p('</td></tr>');
2068 htp.p('<tr><td colspan=2>');
2069 htp.p('<select name="A" onchange="loadFrom();'||l_history||'">');
2070 if l_responsibilities.COUNT > 0
2071 then
2072 for r in l_responsibilities.FIRST..l_responsibilities.LAST loop
2073 htp.formSelectOption(cvalue => l_responsibilities(r),
2074 cattributes => 'VALUE = "'||l_resp_appl_ids(r)||'*'||l_responsibility_ids(r)||'*'||l_security_group_ids(r)||'"');
2075 end loop;
2076 else
2077 htp.formSelectOption(cvalue => '',
2078 cattributes => 'VALUE = ""');
2079 end if;
2080 htp.formSelectClose;
2081 htp.p('</td></tr>');
2082 htp.p('<tr><td>');
2083 htp.p(l_prompts(2));
2084 htp.p('</td><td>');
2085 htp.p(l_prompts(3));
2086 htp.p('</td><td>');
2087 htp.p('<tr><td>');
2088 htp.p('<table border=0 cellspacing=0 cellpadding=0><tr><td>'); -- Full Menu cell
2089 htp.p('<select name="B" size=10>');
2090 htp.formSelectOption(l_initialize);
2091 htp.formSelectClose;
2092 htp.p('<SCRIPT LANGUAGE="JavaScript">loadFrom()</SCRIPT>');
2093 htp.p('</td><td align="left">');
2094 htp.p('<table><tr><td>'); -- Add
2095 htp.p('<A HREF="javascript:addTo();" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(l_prompts(4))||''';return true"><image src="/OA_MEDIA/FNDRTARW.gif" alt="'||icx_util.replace_alt_quotes(l_prompts(4))||'" BORDER="0"></A>');
2096 htp.p('</td></tr></table>'); -- Add
2097 htp.p('</td></tr></table>'); -- Full Menu cell
2098 htp.p('</td><td>');
2099 htp.p('<table border=0 cellspacing=0 cellpadding=0><tr><td>'); -- Favorite cell
2100 htp.p('<select name="C" size=10>');
2101
2102 --bug 2644185
2103 htp.formSelectOption('____________________________________________');
2104
2105 for f in favorites loop
2106 if f.URL is null
2107 then
2108 l_favorite := f.responsibility_application_id||'*'||f.responsibility_id||'*'||f.security_group_id||'*'||f.function_id||'*'||f.function_type;
2109 else
2110 l_favorite := '0*0*0*X'||f.URL||'*WWW';
2111 end if;
2112 htp.formSelectOption(cvalue => f.prompt,
2113 cattributes => 'VALUE = '||l_favorite);
2114 end loop;
2115 htp.formSelectClose;
2116 htp.p('</td><td align="left">');
2117 htp.p('<table><tr><td align="left" valign="bottom">'); -- Up and Down
2118 htp.p('<A HREF="javascript:upTo()" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(l_prompts(5))||''';return true"><image src="/OA_MEDIA/FNDUPARW.gif" alt="'||icx_util.replace_alt_quotes(l_prompts(5))||'" BORDER="0"></A>');
2119 htp.p('</td></tr><tr><td align="left" valign="top">');
2120 htp.p('<A HREF="javascript:downTo()" onMouseOver="window.status='''||icx_util.replace_onMouseOver_quotes(l_prompts(6))||''';return true"><image src="/OA_MEDIA/FNDDNARW.gif" alt="'||icx_util.replace_alt_quotes(l_prompts(6))||'" BORDER="0"></A>');
2121 htp.p('</td></tr></table>'); -- Up and Down
2122 htp.p('</td></tr></table>'); -- Favorite cell
2123 htp.p('</td></tr>');
2124 htp.p('<tr><td></td><td>');
2125 htp.p('<table><tr>'); -- Buttons
2126 htp.p('<td>');
2127 icx_plug_utilities.buttonBoth(l_prompts(9),'javascript:createTo()');
2128 htp.p('</td><td>');
2129 icx_plug_utilities.buttonBoth(l_prompts(13),'javascript:renameTo()'); -- changed from prompt(10) for 976843
2130 htp.p('</td><td>');
2131 icx_plug_utilities.buttonBoth(l_prompts(11),'javascript:deleteTo()');
2132 htp.p('</tr></table>'); -- Buttons
2133 htp.p('</td></tr>');
2134
2135 htp.p('<tr><td colspan="2"><BR></td></tr>');
2136
2137 htp.p('<tr><td colspan="2">');
2138 htp.p('<table width=100%><tr><td width=50% align="right">'); -- OK
2139 icx_plug_utilities.buttonLeft(l_prompts(7),'javascript:saveFavorites()','FNDJLFOK.gif');
2140 htp.p('</td><td width=50% align="left">');
2141 icx_plug_utilities.buttonRight(l_prompts(8),'javascript:history.go(-1)','FNDJLFCN.gif');
2142 htp.p('</td></tr></table>'); -- OK
2143 htp.p('</td></tr>');
2144 htp.p('</table>'); -- Cell
2145 htp.p('</td></tr>');
2146 htp.p('</table>'); -- Main
2147
2148 htp.formClose;
2149 htp.p('<SCRIPT LANGUAGE="JavaScript">document.Favorites.A.focus();</SCRIPT>');
2150 htp.bodyClose;
2151 htp.htmlClose;
2152
2153 end if;
2154
2155 exception
2156 when others then
2157 --- htp.p(SQLERRM);
2158 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
2159 c_error_msg := fnd_message.get;
2160 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
2161
2162
2163 end;
2164
2165 procedure updateFavorites(X in varchar2,
2166 Y in pls_integer) is
2167
2168 l_plug_id pls_integer;
2169 l_line varchar2(2000);
2170 l_line_length pls_integer;
2171 l_point1 pls_integer;
2172 l_point2 pls_integer;
2173 l_point3 pls_integer;
2174 l_point4 pls_integer;
2175 l_point5 pls_integer;
2176 l_point_1_2 pls_integer;
2177 l_point_2_3 pls_integer;
2178 l_point_3_4 pls_integer;
2179 l_point_4_5 pls_integer;
2180 l_length pls_integer;
2181 l_index pls_integer;
2182 l_nextcount pls_integer;
2186 l_security_group_id pls_integer;
2183 l_lastcount pls_integer;
2184 l_occurence pls_integer;
2185 l_resp_appl_id pls_integer;
2187 l_responsibility_id pls_integer;
2188 l_function_id pls_integer;
2189 l_function_type varchar2(30);
2190 l_prompt varchar2(240);
2191 l_url varchar2(2000);
2192 c_error_msg varchar2(240);
2193
2194 begin
2195
2196 if icx_sec.validateSession
2197 then
2198 l_plug_id := icx_call.decrypt2(Y);
2199 l_length := length(X);
2200 l_index := 0;
2201 l_occurence := 1;
2202 l_lastcount := 1;
2203
2204 delete ICX_CUSTOM_MENU_ENTRIES
2205 where USER_ID = icx_sec.g_user_id
2206 and PLUG_ID = l_plug_id;
2207
2208 while l_lastcount <= l_length loop
2209 l_nextcount := instr(X,'+',1,l_occurence);
2210 if l_lastcount <> l_nextcount
2211 then
2212 l_line_length := l_nextcount-l_lastcount;
2213 l_line := substr(X,l_lastcount,l_line_length);
2214 l_point1 := instr(l_line,'*',1,1);
2215 l_point2 := instr(l_line,'*',1,2);
2216 l_point3 := instr(l_line,'*',1,3);
2217 l_point4 := instr(l_line,'*',1,4);
2218 l_point5 := instr(l_line,'*',1,5);
2219 l_point_1_2 := l_point2 - l_point1 - 1;
2220 l_point_2_3 := l_point3 - l_point2 - 1;
2221 l_point_3_4 := l_point4 - l_point3 - 1;
2222 l_point_4_5 := l_point5 - l_point4 - 1;
2223
2224 l_resp_appl_id := substr(l_line,1,l_point1-1);
2225 l_responsibility_id := substr(l_line,l_point1+1,l_point_1_2);
2226 l_security_group_id := substr(l_line,l_point2+1,l_point_2_3);
2227 l_url := substr(l_line,l_point3+1,l_point_3_4);
2228 if substr(l_url,1,1) = 'X'
2229 then
2230 l_url := substr(l_url,2,length(l_url)-1);
2231 else
2232 l_function_id := to_number(l_url);
2233 l_url := '';
2234 end if;
2235 l_function_type := substr(l_line,l_point4+1,l_point_4_5);
2236 l_prompt := substr(l_line,l_point5+1,length(l_line));
2237
2238 insert into ICX_CUSTOM_MENU_ENTRIES
2239 (USER_ID,
2240 PLUG_ID,
2241 DISPLAY_SEQUENCE,
2242 PROMPT,
2243 RESPONSIBILITY_APPLICATION_ID,
2244 RESPONSIBILITY_ID,
2245 SECURITY_GROUP_ID,
2246 FUNCTION_ID,
2247 FUNCTION_TYPE,
2248 URL)
2249 values
2250 (icx_sec.g_user_id,
2251 l_plug_id,
2252 l_index,
2253 l_prompt,
2254 l_resp_appl_id,
2255 l_responsibility_id,
2256 l_security_group_id,
2257 l_function_id,
2258 l_function_type,
2259 l_url);
2260
2261 l_index := l_index + 1;
2262 end if;
2263
2264 l_lastcount := l_nextcount + 1;
2265 l_occurence := l_occurence + 1;
2266 end loop;
2267
2268 icx_plug_utilities.gotoMainMenu;
2269
2270 end if; -- validateSession
2271
2272 exception
2273 when others then
2274 -- htp.p(SQLERRM);
2275 fnd_message.set_name('ICX','ICX_CONTACT_WEBMASTER');
2276 c_error_msg := fnd_message.get;
2277 htp.p('<valign=left NOWRAP><font color="#CC0000" face="Arial" size=2><b>'||c_error_msg||dbms_utility.format_error_stack);
2278
2279
2280
2281 end;
2282
2283 PROCEDURE menuBypass(p_token IN VARCHAR2,
2284 p_mode IN VARCHAR2)
2285 IS
2286 -- added for 1352780
2287 -- this signature is used to
2288 -- make calls to launch
2289 -- the only function available
2290 -- to the only responsibility available
2291 l_parameters icx_on_utilities.v80_table;
2292 p_app_id NUMBER;
2293 p_resp_id NUMBER;
2294 p_function_id NUMBER;
2295 p_sec_grp_id NUMBER;
2296 p_agent VARCHAR2(2000);
2297 l_web_call VARCHAR2(2000);
2298 l_url VARCHAR2(2000);
2299
2300 BEGIN
2301 IF icx_sec.ValidateSession THEN
2302
2303 icx_on_utilities.unpack_parameters(icx_call.decrypt(p_token),l_parameters);
2304
2305 p_app_id := nvl(l_parameters(1),178);
2306 p_resp_id := l_parameters(2);
2307 p_function_id := l_parameters(3);
2308 p_sec_grp_id := l_parameters(4);
2309 p_agent := l_parameters(5);
2310
2311
2312 SELECT web_html_call
2313 INTO l_web_call
2314 FROM fnd_form_functions_vl
2315 WHERE function_id=p_function_id;
2316 --if added for 1352780
2317 if substrb(l_web_call,1,10) = 'javascript'
2318 then
2319 l_url := replace(l_web_call,'"','''');
2320 l_url := replace(l_url,'[RESPONSIBILITY_ID]',p_resp_id);
2321 l_url := replace(l_url,'[PLSQL_AGENT]',icx_plug_utilities.getPLSQLagent);
2322 l_url :=(substrb(l_url, (instrb(l_url,'''',1,1)+1),(instrb((substrb(l_url,(instrb(l_url,'''',1,1)+1))),'''',1,1)-1)));
2323 l_url:='"'||l_url||'"';
2324 ELSE
2325 l_url := icx_portlet.createExecLink
2326 (p_application_id => p_app_id,
2327 p_responsibility_id => p_resp_id,
2328 p_security_group_id => p_sec_grp_id,
2329 p_function_id => p_function_id,
2330 p_url_only => 'Y');
2331 l_url:='"'||l_url||'"';
2332 END IF;
2333 --htp.p(l_url);
2334 -- 3097745 nlbarlow
2335 htp.p('<script>top.location='||l_url||';</script>');
2336
2337 END IF;
2338
2339 end; --menubypass
2340
2341 PROCEDURE menuBypass(p_token IN VARCHAR2) IS
2342
2343 -- added for 1352780
2344 -- this signature is used to
2345 -- make calls to launch
2346 -- the only (forms) responsibility
2347 -- available.. will launch apps
2348
2352 p_sec_grp_key VARCHAR2(100);
2349 l_parameters icx_on_utilities.v80_table;
2350 p_app_short_name VARCHAR2(200);
2351 p_resp_key VARCHAR2(240);
2353 p_agent VARCHAR2(2000);
2354 l_url VARCHAR2(2000);
2355 l_encrypted_session_id VARCHAR2(240);
2356
2357 BEGIN
2358
2359 IF icx_sec.ValidateSession THEN
2360
2361 icx_on_utilities.unpack_parameters(icx_call.decrypt(p_token),l_parameters);
2362 p_app_short_name := l_parameters(1);
2363 p_resp_key := l_parameters(2);
2364 p_sec_grp_key := l_parameters(3);
2365 p_agent := l_parameters(4);
2366
2367 -- l_encrypted_session_id := icx_call.encrypt3(icx_sec.getsessioncookie); removed mputman
2368
2369 -- bug 1728149 - removed l_encrypted_session_id from icx_ticket
2370 -- l_url:=p_agent||'fnd_icx_launch.runforms?ICX_TICKET='||'&';
2371 -- l_url:=l_url||'RESP_APP='||wfa_html.conv_special_url_chars(p_app_short_name)||'&'||'RESP_KEY='||wfa_html.conv_special_url_chars(p_resp_key)||'&'; -- mputman added wfa call 1690141
2372 -- l_url:=l_url||'SECGRP_KEY='||wfa_html.conv_special_url_chars(p_sec_grp_key); -- mputman added wfa call 1690141
2373 -- l_url:='"'||l_url||'"';
2374 l_url:='"dummy"';
2375 htp.p('
2376
2377
2378 <script>
2379 function menuBypass(url){
2380 var p_agent="'||p_agent||'";
2381 var p_app_short_name="'||p_app_short_name||'";
2382 p_app_short_name=escape(p_app_short_name);
2383 var p_resp_key="'||p_resp_key||'";
2384 p_resp_key=escape(p_resp_key);
2385 var p_sec_grp_key="'||p_sec_grp_key||'";
2386 p_sec_grp_key=escape(p_sec_grp_key);
2387 var l_url=p_agent+"fnd_icx_launch.runforms?ICX_TICKET=&RESP_APP="+p_app_short_name+"&RESP_KEY="+p_resp_key+"&SECGRP_KEY="+p_sec_grp_key;
2388 top.location=l_url;
2389
2390 }
2391 </script>
2392
2393 <frameset cols="100%,*" frameborder=no border=0>
2394
2395 <frame
2396 src=javascript:parent.menuBypass('||l_url||')
2397 name=hiddenFrame1
2398 marginwidth=0
2399 marginheight=0
2400 scrolling=no>
2401
2402
2403 </frameset>
2404
2405 ');
2406
2407
2408
2409 END IF;
2410
2411 end; --menubypass
2412
2413 end OracleNavigate;