1 package body EGO_CATG_MAP_PKG as
2 /* $Header: EGOCTMPB.pls 120.1 2005/12/08 01:55:50 lparihar noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out NOCOPY VARCHAR2,
6 X_CATG_MAP_ID in NUMBER,
7 X_SOURCE_CATG_SET_ID in NUMBER,
8 X_TARGET_CATG_SET_ID in NUMBER,
9 X_ENABLED_FLAG in VARCHAR2,
10 X_CATG_MAP_NAME in VARCHAR2,
11 X_CATG_MAP_DESC in VARCHAR2,
12 X_CREATION_DATE in DATE,
13 X_CREATED_BY in NUMBER,
14 X_LAST_UPDATE_DATE in DATE,
15 X_LAST_UPDATED_BY in NUMBER,
16 X_LAST_UPDATE_LOGIN in NUMBER
17 ) is
18 cursor C is select ROWID from EGO_CATG_MAP_HDRS_B
19 where CATG_MAP_ID = X_CATG_MAP_ID
20 ;
21 begin
22 insert into EGO_CATG_MAP_HDRS_B (
23 CATG_MAP_ID,
24 SOURCE_CATG_SET_ID,
25 TARGET_CATG_SET_ID,
26 ENABLED_FLAG,
27 CREATION_DATE,
28 CREATED_BY,
29 LAST_UPDATE_DATE,
30 LAST_UPDATED_BY,
31 LAST_UPDATE_LOGIN
32 ) values (
33 X_CATG_MAP_ID,
34 X_SOURCE_CATG_SET_ID,
35 X_TARGET_CATG_SET_ID,
36 X_ENABLED_FLAG,
37 X_CREATION_DATE,
38 X_CREATED_BY,
39 X_LAST_UPDATE_DATE,
40 X_LAST_UPDATED_BY,
41 X_LAST_UPDATE_LOGIN
42 );
43
44 insert into EGO_CATG_MAP_HDRS_TL (
45 CATG_MAP_ID,
46 CATG_MAP_NAME,
47 CATG_MAP_DESC,
48 CREATION_DATE,
49 CREATED_BY,
50 LAST_UPDATE_DATE,
51 LAST_UPDATED_BY,
52 LAST_UPDATE_LOGIN,
53 LANGUAGE,
54 SOURCE_LANG
55 ) select
56 X_CATG_MAP_ID,
57 X_CATG_MAP_NAME,
58 X_CATG_MAP_DESC,
59 X_CREATION_DATE,
60 X_CREATED_BY,
61 X_LAST_UPDATE_DATE,
62 X_LAST_UPDATED_BY,
63 X_LAST_UPDATE_LOGIN,
64 L.LANGUAGE_CODE,
65 userenv('LANG')
66 from FND_LANGUAGES L
67 where L.INSTALLED_FLAG in ('I', 'B')
68 and not exists
69 (select NULL
70 from EGO_CATG_MAP_HDRS_TL T
71 where T.CATG_MAP_ID = X_CATG_MAP_ID
72 and T.LANGUAGE = L.LANGUAGE_CODE);
73 open c;
74 fetch c into X_ROWID;
75 if (c%notfound) then
76 close c;
77 raise no_data_found;
78 end if;
79 close c;
80
81 end INSERT_ROW;
82
83
84 procedure LOCK_ROW (
85 X_CATG_MAP_ID in NUMBER,
86 X_SOURCE_CATG_SET_ID in NUMBER,
87 X_TARGET_CATG_SET_ID in NUMBER,
88 X_ENABLED_FLAG in VARCHAR2,
89 X_CATG_MAP_NAME in VARCHAR2,
90 X_CATG_MAP_DESC in VARCHAR2
91 ) is
92 cursor c is select
93 SOURCE_CATG_SET_ID,
94 TARGET_CATG_SET_ID,
95 ENABLED_FLAG
96 from EGO_CATG_MAP_HDRS_B
97 where CATG_MAP_ID = X_CATG_MAP_ID
98 for update of CATG_MAP_ID nowait;
99 recinfo c%rowtype;
100
101 cursor c1 is select
102 CATG_MAP_NAME,
103 CATG_MAP_DESC,
104 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
105 from EGO_CATG_MAP_HDRS_TL
106 where CATG_MAP_ID = X_CATG_MAP_ID
107 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
108 for update of CATG_MAP_ID nowait;
109 begin
110 open c;
111 fetch c into recinfo;
112 if (c%notfound) then
113 close c;
114 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
115 app_exception.raise_exception;
116 end if;
117 close c;
118 if ( ((recinfo.SOURCE_CATG_SET_ID = X_SOURCE_CATG_SET_ID)
119 OR ((recinfo.SOURCE_CATG_SET_ID is null) AND (X_SOURCE_CATG_SET_ID is null)))
120 AND ((recinfo.TARGET_CATG_SET_ID = X_TARGET_CATG_SET_ID)
121 OR ((recinfo.TARGET_CATG_SET_ID is null) AND (X_TARGET_CATG_SET_ID is null)))
122 AND ((recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
123 OR ((recinfo.ENABLED_FLAG is null) AND (X_ENABLED_FLAG is null)))
124 ) then
125 null;
126 else
127 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
128 app_exception.raise_exception;
129 end if;
130
131 for tlinfo in c1 loop
132 if (tlinfo.BASELANG = 'Y') then
133 if ( ((tlinfo.CATG_MAP_NAME = X_CATG_MAP_NAME)
134 OR ((tlinfo.CATG_MAP_NAME is null) AND (X_CATG_MAP_NAME is null)))
135 AND ((tlinfo.CATG_MAP_DESC = X_CATG_MAP_DESC)
136 OR ((tlinfo.CATG_MAP_DESC is null) AND (X_CATG_MAP_DESC is null)))
137 ) then
138 null;
139 else
140 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
141 app_exception.raise_exception;
142 end if;
143 end if;
144 end loop;
145 return;
146 end LOCK_ROW;
147
148
149 procedure UPDATE_ROW (
150 X_CATG_MAP_ID in NUMBER,
151 X_SOURCE_CATG_SET_ID in NUMBER,
152 X_TARGET_CATG_SET_ID in NUMBER,
153 X_ENABLED_FLAG in VARCHAR2,
154 X_CATG_MAP_NAME in VARCHAR2,
155 X_CATG_MAP_DESC in VARCHAR2,
156 X_LAST_UPDATE_DATE in DATE,
157 X_LAST_UPDATED_BY in NUMBER,
158 X_LAST_UPDATE_LOGIN in NUMBER
159 ) is
160 BEGIN
161 update EGO_CATG_MAP_HDRS_B set
162 SOURCE_CATG_SET_ID = X_SOURCE_CATG_SET_ID,
163 TARGET_CATG_SET_ID = X_TARGET_CATG_SET_ID,
164 ENABLED_FLAG = X_ENABLED_FLAG,
165 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
166 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
167 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
168 where CATG_MAP_ID = X_CATG_MAP_ID;
169
170 if (sql%notfound) then
171 raise no_data_found;
172 end if;
173
174 update EGO_CATG_MAP_HDRS_TL set
175 CATG_MAP_NAME = X_CATG_MAP_NAME,
176 CATG_MAP_DESC = X_CATG_MAP_DESC,
177 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
178 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
179 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
180 SOURCE_LANG = userenv('LANG')
181 where CATG_MAP_ID = X_CATG_MAP_ID
182 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
183
184 if (sql%notfound) then
185 raise no_data_found;
186 end if;
187 end UPDATE_ROW;
188
189
190 procedure DELETE_ROW (
191 X_CATG_MAP_ID in NUMBER
192 ) is
193 begin
194 delete from EGO_CATG_MAP_HDRS_TL
195 where CATG_MAP_ID = X_CATG_MAP_ID;
196
197 if (sql%notfound) then
198 raise no_data_found;
199 end if;
200
201 delete from EGO_CATG_MAP_HDRS_B
202 where CATG_MAP_ID = X_CATG_MAP_ID;
203
204 if (sql%notfound) then
205 raise no_data_found;
206 end if;
207 end DELETE_ROW;
208
209 PROCEDURE Load_Row
210 (
211 X_CATG_MAP_ID in NUMBER,
212 X_SOURCE_CATG_SET_NAME in VARCHAR2,
213 X_TARGET_CATG_SET_NAME in VARCHAR2,
214 X_ENABLED_FLAG in VARCHAR2,
215 X_OWNER in VARCHAR2,
216 X_LAST_UPDATE_DATE in VARCHAR2,
217 X_CATG_MAP_NAME in VARCHAR2,
218 X_CATG_MAP_DESC in VARCHAR2
219 ) IS
220 l_catg_map_id NUMBER;
221 l_source_catg_set_id NUMBER;
222 l_target_catg_set_id NUMBER;
223 l_current_user_id NUMBER := EGO_SCTX.Get_User_Id();
224 l_current_login_id NUMBER := FND_GLOBAL.Login_Id;
225
226
227 CURSOR get_catg_map_id(l_source_catg_set_id NUMBER, l_target_catg_set_id NUMBER)
228 IS
229 SELECT CATG_MAP_ID
230 FROM EGO_CATG_MAP_HDRS_B
231 WHERE SOURCE_CATG_SET_ID = l_source_catg_set_id
232 AND TARGET_CATG_SET_ID = l_target_catg_set_id;
233
234 BEGIN
235
236 BEGIN
237 -- getting the source catg set id by passing the source category_set_name
238 SELECT CATEGORY_SET_ID SOURCE_CATG_SET_ID
239 INTO l_source_catg_set_id
240 FROM MTL_CATEGORY_SETS
241 WHERE CATEGORY_SET_NAME = X_SOURCE_CATG_SET_NAME;
242
243 EXCEPTION
244 WHEN no_data_found THEN
245 fnd_message.set_name('FND','GENERIC-INTERNAL ERROR');
246 fnd_message.set_token('ROUTINE','Category Mapping');
247 fnd_message.set_token('REASON','Source Category Set ' || X_SOURCE_CATG_SET_NAME || ' does not exist ' );
248 app_exception.raise_exception;
249 END;
250
251 BEGIN
252 -- getting the target catg set id by passing the target category_set_name
253 SELECT CATEGORY_SET_ID TARGET_CATG_SET_ID
254 INTO l_target_catg_set_id
255 FROM MTL_CATEGORY_SETS
256 WHERE CATEGORY_SET_NAME = X_TARGET_CATG_SET_NAME;
257
258 EXCEPTION
259 WHEN no_data_found THEN
260 fnd_message.set_name('FND','GENERIC-INTERNAL ERROR');
261 fnd_message.set_token('ROUTINE','Category Mapping');
262 fnd_message.set_token('REASON','Target Category Set ' || X_TARGET_CATG_SET_NAME || ' does not exist ' );
263 app_exception.raise_exception;
264 END;
265
266 -- trying to findout whether the catg_map id exists for the source and target category sets
267 OPEN get_catg_map_id(l_source_catg_set_id, l_target_catg_set_id);
268 -- if it doesn't exist, inserting in to the ego_catg_map_header table
269 FETCH get_catg_map_id INTO l_catg_map_id;
270 if (get_catg_map_id%NOTFOUND) THEN
271 select EGO_CATG_MAPS_S.nextval into l_catg_map_id from dual;
272
273 INSERT INTO EGO_CATG_MAP_HDRS_B
274 (
275 CATG_MAP_ID,
276 SOURCE_CATG_SET_ID,
277 TARGET_CATG_SET_ID,
278 ENABLED_FLAG,
279 CREATED_BY,
280 CREATION_DATE,
281 LAST_UPDATED_BY,
282 LAST_UPDATE_DATE,
283 LAST_UPDATE_LOGIN
284 ) VALUES
285 (
286 l_catg_map_id,
287 l_source_catg_set_id,
288 l_target_catg_set_id,
289 X_ENABLED_FLAG,
290 l_current_user_id,
291 sysdate,
292 l_current_user_id,
293 sysdate,
294 l_current_login_id
295 );
296
297 INSERT INTO EGO_CATG_MAP_HDRS_TL
298 (
299 CATG_MAP_ID,
300 LANGUAGE,
301 SOURCE_LANG,
302 CATG_MAP_NAME,
303 CATG_MAP_DESC,
304 CREATED_BY,
305 CREATION_DATE,
306 LAST_UPDATED_BY,
307 LAST_UPDATE_DATE,
308 LAST_UPDATE_LOGIN)
309 SELECT
310 l_catg_map_id,
311 L.LANGUAGE_CODE,
312 USERENV('LANG'),
313 X_CATG_MAP_NAME,
314 X_CATG_MAP_DESC,
315 l_current_user_id,
316 sysdate,
317 l_current_user_id,
318 sysdate,
319 l_current_login_id
320 FROM FND_LANGUAGES L
321 WHERE L.INSTALLED_FLAG IN ('I','B')
322 AND NOT EXISTS(SELECT 'X' FROM EGO_CATG_MAP_HDRS_TL A
323 WHERE A.CATG_MAP_ID = l_catg_map_id
324 AND A.LANGUAGE = L.LANGUAGE_CODE);
325 ELSE
326
327 -- if it does exist updating the enabled flag and description
328 UPDATE EGO_CATG_MAP_HDRS_B
329 SET ENABLED_FLAG = X_ENABLED_FLAG,
330 LAST_UPDATED_BY = l_current_user_id,
331 LAST_UPDATE_DATE = sysdate,
332 LAST_UPDATE_LOGIN = l_current_login_id
333 WHERE SOURCE_CATG_SET_ID = l_source_catg_set_id
334 AND TARGET_CATG_SET_ID = l_target_catg_set_id
335 AND CATG_MAP_ID = l_catg_map_id;
336
337 UPDATE EGO_CATG_MAP_HDRS_TL
338 SET CATG_MAP_DESC = X_CATG_MAP_DESC,
339 LAST_UPDATED_BY = l_current_user_id,
340 LAST_UPDATE_DATE = sysdate,
341 LAST_UPDATE_LOGIN = l_current_login_id
342 WHERE CATG_MAP_ID = l_catg_map_id
343 AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
344 END IF;
345 CLOSE get_catg_map_id;
346
347 END Load_Row;
348
349
350 PROCEDURE Load_Row
351 (
352 X_CATG_MAP_ID in NUMBER,
353 X_SOURCE_CATG_SET_NAME in VARCHAR2,
354 X_TARGET_CATG_SET_NAME in VARCHAR2,
355 X_OWNER in VARCHAR2,
356 X_LAST_UPDATE_DATE in VARCHAR2,
357 X_SOURCE_CATG_NAME in VARCHAR2,
358 X_TARGET_CATG_NAME in VARCHAR2
359 ) IS
360
361 l_source_catg_id NUMBER;
362 l_target_catg_id NUMBER;
363 l_current_user_id NUMBER := EGO_SCTX.Get_User_Id();
364 l_current_login_id NUMBER := FND_GLOBAL.Login_Id;
365 l_source_catg_set_id NUMBER;
366 l_target_catg_set_id NUMBER;
367 l_catg_map_id NUMBER;
368 l_count NUMBER;
369
370 CURSOR get_catg_map_id(l_source_catg_set_id NUMBER, l_target_catg_set_id NUMBER)
371 IS
372 SELECT CATG_MAP_ID
373 FROM EGO_CATG_MAP_HDRS_B
374 WHERE SOURCE_CATG_SET_ID = l_source_catg_set_id
375 AND TARGET_CATG_SET_ID = l_target_catg_set_id;
376
377 CURSOR is_catg_map_dtls_exists(l_catg_map_id NUMBER,
378 l_source_catg_id NUMBER,
379 l_target_catg_id NUMBER)
380 IS
381 SELECT 1
382 FROM EGO_CATG_MAP_DTLS
383 WHERE CATG_MAP_ID = l_catg_map_id
384 AND SOURCE_CATG_ID = l_source_catg_id
385 AND TARGET_CATG_ID = l_target_catg_id
386 AND ROWNUM = 1;
387
388 BEGIN
389
390 -- getting the source catg set id by passing the source category_set_name
391 SELECT B.CATEGORY_SET_ID SOURCE_CATG_SET_ID
392 INTO l_source_catg_set_id
393 FROM MTL_CATEGORY_SETS B
394 WHERE B.CATEGORY_SET_NAME = X_SOURCE_CATG_SET_NAME;
395
396 -- getting the target catg set id by passing the target category_set_name
397 SELECT CATEGORY_SET_ID TARGET_CATG_SET_ID
398 INTO l_target_catg_set_id
399 FROM MTL_CATEGORY_SETS
400 WHERE CATEGORY_SET_NAME = X_TARGET_CATG_SET_NAME;
401
402 -- getting the source category id by passing the source category_name
403 BEGIN
404 SELECT A.CATEGORY_ID SOURCE_CATG_ID
405 INTO l_source_catg_id
406 FROM MTL_CATEGORIES_B_KFV A,
407 MTL_CATEGORY_SETS B
408 WHERE B.CATEGORY_SET_ID = l_source_catg_set_id
409 AND A.STRUCTURE_ID = B.STRUCTURE_ID
410 AND A.CONCATENATED_SEGMENTS = X_SOURCE_CATG_NAME;
411 EXCEPTION
412 WHEN no_data_found THEN
413 fnd_message.set_name('FND','GENERIC-INTERNAL ERROR');
414 fnd_message.set_token('ROUTINE','Category Mapping');
415 fnd_message.set_token('REASON','Source Category ' || X_SOURCE_CATG_NAME || ' does not exist under catalog ' || X_SOURCE_CATG_SET_NAME );
416 -- app_exception.raise_exception;
417 END;
418
419 -- getting the target category id by passing the target category_name
420 BEGIN
421
422 SELECT A.CATEGORY_ID TARGET_CATG_ID
423 INTO l_target_catg_id
424 FROM MTL_CATEGORIES_B_KFV A,
425 MTL_CATEGORY_SETS B
426 WHERE B.CATEGORY_SET_ID = l_target_catg_set_id
427 AND A.STRUCTURE_ID = B.STRUCTURE_ID
428 AND A.CONCATENATED_SEGMENTS = X_TARGET_CATG_NAME;
429 EXCEPTION
430 WHEN no_data_found THEN
431 fnd_message.set_name('FND','GENERIC-INTERNAL ERROR');
432 fnd_message.set_token('ROUTINE','Category Mapping');
433 fnd_message.set_token('REASON','Target Category ' || X_TARGET_CATG_NAME || ' does not exist under catalog ' || X_TARGET_CATG_SET_NAME);
434 -- app_exception.raise_exception;
435 END;
436
437
438 -- Getting the category map id based on the source and the target catg sets
439 OPEN get_catg_map_id(l_source_catg_set_id,
440 l_target_catg_set_id);
441 FETCH get_catg_map_id INTO l_catg_map_id;
442 CLOSE get_catg_map_id;
443
444 OPEN is_catg_map_dtls_exists(l_catg_map_id,
445 l_source_catg_id,
446 l_target_catg_id);
447
448 -- if it doesn't exists, inserting the data in to the ego_catg_map_dtls table
449 FETCH is_catg_map_dtls_exists INTO l_count;
450 if (is_catg_map_dtls_exists%NOTFOUND) THEN
451
452
453 BEGIN
454 INSERT INTO EGO_CATG_MAP_DTLS
455 (
456 CATG_MAP_ID,
457 SOURCE_CATG_ID,
458 TARGET_CATG_ID,
459 CREATED_BY,
460 CREATION_DATE,
461 LAST_UPDATED_BY,
462 LAST_UPDATE_DATE,
463 LAST_UPDATE_LOGIN
464 ) VALUES
465 (
466 l_catg_map_id,
467 l_source_catg_id,
468 l_target_catg_id,
469 l_current_user_id,
470 sysdate,
471 l_current_user_id,
472 sysdate,
473 l_current_login_id
474 );
475
476 EXCEPTION
477 WHEN OTHERS THEN
478 null;
479 END;
480
481 END IF;
482 CLOSE is_catg_map_dtls_exists;
483
484 END Load_Row;
485
486 PROCEDURE Translate_Row
487 (
488 X_CATG_MAP_ID in NUMBER,
489 X_SOURCE_CATG_SET_NAME in VARCHAR2,
490 X_TARGET_CATG_SET_NAME in VARCHAR2,
491 X_ENABLED_FLAG in VARCHAR2,
492 X_OWNER in VARCHAR2,
493 X_LAST_UPDATE_DATE in VARCHAR2,
494 X_CATG_MAP_NAME in VARCHAR2,
495 X_CATG_MAP_DESC in VARCHAR2
496 ) IS
497
498 f_luby NUMBER; -- entity owner in file
499 f_ludate DATE; -- entity update date in file
500 db_luby NUMBER; -- entity owner in db
501 db_ludate DATE; -- entity update date in db
502
503 BEGIN
504
505 -- Translate owner to file_last_updated_by
506 f_luby := fnd_load_util.owner_id(x_owner);
507
508 -- Translate char last_update_date to date
509 f_ludate := SYSDATE;
510
511 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE
512 INTO db_luby, db_ludate
513 FROM EGO_CATG_MAP_HDRS_TL TL
514 WHERE TL.catg_map_id = X_CATG_MAP_ID
515 AND userenv('LANG') IN (language, source_lang);
516
517 IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
518 db_ludate, NULL)) THEN
519
520 UPDATE EGO_CATG_MAP_HDRS_TL TL
521 SET TL.CATG_MAP_NAME = NVL(x_CATG_MAP_NAME, CATG_MAP_NAME)
522 , TL.CATG_MAP_DESC = NVL(x_CATG_MAP_DESC, CATG_MAP_DESC)
523 , last_update_date = db_ludate
524 , last_updated_by = db_luby
525 , last_update_login = 0
526 , source_lang = userenv('LANG')
527 WHERE TL.catg_map_id = X_CATG_MAP_ID
528 AND userenv('LANG') IN (language, source_lang);
529
530 END IF;
531 END Translate_Row;
532
533
534
535 procedure ADD_LANGUAGE
536 is
537 begin
538 delete from EGO_CATG_MAP_HDRS_TL T
539 where not exists
540 (select NULL
541 from EGO_CATG_MAP_HDRS_B B
542 where B.CATG_MAP_ID = T.CATG_MAP_ID
543 );
544
545 update EGO_CATG_MAP_HDRS_TL T set (
546 CATG_MAP_NAME,
547 CATG_MAP_DESC
548 ) = (select
549 B.CATG_MAP_NAME,
550 B.CATG_MAP_DESC
551 from EGO_CATG_MAP_HDRS_TL B
552 where B.CATG_MAP_ID = T.CATG_MAP_ID
553 and B.LANGUAGE = T.SOURCE_LANG)
554 where (
555 T.CATG_MAP_ID,
556 T.LANGUAGE
557 ) in (select
558 SUBT.CATG_MAP_ID,
559 SUBT.LANGUAGE
560 from EGO_CATG_MAP_HDRS_TL SUBB, EGO_CATG_MAP_HDRS_TL SUBT
561 where SUBB.CATG_MAP_ID = SUBT.CATG_MAP_ID
562 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
563 and (SUBB.CATG_MAP_NAME <> SUBT.CATG_MAP_NAME
564 or (SUBB.CATG_MAP_NAME is null and SUBT.CATG_MAP_NAME is not null)
565 or (SUBB.CATG_MAP_NAME is not null and SUBT.CATG_MAP_NAME is null)
566 or SUBB.CATG_MAP_DESC <> SUBT.CATG_MAP_DESC
567 or (SUBB.CATG_MAP_DESC is null and SUBT.CATG_MAP_DESC is not null)
568 or (SUBB.CATG_MAP_DESC is not null and SUBT.CATG_MAP_DESC is null)
569 ));
570
571 insert into EGO_CATG_MAP_HDRS_TL (
572 CATG_MAP_ID,
573 CATG_MAP_NAME,
574 CATG_MAP_DESC,
575 CREATION_DATE,
576 CREATED_BY,
577 LAST_UPDATE_DATE,
578 LAST_UPDATED_BY,
579 LAST_UPDATE_LOGIN,
580 LANGUAGE,
581 SOURCE_LANG
582 ) select
583 B.CATG_MAP_ID,
584 B.CATG_MAP_NAME,
585 B.CATG_MAP_DESC,
586 B.CREATION_DATE,
587 B.CREATED_BY,
588 B.LAST_UPDATE_DATE,
589 B.LAST_UPDATED_BY,
590 B.LAST_UPDATE_LOGIN,
591 L.LANGUAGE_CODE,
592 B.SOURCE_LANG
593 from EGO_CATG_MAP_HDRS_TL B, FND_LANGUAGES L
594 where L.INSTALLED_FLAG in ('I', 'B')
595 and B.LANGUAGE = userenv('LANG')
596 and not exists
597 (select NULL
598 from EGO_CATG_MAP_HDRS_TL T
599 where T.CATG_MAP_ID = B.CATG_MAP_ID
600 and T.LANGUAGE = L.LANGUAGE_CODE);
601 end ADD_LANGUAGE;
602
603 end EGO_CATG_MAP_PKG;