[Home] [Help]
PACKAGE BODY: APPS.GR_FIELD_NAME_MASKS_TL_PKG
Source
1 PACKAGE BODY GR_FIELD_NAME_MASKS_TL_PKG AS
2 /*$Header: GRHIFMTB.pls 115.6 2003/08/05 18:05:50 gkelly noship $*/
3
4
5
6 /* =====================================================================
7 PROOCEDURE:
8 Insert_Row
9
10 DESCRIPTION:
11 This PL/SQL procedure is used to insert data into the table
12 GR_FIELD_NAME_MASKS_TL
13
14 PARAMETERS:
15 p_commit IN VARCHAR2,
16 p_called_by_form IN VARCHAR2,
17 p_item_code IN VARCHAR2,
18 p_disclosure_code IN VARCHAR2,
19 p_label_code IN VARCHAR2,
20 p_language IN VARCHAR2,
21 p_field_name_mask IN VARCHAR2,
22 p_source_lang IN VARCHAR2,
23 p_created_by IN NUMBER,
24 p_creation_date IN DATE,
25 p_last_updated_by IN NUMBER,
26 p_last_update_date IN DATE,
27 p_last_update_login IN NUMBER,
28 x_rowid OUT VARCHAR2,
29 x_return_status OUT VARCHAR2,
30 x_oracle_error OUT NUMBER,
31 x_msg_data OUT VARCHAR2
32
33 HISTORY
34 ===================================================================== */
35 PROCEDURE Insert_Row
36 (p_commit IN VARCHAR2,
37 p_called_by_form IN VARCHAR2,
38 p_item_code IN VARCHAR2,
39 p_disclosure_code IN VARCHAR2,
40 p_label_code IN VARCHAR2,
41 p_language IN VARCHAR2,
42 p_field_name_mask IN VARCHAR2,
43 p_source_lang IN VARCHAR2,
44 p_created_by IN NUMBER,
45 p_creation_date IN DATE,
46 p_last_updated_by IN NUMBER,
47 p_last_update_date IN DATE,
48 p_last_update_login IN NUMBER,
49 x_rowid OUT NOCOPY VARCHAR2,
50 x_return_status OUT NOCOPY VARCHAR2,
51 x_oracle_error OUT NOCOPY NUMBER,
52 x_msg_data OUT NOCOPY VARCHAR2)
53 IS
54
55 /* Alpha Variables */
56
57 L_RETURN_STATUS VARCHAR2(1) := 'S';
58 L_KEY_EXISTS VARCHAR2(1);
59 L_MSG_DATA VARCHAR2(2000);
60 L_ROWID VARCHAR2(18);
61
62 /* Number Variables */
63
64 L_ORACLE_ERROR NUMBER;
65
66 /* Exceptions */
67
68 FOREIGN_KEY_ERROR EXCEPTION;
69 ITEM_EXISTS_ERROR EXCEPTION;
70 ROW_MISSING_ERROR EXCEPTION;
71
72 /* Declare cursors */
73
74
75 BEGIN
76 /* Initialization Routine */
77
78 SAVEPOINT Insert_Row;
79 x_return_status := 'S';
80 x_oracle_error := 0;
81 x_msg_data := NULL;
82
83 /* Now call the check foreign key procedure */
84
85 Check_Foreign_Keys
86 ( p_item_code,
87 p_disclosure_code,
88 p_label_code,
89 p_language,
90 p_source_lang,
91 l_return_status,
92 l_oracle_error,
93 l_msg_data);
94
95 IF l_return_status <> 'S' THEN
96 RAISE Foreign_Key_Error;
97 END IF;
98
99 /* Now check the primary key doesn't already exist */
100
101 Check_Primary_Key
102 ( p_item_code,
103 p_disclosure_code,
104 p_label_code,
105 p_language,
106 'F',
107 l_rowid,
108 l_key_exists);
109
110 IF FND_API.To_Boolean(l_key_exists) THEN
111 RAISE Item_Exists_Error;
112 END IF;
113
114 INSERT INTO gr_item_field_name_masks_tl
115 (item_code,
116 disclosure_code,
117 label_code,
118 language,
119 field_name_mask,
120 source_lang,
121 created_by,
122 creation_date,
123 last_updated_by,
124 last_update_date,
125 last_update_login)
126 VALUES
127 (p_item_code,
128 p_disclosure_code,
129 p_label_code,
130 p_language,
131 p_field_name_mask,
132 p_source_lang,
133 p_created_by,
134 p_creation_date,
135 p_last_updated_by,
136 p_last_update_date,
137 p_last_update_login);
138
139 /* Now get the row id of the inserted record */
140
141 Check_Primary_Key
142 (p_item_code,
143 p_disclosure_code,
144 p_label_code,
145 p_language,
146 'F',
147 l_rowid,
148 l_key_exists);
149
150 IF FND_API.To_Boolean(l_key_exists) THEN
151 x_rowid := l_rowid;
152 ELSE
153 RAISE Row_Missing_Error;
154 END IF;
155
156 /* Check the commit flag and if set, then commit the work. */
157
158 IF FND_API.To_Boolean(p_commit) THEN
159 COMMIT WORK;
160 END IF;
161
162 EXCEPTION
163
164 WHEN Foreign_Key_Error THEN
165 ROLLBACK TO SAVEPOINT Insert_Row;
166 x_return_status := l_return_status;
167 x_oracle_error := l_oracle_error;
168 FND_MESSAGE.SET_NAME('GR',
169 'GR_FOREIGN_KEY_ERROR');
170 FND_MESSAGE.SET_TOKEN('TEXT',
171 l_msg_data,
172 FALSE);
173 IF FND_API.To_Boolean(p_called_by_form) THEN
174 APP_EXCEPTION.Raise_Exception;
175 ELSE
176 x_msg_data := FND_MESSAGE.Get;
177 END IF;
178
179 WHEN Item_Exists_Error THEN
180 ROLLBACK TO SAVEPOINT Insert_Row;
181 x_return_status := 'E';
182 x_oracle_error := APP_EXCEPTION.Get_Code;
183 FND_MESSAGE.SET_NAME('GR',
184 'GR_RECORD_EXISTS');
185 FND_MESSAGE.SET_TOKEN('CODE',
186 p_item_code,
187 FALSE);
188 IF FND_API.To_Boolean(p_called_by_form) THEN
189 APP_EXCEPTION.Raise_Exception;
190 ELSE
191 x_msg_data := FND_MESSAGE.Get;
192 END IF;
193
194 WHEN Row_Missing_Error THEN
195 ROLLBACK TO SAVEPOINT Insert_Row;
196 x_return_status := 'E';
197 x_oracle_error := APP_EXCEPTION.Get_Code;
198 FND_MESSAGE.SET_NAME('GR',
199 'GR_NO_RECORD_INSERTED');
200 FND_MESSAGE.SET_TOKEN('CODE',
201 p_item_code,
202 FALSE);
203 x_msg_data := FND_MESSAGE.Get;
204 IF FND_API.To_Boolean(p_called_by_form) THEN
205 APP_EXCEPTION.Raise_Exception;
206 ELSE
207 x_msg_data := FND_MESSAGE.Get;
208 END IF;
209
210 WHEN OTHERS THEN
211 ROLLBACK TO SAVEPOINT Insert_Row;
212 x_return_status := 'U';
213 x_oracle_error := SQLCODE;
214 l_msg_data := SUBSTR(SQLERRM, 1, 200);
215 FND_MESSAGE.SET_NAME('GR',
216 'GR_UNEXPECTED_ERROR');
217 FND_MESSAGE.SET_TOKEN('TEXT',
218 l_msg_data,
219 FALSE);
220 IF FND_API.To_Boolean(p_called_by_form) THEN
221 APP_EXCEPTION.Raise_Exception;
222 ELSE
223 x_msg_data := FND_MESSAGE.Get;
224 END IF;
225
226 END Insert_Row;
227
228
229 /* =====================================================================
230 PROOCEDURE:
231 Update_Row
232
233 DESCRIPTION:
234 This PL/SQL procedure is used to update data in the table
235 GR_FIELD_NAME_MASKS_TL
236
237 PARAMETERS:
238 p_commit IN VARCHAR2,
239 p_called_by_form IN VARCHAR2,
240 p_rowid IN VARCHAR2,
241 pitem_code IN VARCHAR2,
242 pdisclosure_code IN VARCHAR2,
243 p_label_code IN VARCHAR2,
244 p_language IN VARCHAR2,
245 p_field_name_mask IN VARCHAR2,
246 p_source_lang IN VARCHAR2,
247 p_created_by IN NUMBER,
248 p_creation_date IN DATE,
249 p_last_updated_by IN NUMBER,
250 p_last_update_date IN DATE,
251 p_last_update_login IN NUMBER,
252 x_return_status OUT VARCHAR2,
253 x_oracle_error OUT NUMBER,
254 x_msg_data OUT VARCHAR2
255
256 HISTORY
257 ===================================================================== */
258 PROCEDURE Update_Row
259 (p_commit IN VARCHAR2,
260 p_called_by_form IN VARCHAR2,
261 p_rowid IN VARCHAR2,
262 p_item_code IN VARCHAR2,
263 p_disclosure_code IN VARCHAR2,
264 p_label_code IN VARCHAR2,
265 p_language IN VARCHAR2,
266 p_field_name_mask IN VARCHAR2,
267 p_source_lang IN VARCHAR2,
268 p_created_by IN NUMBER,
269 p_creation_date IN DATE,
270 p_last_updated_by IN NUMBER,
271 p_last_update_date IN DATE,
272 p_last_update_login IN NUMBER,
273 x_return_status OUT NOCOPY VARCHAR2,
274 x_oracle_error OUT NOCOPY NUMBER,
275 x_msg_data OUT NOCOPY VARCHAR2)
276 IS
277
278 /* Alpha Variables */
279
280 L_RETURN_STATUS VARCHAR2(1) := 'S';
281 L_MSG_DATA VARCHAR2(2000);
282
283 /* Number Variables */
284
285 L_ORACLE_ERROR NUMBER;
286
287 /* Exceptions */
288
289 FOREIGN_KEY_ERROR EXCEPTION;
290 ROW_MISSING_ERROR EXCEPTION;
291
292 BEGIN
293
294 /* Initialization Routine */
295
296 SAVEPOINT Update_Row;
297 x_return_status := 'S';
298 x_oracle_error := 0;
299 x_msg_data := NULL;
300
301 /* Now call the check foreign key procedure */
302
303 Check_Foreign_Keys
304 ( p_item_code,
305 p_disclosure_code,
306 p_label_code,
307 p_language,
308 p_source_lang,
309 l_return_status,
310 l_oracle_error,
311 l_msg_data);
312
313 IF l_return_status <> 'S' THEN
314 RAISE Foreign_Key_Error;
315 ELSE
316 UPDATE gr_item_field_name_masks_tl
317 SET item_code = p_item_code,
318 disclosure_code = p_disclosure_code,
319 label_code = p_label_code,
320 language = p_language,
321 field_name_mask = p_field_name_mask,
322 source_lang = p_source_lang,
323 created_by = p_created_by,
324 creation_date = p_creation_date,
325 last_updated_by = p_last_updated_by,
326 last_update_date = p_last_update_date,
327 last_update_login = p_last_update_login
328 WHERE rowid = p_rowid;
329
330 IF SQL%NOTFOUND THEN
331 RAISE Row_Missing_Error;
332 END IF;
333 END IF;
334
335 /* Check if do the commit */
336
337 IF FND_API.To_Boolean(p_commit) THEN
338 COMMIT WORK;
339 END IF;
340
341 EXCEPTION
342
343 WHEN Foreign_Key_Error THEN
344 ROLLBACK TO SAVEPOINT Update_Row;
345 x_return_status := l_return_status;
346 x_oracle_error := l_oracle_error;
347 FND_MESSAGE.SET_NAME('GR',
348 'GR_FOREIGN_KEY_ERROR');
349 FND_MESSAGE.SET_TOKEN('TEXT',
350 l_msg_data,
351 FALSE);
352 IF FND_API.To_Boolean(p_called_by_form) THEN
353 APP_EXCEPTION.Raise_Exception;
354 ELSE
355 x_msg_data := FND_MESSAGE.Get;
356 END IF;
357
358 WHEN Row_Missing_Error THEN
359 ROLLBACK TO SAVEPOINT Update_Row;
360 x_return_status := 'E';
361 x_oracle_error := APP_EXCEPTION.Get_Code;
362 FND_MESSAGE.SET_NAME('GR',
363 'GR_NO_RECORD_INSERTED');
364 FND_MESSAGE.SET_TOKEN('CODE',
365 p_item_code,
366 FALSE);
367 IF FND_API.To_Boolean(p_called_by_form) THEN
368 APP_EXCEPTION.Raise_Exception;
369 ELSE
370 x_msg_data := FND_MESSAGE.Get;
371 END IF;
372
373 WHEN OTHERS THEN
374 ROLLBACK TO SAVEPOINT Update_Row;
375 x_return_status := 'U';
376 x_oracle_error := SQLCODE;
377 l_msg_data := SUBSTR(SQLERRM, 1, 200);
378 FND_MESSAGE.SET_NAME('GR',
379 'GR_UNEXPECTED_ERROR');
380 FND_MESSAGE.SET_TOKEN('TEXT',
381 l_msg_data,
382 FALSE);
383 IF FND_API.To_Boolean(p_called_by_form) THEN
384 APP_EXCEPTION.Raise_Exception;
385 ELSE
386 x_msg_data := FND_MESSAGE.Get;
387 END IF;
388
389 END Update_Row;
390
391
392 /* =====================================================================
393 PROOCEDURE:
394 Add_Language
395
396 DESCRIPTION:
397 This PL/SQL procedure is used to add a record to the table
398 GR_FIELD_NAME_MASKS_TL for every installed language
399
400 PARAMETERS:
401 p_commit IN VARCHAR2,
402 p_called_by_form IN VARCHAR2,
403 p_rowid IN VARCHAR2,
404 p_item_code IN VARCHAR2,
405 p_disclosure_code IN VARCHAR2,
406 p_label_code IN VARCHAR2,
407 p_language IN VARCHAR2,
408 x_return_status OUT VARCHAR2,
412 HISTORY
409 x_oracle_error OUT NUMBER,
410 x_msg_data OUT VARCHAR2
411
413 ===================================================================== */
414 PROCEDURE Add_Language
415 (p_commit IN VARCHAR2,
416 p_called_by_form IN VARCHAR2,
417 p_item_code IN VARCHAR2,
418 p_disclosure_code IN VARCHAR2,
419 p_label_code IN VARCHAR2,
420 p_language IN VARCHAR2,
421 x_return_status OUT NOCOPY VARCHAR2,
422 x_oracle_error OUT NOCOPY NUMBER,
423 x_msg_data OUT NOCOPY VARCHAR2)
424 IS
425
426 /* Alpha Variables */
427
428 L_RETURN_STATUS VARCHAR2(1) := 'S';
429 L_MSG_DATA VARCHAR2(2000);
430 L_MSG_TOKEN VARCHAR2(30);
431 L_BASE_DESC VARCHAR2(240);
432 L_LANGUAGE VARCHAR2(4);
433 L_CREATION_DATE DATE;
434 L_LAST_UPDATE_DATE DATE;
435
436 /* Number Variables */
437
438 L_ORACLE_ERROR NUMBER;
439 L_CREATED_BY NUMBER;
440 L_LAST_UPDATED_BY NUMBER;
441 L_LAST_UPDATE_LOGIN NUMBER;
442
443 /* Exceptions */
444
445 LANGUAGE_MISSING_ERROR EXCEPTION;
446
447 /* Cursors */
448
449 CURSOR c_get_descs
450 IS
451 SELECT eit.field_name_mask,
452 eit.created_by,
453 eit.creation_date,
454 eit.last_updated_by,
455 eit.last_update_date,
456 eit.last_update_login
457 FROM gr_item_field_name_masks_tl eit
458 WHERE eit.item_code = p_item_code
459 AND eit.disclosure_code = p_disclosure_code
460 AND eit.label_code = p_label_code
461 AND eit.language = l_language;
462 TypeDesc c_get_descs%ROWTYPE;
463
464 CURSOR c_get_installed_languages
465 IS
466 SELECT lng.language_code
467 FROM fnd_languages lng
468 WHERE lng.installed_flag IN ('I', 'B');
469 InstLang c_get_installed_languages%ROWTYPE;
470
471 BEGIN
472
473 /* Initialization Routine */
474
475 SAVEPOINT Add_Language;
476 x_return_status := 'S';
477 x_oracle_error := 0;
478 x_msg_data := NULL;
479 l_msg_token := p_item_code || ' ' || p_disclosure_code || ' ' || p_label_code || ' ' || p_language;
480
481 /* Remove translations with no base row */
482
483 delete from GR_ITEM_FIELD_NAME_MASKS_TL T
484 where not exists
485 (select NULL
486 from GR_ITEM_FIELD_NAME_MASKS_B B
487 where B.ITEM_CODE = T.ITEM_CODE
488 and B.DISCLOSURE_CODE = T.DISCLOSURE_CODE
489 and B.LABEL_CODE = T.LABEL_CODE
490 );
491
492 /* Redefault translations from the source language */
493
494 Update gr_item_field_name_masks_tl t set (
495 field_name_mask ) =
496 ( select
497 b.field_name_mask
498 from gr_item_field_name_masks_tl b
499 where b.item_code = t.item_code
500 and b.disclosure_code = t.disclosure_code
501 and b.label_code = t.label_code
502 and b.language = t.source_lang)
503 where (
504 t.item_code,
505 t.disclosure_code,
506 t.label_code,
507 t.language
508 ) in (select
509 subt.item_code,
510 subt.disclosure_code,
511 subt.label_code,
512 subt.language
513 from gr_item_field_name_masks_tl subb, gr_item_field_name_masks_tl subt
514 where subb.item_code = subt.item_code
515 and subb.disclosure_code = subt.disclosure_code
516 and subb.label_code = subt.label_code
517 and subb.language = subt.source_lang
518 and (subb.field_name_mask <> subt.field_name_mask
519 or (subb.field_name_mask is null and subt.field_name_mask is not null)
520 or (subb.field_name_mask is not null and subt.field_name_mask is null)));
521 /* Open the language cursor and get the description entered from the
522 ** user environment variable.
523 */
524 l_language := p_language;
525 OPEN c_get_descs;
526 FETCH c_get_descs INTO TypeDesc;
527 IF c_get_descs%NOTFOUND THEN
528 CLOSE c_get_descs;
529 RAISE Language_Missing_Error;
530 ELSE
531 l_base_desc := TypeDesc.field_name_mask;
532 l_created_by := TypeDesc.created_by;
533 l_creation_date := TypeDesc.creation_date;
534 l_last_updated_by := TypeDesc.last_updated_by;
535 l_last_update_date := TypeDesc.last_update_date;
536 l_last_update_login := TypeDesc.last_update_login;
537 CLOSE c_get_descs;
538 END IF;
539
540 /* Read fnd_languages for the installed and base languages.
541 ** For those that are found, read the types tl table.
542 ** If there isn't a record in the table for that language then
543 ** insert it and go on to the next.
544 */
545 OPEN c_get_installed_languages;
546 FETCH c_get_installed_languages INTO InstLang;
547 IF c_get_installed_languages%FOUND THEN
548 WHILE c_get_installed_languages%FOUND LOOP
549 IF InstLang.language_code <> p_language THEN
550 l_language := InstLang.language_code;
551 OPEN c_get_descs;
552 FETCH c_get_descs INTO TypeDesc;
553 IF c_get_descs%NOTFOUND THEN
557 disclosure_code,
554 CLOSE c_get_descs;
555 INSERT INTO gr_item_field_name_masks_tl
556 (item_code,
558 label_code,
559 language,
560 field_name_mask,
561 source_lang,
562 created_by,
563 creation_date,
564 last_updated_by,
565 last_update_date,
566 last_update_login)
567 VALUES
568 (p_item_code,
569 p_disclosure_code,
570 p_label_code,
571 l_language,
572 l_base_desc,
573 p_language,
574 l_created_by,
575 l_creation_date,
576 l_last_updated_by,
577 l_last_update_date,
578 l_last_update_login);
579 ELSE
580 CLOSE c_get_descs;
581 END IF;
582 END IF;
583 FETCH c_get_installed_languages INTO InstLang;
584 END LOOP;
585 END IF;
586 CLOSE c_get_installed_languages;
587
588 IF FND_API.To_Boolean(p_commit) THEN
589 COMMIT WORK;
590 END IF;
591
592 EXCEPTION
593
594 WHEN Language_Missing_Error THEN
595 ROLLBACK TO SAVEPOINT Add_Language;
596 x_return_status := 'E';
597 x_oracle_error := APP_EXCEPTION.Get_Code;
598 FND_MESSAGE.SET_NAME('GR',
599 'GR_RECORD_NOT_FOUND');
600 FND_MESSAGE.SET_TOKEN('CODE',
601 l_msg_token,
602 FALSE);
603 IF FND_API.To_Boolean(p_called_by_form) THEN
604 APP_EXCEPTION.Raise_Exception;
605 ELSE
606 x_msg_data := FND_MESSAGE.Get;
607 END IF;
608
609 WHEN OTHERS THEN
610 ROLLBACK TO SAVEPOINT Add_Language;
611 x_return_status := 'U';
612 x_oracle_error := SQLCODE;
613
614 FND_MESSAGE.SET_NAME('GR',
615 'GR_UNEXPECTED_ERROR');
616 FND_MESSAGE.SET_TOKEN('TEXT',
617 l_msg_token||SQLERRM,
618 FALSE);
619 IF FND_API.To_Boolean(p_called_by_form) THEN
620 APP_EXCEPTION.Raise_Exception;
621 ELSE
622 x_msg_data := FND_MESSAGE.Get;
623 END IF;
624
625 END Add_Language;
626
627
628 /* =====================================================================
629 PROOCEDURE:
630 Lock_Row
631
632 DESCRIPTION:
633 This PL/SQL procedure is used to lock a row in the table
634 GR_FIELD_NAME_MASKS_TL
635
636 PARAMETERS:
637 p_commit IN VARCHAR2,
638 p_called_by_form IN VARCHAR2,
639 p_rowid IN VARCHAR2,
640 p_item_code IN VARCHAR2,
641 p_disclosure_code IN VARCHAR2,
642 p_label_code IN VARCHAR2,
643 p_language IN VARCHAR2,
644 p_field_name_mask IN VARCHAR2,
645 p_source_lang IN VARCHAR2,
646 p_created_by IN NUMBER,
647 p_creation_date IN DATE,
648 p_last_updated_by IN NUMBER,
649 p_last_update_date IN DATE,
650 p_last_update_login IN NUMBER,
651 x_return_status OUT VARCHAR2,
652 x_oracle_error OUT NUMBER,
653 x_msg_data OUT VARCHAR2
654
655 HISTORY
656 ===================================================================== */
657 PROCEDURE Lock_Row
658 (p_commit IN VARCHAR2,
659 p_called_by_form IN VARCHAR2,
660 p_rowid IN VARCHAR2,
661 p_item_code IN VARCHAR2,
662 p_disclosure_code IN VARCHAR2,
663 p_label_code IN VARCHAR2,
664 p_language IN VARCHAR2,
665 p_field_name_mask IN VARCHAR2,
666 p_source_lang IN VARCHAR2,
667 p_created_by IN NUMBER,
668 p_creation_date IN DATE,
669 p_last_updated_by IN NUMBER,
670 p_last_update_date IN DATE,
671 p_last_update_login IN NUMBER,
672 x_return_status OUT NOCOPY VARCHAR2,
673 x_oracle_error OUT NOCOPY NUMBER,
674 x_msg_data OUT NOCOPY VARCHAR2)
675 IS
676
677 /* Alpha Variables */
678
679 L_RETURN_STATUS VARCHAR2(1) := 'S';
680 L_MSG_DATA VARCHAR2(2000);
681
682 /* Number Variables */
683
684 L_ORACLE_ERROR NUMBER;
685
686 /* Exceptions */
687
688 NO_DATA_FOUND_ERROR EXCEPTION;
689 RECORD_CHANGED_ERROR EXCEPTION;
690
691
692 /* Define the cursors */
693
694 CURSOR c_lock_ein_number
695 IS
696 SELECT last_update_date
697 FROM gr_item_field_name_masks_tl
698 WHERE rowid = p_rowid
699 FOR UPDATE NOWAIT;
700 LockEinRcd c_lock_ein_number%ROWTYPE;
701 BEGIN
702
703 /* Initialization Routine */
704
705 SAVEPOINT Lock_Row;
706 x_return_status := 'S';
707 x_oracle_error := 0;
708 x_msg_data := NULL;
709
710 /* Now lock the record */
711
712 OPEN c_lock_ein_number;
713 FETCH c_lock_ein_number INTO LockEinRcd;
714 IF c_lock_ein_number%NOTFOUND THEN
715 CLOSE c_lock_ein_number;
716 RAISE No_Data_Found_Error;
717 END IF;
718 CLOSE c_lock_ein_number;
719
723
720 IF LockEinRcd.last_update_date <> p_last_update_date THEN
721 RAISE RECORD_CHANGED_ERROR;
722 END IF;
724 IF FND_API.To_Boolean(p_commit) THEN
725 COMMIT WORK;
726 END IF;
727
728 EXCEPTION
729
730 WHEN No_Data_Found_Error THEN
731 ROLLBACK TO SAVEPOINT Lock_Row;
732 x_return_status := 'E';
733 FND_MESSAGE.SET_NAME('GR',
734 'GR_RECORD_NOT_FOUND');
735 FND_MESSAGE.SET_TOKEN('CODE',
736 p_item_code,
737 FALSE);
738 IF FND_API.To_Boolean(p_called_by_form) THEN
739 APP_EXCEPTION.Raise_Exception;
740 ELSE
741 x_msg_data := FND_MESSAGE.Get;
742 END IF;
743 WHEN RECORD_CHANGED_ERROR THEN
744 ROLLBACK TO SAVEPOINT Lock_Row;
745 X_return_status := 'E';
746 FND_MESSAGE.SET_NAME('FND',
747 'FORM_RECORD_CHANGED');
748 IF FND_API.To_Boolean(p_called_by_form) THEN
749 APP_EXCEPTION.Raise_Exception;
750 ELSE
751 x_msg_data := FND_MESSAGE.Get;
752 END IF;
753 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
754 ROLLBACK TO SAVEPOINT Lock_Row;
755 x_return_status := 'L';
756 x_oracle_error := APP_EXCEPTION.Get_Code;
757 IF NOT (FND_API.To_Boolean(p_called_by_form)) THEN
758 FND_MESSAGE.SET_NAME('GR',
759 'GR_ROW_IS_LOCKED');
760 x_msg_data := FND_MESSAGE.Get;
761 END IF;
762 WHEN OTHERS THEN
763 ROLLBACK TO SAVEPOINT Lock_Row;
764 x_return_status := 'U';
765 x_oracle_error := SQLCODE;
766 l_msg_data := SUBSTR(SQLERRM, 1, 200);
767 FND_MESSAGE.SET_NAME('GR',
768 'GR_UNEXPECTED_ERROR');
769 FND_MESSAGE.SET_TOKEN('TEXT',
770 l_msg_data,
771 FALSE);
772 IF FND_API.To_Boolean(p_called_by_form) THEN
773 APP_EXCEPTION.Raise_Exception;
774 ELSE
775 x_msg_data := FND_MESSAGE.Get;
776 END IF;
777
778 END Lock_Row;
779
780
781 /* =====================================================================
782 PROOCEDURE:
783 Delete_Row
784
785 DESCRIPTION:
786 This PL/SQL procedure is used to delete a row in the table
787 GR_FIELD_NAME_MASKS_TL
788
789 PARAMETERS:
790 p_commit IN VARCHAR2,
791 p_called_by_form IN VARCHAR2,
792 p_rowid IN VARCHAR2,
793 p_item_code IN VARCHAR2,
794 p_disclosure_code IN VARCHAR2,
795 p_label_code IN VARCHAR2,
796 x_return_status OUT VARCHAR2,
797 x_oracle_error OUT NUMBER,
798 x_msg_data OUT VARCHAR2
799
800 HISTORY
801 ===================================================================== */
802 PROCEDURE Delete_Row
803 (p_commit IN VARCHAR2,
804 p_called_by_form IN VARCHAR2,
805 p_rowid IN VARCHAR2,
806 p_item_code IN VARCHAR2,
807 p_disclosure_code IN VARCHAR2,
808 p_label_code IN VARCHAR2,
809 p_language IN VARCHAR2,
810 x_return_status OUT NOCOPY VARCHAR2,
811 x_oracle_error OUT NOCOPY NUMBER,
812 x_msg_data OUT NOCOPY VARCHAR2)
813 IS
814 /* Alpha Variables */
815
816 L_RETURN_STATUS VARCHAR2(1) := 'S';
817 L_MSG_DATA VARCHAR2(2000);
818 L_MSG_TOKEN VARCHAR2(100);
819 L_CALLED_BY_FORM VARCHAR2(1);
820
821 /* Number Variables */
822
823 L_ORACLE_ERROR NUMBER;
824
825 /* Exceptions */
826
827 CHECK_INTEGRITY_ERROR EXCEPTION;
828 ROW_MISSING_ERROR EXCEPTION;
829 PRAGMA EXCEPTION_INIT(Row_Missing_Error,100);
830
831 BEGIN
832
833 /* Initialization Routine */
834
835 SAVEPOINT Delete_Row;
836 x_return_status := 'S';
837 x_oracle_error := 0;
838 x_msg_data := NULL;
839 l_msg_token := p_item_code || ' ' || p_disclosure_code || ' ' || p_label_code || ' '|| p_language;
840
841 DELETE FROM gr_item_field_name_masks_tl
842 WHERE rowid = p_rowid;
843
844 /* Check the commit flag and if set, then commit the work. */
845
846 IF FND_API.TO_Boolean(p_commit) THEN
847 COMMIT WORK;
848 END IF;
849
850 EXCEPTION
851
852 WHEN Row_Missing_Error THEN
853 ROLLBACK TO SAVEPOINT Delete_Row;
854 x_return_status := 'E';
855 x_oracle_error := APP_EXCEPTION.Get_Code;
856 FND_MESSAGE.SET_NAME('GR',
857 'GR_RECORD_NOT_FOUND');
858 FND_MESSAGE.SET_TOKEN('CODE',
859 p_item_code,
860 FALSE);
861 IF FND_API.To_Boolean(p_called_by_form) THEN
862 APP_EXCEPTION.Raise_Exception;
863 ELSE
864 x_msg_data := FND_MESSAGE.Get;
865 END IF;
866
867 WHEN OTHERS THEN
868 ROLLBACK TO SAVEPOINT Delete_Row;
869 x_return_status := 'U';
870 x_oracle_error := SQLCODE;
871 l_msg_data := SUBSTR(SQLERRM, 1, 200);
872 FND_MESSAGE.SET_NAME('GR',
873 'GR_UNEXPECTED_ERROR');
877 IF FND_API.To_Boolean(p_called_by_form) THEN
874 FND_MESSAGE.SET_TOKEN('TEXT',
875 l_msg_data,
876 FALSE);
878 APP_EXCEPTION.Raise_Exception;
879 ELSE
880 x_msg_data := FND_MESSAGE.Get;
881 END IF;
882
883 END Delete_Row;
884
885 /* =====================================================================
886 PROOCEDURE:
887 Delete_Rows
888
889 DESCRIPTION:
890 This PL/SQL procedure is used to delete all of the rows in the table
891 GR_FIELD_NAME_MASKS_TL for the given item_code
892
893 PARAMETERS:
894 p_commit IN VARCHAR2,
895 p_called_by_form IN VARCHAR2,
896 p_item_code IN VARCHAR2,
897 p_disclosure_code IN VARCHAR2,
898 p_label_code IN VARCHAR2,
899 x_return_status OUT VARCHAR2,
900 x_oracle_error OUT NUMBER,
901 x_msg_data OUT VARCHAR2
902
903 HISTORY
904 ===================================================================== */
905 PROCEDURE Delete_Rows
906 (p_commit IN VARCHAR2,
907 p_called_by_form IN VARCHAR2,
908 p_item_code IN VARCHAR2,
909 p_disclosure_code IN VARCHAR2,
910 p_label_code IN VARCHAR2,
911 x_return_status OUT NOCOPY VARCHAR2,
912 x_oracle_error OUT NOCOPY NUMBER,
913 x_msg_data OUT NOCOPY VARCHAR2)
914 IS
915
916 /* Alpha Variables */
917
918 L_RETURN_STATUS VARCHAR2(1) := 'S';
919 L_MSG_DATA VARCHAR2(2000);
920 L_MSG_TOKEN VARCHAR2(30);
921
922 /* Number Variables */
923
924 L_ORACLE_ERROR NUMBER;
925
926 /* Define the cursors */
927
928 BEGIN
929
930 /* Initialization Routine */
931
932 SAVEPOINT Delete_Rows;
933 x_return_status := 'S';
934 x_oracle_error := 0;
935 x_msg_data := NULL;
936 l_msg_token := p_item_code;
937
938 DELETE FROM gr_item_field_name_masks_tl
939 WHERE item_code = p_item_code;
940
941 IF FND_API.To_Boolean(p_commit) THEN
942 COMMIT WORK;
943 END IF;
944
945 EXCEPTION
946
947 WHEN OTHERS THEN
948 ROLLBACK TO SAVEPOINT Delete_Rows;
949 x_return_status := 'U';
950 x_oracle_error := SQLCODE;
951 l_msg_data := SUBSTR(SQLERRM, 1, 200);
952 FND_MESSAGE.SET_NAME('GR',
953 'GR_UNEXPECTED_ERROR');
954 FND_MESSAGE.SET_TOKEN('TEXT',
955 l_msg_token||SQLERRM,
956 FALSE);
957 IF FND_API.To_Boolean(p_called_by_form) THEN
958 APP_EXCEPTION.Raise_Exception;
959 ELSE
960 x_msg_data := FND_MESSAGE.Get;
961 END IF;
962
963 END Delete_Rows;
964
965
966 /* =====================================================================
967 PROOCEDURE:
968 Check_Foreign_Keys
969
970 DESCRIPTION:
971 This PL/SQL procedure is used to check foreign key references from
972 GR_FIELD_NAME_MASKS_TL
973
974 PARAMETERS:
975 p_item_code IN VARCHAR2,
976 p_disclosure_code IN VARCHAR2,
977 p_label_code IN VARCHAR2,
978 p_language IN VARCHAR2,
979 p_source_lang IN VARCHAR2,
980 x_return_status OUT VARCHAR2,
981 x_oracle_error OUT NUMBER,
982 x_msg_data OUT VARCHAR2
983
984 HISTORY
985 ===================================================================== */
986 PROCEDURE Check_Foreign_Keys
987 (p_item_code IN VARCHAR2,
988 p_disclosure_code IN VARCHAR2,
989 p_label_code IN VARCHAR2,
990 p_language IN VARCHAR2,
991 p_source_lang IN VARCHAR2,
992 x_return_status OUT NOCOPY VARCHAR2,
993 x_oracle_error OUT NOCOPY NUMBER,
994 x_msg_data OUT NOCOPY VARCHAR2)
995 IS
996
997 /* Alpha Variables */
998
999 L_RETURN_STATUS VARCHAR2(1) := 'S';
1000 L_MSG_DATA VARCHAR2(2000);
1001 L_ROWID VARCHAR2(18);
1002 L_KEY_EXISTS VARCHAR2(1);
1003 L_MSG_TOKEN VARCHAR2(30);
1004 L_LANGUAGE_CODE VARCHAR2(4);
1005
1006 /* Number Variables */
1007
1008 L_ORACLE_ERROR NUMBER;
1009
1010 /* Cursors */
1011 CURSOR c_get_language
1012 IS
1013 SELECT lng.language_code
1014 FROM fnd_languages lng
1015 WHERE lng.language_code = l_language_code;
1016 LangRecord c_get_language%ROWTYPE;
1017
1018 BEGIN
1019
1020 /* Initialization Routine */
1021
1022 SAVEPOINT Check_Foreign_Keys;
1023 x_return_status := 'S';
1024 x_oracle_error := 0;
1025 x_msg_data := NULL;
1026
1027 l_msg_token := p_item_code || ' ' || p_disclosure_code || ' ' || p_label_code || ' ' || p_language;
1028
1029 /* Check the language codes */
1030
1031 l_language_code := p_language;
1032 OPEN c_get_language;
1033 FETCH c_get_language INTO LangRecord;
1034 IF c_get_language%NOTFOUND THEN
1035 l_msg_token := l_language_code;
1036 x_return_status := 'E';
1040 FND_MESSAGE.SET_TOKEN('CODE',
1037 x_oracle_error := APP_EXCEPTION.Get_Code;
1038 FND_MESSAGE.SET_NAME('GR',
1039 'GR_RECORD_NOT_FOUND');
1041 l_msg_token,
1042 FALSE);
1043 l_msg_data := FND_MESSAGE.Get;
1044 END IF;
1045 CLOSE c_get_language;
1046
1047 l_language_code := p_source_lang;
1048 OPEN c_get_language;
1049 FETCH c_get_language INTO LangRecord;
1050 IF c_get_language%NOTFOUND THEN
1051 l_msg_token := l_language_code;
1052 x_return_status := 'E';
1053 x_oracle_error := APP_EXCEPTION.Get_Code;
1054 FND_MESSAGE.SET_NAME('GR',
1055 'GR_RECORD_NOT_FOUND');
1056 FND_MESSAGE.SET_TOKEN('CODE',
1057 l_msg_token,
1058 FALSE);
1059 l_msg_data := FND_MESSAGE.Get;
1060 END IF;
1061 CLOSE c_get_language;
1062
1063 IF x_return_status <> 'S' THEN
1064 x_msg_data := l_msg_data;
1065 END IF;
1066
1067
1068 EXCEPTION
1069
1070 WHEN OTHERS THEN
1071 ROLLBACK TO SAVEPOINT Check_Foreign_Keys;
1072 x_return_status := 'U';
1073 x_oracle_error := SQLCODE;
1074 l_msg_data := SUBSTR(SQLERRM, 1, 200);
1075 FND_MESSAGE.SET_NAME('GR',
1076 'GR_UNEXPECTED_ERROR');
1077 FND_MESSAGE.SET_TOKEN('TEXT',
1078 l_msg_data,
1079 FALSE);
1080 x_msg_data := FND_MESSAGE.Get;
1081
1082 END Check_Foreign_Keys;
1083
1084
1085 /* =====================================================================
1086 PROOCEDURE:
1087 Check_Primary_Key
1088
1089 DESCRIPTION:
1090 This PL/SQL procedure is used to check if the record already exists in
1091 GR_FIELD_NAME_MASKS_TL
1092
1093 PARAMETERS:
1094 p_item_code IN VARCHAR2 item code to check.
1095 p_disclosure_code IN VARCHAR2 disclosure code to check
1096 p_label_code IN VARCHAR2 label code to check
1097 p_language IN VARCHAR2 language to check
1098 p_called_by_form IN VARCHAR2 'T' if called by a form or 'F' if not
1099 x_row_id OUT VARCHAR2 row id of the record if found
1100 x_key_exists OUT VARCHAR2 'T' is the record is found, 'F' if not
1101
1102 HISTORY
1103 ===================================================================== */
1104 PROCEDURE Check_Primary_Key
1105 (p_item_code IN VARCHAR2,
1106 p_disclosure_code IN VARCHAR2,
1107 p_label_code IN VARCHAR2,
1108 p_language IN VARCHAR2,
1109 p_called_by_form IN VARCHAR2,
1110 x_rowid OUT NOCOPY VARCHAR2,
1111 x_key_exists OUT NOCOPY VARCHAR2)
1112 IS
1113 /* Declare any variables and the cursor */
1114
1115 L_MSG_DATA VARCHAR2(2000);
1116
1117 CURSOR c_get_ein_rowid
1118 IS
1119 SELECT ein.rowid
1120 FROM gr_item_field_name_masks_tl ein
1121 WHERE ein.item_code = p_item_code
1122 AND ein.disclosure_code = p_disclosure_code
1123 AND ein.label_code = p_label_code
1124 AND ein.language = p_language;
1125 EinRecord c_get_ein_rowid%ROWTYPE;
1126
1127 BEGIN
1128
1129 x_key_exists := 'F';
1130 OPEN c_get_ein_rowid;
1131 FETCH c_get_ein_rowid INTO EinRecord;
1132 IF c_get_ein_rowid%FOUND THEN
1133 x_key_exists := 'T';
1134 x_rowid := EinRecord.rowid;
1135 ELSE
1136 x_key_exists := 'F';
1137 END IF;
1138 CLOSE c_get_ein_rowid;
1139
1140 EXCEPTION
1141
1142 WHEN Others THEN
1143 l_msg_data := sqlerrm;
1144 FND_MESSAGE.SET_NAME('GR',
1145 'GR_UNEXPECTED_ERROR');
1146 FND_MESSAGE.SET_TOKEN('TEXT',
1147 l_msg_data,
1148 FALSE);
1149 IF FND_API.To_Boolean(p_called_by_form) THEN
1150 APP_EXCEPTION.Raise_Exception;
1151 END IF;
1152
1153 END Check_Primary_Key;
1154
1155
1156 /* =====================================================================
1157 PROOCEDURE:
1158 translate_row
1159
1160 DESCRIPTION:
1161 This PL/SQL procedure is used to translate a row in
1162 GR_FIELD_NAME_MASKS_TL
1163
1164 PARAMETERS:
1165 p_item_code IN VARCHAR2,
1166 p_disclosure_code IN VARCHAR2,
1167 p_label_code IN VARCHAR2,
1168 p_language IN VARCHAR2,
1169 p_field_name_mask IN VARCHAR2,
1170 p_source_lang IN VARCHAR2,
1171
1172 HISTORY
1173 ===================================================================== */
1174 PROCEDURE translate_row (
1175 X_ITEM_CODE IN VARCHAR2
1176 ,X_DISCLOSURE_CODE IN VARCHAR2
1177 ,X_LABEL_CODE IN VARCHAR2
1178 ,X_LANGUAGE IN VARCHAR2
1179 ,X_FIELD_NAME_MASK IN VARCHAR2
1180 ,X_SOURCE_LANG IN VARCHAR2
1181 ) IS
1182 BEGIN
1183 UPDATE GR_ITEM_FIELD_NAME_MASKS_TL SET
1184 FIELD_NAME_MASK = X_FIELD_NAME_MASK,
1185 SOURCE_LANG = USERENV('LANG'),
1186 LAST_UPDATE_DATE = sysdate,
1187 LAST_UPDATED_BY = 0,
1188 LAST_UPDATE_LOGIN = 0
1189 WHERE (ITEM_CODE = X_ITEM_CODE)
1193 END TRANSLATE_ROW;
1190 AND (DISCLOSURE_CODE = X_DISCLOSURE_CODE)
1191 AND (LABEL_CODE = X_LABEL_CODE)
1192 AND (USERENV('LANG') IN (LANGUAGE, SOURCE_LANG));
1194
1195
1196 /* =====================================================================
1197 PROOCEDURE:
1198 load_row
1199
1200 DESCRIPTION:
1201 This PL/SQL procedure is used to update or insert a row into
1202 GR_FIELD_NAME_MASKS_TL
1203
1204 PARAMETERS:
1205 p_item_code IN VARCHAR2,
1206 p_disclosure_code IN VARCHAR2,
1207 p_label_code IN VARCHAR2,
1208 p_language IN VARCHAR2,
1209 p_field_name_mask IN VARCHAR2,
1210 p_source_lang IN VARCHAR2,
1211
1212 HISTORY
1213 ===================================================================== */
1214 PROCEDURE load_row (
1215 X_ITEM_CODE IN VARCHAR2
1216 ,X_DISCLOSURE_CODE IN VARCHAR2
1217 ,X_LABEL_CODE IN VARCHAR2
1218 ,X_LANGUAGE IN VARCHAR2
1219 ,X_FIELD_NAME_MASK IN VARCHAR2
1220 ,X_SOURCE_LANG IN VARCHAR2
1221 ) IS
1222 CURSOR Cur_rowid IS
1223 SELECT rowid
1224 FROM GR_ITEM_FIELD_NAME_MASKS_TL
1225 WHERE (ITEM_CODE = X_ITEM_CODE)
1226 AND (DISCLOSURE_CODE = X_DISCLOSURE_CODE)
1227 AND (LABEL_CODE = X_LABEL_CODE)
1228 AND (LANGUAGE = X_LANGUAGE);
1229
1230 l_user_id NUMBER DEFAULT 1;
1231 l_row_id VARCHAR2(64);
1232 l_return_status VARCHAR2(1);
1233 l_oracle_error NUMBER;
1234 l_msg_data VARCHAR2(2000);
1235 BEGIN
1236 OPEN Cur_rowid;
1237 FETCH Cur_rowid INTO l_row_id;
1238 IF Cur_rowid%FOUND THEN
1239 GR_FIELD_NAME_MASKS_TL_PKG.UPDATE_ROW(
1240 P_COMMIT => 'T'
1241 ,P_CALLED_BY_FORM => 'F'
1242 ,P_ROWID => l_row_id
1243 ,P_ITEM_CODE => X_ITEM_CODE
1244 ,P_DISCLOSURE_CODE => X_DISCLOSURE_CODE
1245 ,P_LABEL_CODE => X_LABEL_CODE
1246 ,P_LANGUAGE => X_LANGUAGE
1247 ,P_FIELD_NAME_MASK => X_FIELD_NAME_MASK
1248 ,P_SOURCE_LANG => X_SOURCE_LANG
1249 ,P_CREATED_BY => l_user_id
1250 ,P_CREATION_DATE => sysdate
1251 ,P_LAST_UPDATED_BY => l_user_id
1252 ,P_LAST_UPDATE_DATE => sysdate
1253 ,P_LAST_UPDATE_LOGIN => 0
1254 ,X_RETURN_STATUS => l_return_status
1255 ,X_ORACLE_ERROR => l_oracle_error
1256 ,X_MSG_DATA => l_msg_data);
1257 ELSE
1258 GR_FIELD_NAME_MASKS_TL_PKG.INSERT_ROW(
1259 P_COMMIT => 'T'
1260 ,P_CALLED_BY_FORM => 'F'
1261 ,P_ITEM_CODE => X_ITEM_CODE
1262 ,P_DISCLOSURE_CODE => X_DISCLOSURE_CODE
1263 ,P_LABEL_CODE => X_LABEL_CODE
1264 ,P_LANGUAGE => X_LANGUAGE
1265 ,P_FIELD_NAME_MASK => X_FIELD_NAME_MASK
1266 ,P_SOURCE_LANG => X_SOURCE_LANG
1267 ,P_CREATED_BY => l_user_id
1268 ,P_CREATION_DATE => sysdate
1269 ,P_LAST_UPDATED_BY => l_user_id
1270 ,P_LAST_UPDATE_DATE => sysdate
1271 ,P_LAST_UPDATE_LOGIN => 0
1272 ,X_ROWID => l_row_id
1273 ,X_RETURN_STATUS => l_return_status
1274 ,X_ORACLE_ERROR => l_oracle_error
1275 ,X_MSG_DATA => l_msg_data);
1276 END IF;
1277 CLOSE Cur_rowid;
1278 END LOAD_ROW;
1279
1280 /* =====================================================================
1281 PROOCEDURE:
1282 New_Language
1283
1284 DESCRIPTION:
1285 This PL/SQL procedure is used to add a new language
1286 GR_FIELD_NAME_MASKS_TL
1287
1288
1289 HISTORY
1290 04-Aug-2003 GK Bug 2961127 - Added in procedure new language for populating the tables.
1291 ===================================================================== */
1292 PROCEDURE NEW_LANGUAGE
1293 is
1294 begin
1295 DELETE FROM GR_ITEM_FIELD_NAME_MASKS_TL T
1296 WHERE not exists
1297 (SELECT NULL
1298 FROM GR_ITEM_FIELD_NAME_MASKS_B B
1299 WHERE B.ITEM_CODE = T.ITEM_CODE
1300 AND B.DISCLOSURE_CODE = T.DISCLOSURE_CODE
1301 AND B.LABEL_CODE = T.LABEL_CODE
1302 );
1303
1304 UPDATE GR_ITEM_FIELD_NAME_MASKS_TL T SET (
1305 FIELD_NAME_MASK
1306 ) = (SELECT
1307 B.FIELD_NAME_MASK
1308 FROM GR_ITEM_FIELD_NAME_MASKS_TL B
1309 WHERE B.ITEM_CODE = T.ITEM_CODE
1310 AND B.LANGUAGE = T.SOURCE_LANG
1311 AND B.DISCLOSURE_CODE = T.DISCLOSURE_CODE
1312 AND B.LABEL_CODE = T.LABEL_CODE)
1313 WHERE (
1314 T.ITEM_CODE,
1315 T.LANGUAGE,
1316 T.DISCLOSURE_CODE,
1317 T.LABEL_CODE
1318 ) in (SELECT
1319 SUBT.ITEM_CODE,
1320 SUBT.LANGUAGE,
1321 SUBT.DISCLOSURE_CODE,
1322 SUBT.LABEL_CODE
1323 FROM GR_ITEM_FIELD_NAME_MASKS_TL SUBB, GR_ITEM_FIELD_NAME_MASKS_TL SUBT
1324 WHERE SUBB.ITEM_CODE = SUBT.ITEM_CODE
1325 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
1326 AND SUBB.DISCLOSURE_CODE = SUBT.DISCLOSURE_CODE
1327 AND SUBB.LABEL_CODE = SUBT.LABEL_CODE
1328 AND (SUBB.FIELD_NAME_MASK <> SUBT.FIELD_NAME_MASK
1329 ));
1330
1331 INSERT into GR_ITEM_FIELD_NAME_MASKS_TL (
1332 ITEM_CODE,
1333 DISCLOSURE_CODE,
1334 LABEL_CODE,
1335 FIELD_NAME_MASK,
1336 CREATED_BY,
1337 CREATION_DATE,
1338 LAST_UPDATED_BY,
1339 LAST_UPDATE_DATE,
1340 LAST_UPDATE_LOGIN,
1341 LANGUAGE,
1342 SOURCE_LANG
1343 ) SELECT
1344 B.ITEM_CODE,
1345 B.DISCLOSURE_CODE,
1346 B.LABEL_CODE,
1347 B.FIELD_NAME_MASK,
1348 B.CREATED_BY,
1349 B.CREATION_DATE,
1350 B.LAST_UPDATED_BY,
1351 B.LAST_UPDATE_DATE,
1352 B.LAST_UPDATE_LOGIN,
1353 L.LANGUAGE_CODE,
1354 B.SOURCE_LANG
1355 FROM GR_ITEM_FIELD_NAME_MASKS_TL B, FND_LANGUAGES L
1356 WHERE L.INSTALLED_FLAG in ('I', 'B')
1357 AND B.LANGUAGE = userenv('LANG')
1358 AND not exists
1359 (SELECT NULL
1360 FROM GR_ITEM_FIELD_NAME_MASKS_TL T
1361 WHERE T.ITEM_CODE = B.ITEM_CODE
1362 AND T.DISCLOSURE_CODE = B.DISCLOSURE_CODE
1363 AND T.LABEL_CODE = B.LABEL_CODE
1364 AND T.LANGUAGE = L.LANGUAGE_CODE);
1365
1366 END NEW_LANGUAGE;
1367
1368
1369 END GR_FIELD_NAME_MASKS_TL_PKG;