[Home] [Help]
PACKAGE BODY: APPS.GL_JE_SOURCES_PKG
Source
1 PACKAGE BODY gl_je_sources_pkg AS
2 /* $Header: glijesrb.pls 120.11 2011/11/03 06:15:05 skotakar ship $ */
3
4 --
5 -- PRIVATE FUNCTIONS
6 --
7
8 --
9 -- Procedure
10 -- select_row
11 -- Purpose
12 -- Used to select a particular source row
13 -- History
14 -- 11-02-93 D. J. Ogg Created
15 -- Arguments
16 -- recinfo Various information about the row
17 -- Example
18 -- gl_je_sources_pkg.select_row(recinfo)
19 -- Notes
20 --
21 PROCEDURE select_row( recinfo IN OUT NOCOPY gl_je_sources%ROWTYPE) IS
22 BEGIN
23 SELECT *
24 INTO recinfo
25 FROM gl_je_sources
26 WHERE je_source_name = recinfo.je_source_name;
27 END SELECT_ROW;
28
29 PROCEDURE select_columns(x_je_source_name VARCHAR2,
30 x_user_je_source_name IN OUT NOCOPY VARCHAR2,
31 x_effective_date_rule_code IN OUT NOCOPY VARCHAR2,
32 x_frozen_source_flag IN OUT NOCOPY VARCHAR2,
33 x_journal_approval_flag IN OUT NOCOPY VARCHAR2) IS
34 recinfo gl_je_sources%ROWTYPE;
35
36 BEGIN
37 recinfo.je_source_name := x_je_source_name;
38 select_row(recinfo);
39 x_user_je_source_name := recinfo.user_je_source_name;
40 x_effective_date_rule_code := recinfo.effective_date_rule_code;
41 x_frozen_source_flag := recinfo.override_edits_flag;
42 x_journal_approval_flag := recinfo.journal_approval_flag;
43 END select_columns;
44
45 PROCEDURE check_unique_name(x_je_source_name VARCHAR2,
46 x_row_id VARCHAR2) IS
47 CURSOR chk_duplicates_name is
48 SELECT 'Duplicate'
49 FROM GL_JE_SOURCES jes
50 WHERE jes.je_source_name = x_je_source_name
51 AND ( x_row_id is null
52 OR jes.rowid <> chartorowid(x_row_id)) ;
53 dummy VARCHAR2(100);
54 BEGIN
55 OPEN chk_duplicates_name;
56 FETCH chk_duplicates_name INTO dummy;
57 IF chk_duplicates_name%FOUND THEN
58 CLOSE chk_duplicates_name;
59 fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JE_SOURCE_NAME');
60 app_exception.raise_exception;
61 END IF;
62 CLOSE chk_duplicates_name;
63 EXCEPTION
64 WHEN app_exceptions.application_exception THEN
65 RAISE;
66 WHEN OTHERS THEN
67 fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
68 fnd_message.set_token('PROCEDURE', 'gl_je_sources_pkg.check_unique_name');
69 RAISE;
70 END check_unique_name;
71
72 PROCEDURE check_unique_user_name(x_user_je_source_name VARCHAR2,
73 x_row_id VARCHAR2) IS
74 CURSOR chk_duplicates_user_name is
75 SELECT 'Duplicate'
76 FROM GL_JE_SOURCES jes
77 WHERE jes.user_je_source_name = x_user_je_source_name
78 AND ( x_row_id is null
79 OR jes.rowid <> x_row_id);
80 dummy VARCHAR2(100);
81 BEGIN
82 OPEN chk_duplicates_user_name;
83 FETCH chk_duplicates_user_name INTO dummy;
84 IF chk_duplicates_user_name%FOUND THEN
85 CLOSE chk_duplicates_user_name;
86 fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JE_SOURCE_NAME');
87 app_exception.raise_exception;
88 END IF;
89 CLOSE chk_duplicates_user_name;
90
91 EXCEPTION
92 WHEN app_exceptions.application_exception THEN
93 RAISE;
94 WHEN OTHERS THEN
95 fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
96 fnd_message.set_token('PROCEDURE',
97 'gl_je_sources_pkg.check_unique_user_name');
98 RAISE;
99 END check_unique_user_name;
100
101 PROCEDURE check_unique_key(x_je_source_key VARCHAR2,
102 x_row_id VARCHAR2) IS
103 CURSOR chk_duplicates_key is
104 SELECT 'Duplicate'
105 FROM GL_JE_SOURCES jes
106 WHERE jes.je_source_key = x_je_source_key
107 AND ( x_row_id is null
108 OR jes.rowid <> x_row_id);
109 dummy VARCHAR2(100);
110 BEGIN
111 OPEN chk_duplicates_key;
112 FETCH chk_duplicates_key INTO dummy;
113 IF chk_duplicates_key%FOUND THEN
114 CLOSE chk_duplicates_key;
115 fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JE_SOURCE_KEY');
116 app_exception.raise_exception;
117 END IF;
118 CLOSE chk_duplicates_key;
119
120 EXCEPTION
121 WHEN app_exceptions.application_exception THEN
122 RAISE;
123 WHEN OTHERS THEN
124 fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
125 fnd_message.set_token('PROCEDURE',
126 'gl_je_sources_pkg.check_unique_key');
127 RAISE;
128 END check_unique_key;
129
130 FUNCTION get_unique_id RETURN NUMBER IS
131 CURSOR get_new_id IS
132 SELECT gl_je_sources_s.NEXTVAL
133 FROM sys.dual;
134 new_id number;
135 BEGIN
136 OPEN get_new_id;
137 FETCH get_new_id INTO new_id;
138
139 IF get_new_id%FOUND THEN
140 CLOSE get_new_id;
141 return(new_id);
142 ELSE
143 CLOSE get_new_id;
144 fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
145 fnd_message.set_token('SEQUENCE', 'GL_JE_SOURCES_S');
146 app_exception.raise_exception;
147 END IF;
148
149 EXCEPTION
150 WHEN app_exceptions.application_exception THEN
151 RAISE;
152 WHEN OTHERS THEN
153 fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
154 fnd_message.set_token('PROCEDURE', 'gl_je_sources_pkg.get_unique_id');
155 RAISE;
156 END get_unique_id;
157
158 FUNCTION is_sla_source( X_je_source VARCHAR2) RETURN BOOLEAN IS
159 CURSOR chk_sla_source IS
160 SELECT 'Is SLA Source'
161 FROM
162 XLA_SUBLEDGERS sla
163 WHERE sla.je_source_name = X_je_source;
164 dummy VARCHAR2(100);
165 BEGIN
166 OPEN chk_sla_source;
167 FETCH chk_sla_source INTO dummy;
168
169 IF ( chk_sla_source%FOUND ) THEN
170 CLOSE chk_sla_source;
171 RETURN(TRUE);
172 ELSE
173 CLOSE chk_sla_source;
174 return(FALSE);
175 END IF;
176 END is_sla_source;
177
178
179 PROCEDURE Insert_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
180 X_Je_Source_Name IN OUT NOCOPY VARCHAR2,
181 X_Language IN OUT NOCOPY VARCHAR2,
182 X_Source_Lang IN OUT NOCOPY VARCHAR2,
183 X_Last_Update_Date DATE,
184 X_Last_Updated_By NUMBER,
185 X_Override_Edits_Flag VARCHAR2,
186 X_User_Je_Source_Name VARCHAR2,
187 X_Je_Source_Key VARCHAR2,
188 X_Journal_Reference_Flag VARCHAR2,
189 X_Journal_Approval_Flag VARCHAR2,
190 X_Effective_Date_Rule_Code VARCHAR2,
191 X_Import_Using_Key_Flag VARCHAR2,
192 X_Creation_Date DATE,
193 X_Last_Update_Login NUMBER,
194 X_Description VARCHAR2,
195 X_Attribute1 VARCHAR2,
196 X_Attribute2 VARCHAR2,
197 X_Attribute3 VARCHAR2,
198 X_Attribute4 VARCHAR2,
199 X_Attribute5 VARCHAR2,
200 X_Context VARCHAR2) IS
201 CURSOR C IS SELECT rowid, language, source_lang
202 FROM GL_JE_SOURCES_TL
203 WHERE je_source_name = X_Je_Source_Name
204 and Language = userenv('LANG');
205 CURSOR C2 IS SELECT gl_je_headers_s.nextval FROM dual;
206 BEGIN
207
208 if (X_Je_Source_Name is NULL) then
209 OPEN C2;
210 FETCH C2 INTO X_Je_Source_Name;
211 CLOSE C2;
212 end if;
213 INSERT INTO GL_JE_SOURCES_TL(
214 je_source_name,
215 je_source_key,
216 language,
217 source_lang,
218 last_update_date,
219 last_updated_by,
220 override_edits_flag,
221 user_je_source_name,
222 journal_reference_flag,
223 journal_approval_flag,
224 effective_date_rule_code,
225 import_using_key_flag,
226 creation_date,
227 created_by,
228 last_update_login,
229 description,
230 attribute1,
231 attribute2,
232 attribute3,
233 attribute4,
234 attribute5,
235 context)
236 SELECT
237 X_Je_Source_Name,
238 X_Je_Source_Key,
239 L.Language_Code,
240 userenv('LANG'),
241 X_Last_Update_Date,
242 X_Last_Updated_By,
243 X_Override_Edits_Flag,
244 X_User_Je_Source_Name,
245 X_Journal_Reference_Flag,
246 X_Journal_Approval_Flag,
247 X_Effective_Date_Rule_Code,
248 X_Import_Using_Key_Flag,
249 X_Creation_Date,
250 -- workaround for passing in created_by information w/o changing the spec
251 X_Last_Updated_By,
252 X_Last_Update_Login,
253 X_Description,
254 X_Attribute1,
255 X_Attribute2,
256 X_Attribute3,
257 X_Attribute4,
258 X_Attribute5,
259 X_Context
260 FROM FND_LANGUAGES L
261 WHERE L.Installed_Flag in ('I', 'B')
262 AND not exists
263 ( select NULL
264 from GL_JE_SOURCES_TL B
265 where B.Je_Source_Name = X_Je_Source_Name
266 and B.Language = L.Language_Code);
267 OPEN C;
268 FETCH C INTO X_Rowid, X_Language, X_Source_Lang;
269 if (C%NOTFOUND) then
270 CLOSE C;
271 RAISE NO_DATA_FOUND;
272 end if;
273 CLOSE C;
274 END Insert_Row;
275
276
277 PROCEDURE Lock_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
278 X_Je_Source_Name VARCHAR2,
279 X_Override_Edits_Flag VARCHAR2,
280 X_User_Je_Source_Name VARCHAR2,
281 X_Je_Source_Key VARCHAR2,
282 X_Journal_Reference_Flag VARCHAR2,
283 X_Journal_Approval_Flag VARCHAR2,
284 X_Effective_Date_Rule_Code VARCHAR2,
285 X_Import_Using_Key_Flag VARCHAR2,
286 X_Description VARCHAR2,
287 X_Attribute1 VARCHAR2,
288 X_Attribute2 VARCHAR2,
289 X_Attribute3 VARCHAR2,
290 X_Attribute4 VARCHAR2,
291 X_Attribute5 VARCHAR2,
292 X_Context VARCHAR2) IS
293 CURSOR C IS
294 SELECT * FROM GL_JE_SOURCES_TL
295 WHERE Je_Source_Name = X_Je_Source_Name
296 and Language = userenv('LANG')
297 FOR UPDATE OF JE_SOURCE_NAME NOWAIT;
298 Recinfo C%ROWTYPE;
299 BEGIN
300 OPEN C;
301 FETCH C INTO Recinfo;
302 if (C%NOTFOUND) then
303 CLOSE C;
304 FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
305 APP_EXCEPTION.RAISE_EXCEPTION;
306 end if;
307 CLOSE C;
308 if (
309 ( ( (Recinfo.je_source_name = X_je_source_name)
310 OR ( (Recinfo.je_source_name IS NULL)
311 AND (X_je_source_name IS NULL))))
312 AND
313 ( ( (Recinfo.override_edits_flag = X_override_edits_flag )
314 OR ( (Recinfo.override_edits_flag IS NULL)
315 AND (X_override_edits_flag IS NULL))))
316 AND
317 ( ( (Recinfo.user_je_source_name = X_user_je_source_name )
318 OR ( (Recinfo.user_je_source_name IS NULL)
319 AND (X_user_je_source_name IS NULL))))
320 AND
321 ( ( (Recinfo.je_source_key = X_je_source_key )
322 OR ( (Recinfo.je_source_key IS NULL)
323 AND (X_je_source_key IS NULL))))
324 AND
325 ( ( (Recinfo.journal_reference_flag = X_journal_reference_flag )
326 OR ( (Recinfo.journal_reference_flag IS NULL)
327 AND (X_journal_reference_flag IS NULL))))
328 AND
329 ( ( (Recinfo.journal_approval_flag = X_journal_approval_flag)
330 OR ( (Recinfo.journal_approval_flag IS NULL)
331 AND (X_journal_approval_flag IS NULL))))
332 AND
333 ( ( (Recinfo.effective_date_rule_code = X_effective_date_rule_code)
334 OR ( (Recinfo.effective_date_rule_code IS NULL)
335 AND (X_effective_date_rule_code IS NULL))))
336 AND
337 ( ( (Recinfo.import_using_key_flag = X_import_using_key_flag)
338 OR ( (Recinfo.import_using_key_flag IS NULL)
339 AND (X_import_using_key_flag IS NULL))))
340 AND
341 ( ( (Recinfo.description = X_description )
342 OR ( (Recinfo.description IS NULL)
343 AND (X_description IS NULL))))
344 AND
345 ( ( (Recinfo.attribute1 = X_attribute1 )
346 OR ( (Recinfo.attribute1 IS NULL)
347 AND (X_attribute1 IS NULL))))
348 AND
349 ( ( (Recinfo.attribute2 = X_attribute2)
350 OR ( (Recinfo.attribute2 IS NULL)
351 AND (X_attribute2 IS NULL))))
352 AND
353 ( ( (Recinfo.attribute3 = X_attribute3 )
354 OR ( (Recinfo.attribute3 IS NULL)
355 AND (X_attribute3 IS NULL))))
356 AND
357 ( ( (Recinfo.attribute4 = X_attribute4 )
358 OR ( (Recinfo.attribute4 IS NULL)
359 AND (X_attribute4 IS NULL))))
360 AND
361 ( ( (Recinfo.attribute5 = X_attribute5 )
362 OR ( (Recinfo.attribute5 IS NULL)
363 AND (X_attribute5 IS NULL))))
364 AND
365 ( ( (Recinfo.context = X_context )
366 OR ( (Recinfo.context IS NULL)
367 AND (X_context IS NULL))))) THEN
368 return;
369 ELSE
370 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
371 APP_EXCEPTION.RAISE_EXCEPTION;
372 end if;
373 END Lock_Row;
374
375
376 PROCEDURE Update_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
377 X_Je_Source_Name VARCHAR2,
378 X_Last_Update_Date DATE,
379 X_Last_Updated_By NUMBER,
380 X_Override_Edits_Flag VARCHAR2,
381 X_User_Je_Source_Name VARCHAR2,
382 X_Je_Source_Key VARCHAR2,
383 X_Journal_Reference_Flag VARCHAR2,
384 X_Journal_Approval_Flag VARCHAR2,
385 X_Effective_Date_Rule_Code VARCHAR2,
386 X_Import_Using_Key_Flag VARCHAR2,
387 X_Creation_Date DATE,
388 X_Last_Update_Login NUMBER,
389 X_Description VARCHAR2,
390 X_Attribute1 VARCHAR2,
391 X_Attribute2 VARCHAR2,
392 X_Attribute3 VARCHAR2,
393 X_Attribute4 VARCHAR2,
394 X_Attribute5 VARCHAR2,
395 X_Context VARCHAR2) IS
396 BEGIN
397 -- update non-translatable columns
398 UPDATE GL_JE_SOURCES_TL
399 SET
400 je_source_name = x_je_source_name,
401 je_source_key = x_je_source_key,
402 override_edits_flag = x_override_edits_flag,
403 journal_reference_flag = x_journal_reference_flag,
404 journal_approval_flag = x_journal_approval_flag,
405 effective_date_rule_code = x_effective_date_rule_code,
406 import_using_key_flag = x_import_using_key_flag,
407 creation_date = x_creation_date,
408 last_update_date = x_last_update_date,
409 last_updated_by = x_last_updated_by,
410 last_update_login = x_last_update_login,
411 attribute1 = x_attribute1,
412 attribute2 = x_attribute2,
413 attribute3 = x_attribute3,
414 attribute4 = x_attribute4,
415 attribute5 = x_attribute5,
416 context = x_context
417 WHERE
418 Je_Source_Name = X_Je_Source_Name;
419
420 if (SQL%NOTFOUND) then
421 RAISE NO_DATA_FOUND;
422 end if;
423
424 -- update the translatable columns
425 UPDATE GL_JE_SOURCES_TL
426 SET
427 user_je_source_name = x_user_je_source_name,
428 description = x_description,
429 source_lang = userenv('LANG')
430 WHERE je_source_name = X_je_source_name
431 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
432
433 if (sql%notfound) then
434 raise no_data_found;
435 end if;
436 END Update_Row;
437
438 PROCEDURE Delete_Row(X_Je_Source_Name VARCHAR2) IS
439 BEGIN
440 DELETE FROM GL_JE_SOURCES_TL
441 WHERE Je_Source_Name = X_Je_Source_Name;
442
443 if (SQL%NOTFOUND) then
444 RAISE NO_DATA_FOUND;
445 end if;
446 END Delete_Row;
447
448 PROCEDURE Load_Row(X_Je_Source_Name IN OUT NOCOPY VARCHAR2,
449 X_Override_Edits_Flag VARCHAR2,
450 X_User_Je_Source_Name VARCHAR2,
451 X_Je_Source_Key VARCHAR2,
452 X_Journal_Reference_Flag VARCHAR2,
453 X_Journal_Approval_Flag VARCHAR2,
454 X_Effective_Date_Rule_Code VARCHAR2,
455 X_Import_Using_Key_Flag VARCHAR2,
456 X_Description VARCHAR2,
457 X_Attribute1 VARCHAR2,
458 X_Attribute2 VARCHAR2,
459 X_Attribute3 VARCHAR2,
460 X_Attribute4 VARCHAR2,
461 X_Attribute5 VARCHAR2,
462 X_Context VARCHAR2,
463 X_Owner VARCHAR2,
464 X_Force_Edits VARCHAR2 ) IS
465 user_id number := 0;
466 v_creation_date date;
467 v_rowid rowid := null;
468 v_language VARCHAR2(4) := null;
469 v_source_lang VARCHAR2(4) := null;
470 /*Added as part of bug13037565*/
471 v_attribute1 varchar2(150) := null;
472 v_attribute2 varchar2(150) := null;
473 v_attribute3 varchar2(150) := null;
474 v_attribute4 varchar2(150) := null;
475 v_attribute5 varchar2(150) := null;
476 v_context varchar2(150) := null;
477 BEGIN
478
479 -- validate input parameters
480 if ( X_Override_Edits_Flag is NULL
481 or X_User_Je_Source_Name is NULL
482 or X_Journal_Reference_Flag is NULL
483 or X_Effective_Date_Rule_Code is NULL
484 or X_Journal_Approval_Flag is NULL) then
485 fnd_message.set_name('SQLGL', 'GL_LOAD_ROW_NO_DATA');
486 app_exception.raise_exception;
487 end if;
488
489 if (X_OWNER = 'SEED') then
490 user_id := 1;
491 end if;
492
493 begin
494 /* When je_source_name is null, we assume it to be a new row. */
495 if (X_je_source_name is null) then
496 raise no_data_found;
497 end if;
498
499 /* Check if the row exists in the database. If it does, retrieves
500 the creation date for update_row. */
501 /*select creation_date
502 into v_creation_date
503 from gl_je_sources
504 where je_source_name = X_je_source_name;*/
505
506 /*Modified as part of bug13037565*/
507 select creation_date,
508 attribute1,
509 attribute2,
510 attribute3,
511 attribute4,
512 attribute5,
513 context
514 into v_creation_date,
515 v_attribute1,
516 v_attribute2,
517 v_attribute3,
518 v_attribute4,
519 v_attribute5,
520 v_context
521 from gl_je_sources
522 where je_source_name = X_je_source_name;
523
524 /* Update only if force_edits is 'Y' or if user_id = 1 */
525 if ( user_id = 1 or X_Force_Edits = 'Y' ) then
526 -- update row if present
527 GL_JE_SOURCES_PKG.Update_Row(
528 X_Rowid => v_rowid,
529 X_je_source_name => X_Je_Source_Name,
530 X_last_update_date => sysdate,
531 X_last_updated_by => user_id,
532 X_override_edits_flag => X_Override_Edits_Flag,
533 X_user_je_source_name => X_user_je_source_name,
534 X_je_source_key => nvl(X_Je_Source_Key, X_Je_Source_Name),
535 X_journal_reference_flag => X_journal_reference_flag,
536 X_journal_approval_flag => X_journal_approval_flag,
537 X_effective_date_rule_code => X_effective_date_rule_code,
538 X_import_using_key_flag => nvl(X_import_using_key_flag, 'N'),
539 X_creation_date => v_creation_date,
540 X_last_update_login => 0,
541 X_Description => X_Description,
542 /*Modified as part of bug13037565*/
543 X_Attribute1 => V_Attribute1,
544 X_Attribute2 => V_Attribute2,
545 X_Attribute3 => V_Attribute3,
546 X_Attribute4 => V_Attribute4,
547 X_Attribute5 => V_Attribute5,
548 X_context => V_Context);
549 end if;
550 exception
551 when NO_DATA_FOUND then
552 GL_JE_SOURCES_PKG.Insert_Row(
553 X_Rowid => v_rowid,
554 X_je_source_name => X_Je_Source_Name,
555 X_language => v_language,
556 X_source_lang => v_source_lang,
557 X_last_update_date => sysdate,
558 X_last_updated_by => user_id,
559 X_override_edits_flag => X_Override_Edits_Flag,
560 X_user_je_source_name => X_user_je_source_name,
561 X_je_source_key => nvl(X_Je_Source_Key, X_Je_Source_Name),
562 X_journal_reference_flag => X_journal_reference_flag,
563 X_journal_approval_flag => X_journal_approval_flag,
564 X_effective_date_rule_code => X_effective_date_rule_code,
565 X_import_using_key_flag => nvl(X_import_using_key_flag, 'N'),
566 X_creation_date => sysdate,
567 X_last_update_login => 0,
568 X_Description => X_Description,
569 X_Attribute1 => X_Attribute1,
570 X_Attribute2 => X_Attribute2,
571 X_Attribute3 => X_Attribute3,
572 X_Attribute4 => X_Attribute4,
573 X_Attribute5 => X_Attribute5,
574 X_context => X_Context);
575 end;
576 END Load_Row;
577
578 PROCEDURE Translate_Row(
579 X_Je_Source_Name VARCHAR2,
580 X_User_Je_Source_Name VARCHAR2,
581 X_Description VARCHAR2,
582 X_Owner VARCHAR2,
583 X_Force_Edits VARCHAR2 ) IS
584 user_id number := 0;
585 BEGIN
586 if (X_OWNER = 'SEED') then
587 user_id := 1;
588 end if;
589
590 /* Update only if force_edits is 'Y' or user_id = 1 */
591 if ( user_id = 1 or X_Force_Edits = 'Y' ) then
592 UPDATE GL_JE_SOURCES_TL
593 SET
594 user_je_source_name = x_user_je_source_name,
595 description = x_description,
596 last_update_date = sysdate,
597 last_updated_by = user_id,
598 last_update_login = 0,
599 source_lang = userenv('LANG')
600 WHERE userenv('LANG') in (LANGUAGE, SOURCE_LANG)
601 and je_source_name = X_je_source_name;
602 end if;
603 /*If base language is not set to the language being uploaded, then
604 do nothing.*/
605 if (sql%notfound) then
606 null;
607 end if;
608 END Translate_Row;
609
610 procedure ADD_LANGUAGE
611 is
612 begin
613
614
615 update GL_JE_SOURCES_TL T
616 set ( user_je_source_name,
617 DESCRIPTION )
618 = ( select
619 B.user_je_source_name,
620 B.DESCRIPTION
621 from gl_je_sources_tl B
622 where B.je_source_name = T.je_source_name
623 and B.LANGUAGE = T.SOURCE_LANG )
624 where ( T.je_source_name,
625 T.LANGUAGE ) in
626 ( select
627 SUBT.je_source_name,
628 SUBT.LANGUAGE
629 from gl_je_sources_tl SUBB,
630 gl_je_sources_tl SUBT
631 where SUBB.je_source_name = SUBT.je_source_name
632 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
633 and (SUBB.USER_JE_SOURCE_NAME <> SUBT.USER_JE_SOURCE_NAME
634 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
635 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
636 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null))
637 );
638
639 insert into gl_je_sources_tl (
640 je_source_name,
641 LAST_UPDATE_DATE,
642 LAST_UPDATED_BY,
643 CREATION_DATE,
644 CREATED_BY,
645 LAST_UPDATE_LOGIN,
646 DESCRIPTION,
647 override_edits_flag,
648 user_je_source_name,
649 je_source_key,
650 journal_reference_flag,
651 journal_approval_flag,
652 effective_date_rule_code,
653 import_using_key_flag,
654 LANGUAGE,
655 SOURCE_LANG,
656 attribute1,
657 attribute2,
658 attribute3,
659 attribute4,
660 attribute5,
661 context
662 )
663 select
664 B.je_source_name,
665 B.LAST_UPDATE_DATE,
666 B.LAST_UPDATED_BY,
667 B.CREATION_DATE,
668 B.CREATED_BY,
669 B.LAST_UPDATE_LOGIN,
670 B.DESCRIPTION,
671 B.override_edits_flag,
672 B.user_je_source_name,
673 B.je_source_key,
674 B.journal_reference_flag,
675 B.journal_approval_flag,
676 B.effective_date_rule_code,
677 B.import_using_key_flag,
678 L.LANGUAGE_CODE,
679 B.source_lang,
680 B.attribute1,
681 B.attribute2,
682 B.attribute3,
683 B.attribute4,
684 B.attribute5,
685 B.context
686 from gl_je_sources_tl B, FND_LANGUAGES L
687 where L.INSTALLED_FLAG in ('I', 'B')
688 and B.LANGUAGE = userenv('LANG')
689 and not exists
690 (select NULL
691 from gl_je_sources_tl T
692 where T.je_source_name = B.je_source_name
693 and T.LANGUAGE = L.LANGUAGE_CODE);
694
695 end ADD_LANGUAGE;
696
697 END gl_je_sources_pkg;