[Home] [Help]
PACKAGE BODY: APPS.IEU_CTRL_PVT
Source
1 PACKAGE BODY IEU_CTRL_PVT AS
2 /* $Header: IEUVCTLB.pls 120.1 2005/07/14 15:20:05 appldev ship $ */
3 ---------------------------------------------------------------------
4 ------------------------------------------------------------------------
5 --procedure for retrieving a IEU_CTRL_MESSAGE_OBJ table based on
6 --some criterion
7 ------------------------------------------------------------------------
8 ------------------------------------------------------------------------
9 PROCEDURE GET_CTRL_MESSAGES
10 (
11 P_RESOURCE_ID IN NUMBER
12 ,P_STATUS_ID IN NUMBER
13 ,P_AGE_FILTER IN NUMBER
14 ,X_CTRL_MESSAGES_NST OUT NOCOPY SYSTEM.IEU_CTRL_MESSAGES_NST
15 )
16 AS
17 BEGIN
18 GET_CTRL_MESSAGES_T( P_RESOURCE_ID, P_STATUS_ID,
19 0, P_AGE_FILTER,
20 X_CTRL_MESSAGES_NST );
21 END GET_CTRL_MESSAGES;
22
23
24 PROCEDURE GET_CTRL_MESSAGES_T
25 (
26 P_RESOURCE_ID IN NUMBER,
27 P_STATUS_ID IN NUMBER,
28 P_START_FILTER IN NUMBER,
29 P_END_FILTER IN NUMBER,
30 X_CTRL_MESSAGES_NST OUT NOCOPY SYSTEM.IEU_CTRL_MESSAGES_NST
31 )
32 AS
33 l_timediff NUMBER;
34
35 CURSOR msg_cursor is
36 SELECT *
37 FROM
38 IEU_MSG_MESSAGES message_table
39 WHERE
40 message_table.RESOURCE_TYPE = 'RS_INDIVIDUAL' AND
41 message_table.RESOURCE_ID = P_RESOURCE_ID AND
42 message_table.STATUS_ID <= P_STATUS_ID;
43 BEGIN
44
45 --parameter check
46 IF ( ( P_RESOURCE_ID IS NULL ) OR
47 ( P_STATUS_ID IS NULL ) OR
48 ( P_END_FILTER IS NULL ) )
49 THEN
50 RAISE_APPLICATION_ERROR
51 (
52 -20000
53 ,'P_RESOURCE_ID, P_STATUS_ID OR P_START_FILTER invalid values' ||
54 '(P_RESOURCE_ID = ' || P_RESOURCE_ID ||
55 ') (P_STATUS_ID = ' || P_STATUS_ID ||
56 ') (P_END_FILTER = ' || P_END_FILTER ||')'
57 ,TRUE
58 );
59 END IF;
60
61 IF ( ( P_END_FILTER < 0 ) OR
62 ( P_START_FILTER < 0 ) )
63 THEN
64 RAISE_APPLICATION_ERROR
65 (
66 -20000
67 ,'P_START_FILTER OR P_END_FILTER invalid values' ||
68 '(P_START_FILTER = ' || P_START_FILTER ||
69 ') (P_END_FILTER = ' || P_END_FILTER ||')'
70 ,TRUE
71 );
72 END IF;
73
74 X_CTRL_MESSAGES_NST := SYSTEM.IEU_CTRL_MESSAGES_NST();
75
76 FOR msg_val IN msg_cursor
77 LOOP
78 --get the difference in the current time and the message create
79 --time and convert to minutes because the parameters are in minutes
80 l_timediff := 60*24*( SYSDATE - MSG_VAL.CREATION_DATE );
81
82 IF ( ( l_timediff >= P_START_FILTER AND
83 l_timediff <= P_END_FILTER )
84 OR
85 ( P_START_FILTER = 0 AND
86 P_END_FILTER = 0 ) )
87 THEN
88 X_CTRL_MESSAGES_NST.extend( 1 );
89 X_CTRL_MESSAGES_NST( X_CTRL_MESSAGES_NST.LAST ) :=
90 SYSTEM.IEU_CTRL_MESSAGE_OBJ( msg_val.MESSAGE_ID, msg_val.CREATION_DATE,
91 msg_val.LAST_UPDATE_DATE, msg_val.APPLICATION_ID, msg_val.RESOURCE_TYPE, msg_val.RESOURCE_ID,
92 msg_val.STATUS_ID, msg_val.TITLE,
93 msg_val.BODY, msg_val.WORKITEM_OBJ_CODE,
94 msg_val.WORKITEM_PK_ID );
95 END IF;
96
97 END LOOP;
98
99 EXCEPTION
100 WHEN OTHERS THEN
101 RAISE;
102
103 END GET_CTRL_MESSAGES_T;
104 ------------------------------------------------------------------------
105 ------------------------------------------------------------------------
106 --procedure for saving a IEU_CTRL_MESSAGE_OBJ table based on
107 --some the message id and the new status
108 ------------------------------------------------------------------------
109 ------------------------------------------------------------------------
110 PROCEDURE SAVE_CTRL_MESSAGES
111 (
112 P_CTRL_MESSAGES_NST IN SYSTEM.IEU_CTRL_MESSAGES_NST
113 )
114 AS
115 BEGIN
116
117 --parameter check
118 IF ( P_CTRL_MESSAGES_NST IS NULL )
119 THEN
120 RAISE_APPLICATION_ERROR
121 (
122 -20000
123 ,'P_CTRL_MESSAGES_NST cannot be NULL'
124 ,TRUE
125 );
126 END IF;
127
128 --save the updated message
129 FOR i IN P_CTRL_MESSAGES_NST.FIRST..P_CTRL_MESSAGES_NST.LAST
130 LOOP
131 UPDATE IEU_MSG_MESSAGES SET
132 IEU_MSG_MESSAGES.STATUS_ID = P_CTRL_MESSAGES_NST(i).STATUS_ID,
133 IEU_MSG_MESSAGES.LAST_UPDATE_DATE = SYSDATE
134 WHERE P_CTRL_MESSAGES_NST(i).MESSAGE_ID =
135 IEU_MSG_MESSAGES.MESSAGE_ID;
136 END LOOP;
137
138 EXCEPTION
139 WHEN OTHERS THEN
140 RAISE;
141
142 END SAVE_CTRL_MESSAGES;
143
144
145
146 ------------------------------------------------------------------------
147 ------------------------------------------------------------------------
148 --utility procedure for setting the lang info whereever required
149 ------------------------------------------------------------------------
150 ------------------------------------------------------------------------
151 PROCEDURE SET_LANG_INFO
152 (
153 P_USER_LANG IN VARCHAR2
154 )
155 AS
156 l_lang VARCHAR2(100);
157 BEGIN
158 l_lang := 'ALTER SESSION SET NLS_LANGUAGE = '|| ''''||
159 SUBSTR ( P_USER_LANG,
160 1,
161 ( INSTR ( P_USER_LANG,'_',1,1 ) - 1 ) ) ||'''';
162 --insert into plsqldbug values( sysdate, l_lang );
163 --commit;
164
165 EXECUTE IMMEDIATE l_lang;
166
167
168 l_lang := 'ALTER SESSION SET NLS_TERRITORY = '|| ''''||
169 SUBSTR( P_USER_LANG,
170 ( INSTR ( P_USER_LANG,'_',1,1 ) + 1 ),
171 ( INSTR ( P_USER_LANG,'.',1,1 ) -
172 INSTR ( P_USER_LANG,'_',1,1) - 1 ) ) || '''';
173 --insert into plsqldbug values( sysdate, l_lang );
174 --commit;
175
176 EXECUTE IMMEDIATE l_lang;
177
178 END SET_LANG_INFO;
179
180 ------------------------------------------------------------------------
181 ------------------------------------------------------------------------
182 --utility procedure for setting the lang info whereever required
183 --also returns the previous language setting which can be used to reset
184 ------------------------------------------------------------------------
185 ------------------------------------------------------------------------
186 PROCEDURE SET_LANG_INFO_X
187 (
188 P_USER_LANG IN VARCHAR2,
189 X_EXISTING_LANG OUT NOCOPY VARCHAR2
190 )
191 AS
192 BEGIN
193 SELECT userenv('LANGUAGE') INTO X_EXISTING_LANG FROM DUAL;
194
195 SET_LANG_INFO( P_USER_LANG );
196
197 END SET_LANG_INFO_X;
198
199 ------------------------------------------------------------------------
200 ------------------------------------------------------------------------
201 --procedure for getting the plugin information for a particular resource
202 ------------------------------------------------------------------------
203 ------------------------------------------------------------------------
204 PROCEDURE GET_CTRL_PLUGINS
205 (
206 P_RESOURCE_ID IN NUMBER
207 ,P_AGENT_EXTN IN NUMBER
208 ,P_USER_ID IN NUMBER
209 ,P_RESP_ID IN NUMBER
210 ,P_RESP_APPL_ID IN NUMBER
211 ,P_USER_LANG IN VARCHAR2
212 ,X_CTRL_PLUGINS_NST OUT NOCOPY SYSTEM.IEU_CTRL_PLUGINS_NST
213 )
214 AS
215 l_sql_clause VARCHAR2(1000);
216 l_label_name VARCHAR2(1990);
217 l_desc VARCHAR2(1990);
218 l_load_plugin BOOLEAN;
219 l_func_return VARCHAR2(1);
220 l_error_text VARCHAR(2000);
221 l_cur_lang VARCHAR(100);
222 l_temp VARCHAR(100);
223 l_app_name VARCHAR2(32);
224
225 CURSOR msg_cursor is
226 SELECT * FROM
227 IEU_CTL_PLUGINS_B;
228 BEGIN
229
230 l_app_name := 'IEU';
231 --parameter check
232 IF ( ( P_RESOURCE_ID IS NULL ) OR
233 ( P_AGENT_EXTN IS NULL ) OR
234 ( P_USER_LANG IS NULL ) )
235 THEN
236 RAISE_APPLICATION_ERROR
237 (
238 -20000
239 ,'P_USER_LANG OR P_RESOURCE_ID cannot be NULL' ||
240 '(P_USER_LANG = ' || P_USER_LANG ||
241 ') (P_AGENT_EXTN = ' || P_AGENT_EXTN ||
242 ') (P_RESOURCE_ID = ' || P_RESOURCE_ID || ')'
243 ,TRUE
244 );
245 END IF;
246
247 --set the language stuff
248 SET_LANG_INFO_X( P_USER_LANG, l_cur_lang );
249
250 --initialize fnd env variables
251 FND_GLOBAL.APPS_INITIALIZE( P_USER_ID, P_RESP_ID, P_RESP_APPL_ID );
252
253 X_CTRL_PLUGINS_NST := SYSTEM.IEU_CTRL_PLUGINS_NST();
254 FOR msg_val IN msg_cursor
255 LOOP
256
257 --initialize the load plugin flag to false
258 l_load_plugin := FALSE;
259
260 --select the translated stuff
261 SELECT tl.NAME, tl.DESCRIPTION INTO l_label_name, l_desc
262 FROM IEU_CTL_PLUGINS_TL tl
263 WHERE tl.PLUGIN_ID = msg_val.PLUGIN_ID AND
264 tl.LANGUAGE = userenv( 'LANG' );
265
266
267 --select the error message txt
268 l_error_text :=
269 FND_MESSAGE.GET_STRING( l_app_name, msg_val.INIT_ERROR_MSG_NAME );
270
271 --if the required flag for the plugin is set to T ot t
272 --the plugin is mandatory. else call the DO_LAUNCH function
273 --of the plugin and check if it has to be loaded
274
275 IF( ( msg_val.IS_REQUIRED_FLAG = 'T' ) OR
276 ( msg_val.IS_REQUIRED_FLAG = 't' ) )
277 THEN
278 l_load_plugin := TRUE;
279 ELSE
280 IF (msg_val.DO_LAUNCH_FUNC = 'CCT_PLGN_FUNC_PVT.DO_LAUNCH_CLIENT_SDK')
281 THEN
282 l_sql_clause := 'BEGIN :l_func_return := ' ||
283 msg_val.DO_LAUNCH_FUNC || '( :1, :2, :3, :4, :5); END; ';
284
285 EXECUTE IMMEDIATE l_sql_clause USING OUT l_func_return,
286 IN P_RESOURCE_ID, IN P_USER_ID, IN P_RESP_ID, IN P_RESP_APPL_ID,
287 IN P_USER_LANG ;
288
289 ELSE
290
291 l_sql_clause := 'BEGIN :l_func_return := ' ||
292 msg_val.DO_LAUNCH_FUNC || '( :1, :2, :3, :4, :5, :6); END; ';
293
294 --insert into plsqldbug values( sysdate, l_sql_clause );
295 --commit;
296
297 --tried to make the return BOOLEAN but PL/SQL complained
298 --at this statement.. !! DARN so I am leaving it
299 --VARCHAR2 - ssk
300 EXECUTE IMMEDIATE l_sql_clause USING OUT l_func_return,
301 IN P_RESOURCE_ID, IN P_AGENT_EXTN, IN P_USER_ID, IN P_RESP_ID, IN P_RESP_APPL_ID,
302 IN P_USER_LANG ;
303 END IF;
304
305 --if the function returns T or t the plugin has to be loaded
306 --insert into plsqldbug values( sysdate, '##' || l_func_return || '##' );
307 --commit;
308
309 IF ( l_func_return = 'Y' )
310 THEN
311 l_load_plugin := TRUE;
312 END IF;
313
314 END IF;
315
316
317 IF ( l_load_plugin )
318 THEN
319 X_CTRL_PLUGINS_NST.extend( 1 );
320 X_CTRL_PLUGINS_NST( X_CTRL_PLUGINS_NST.LAST ) :=
321 SYSTEM.IEU_CTRL_PLUGIN_OBJ( msg_val.PLUGIN_ID, msg_val.CLASS_NAME,
322 l_label_name, l_desc,
323 msg_val.IMAGE_FILE_NAME, msg_val.AUDIO_FILE_NAME,
324 l_error_text,
325 msg_val.IS_REQUIRED_FLAG, msg_val.DO_LAUNCH_FUNC);
326 END IF;
327
328 END LOOP;
329
330 EXCEPTION
331 WHEN OTHERS THEN
332 RAISE;
333
334 --reset the language stuff
335 SET_LANG_INFO_X( l_cur_lang, l_temp );
336
337 END GET_CTRL_PLUGINS;
338
339
340 ------------------------------------------------------------------------
341 ------------------------------------------------------------------------
342 --procedure for getting all the error messages at startup
343 --this prevents multiple database roundtrips
344 ------------------------------------------------------------------------
345 ------------------------------------------------------------------------
346 PROCEDURE GET_FND_ERROR_MESSAGES
347 (
348 P_RESOURCE_ID IN NUMBER
349 ,P_FND_MESSAGES_NST IN SYSTEM.IEU_FND_MESSAGES_NST
350 ,P_USER_LANG IN VARCHAR2
351 ,X_FND_MESSAGES_NST OUT NOCOPY SYSTEM.IEU_FND_MESSAGES_NST
352 )
353 AS
354 l_message_text VARCHAR2(4000);
355 l_cur_lang VARCHAR2(100);
356 l_temp VARCHAR2(100);
357 l_app_name VARCHAR2(100);
358 l_number NUMBER(9);
359 BEGIN
360
361 --parameter check
362 IF ( ( P_USER_LANG IS NULL ) OR
363 ( P_RESOURCE_ID IS NULL ) OR
364 ( P_FND_MESSAGES_NST IS NULL ) )
365 THEN
366 RAISE_APPLICATION_ERROR
367 (
368 -20000
369 ,'P_USER_LANG, P_RESOURCE_ID OR P_FND_MESSAGES_NST cannot be NULL' ||
370 '(P_USER_LANG = ' || P_USER_LANG ||
371 ') (P_RESOURCE_ID = ' || P_RESOURCE_ID || ')'
372 ,TRUE
373 );
374 END IF;
375
376 --set the language stuff
377 SET_LANG_INFO_X( P_USER_LANG, l_cur_lang );
378
379 --initialize the nested table
380 X_FND_MESSAGES_NST := SYSTEM.IEU_FND_MESSAGES_NST();
381
382 FOR i IN P_FND_MESSAGES_NST.FIRST..P_FND_MESSAGES_NST.LAST
383 LOOP
384
385 IF ( P_FND_MESSAGES_NST( i ).NAME IS NOT NULL )
386 THEN
387
388 l_app_name := P_FND_MESSAGES_NST( i ).APP_NAME;
389 if ( l_app_name IS NULL )
390 THEN
391 l_app_name := 'IEU';
392 END IF;
393
394 --get the message text from the fnd function
395 l_message_text :=
396 FND_MESSAGE.GET_STRING( l_app_name, P_FND_MESSAGES_NST( i ).NAME );
397
398 l_number :=
399 FND_MESSAGE.GET_NUMBER( l_app_name, P_FND_MESSAGES_NST( i ).NAME );
400
401 --initialize the nested table and add the message object to it
402 X_FND_MESSAGES_NST.EXTEND( 1 );
403 X_FND_MESSAGES_NST( X_FND_MESSAGES_NST.LAST )
404 := SYSTEM.IEU_FND_MESSAGE_OBJ( P_FND_MESSAGES_NST( i ).NAME ,
405 l_message_text,
406 l_number,
407 l_app_name );
408 ELSE
409 NULL;
410 END IF;
411
412 END LOOP;
413
414 --reset the language stuff
415 SET_LANG_INFO_X( l_cur_lang, l_temp );
416
417 EXCEPTION
418 WHEN OTHERS THEN
419 RAISE;
420
421 END GET_FND_ERROR_MESSAGES;
422
423
424 ------------------------------------------------------------------------
425 ------------------------------------------------------------------------
426 --procedure for getting the FND Lookup Codes and values based on
427 --lookup type and application id.
428 ------------------------------------------------------------------------
429 ------------------------------------------------------------------------
430 PROCEDURE GET_FND_LOOKUP_VALUES
431 (
432 P_RESOURCE_ID IN NUMBER
433 ,P_APP_ID IN NUMBER
437 )
434 ,P_LOOKUP_TYPE IN VARCHAR2
435 ,P_USER_LANG IN VARCHAR2
436 ,X_FND_MESSAGES_NST OUT NOCOPY SYSTEM.IEU_FND_MESSAGES_NST
438 AS
439 l_cur_lang VARCHAR2(100);
440 l_temp VARCHAR2(100);
441
442 CURSOR msg_cursor is
443 SELECT
444 lookup_table.LOOKUP_CODE,
445 lookup_table.MEANING
446 FROM
447 FND_LOOKUP_VALUES_VL lookup_table
448 WHERE
449 lookup_table.LOOKUP_TYPE = P_LOOKUP_TYPE AND
450 lookup_table.VIEW_APPLICATION_ID = P_APP_ID AND
451 lookup_table.ENABLED_FLAG = 'Y';
452 BEGIN
453
454 --parameter check
455 IF ( ( P_LOOKUP_TYPE IS NULL ) OR
456 ( P_USER_LANG IS NULL ) OR
457 ( P_RESOURCE_ID IS NULL ) OR
458 ( P_APP_ID IS NULL ) )
459 THEN
460 RAISE_APPLICATION_ERROR
461 (
462 -20000
463 ,'P_LOOKUP_TYPE, P_USER_LANG, P_RESOURCE_ID OR P_APP_ID ' ||
464 'cannot be NULL' ||
465 '(P_LOOKUP_TYPE = ' || P_LOOKUP_TYPE ||
466 '(P_USER_LANG = ' || P_USER_LANG ||
467 ') (P_RESOURCE_ID = ' || P_RESOURCE_ID ||
468 ') (P_APP_ID = ' || P_APP_ID || ')'
469 ,TRUE
470 );
471 END IF;
472
473 --set the language stuff
474 SET_LANG_INFO_X( P_USER_LANG, l_cur_lang );
475
476 --initialize the nested table
477 X_FND_MESSAGES_NST := SYSTEM.IEU_FND_MESSAGES_NST();
478
479 FOR msg_val IN msg_cursor
480 LOOP
481 X_FND_MESSAGES_NST.extend(1);
482 X_FND_MESSAGES_NST( X_FND_MESSAGES_NST.LAST )
483 := SYSTEM.IEU_FND_MESSAGE_OBJ( msg_val.LOOKUP_CODE ,
484 msg_val.MEANING,
485 null, null );
486 END LOOP;
487
488 --set the language stuff
489 SET_LANG_INFO_X( l_cur_lang, l_temp );
490
491 EXCEPTION
492 WHEN OTHERS THEN
493 RAISE;
494
495 END GET_FND_LOOKUP_VALUES;
496
497
498 ------------------------------------------------------------------------
499 ------------------------------------------------------------------------
500 --procedure for getting the FND Lookup Codes and values based on
501 --lookup type and application id and sort them based on meaning
502 ------------------------------------------------------------------------
503 ------------------------------------------------------------------------
504 PROCEDURE GET_FND_LOOKUP_VALUES_SRT
505 (
506 P_RESOURCE_ID IN NUMBER
507 ,P_APP_ID IN NUMBER
508 ,P_LOOKUP_TYPE IN VARCHAR2
509 ,P_USER_LANG IN VARCHAR2
510 ,X_FND_MESSAGES_NST OUT NOCOPY SYSTEM.IEU_FND_MESSAGES_NST
511 )
512 AS
513 l_cur_lang VARCHAR2(100);
514 l_temp VARCHAR2(100);
515
516 CURSOR msg_cursor is
517 SELECT
518 lookup_table.LOOKUP_CODE,
519 lookup_table.MEANING
520 FROM
521 FND_LOOKUP_VALUES_VL lookup_table
522 WHERE
523 lookup_table.LOOKUP_TYPE = P_LOOKUP_TYPE AND
524 lookup_table.VIEW_APPLICATION_ID = P_APP_ID AND
525 lookup_table.ENABLED_FLAG = 'Y'
526 ORDER BY lookup_table.MEANING;
527 BEGIN
528 --parameter check
529 IF ( ( P_LOOKUP_TYPE IS NULL ) OR
530 ( P_USER_LANG IS NULL ) OR
531 ( P_RESOURCE_ID IS NULL ) OR
532 ( P_APP_ID IS NULL ) )
533 THEN
534 RAISE_APPLICATION_ERROR
535 (
536 -20000
537 ,'P_LOOKUP_TYPE, P_USER_LANG, P_RESOURCE_ID OR P_APP_ID ' ||
538 'cannot be NULL' ||
539 '(P_LOOKUP_TYPE = ' || P_LOOKUP_TYPE ||
540 '(P_USER_LANG = ' || P_USER_LANG ||
541 ') (P_RESOURCE_ID = ' || P_RESOURCE_ID ||
542 ') (P_APP_ID = ' || P_APP_ID || ')'
543 ,TRUE
544 );
545 END IF;
546
547 --set the language stuff
548 SET_LANG_INFO_X( P_USER_LANG, l_cur_lang );
549
550 --initialize the nested table
551 X_FND_MESSAGES_NST := SYSTEM.IEU_FND_MESSAGES_NST();
552
553 FOR msg_val IN msg_cursor
554 LOOP
555 X_FND_MESSAGES_NST.extend(1);
556 X_FND_MESSAGES_NST( X_FND_MESSAGES_NST.LAST )
557 := SYSTEM.IEU_FND_MESSAGE_OBJ( msg_val.LOOKUP_CODE ,
558 msg_val.MEANING,
559 null, null );
560 END LOOP;
561
562 --set the language stuff
563 SET_LANG_INFO_X( l_cur_lang, l_temp );
564
565 EXCEPTION
566 WHEN OTHERS THEN
567 RAISE;
568
569 END GET_FND_LOOKUP_VALUES_SRT;
570
571 ------------------------------------------------------------------------
572 ------------------------------------------------------------------------
573 --procedure for getting the FND Lookup Codes and values based on
574 --lookup type and application id.
575 ------------------------------------------------------------------------
576 ------------------------------------------------------------------------
577 PROCEDURE GET_FND_LOOKUP_CODES
578 (
579 P_RESOURCE_ID IN NUMBER
580 ,P_APP_ID IN NUMBER
581 ,P_CTRL_STRING_NST IN SYSTEM.IEU_CTRL_STRING_NST
582 ,P_USER_LANG IN VARCHAR2
583 ,X_FND_CODES_NST OUT NOCOPY SYSTEM.IEU_FND_CODES_NST
584 )
585 AS
586 l_cur_lang VARCHAR2(100);
587 l_temp VARCHAR2(100);
588
589 CURSOR msg_cursor( p_lookup_type VARCHAR2 ) is
590 SELECT
591 lookup_table.LOOKUP_CODE,
592 lookup_table.MEANING
593 FROM
594 FND_LOOKUP_VALUES_VL lookup_table
595 WHERE
596 lookup_table.LOOKUP_TYPE = p_lookup_type AND
597 lookup_table.VIEW_APPLICATION_ID = P_APP_ID AND
598 lookup_table.ENABLED_FLAG = 'Y';
599
600 BEGIN
601
602 --parameter check
603 IF ( ( P_CTRL_STRING_NST IS NULL ) OR
604 ( P_USER_LANG IS NULL ) OR
605 ( P_RESOURCE_ID IS NULL ) OR
606 ( P_APP_ID IS NULL ) )
607 THEN
608 RAISE_APPLICATION_ERROR
609 (
610 -20000
611 ,'LOOKUP_TYPES, P_USER_LANG, P_RESOURCE_ID OR P_APP_ID ' ||
612 'cannot be NULL' ||
613 '(P_USER_LANG = ' || P_USER_LANG ||
614 ') (P_RESOURCE_ID = ' || P_RESOURCE_ID ||
615 ') (P_APP_ID = ' || P_APP_ID || ')'
616 ,TRUE
617 );
618 END IF;
619
620 --set the language stuff
621 SET_LANG_INFO_X( P_USER_LANG, l_cur_lang );
622
623 --initialize the nested table
624 X_FND_CODES_NST := SYSTEM.IEU_FND_CODES_NST();
625
626 FOR i IN P_CTRL_STRING_NST.FIRST..P_CTRL_STRING_NST.LAST
627 LOOP
628
629 IF ( P_CTRL_STRING_NST( i ).NAME IS NOT NULL )
630 THEN
631
632 FOR msg_val IN msg_cursor( P_CTRL_STRING_NST( i ).NAME )
633 LOOP
634 X_FND_CODES_NST.extend(1);
635 X_FND_CODES_NST( X_FND_CODES_NST.LAST )
636 := SYSTEM.IEU_FND_CODE_OBJ( P_CTRL_STRING_NST( i ).NAME,
637 msg_val.LOOKUP_CODE ,
638 msg_val.MEANING );
639 END LOOP;/*end of for loop*/
640
641 ELSE
642 NULL;
643 END IF;
644
645 END LOOP; /*end of for loop*/
646
647 --reset the language stuff
648 SET_LANG_INFO_X( l_cur_lang, l_temp );
649
650 EXCEPTION
651 WHEN OTHERS THEN
652 RAISE;
653
654 END GET_FND_LOOKUP_CODES;
655
656
657
658 END IEU_CTRL_PVT;
659
660 ------------------------------------------------------------------------
661 ------------------------------------------------------------------------
662 --end of package
663 ------------------------------------------------------------------------
664 ------------------------------------------------------------------------
665