[Home] [Help]
PACKAGE BODY: APPS.ICX_CAT_DESCRIPTORS_PKG
Source
1 PACKAGE BODY ICX_CAT_DESCRIPTORS_PKG AS
2 /* $Header: ICXDESIB.pls 115.5 2004/03/31 21:53:08 vkartik ship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in OUT NOCOPY VARCHAR2,
6 X_RT_DESCRIPTOR_ID in NUMBER,
7 X_KEY in VARCHAR2,
8 X_DESCRIPTOR_NAME in VARCHAR2,
9 X_DESCRIPTION in VARCHAR2,
10 X_RT_CATEGORY_ID in NUMBER,
11 X_TYPE in NUMBER,
12 X_SEARCH_RESULTS_VISIBLE in VARCHAR2,
13 X_ITEM_DETAIL_VISIBLE in VARCHAR2,
14 X_REQUIRED in NUMBER,
15 X_REFINABLE in NUMBER,
16 X_SEARCHABLE in NUMBER,
17 X_VALIDATED in NUMBER,
18 X_SEQUENCE in NUMBER,
19 X_TITLE in VARCHAR2,
20 X_DEFAULTVALUE in VARCHAR2,
21 X_MULTI_VALUE_TYPE in NUMBER,
22 X_MULTI_VALUE_KEY in VARCHAR2,
23 X_CREATED_BY in NUMBER,
24 X_CREATION_DATE in DATE,
25 X_LAST_UPDATED_BY in NUMBER,
26 X_LAST_UPDATE_DATE in DATE,
27 X_LAST_UPDATE_LOGIN in NUMBER,
28 X_REQUEST_ID in NUMBER,
29 X_PROGRAM_APPLICATION_ID in NUMBER,
30 X_PROGRAM_ID in NUMBER,
31 X_PROGRAM_UPDATE_DATE in DATE,
32 X_STORED_IN_TABLE in VARCHAR2,
33 X_STORED_IN_COLUMN in VARCHAR2,
34 X_SECTION_TAG in NUMBER,
35 X_CLASS in VARCHAR2
36 ) is
37 cursor C is select ROWID from ICX_CAT_DESCRIPTORS_TL
38 where RT_DESCRIPTOR_ID = X_RT_DESCRIPTOR_ID
39 and LANGUAGE = userenv('LANG')
40 ;
41 begin
42 insert into ICX_CAT_DESCRIPTORS_TL (
43 RT_DESCRIPTOR_ID,
44 KEY,
45 DESCRIPTOR_NAME,
46 DESCRIPTION,
47 RT_CATEGORY_ID,
48 TYPE,
49 SEARCH_RESULTS_VISIBLE,
50 ITEM_DETAIL_VISIBLE,
51 REQUIRED,
52 REFINABLE,
53 SEARCHABLE,
54 VALIDATED,
55 SEQUENCE,
56 TITLE,
57 DEFAULTVALUE,
58 MULTI_VALUE_TYPE,
59 MULTI_VALUE_KEY,
60 CREATED_BY,
61 CREATION_DATE,
62 LAST_UPDATED_BY,
63 LAST_UPDATE_DATE,
64 LAST_UPDATE_LOGIN,
65 REQUEST_ID,
66 PROGRAM_APPLICATION_ID,
67 PROGRAM_ID,
68 PROGRAM_UPDATE_DATE,
69 LANGUAGE,
70 SOURCE_LANG,
71 STORED_IN_TABLE,
72 STORED_IN_COLUMN,
73 SECTION_TAG,
74 CLASS
75 ) select
76 X_RT_DESCRIPTOR_ID,
77 X_KEY,
78 X_DESCRIPTOR_NAME,
79 X_DESCRIPTION,
80 X_RT_CATEGORY_ID,
81 X_TYPE,
82 X_SEARCH_RESULTS_VISIBLE,
83 X_ITEM_DETAIL_VISIBLE,
84 X_REQUIRED,
85 X_REFINABLE,
86 X_SEARCHABLE,
87 X_VALIDATED,
88 X_SEQUENCE,
89 X_TITLE,
90 X_DEFAULTVALUE,
91 X_MULTI_VALUE_TYPE,
92 X_MULTI_VALUE_KEY,
93 X_CREATED_BY,
94 X_CREATION_DATE,
95 X_LAST_UPDATED_BY,
96 X_LAST_UPDATE_DATE,
97 X_LAST_UPDATE_LOGIN,
98 X_REQUEST_ID,
99 X_PROGRAM_APPLICATION_ID,
100 X_PROGRAM_ID,
101 X_PROGRAM_UPDATE_DATE,
102 L.LANGUAGE_CODE,
103 userenv('LANG'),
104 X_STORED_IN_TABLE,
105 X_STORED_IN_COLUMN,
106 X_SECTION_TAG,
107 X_CLASS
108 from FND_LANGUAGES L
109 where L.INSTALLED_FLAG in ('I', 'B')
110 and not exists
111 (select NULL
112 from ICX_CAT_DESCRIPTORS_TL T
113 where T.RT_DESCRIPTOR_ID = X_RT_DESCRIPTOR_ID
114 and T.LANGUAGE = L.LANGUAGE_CODE);
115
116 open c;
117 fetch c into X_ROWID;
118 if (c%notfound) then
119 close c;
120 raise no_data_found;
121 end if;
122 close c;
123
124 end INSERT_ROW;
125
126 procedure LOCK_ROW (
127 X_RT_DESCRIPTOR_ID in NUMBER,
128 X_KEY in VARCHAR2,
129 X_DESCRIPTOR_NAME in VARCHAR2,
130 X_DESCRIPTION in VARCHAR2,
131 X_RT_CATEGORY_ID in NUMBER,
132 X_TYPE in NUMBER,
133 X_SEARCH_RESULTS_VISIBLE in VARCHAR2,
134 X_ITEM_DETAIL_VISIBLE in VARCHAR2,
135 X_REQUIRED in NUMBER,
136 X_REFINABLE in NUMBER,
137 X_SEARCHABLE in NUMBER,
138 X_VALIDATED in NUMBER,
139 X_SEQUENCE in NUMBER,
140 X_TITLE in VARCHAR2,
141 X_DEFAULTVALUE in VARCHAR2,
142 X_MULTI_VALUE_TYPE in NUMBER,
143 X_MULTI_VALUE_KEY in VARCHAR2
144 ) is
145 cursor c1 is select
146 RT_DESCRIPTOR_ID,
147 KEY,
148 DESCRIPTOR_NAME,
149 DESCRIPTION,
150 RT_CATEGORY_ID,
151 TYPE,
152 SEARCH_RESULTS_VISIBLE,
153 ITEM_DETAIL_VISIBLE,
154 REQUIRED,
155 REFINABLE,
156 SEARCHABLE,
157 VALIDATED,
158 SEQUENCE,
159 TITLE,
160 DEFAULTVALUE,
161 MULTI_VALUE_TYPE,
162 MULTI_VALUE_KEY,
163 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
164 from ICX_CAT_DESCRIPTORS_TL
165 where RT_DESCRIPTOR_ID = X_RT_DESCRIPTOR_ID
166 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
167 for update of RT_DESCRIPTOR_ID nowait;
168 begin
169 for tlinfo in c1 loop
170 if (tlinfo.BASELANG = 'Y') then
171 if ( (tlinfo.KEY = X_KEY)
172 AND (tlinfo.DESCRIPTOR_NAME = X_DESCRIPTOR_NAME)
173 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
174 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
175 AND (tlinfo.RT_CATEGORY_ID = X_RT_CATEGORY_ID)
176 AND (tlinfo.TYPE = X_TYPE)
177 AND ((tlinfo.SEARCH_RESULTS_VISIBLE = X_SEARCH_RESULTS_VISIBLE)
178 OR ((tlinfo.SEARCH_RESULTS_VISIBLE is null) AND (X_SEARCH_RESULTS_VISIBLE is null)))
179 AND ((tlinfo.ITEM_DETAIL_VISIBLE = X_ITEM_DETAIL_VISIBLE)
180 OR ((tlinfo.ITEM_DETAIL_VISIBLE is null) AND (X_ITEM_DETAIL_VISIBLE is null)))
181 AND ((tlinfo.REQUIRED = X_REQUIRED)
182 OR ((tlinfo.REQUIRED is null) AND (X_REQUIRED is null)))
183 AND ((tlinfo.REFINABLE = X_REFINABLE)
184 OR ((tlinfo.REFINABLE is null) AND (X_REFINABLE is null)))
185 AND ((tlinfo.SEARCHABLE = X_SEARCHABLE)
186 OR ((tlinfo.SEARCHABLE is null) AND (X_SEARCHABLE is null)))
187 AND ((tlinfo.VALIDATED = X_VALIDATED)
188 OR ((tlinfo.VALIDATED is null) AND (X_VALIDATED is null)))
189 AND ((tlinfo.SEQUENCE = X_SEQUENCE)
190 OR ((tlinfo.SEQUENCE is null) AND (X_SEQUENCE is null)))
191 AND ((tlinfo.TITLE = X_TITLE)
192 OR ((tlinfo.TITLE is null) AND (X_TITLE is null)))
193 AND ((tlinfo.DEFAULTVALUE = X_DEFAULTVALUE)
194 OR ((tlinfo.DEFAULTVALUE is null) AND (X_DEFAULTVALUE is null)))
195 AND ((tlinfo.MULTI_VALUE_TYPE = X_MULTI_VALUE_TYPE)
196 OR ((tlinfo.MULTI_VALUE_TYPE is null) AND (X_MULTI_VALUE_TYPE is
197 null)))
198 AND ((tlinfo.MULTI_VALUE_KEY = X_MULTI_VALUE_KEY)
199 OR ((tlinfo.MULTI_VALUE_KEY is null) AND (X_MULTI_VALUE_KEY is null)))
200 ) then
201 null;
202 else
203 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
204 app_exception.raise_exception;
205 end if;
206 end if;
207 end loop;
208 return;
209 end LOCK_ROW;
210
211 procedure UPDATE_ROW (
212 X_RT_DESCRIPTOR_ID in NUMBER,
213 X_KEY in VARCHAR2,
214 X_DESCRIPTOR_NAME in VARCHAR2,
215 X_DESCRIPTION in VARCHAR2,
216 X_RT_CATEGORY_ID in NUMBER,
217 X_TYPE in NUMBER,
218 X_SEARCH_RESULTS_VISIBLE in VARCHAR2,
219 X_ITEM_DETAIL_VISIBLE in VARCHAR2,
220 X_REQUIRED in NUMBER,
221 X_REFINABLE in NUMBER,
222 X_SEARCHABLE in NUMBER,
223 X_VALIDATED in NUMBER,
224 X_SEQUENCE in NUMBER,
225 X_TITLE in VARCHAR2,
226 X_DEFAULTVALUE in VARCHAR2,
227 X_MULTI_VALUE_TYPE in NUMBER,
228 X_MULTI_VALUE_KEY in VARCHAR2,
229 X_LAST_UPDATED_BY in NUMBER,
230 X_LAST_UPDATE_DATE in DATE,
231 X_LAST_UPDATE_LOGIN in NUMBER,
232 X_REQUEST_ID in NUMBER,
233 X_PROGRAM_APPLICATION_ID in NUMBER,
234 X_PROGRAM_ID in NUMBER,
235 X_PROGRAM_UPDATE_DATE in DATE,
236 X_STORED_IN_TABLE in VARCHAR2,
237 X_STORED_IN_COLUMN in VARCHAR2,
238 X_SECTION_TAG in NUMBER,
239 X_CLASS in VARCHAR2
240 ) is
241 begin
242 --Attributes that are not translated i.e rt_category_id, key, type,
243 --search_resuls_visible, item_detail_visible, required, refinable,
244 --searchable, sequence, stored_in_table, stored_in_column,
245 --section_tag and class should be updated
246 --for all rows irrespective of the language and source_lang
247 --So changed the update statement into two update statements,
248 --first sql non-translated values only for those descriptors which are
249 --not customized i.e. for a descriptor there should
250 --be no row with the last_updated_by <> -1.
251 --and the secpnd sql updates the translated values, for the descriptors
252 --which were not already translated by the customers
253 --due the clause (userenv('LANG') in (LANGUAGE, SOURCE_LANG))
254 update ICX_CAT_DESCRIPTORS_TL o set
255 KEY = X_KEY,
256 RT_CATEGORY_ID = X_RT_CATEGORY_ID,
257 TYPE = X_TYPE,
258 SEARCH_RESULTS_VISIBLE = X_SEARCH_RESULTS_VISIBLE,
259 ITEM_DETAIL_VISIBLE = X_ITEM_DETAIL_VISIBLE,
260 REQUIRED = X_REQUIRED,
261 REFINABLE = X_REFINABLE,
262 SEARCHABLE = X_SEARCHABLE,
263 SEQUENCE = X_SEQUENCE,
264 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
265 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
266 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
267 REQUEST_ID = X_REQUEST_ID,
268 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
269 PROGRAM_ID = X_PROGRAM_ID,
270 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE,
271 STORED_IN_TABLE = X_STORED_IN_TABLE,
272 STORED_IN_COLUMN = X_STORED_IN_COLUMN,
273 SECTION_TAG = X_SECTION_TAG,
274 CLASS = X_CLASS
275 where RT_DESCRIPTOR_ID = X_RT_DESCRIPTOR_ID
276 and not exists ( select null from ICX_CAT_DESCRIPTORS_TL i
277 where i.RT_DESCRIPTOR_ID = o.RT_DESCRIPTOR_ID
278 and i.LAST_UPDATED_BY <> -1);
279
280 update ICX_CAT_DESCRIPTORS_TL set
281 DESCRIPTOR_NAME = X_DESCRIPTOR_NAME,
282 DESCRIPTION = X_DESCRIPTION,
283 VALIDATED = X_VALIDATED,
284 TITLE = X_TITLE,
285 DEFAULTVALUE = X_DEFAULTVALUE,
286 MULTI_VALUE_TYPE = X_MULTI_VALUE_TYPE,
287 MULTI_VALUE_KEY = X_MULTI_VALUE_KEY,
288 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
289 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
290 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
291 REQUEST_ID = X_REQUEST_ID,
292 PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
293 PROGRAM_ID = X_PROGRAM_ID,
294 PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE,
295 SOURCE_LANG = userenv('LANG')
296 where RT_DESCRIPTOR_ID = X_RT_DESCRIPTOR_ID
297 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
298
299 if (sql%notfound) then
300 raise no_data_found;
301 end if;
302 end UPDATE_ROW;
303
304 procedure DELETE_ROW (
305 X_RT_DESCRIPTOR_ID in NUMBER
306 ) is
307 begin
308 delete from ICX_CAT_DESCRIPTORS_TL
309 where RT_DESCRIPTOR_ID = X_RT_DESCRIPTOR_ID;
310
311 if (sql%notfound) then
312 raise no_data_found;
313 end if;
314
315 end DELETE_ROW;
316
317
318 procedure TRANSLATE_ROW(
319 X_RT_DESCRIPTOR_ID in VARCHAR2,
320 X_OWNER in VARCHAR2,
321 X_DESCRIPTOR_NAME in VARCHAR2,
322 X_DESCRIPTION in VARCHAR2) is
323 begin
324
325 update icx_cat_descriptors_tl set
326 descriptor_name = nvl(X_DESCRIPTOR_NAME, DESCRIPTOR_NAME),
327 description = nvl(X_DESCRIPTION, DESCRIPTION),
328 source_lang = userenv('LANG'),
329 last_update_date = sysdate,
330 last_updated_by = decode(X_OWNER, 'SEED', -1, 0),
331 last_update_login = 0
332 where rt_descriptor_id = to_number(X_RT_DESCRIPTOR_ID)
333 and userenv('LANG') in (language, source_lang);
334
335 end TRANSLATE_ROW;
336
337
338 procedure LOAD_ROW(
339 X_DESCRIPTOR_ID in VARCHAR2,
340 X_OWNER in VARCHAR2,
341 X_KEY in VARCHAR2,
342 X_DESCRIPTOR_NAME in VARCHAR2,
343 X_DESCRIPTION in VARCHAR2,
344 X_CATEGORY_ID in VARCHAR2,
345 X_TYPE in VARCHAR2,
346 X_SEARCH_RESULTS_VISIBLE in VARCHAR2,
347 X_ITEM_DETAIL_VISIBLE in VARCHAR2,
348 X_REQUIRED in VARCHAR2,
349 X_REFINABLE in VARCHAR2,
350 X_SEARCHABLE in VARCHAR2,
351 X_VALIDATED in VARCHAR2,
352 X_SEQUENCE in VARCHAR2,
353 X_TITLE in VARCHAR2,
354 X_DEFAULTVALUE in VARCHAR2,
355 X_MULTI_VALUE_TYPE in VARCHAR2,
356 X_MULTI_VALUE_KEY in VARCHAR2,
357 X_STORED_IN_TABLE in VARCHAR2,
358 X_STORED_IN_COLUMN in VARCHAR2,
359 X_SECTION_TAG in NUMBER,
360 X_CLASS in VARCHAR2
361 ) is
362 begin
363
364 declare
365 user_id number := 0;
366 row_id varchar2(64);
367
368 begin
369 if (X_OWNER = 'SEED') then
370 user_id := -1;
371 end if;
372
373 ICX_CAT_DESCRIPTORS_PKG.UPDATE_ROW (
374 X_RT_DESCRIPTOR_ID => to_number(X_DESCRIPTOR_ID),
375 X_KEY => X_KEY,
376 X_DESCRIPTOR_NAME => X_DESCRIPTOR_NAME,
377 X_DESCRIPTION => X_DESCRIPTION,
378 X_RT_CATEGORY_ID => to_number(X_CATEGORY_ID),
379 X_TYPE => to_number(X_TYPE),
380 X_SEARCH_RESULTS_VISIBLE => X_SEARCH_RESULTS_VISIBLE,
381 X_ITEM_DETAIL_VISIBLE => X_ITEM_DETAIL_VISIBLE,
382 X_REQUIRED => to_number(X_REQUIRED),
383 X_REFINABLE => to_number(X_REFINABLE),
384 X_SEARCHABLE => to_number(X_SEARCHABLE),
385 X_VALIDATED => to_number(X_VALIDATED),
386 X_SEQUENCE => to_number(X_SEQUENCE),
387 X_TITLE => X_TITLE,
388 X_DEFAULTVALUE => X_DEFAULTVALUE,
389 X_MULTI_VALUE_TYPE => to_number(X_MULTI_VALUE_TYPE),
390 X_MULTI_VALUE_KEY => X_MULTI_VALUE_KEY,
391 X_LAST_UPDATED_BY => user_id,
392 X_LAST_UPDATE_DATE => sysdate,
393 X_LAST_UPDATE_LOGIN => 0,
394 X_REQUEST_ID => null,
395 X_PROGRAM_APPLICATION_ID => null,
396 X_PROGRAM_ID => null,
397 X_PROGRAM_UPDATE_DATE => null,
398 X_STORED_IN_TABLE => X_STORED_IN_TABLE,
399 X_STORED_IN_COLUMN => X_STORED_IN_COLUMN,
400 X_SECTION_TAG => X_SECTION_TAG,
401 X_CLASS => X_CLASS
402 );
403
404 exception
405 when NO_DATA_FOUND then
406
407 ICX_CAT_DESCRIPTORS_PKG.INSERT_ROW (
408 X_ROWID => row_id,
409 X_RT_DESCRIPTOR_ID => to_number(X_DESCRIPTOR_ID),
410 X_KEY => X_KEY,
411 X_DESCRIPTOR_NAME => X_DESCRIPTOR_NAME,
412 X_DESCRIPTION => X_DESCRIPTION,
413 X_RT_CATEGORY_ID => to_number(X_CATEGORY_ID),
414 X_TYPE => to_number(X_TYPE),
415 X_SEARCH_RESULTS_VISIBLE => X_SEARCH_RESULTS_VISIBLE,
416 X_ITEM_DETAIL_VISIBLE => X_ITEM_DETAIL_VISIBLE,
417 X_REQUIRED => to_number(X_REQUIRED),
418 X_REFINABLE => to_number(X_REFINABLE),
419 X_SEARCHABLE => to_number(X_SEARCHABLE),
420 X_VALIDATED => to_number(X_VALIDATED),
421 X_SEQUENCE => to_number(X_SEQUENCE),
422 X_TITLE => X_TITLE,
423 X_DEFAULTVALUE => X_DEFAULTVALUE,
424 X_MULTI_VALUE_TYPE => to_number(X_MULTI_VALUE_TYPE),
425 X_MULTI_VALUE_KEY => X_MULTI_VALUE_KEY,
426 X_CREATED_BY => user_id,
427 X_CREATION_DATE => sysdate,
428 X_LAST_UPDATED_BY => user_id,
429 X_LAST_UPDATE_DATE => sysdate,
430 X_LAST_UPDATE_LOGIN => 0,
431 X_REQUEST_ID => null,
432 X_PROGRAM_APPLICATION_ID => null,
433 X_PROGRAM_ID => null,
434 X_PROGRAM_UPDATE_DATE => null,
435 X_STORED_IN_TABLE => X_STORED_IN_TABLE,
436 X_STORED_IN_COLUMN => X_STORED_IN_COLUMN,
437 X_SECTION_TAG => X_SECTION_TAG,
438 X_CLASS => X_CLASS);
439
440 end;
441 end LOAD_ROW;
442
443
444 procedure ADD_LANGUAGE
445 is
446 begin
447 /* comment out for bug 2085107
448 update ICX_CAT_DESCRIPTORS_TL T set (
449 DESCRIPTOR_NAME,
450 DESCRIPTION
451 ) = (select
452 B.DESCRIPTOR_NAME,
453 B.DESCRIPTION
454 from ICX_CAT_DESCRIPTORS_TL B
455 where B.RT_DESCRIPTOR_ID = T.RT_DESCRIPTOR_ID
456 and B.LANGUAGE = T.SOURCE_LANG)
457 where (
458 T.RT_DESCRIPTOR_ID,
459 T.LANGUAGE
460 ) in (select
461 SUBT.RT_DESCRIPTOR_ID,
462 SUBT.LANGUAGE
463 from ICX_CAT_DESCRIPTORS_TL SUBB, ICX_POR_DESCRIPTORS_TL SUBT
464 where SUBB.RT_DESCRIPTOR_ID = SUBT.RT_DESCRIPTOR_ID
465 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
466 and (SUBB.DESCRIPTOR_NAME <> SUBT.DESCRIPTOR_NAME
467 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
468 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
469 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
470 ));
471 */
472
473
474 insert into ICX_CAT_DESCRIPTORS_TL (
475 RT_DESCRIPTOR_ID,
476 KEY,
477 DESCRIPTOR_NAME,
478 DESCRIPTION,
479 RT_CATEGORY_ID,
480 TYPE,
481 SEARCH_RESULTS_VISIBLE,
482 ITEM_DETAIL_VISIBLE,
483 REQUIRED,
484 REFINABLE,
485 SEARCHABLE,
486 VALIDATED,
487 SEQUENCE,
488 TITLE,
489 DEFAULTVALUE,
490 MULTI_VALUE_TYPE,
491 MULTI_VALUE_KEY,
492 CLASS,
493 CUSTOMIZATION_LEVEL,
494 SECTION_TAG,
495 CREATED_BY,
496 CREATION_DATE,
497 LAST_UPDATED_BY,
498 LAST_UPDATE_DATE,
499 LAST_UPDATE_LOGIN,
500 REQUEST_ID,
501 PROGRAM_APPLICATION_ID,
502 PROGRAM_ID,
503 PROGRAM_UPDATE_DATE,
504 LANGUAGE,
505 SOURCE_LANG,
506 STORED_IN_TABLE,
507 STORED_IN_COLUMN
508 ) select
509 B.RT_DESCRIPTOR_ID,
510 B.KEY,
511 B.DESCRIPTOR_NAME,
512 B.DESCRIPTION,
513 B.RT_CATEGORY_ID,
514 B.TYPE,
515 B.SEARCH_RESULTS_VISIBLE,
516 B.ITEM_DETAIL_VISIBLE,
517 B.REQUIRED,
518 B.REFINABLE,
519 B.SEARCHABLE,
520 B.VALIDATED,
521 B.SEQUENCE,
522 B.TITLE,
523 B.DEFAULTVALUE,
524 B.MULTI_VALUE_TYPE,
525 B.MULTI_VALUE_KEY,
526 B.CLASS,
527 B.CUSTOMIZATION_LEVEL,
528 B.SECTION_TAG,
529 B.CREATED_BY,
530 B.CREATION_DATE,
531 B.LAST_UPDATED_BY,
532 B.LAST_UPDATE_DATE,
533 B.LAST_UPDATE_LOGIN,
534 B.REQUEST_ID,
535 B.PROGRAM_APPLICATION_ID,
536 B.PROGRAM_ID,
537 B.PROGRAM_UPDATE_DATE,
538 L.LANGUAGE_CODE,
539 B.SOURCE_LANG,
540 B.STORED_IN_TABLE,
541 B.STORED_IN_COLUMN
542 from ICX_CAT_DESCRIPTORS_TL B, FND_LANGUAGES L
543 where L.INSTALLED_FLAG in ('I', 'B')
544 and B.LANGUAGE = userenv('LANG')
545 and not exists
546 (select NULL
547 from ICX_CAT_DESCRIPTORS_TL T
548 where T.RT_DESCRIPTOR_ID = B.RT_DESCRIPTOR_ID
549 and T.LANGUAGE = L.LANGUAGE_CODE);
550
551 end ADD_LANGUAGE;
552
553 end ICX_CAT_DESCRIPTORS_PKG;