[Home] [Help]
PACKAGE BODY: APPS.GR_PHRASE_GROUP_ASSOC_PKG
Source
1 PACKAGE BODY GR_PHRASE_GROUP_ASSOC_PKG AS
2 /*$Header: GRHIPGAB.pls 115.5 2002/10/28 20:16:14 methomas ship $*/
3 PROCEDURE Insert_Row
4 (p_commit IN VARCHAR2,
5 p_called_by_form IN VARCHAR2,
6 p_phrase_group_code IN VARCHAR2,
7 p_phrase_code IN VARCHAR2,
8 p_language_code IN VARCHAR2,
9 p_sequence_number IN NUMBER,
10 p_created_by IN NUMBER,
11 p_creation_date IN DATE,
12 p_last_updated_by IN NUMBER,
13 p_last_update_date IN DATE,
14 p_last_update_login IN NUMBER,
15 x_rowid OUT NOCOPY VARCHAR2,
16 x_return_status OUT NOCOPY VARCHAR2,
17 x_oracle_error OUT NOCOPY NUMBER,
18 x_msg_data OUT NOCOPY VARCHAR2)
19 IS
20 /* Alpha Variables */
21
22 L_RETURN_STATUS VARCHAR2(1) := 'S';
23 L_KEY_EXISTS VARCHAR2(1);
24 L_MSG_DATA VARCHAR2(2000);
25 L_ROWID VARCHAR2(18);
26
27 /* Number Variables */
28
29 L_ORACLE_ERROR NUMBER;
30
31 /* Exceptions */
32
33 FOREIGN_KEY_ERROR EXCEPTION;
34 ITEM_EXISTS_ERROR EXCEPTION;
35 ROW_MISSING_ERROR EXCEPTION;
36
37 /* Declare cursors */
38
39
40 BEGIN
41
42 /* Initialization Routine */
43
44 SAVEPOINT Insert_Row;
45 x_return_status := 'S';
46 x_oracle_error := 0;
47 x_msg_data := NULL;
48
49 /* Now call the check foreign key procedure */
50
51 Check_Foreign_Keys
52 (p_phrase_group_code,
53 p_phrase_code,
54 p_language_code,
55 p_sequence_number,
56 l_return_status,
57 l_oracle_error,
58 l_msg_data);
59 IF l_return_status <> 'S' THEN
60 RAISE Foreign_Key_Error;
61 END IF;
62
63 /* Now check the primary key doesn't already exist */
64
65 Check_Primary_Key
66 (p_phrase_group_code,
67 p_phrase_code,
68 'F',
69 l_rowid,
70 l_key_exists);
71
72 IF FND_API.To_Boolean(l_key_exists) THEN
73 RAISE Item_Exists_Error;
74 END IF;
75
76 INSERT INTO gr_phrase_group_assoc
77 (phrase_group_code,
78 phrase_code,
79 language_code,
80 sequence_number,
81 created_by,
82 creation_date,
83 last_updated_by,
84 last_update_date,
85 last_update_login)
86 VALUES
87 (p_phrase_group_code,
88 p_phrase_code,
89 p_language_code,
90 p_sequence_number,
91 p_created_by,
92 p_creation_date,
93 p_last_updated_by,
94 p_last_update_date,
95 p_last_update_login);
96
97 /* Now get the row id of the inserted record */
98
99 Check_Primary_Key
100 (p_phrase_group_code,
101 p_phrase_code,
102 'F',
103 l_rowid,
104 l_key_exists);
105
106 IF FND_API.To_Boolean(l_key_exists) THEN
107 x_rowid := l_rowid;
108 ELSE
109 RAISE Row_Missing_Error;
110 END IF;
111
112 /* Check the commit flag and if set, then commit the work. */
113
114 IF FND_API.To_Boolean(p_commit) THEN
115 COMMIT WORK;
116 END IF;
117
118 EXCEPTION
119
120 WHEN Foreign_Key_Error THEN
121 ROLLBACK TO SAVEPOINT Insert_Row;
122 x_return_status := l_return_status;
123 x_oracle_error := l_oracle_error;
124 FND_MESSAGE.SET_NAME('GR',
125 'GR_FOREIGN_KEY_ERROR');
126 FND_MESSAGE.SET_TOKEN('TEXT',
127 l_msg_data,
128 FALSE);
129 IF FND_API.To_Boolean(p_called_by_form) THEN
130 APP_EXCEPTION.Raise_Exception;
131 ELSE
132 x_msg_data := FND_MESSAGE.Get;
133 END IF;
134
135 WHEN Item_Exists_Error THEN
136 ROLLBACK TO SAVEPOINT Insert_Row;
137 x_return_status := 'E';
138 x_oracle_error := APP_EXCEPTION.Get_Code;
139 FND_MESSAGE.SET_NAME('GR',
140 'GR_RECORD_EXISTS');
141 FND_MESSAGE.SET_TOKEN('CODE',
142 p_phrase_group_code || ' ' || p_phrase_code,
143 FALSE);
144 IF FND_API.To_Boolean(p_called_by_form) THEN
145 APP_EXCEPTION.Raise_Exception;
146 ELSE
147 x_msg_data := FND_MESSAGE.Get;
148 END IF;
149
150 WHEN Row_Missing_Error THEN
151 ROLLBACK TO SAVEPOINT Insert_Row;
152 x_return_status := 'E';
153 x_oracle_error := APP_EXCEPTION.Get_Code;
154 FND_MESSAGE.SET_NAME('GR',
155 'GR_NO_RECORD_INSERTED');
156 FND_MESSAGE.SET_TOKEN('CODE',
157 p_phrase_group_code || ' ' || p_phrase_code,
158 FALSE);
159 IF FND_API.To_Boolean(p_called_by_form) THEN
160 APP_EXCEPTION.Raise_Exception;
161 ELSE
162 x_msg_data := FND_MESSAGE.Get;
163 END IF;
164
165 WHEN OTHERS THEN
166 ROLLBACK TO SAVEPOINT Insert_Row;
167 x_return_status := 'U';
168 x_oracle_error := APP_EXCEPTION.Get_Code;
169 l_msg_data := APP_EXCEPTION.Get_Text;
170 FND_MESSAGE.SET_NAME('GR',
171 'GR_UNEXPECTED_ERROR');
172 FND_MESSAGE.SET_TOKEN('TEXT',
173 l_msg_data,
174 FALSE);
175 IF FND_API.To_Boolean(p_called_by_form) THEN
176 APP_EXCEPTION.Raise_Exception;
177 ELSE
178 x_msg_data := FND_MESSAGE.Get;
179 END IF;
180
181 END Insert_Row;
182
183 PROCEDURE Update_Row
184 (p_commit IN VARCHAR2,
185 p_called_by_form IN VARCHAR2,
186 p_rowid IN VARCHAR2,
187 p_phrase_group_code IN VARCHAR2,
188 p_phrase_code IN VARCHAR2,
189 p_language_code IN VARCHAR2,
190 p_sequence_number IN NUMBER,
191 p_created_by IN NUMBER,
192 p_creation_date IN DATE,
193 p_last_updated_by IN NUMBER,
194 p_last_update_date IN DATE,
195 p_last_update_login IN NUMBER,
196 x_return_status OUT NOCOPY VARCHAR2,
197 x_oracle_error OUT NOCOPY NUMBER,
198 x_msg_data OUT NOCOPY VARCHAR2)
199 IS
200
201 /* Alpha Variables */
202
203 L_RETURN_STATUS VARCHAR2(1) := 'S';
204 L_MSG_DATA VARCHAR2(2000);
205
206 /* Number Variables */
207
208 L_ORACLE_ERROR NUMBER;
209
210 /* Exceptions */
211
212 FOREIGN_KEY_ERROR EXCEPTION;
213 ROW_MISSING_ERROR EXCEPTION;
214
215 BEGIN
216
217 /* Initialization Routine */
218
219 SAVEPOINT Update_Row;
220 x_return_status := 'S';
221 x_oracle_error := 0;
222 x_msg_data := NULL;
223
224 /* Now call the check foreign key procedure */
225
226 Check_Foreign_Keys
227 (p_phrase_group_code,
228 p_phrase_code,
229 p_language_code,
230 p_sequence_number,
231 l_return_status,
232 l_oracle_error,
233 l_msg_data);
234
235 IF l_return_status <> 'S' THEN
236 RAISE Foreign_Key_Error;
237 ELSE
238 UPDATE gr_phrase_group_assoc
239 SET phrase_group_code = p_phrase_group_code,
240 phrase_code = p_phrase_code,
241 language_code = p_language_code,
242 sequence_number = p_sequence_number,
243 created_by = p_created_by,
244 creation_date = p_creation_date,
245 last_updated_by = p_last_updated_by,
246 last_update_date = p_last_update_date,
247 last_update_login = p_last_update_login
248 WHERE rowid = p_rowid;
249 IF SQL%NOTFOUND THEN
250 RAISE Row_Missing_Error;
251 END IF;
252 END IF;
253
254 /* Check the commit flag and if set, then commit the work. */
255
256 IF FND_API.To_Boolean(p_commit) THEN
257 COMMIT WORK;
258 END IF;
259
260 EXCEPTION
261
262 WHEN Foreign_Key_Error THEN
263 ROLLBACK TO SAVEPOINT Update_Row;
264 x_return_status := l_return_status;
265 x_oracle_error := l_oracle_error;
266 FND_MESSAGE.SET_NAME('GR',
267 'GR_FOREIGN_KEY_ERROR');
268 FND_MESSAGE.SET_TOKEN('TEXT',
269 l_msg_data,
270 FALSE);
271 IF FND_API.To_Boolean(p_called_by_form) THEN
272 APP_EXCEPTION.Raise_Exception;
273 ELSE
274 x_msg_data := FND_MESSAGE.Get;
275 END IF;
276
277 WHEN Row_Missing_Error THEN
278 ROLLBACK TO SAVEPOINT Update_Row;
279 x_return_status := 'E';
280 x_oracle_error := APP_EXCEPTION.Get_Code;
281 FND_MESSAGE.SET_NAME('GR',
282 'GR_NO_RECORD_INSERTED');
283 FND_MESSAGE.SET_TOKEN('CODE',
284 p_phrase_group_code || ' ' || p_phrase_code,
285 FALSE);
286 IF FND_API.To_Boolean(p_called_by_form) THEN
287 APP_EXCEPTION.Raise_Exception;
288 ELSE
289 x_msg_data := FND_MESSAGE.Get;
290 END IF;
291
292 WHEN OTHERS THEN
293 ROLLBACK TO SAVEPOINT Update_Row;
294 x_return_status := 'U';
295 x_oracle_error := APP_EXCEPTION.Get_Code;
296 l_msg_data := APP_EXCEPTION.Get_Text;
297 FND_MESSAGE.SET_NAME('GR',
298 'GR_UNEXPECTED_ERROR');
299 FND_MESSAGE.SET_TOKEN('TEXT',
300 l_msg_data,
301 FALSE);
302 IF FND_API.To_Boolean(p_called_by_form) THEN
303 APP_EXCEPTION.Raise_Exception;
304 ELSE
305 x_msg_data := FND_MESSAGE.Get;
306 END IF;
307
308 END Update_Row;
309
310 PROCEDURE Lock_Row
311 (p_commit IN VARCHAR2,
312 p_called_by_form IN VARCHAR2,
313 p_rowid IN VARCHAR2,
314 p_phrase_group_code IN VARCHAR2,
315 p_phrase_code IN VARCHAR2,
316 p_language_code IN VARCHAR2,
317 p_sequence_number IN NUMBER,
318 p_created_by IN NUMBER,
319 p_creation_date IN DATE,
320 p_last_updated_by IN NUMBER,
321 p_last_update_date IN DATE,
322 p_last_update_login IN NUMBER,
323 x_return_status OUT NOCOPY VARCHAR2,
324 x_oracle_error OUT NOCOPY NUMBER,
325 x_msg_data OUT NOCOPY VARCHAR2)
326 IS
327
328 /* Alpha Variables */
329
330 L_RETURN_STATUS VARCHAR2(1) := 'S';
331 L_MSG_DATA VARCHAR2(2000);
332
333 /* Number Variables */
334
335 L_ORACLE_ERROR NUMBER;
336
337 /* Exceptions */
338
339 NO_DATA_FOUND_ERROR EXCEPTION;
340 RECORD_CHANGED_ERROR EXCEPTION;
341
342 /* Define the cursors */
343
344 CURSOR c_lock_phrase_group_assoc
345 IS
346 SELECT last_update_date
347 FROM gr_phrase_group_assoc
348 WHERE rowid = p_rowid
349 FOR UPDATE NOWAIT;
350 LockGroupRcd c_lock_phrase_group_assoc%ROWTYPE;
351 BEGIN
352
353 /* Initialization Routine */
354
355 SAVEPOINT Lock_Row;
356 x_return_status := 'S';
357 x_oracle_error := 0;
358 x_msg_data := NULL;
359
360 /* Now lock the record */
361
362 OPEN c_lock_phrase_group_assoc;
363 FETCH c_lock_phrase_group_assoc INTO LockGroupRcd;
364 IF c_lock_phrase_group_assoc%NOTFOUND THEN
365 CLOSE c_lock_phrase_group_assoc;
366 RAISE No_Data_Found_Error;
367 END IF;
368 CLOSE c_lock_phrase_group_assoc;
369
370 IF LockGroupRcd.last_update_date <> p_last_update_date THEN
371 RAISE RECORD_CHANGED_ERROR;
372 END IF;
373
374 IF FND_API.To_Boolean(p_commit) THEN
375 COMMIT WORK;
376 END IF;
377
378 EXCEPTION
379
380 WHEN No_Data_Found_Error THEN
381 ROLLBACK TO SAVEPOINT Lock_Row;
382 x_return_status := 'E';
383 FND_MESSAGE.SET_NAME('GR',
384 'GR_RECORD_NOT_FOUND');
385 FND_MESSAGE.SET_TOKEN('CODE',
386 p_phrase_group_code || ' ' || p_phrase_code,
387 FALSE);
388 IF FND_API.To_Boolean(p_called_by_form) THEN
389 APP_EXCEPTION.Raise_Exception;
390 ELSE
391 x_msg_data := FND_MESSAGE.Get;
392 END IF;
393
394 WHEN RECORD_CHANGED_ERROR THEN
395 ROLLBACK TO SAVEPOINT Lock_Row;
396 X_return_status := 'E';
397 FND_MESSAGE.SET_NAME('FND',
398 'FORM_RECORD_CHANGED');
399 IF FND_API.To_Boolean(p_called_by_form) THEN
400 APP_EXCEPTION.Raise_Exception;
401 ELSE
402 x_msg_data := FND_MESSAGE.Get;
403 END IF;
404
405 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
406 ROLLBACK TO SAVEPOINT Lock_Row;
407 x_return_status := 'L';
408 x_oracle_error := APP_EXCEPTION.Get_Code;
409 IF NOT (FND_API.To_Boolean(p_called_by_form)) THEN
410 FND_MESSAGE.SET_NAME('GR',
411 'GR_ROW_IS_LOCKED');
412 x_msg_data := FND_MESSAGE.Get;
413 END IF;
414
415 WHEN OTHERS THEN
416 ROLLBACK TO SAVEPOINT Lock_Row;
417 x_return_status := 'U';
418 x_oracle_error := APP_EXCEPTION.Get_Code;
419 l_msg_data := APP_EXCEPTION.Get_Text;
420 FND_MESSAGE.SET_NAME('GR',
421 'GR_UNEXPECTED_ERROR');
422 FND_MESSAGE.SET_TOKEN('TEXT',
423 l_msg_data,
424 FALSE);
425 IF FND_API.To_Boolean(p_called_by_form) THEN
426 APP_EXCEPTION.Raise_Exception;
427 ELSE
428 x_msg_data := FND_MESSAGE.Get;
429 END IF;
430
431 END Lock_Row;
432
433 PROCEDURE Delete_Row
434 (p_commit IN VARCHAR2,
435 p_called_by_form IN VARCHAR2,
436 p_rowid IN VARCHAR2,
437 p_phrase_group_code IN VARCHAR2,
438 p_phrase_code IN VARCHAR2,
439 p_language_code IN VARCHAR2,
440 p_sequence_number IN NUMBER,
441 p_created_by IN NUMBER,
442 p_creation_date IN DATE,
443 p_last_updated_by IN NUMBER,
444 p_last_update_date IN DATE,
445 p_last_update_login IN NUMBER,
446 x_return_status OUT NOCOPY VARCHAR2,
447 x_oracle_error OUT NOCOPY NUMBER,
448 x_msg_data OUT NOCOPY VARCHAR2)
449 IS
450
451 /* Alpha Variables */
452
453 L_RETURN_STATUS VARCHAR2(1) := 'S';
454 L_MSG_DATA VARCHAR2(2000);
455 L_CALLED_BY_FORM VARCHAR2(1);
456
457 /* Number Variables */
458
459 L_ORACLE_ERROR NUMBER;
460
461 /* Exceptions */
462
463 CHECK_INTEGRITY_ERROR EXCEPTION;
464 ROW_MISSING_ERROR EXCEPTION;
465 PRAGMA EXCEPTION_INIT(Row_Missing_Error,100);
466
467 BEGIN
468
469 /* Initialization Routine */
470
471 SAVEPOINT Delete_Row;
472 x_return_status := 'S';
473 l_called_by_form := 'F';
474 x_oracle_error := 0;
475 x_msg_data := NULL;
476
477 /* Now call the check integrity procedure */
478
479 Check_Integrity
480 (l_called_by_form,
481 p_phrase_group_code,
482 p_phrase_code,
483 p_language_code,
484 p_sequence_number,
485 l_return_status,
486 l_oracle_error,
487 l_msg_data);
488
489 IF l_return_status <> 'S' THEN
490 RAISE Check_Integrity_Error;
491 END IF;
492
493 DELETE FROM gr_phrase_group_assoc
494 WHERE rowid = p_rowid;
495
496 /* Check the commit flag and if set, then commit the work. */
497
498 IF FND_API.TO_Boolean(p_commit) THEN
499 COMMIT WORK;
500 END IF;
501
502 EXCEPTION
503
504 WHEN Check_Integrity_Error THEN
505 ROLLBACK TO SAVEPOINT Delete_Row;
506 x_return_status := l_return_status;
507 x_oracle_error := l_oracle_error;
508 IF FND_API.To_Boolean(p_called_by_form) THEN
509 APP_EXCEPTION.Raise_Exception;
510 ELSE
511 x_msg_data := FND_MESSAGE.Get;
512 END IF;
513
514 WHEN Row_Missing_Error THEN
515 ROLLBACK TO SAVEPOINT Delete_Row;
516 x_return_status := 'E';
517 x_oracle_error := APP_EXCEPTION.Get_Code;
518 FND_MESSAGE.SET_NAME('GR',
519 'GR_RECORD_NOT_FOUND');
520 FND_MESSAGE.SET_TOKEN('CODE',
521 p_phrase_group_code || ' ' || p_phrase_code,
522 FALSE);
523 IF FND_API.To_Boolean(p_called_by_form) THEN
524 APP_EXCEPTION.Raise_Exception;
525 ELSE
526 x_msg_data := FND_MESSAGE.Get;
527 END IF;
528
529 WHEN OTHERS THEN
530 ROLLBACK TO SAVEPOINT Delete_Row;
531 x_return_status := 'U';
532 x_oracle_error := APP_EXCEPTION.Get_Code;
533 l_msg_data := APP_EXCEPTION.Get_Text;
534 l_msg_data := APP_EXCEPTION.Get_Text;
535 FND_MESSAGE.SET_NAME('GR',
536 'GR_UNEXPECTED_ERROR');
537 FND_MESSAGE.SET_TOKEN('TEXT',
538 l_msg_data,
539 FALSE);
540 IF FND_API.To_Boolean(p_called_by_form) THEN
541 APP_EXCEPTION.Raise_Exception;
542 ELSE
543 x_msg_data := FND_MESSAGE.Get;
544 END IF;
545
546 END Delete_Row;
547
548 PROCEDURE Delete_Rows
549 (p_commit IN VARCHAR2,
550 p_called_by_form IN VARCHAR2,
551 p_phrase_group_code IN VARCHAR2,
552 x_return_status OUT NOCOPY VARCHAR2,
553 x_oracle_error OUT NOCOPY NUMBER,
557 /* Alpha Variables */
554 x_msg_data OUT NOCOPY VARCHAR2)
555 IS
556
558
559 L_RETURN_STATUS VARCHAR2(1) := 'S';
560 L_MSG_DATA VARCHAR2(2000);
561 L_MSG_TOKEN VARCHAR2(100);
562
563 /* Number Variables */
564
565 L_ORACLE_ERROR NUMBER;
566
567 /* Define the cursors */
568
569 BEGIN
570
571 /* Initialization Routine */
572
573 SAVEPOINT Delete_Rows;
574 x_return_status := 'S';
575 x_oracle_error := 0;
576 x_msg_data := NULL;
577 l_msg_token := p_phrase_group_code;
578
579 DELETE FROM gr_phrase_group_assoc
580 WHERE phrase_group_code = p_phrase_group_code;
581
582 IF FND_API.To_Boolean(p_commit) THEN
583 COMMIT WORK;
584 END IF;
585
586 EXCEPTION
587
588 WHEN OTHERS THEN
589 ROLLBACK TO SAVEPOINT Delete_Rows;
590 x_return_status := 'U';
591 x_oracle_error := APP_EXCEPTION.Get_Code;
592 l_msg_data := APP_EXCEPTION.Get_Text;
593 FND_MESSAGE.SET_NAME('GR',
594 'GR_UNEXPECTED_ERROR');
595 FND_MESSAGE.SET_TOKEN('TEXT',
596 l_msg_token,
597 FALSE);
598 IF FND_API.To_Boolean(p_called_by_form) THEN
599 APP_EXCEPTION.Raise_Exception;
600 ELSE
601 x_msg_data := FND_MESSAGE.Get;
602 END IF;
603
604 END Delete_Rows;
605
606 PROCEDURE Check_Foreign_Keys
607 (p_phrase_group_code IN VARCHAR2,
608 p_phrase_code IN VARCHAR2,
609 p_language_code IN VARCHAR2,
610 p_sequence_number IN NUMBER,
611 x_return_status OUT NOCOPY VARCHAR2,
612 x_oracle_error OUT NOCOPY NUMBER,
613 x_msg_data OUT NOCOPY VARCHAR2)
614 IS
615
616 /* Alpha Variables */
617
618 L_RETURN_STATUS VARCHAR2(1) := 'S';
619 L_MSG_DATA VARCHAR2(2000);
620 L_KEY_EXISTS VARCHAR2(1);
621 L_ROWID VARCHAR2(18);
622
623
624 /* Number Variables */
625
626 L_ORACLE_ERROR NUMBER;
627
628 /* Define the cursors */
629
630 BEGIN
631
632 /* Initialization Routine */
633
634 SAVEPOINT Check_Foreign_Keys;
635 x_return_status := 'S';
636 x_oracle_error := 0;
637 l_msg_data := NULL;
638 x_msg_data := NULL;
639
640 /* Check the phrase group code */
641
642 l_key_exists := 'T';
643 GR_PHRASE_GROUP_CODES_PKG.Check_Primary_Key
644 (p_phrase_group_code,
645 'F',
646 l_rowid,
647 l_key_exists);
648
649 IF NOT FND_API.To_Boolean(l_key_exists) THEN
650 x_return_status := 'E';
651 FND_MESSAGE.SET_NAME('GR',
652 'GR_RECORD_NOT_FOUND');
653 FND_MESSAGE.SET_TOKEN('CODE',
654 p_phrase_group_code,
655 FALSE);
656 l_msg_data := l_msg_data || FND_MESSAGE.Get || ' ';
657 END IF;
658
659 /* Check the phrase code */
660
661 l_key_exists := 'T';
662 GR_PHRASES_B_PKG.Check_Primary_Key
663 (p_phrase_code,
664 'F',
665 l_rowid,
666 l_key_exists);
667
668 IF NOT FND_API.To_Boolean(l_key_exists) THEN
669 x_return_status := 'E';
670 FND_MESSAGE.SET_NAME('GR',
671 'GR_RECORD_NOT_FOUND');
672 FND_MESSAGE.SET_TOKEN('CODE',
673 p_phrase_code,
674 FALSE);
675 l_msg_data := l_msg_data || FND_MESSAGE.Get || ' ';
676 END IF;
677
678 /* Now manage the error handling */
679
680 IF x_return_status <> 'S' THEN
681 x_msg_data := l_msg_data;
682 END IF;
683
684 EXCEPTION
685
686 WHEN OTHERS THEN
687 ROLLBACK TO SAVEPOINT Check_Foreign_Keys;
688 x_return_status := 'U';
689 x_oracle_error := APP_EXCEPTION.Get_Code;
690 l_msg_data := APP_EXCEPTION.Get_Text;
691 FND_MESSAGE.SET_NAME('GR',
692 'GR_UNEXPECTED_ERROR');
693 FND_MESSAGE.SET_TOKEN('TEXT',
694 l_msg_data,
695 FALSE);
696 x_msg_data := FND_MESSAGE.Get;
697
698 END Check_Foreign_Keys;
699
700 PROCEDURE Check_Integrity
701 (p_called_by_form IN VARCHAR2,
702 p_phrase_group_code IN VARCHAR2,
703 p_phrase_code IN VARCHAR2,
704 p_language_code IN VARCHAR2,
705 p_sequence_number IN NUMBER,
706 x_return_status OUT NOCOPY VARCHAR2,
707 x_oracle_error OUT NOCOPY NUMBER,
708 x_msg_data OUT NOCOPY VARCHAR2)
709 IS
710
711 /* Alpha Variables */
712
713 L_RETURN_STATUS VARCHAR2(1) := 'S';
714 L_MSG_DATA VARCHAR2(2000);
715 L_CODE_BLOCK VARCHAR2(100);
716
717 /* Number Variables */
718
719 L_ORACLE_ERROR NUMBER;
720 L_RECORD_COUNT NUMBER;
721
722 /* Define the Cursors */
723
724 BEGIN
725
726 /* Initialization Routine */
727
728 SAVEPOINT Check_Integrity;
729 x_return_status := 'S';
730 x_oracle_error := 0;
731 x_msg_data := NULL;
732 l_msg_data := NULL;
733
734 /* No integrity checking needed */
735
736
737 /* Now sort out the error messaging */
738
739 IF l_return_status <> 'S' THEN
740 x_return_status := l_return_status;
741 x_msg_data := l_msg_data;
742 FND_MESSAGE.SET_NAME('GR',
743 'GR_UNEXPECTED_ERROR');
744 FND_MESSAGE.SET_TOKEN('TEXT',
745 l_msg_data,
746 FALSE);
747 IF FND_API.To_Boolean(p_called_by_form) THEN
748 APP_EXCEPTION.Raise_Exception;
749 ELSE
750 x_msg_data := FND_MESSAGE.Get;
751 END IF;
752 END IF;
753
754 EXCEPTION
755
756 WHEN OTHERS THEN
757 ROLLBACK TO SAVEPOINT Check_Integrity;
758 x_return_status := 'U';
759 x_oracle_error := APP_EXCEPTION.Get_Code;
760 l_msg_data := APP_EXCEPTION.Get_Text;
761 FND_MESSAGE.SET_NAME('GR',
762 'GR_UNEXPECTED_ERROR');
763 FND_MESSAGE.SET_TOKEN('TEXT',
764 l_msg_data,
765 FALSE);
766 IF FND_API.To_Boolean(p_called_by_form) THEN
767 APP_EXCEPTION.Raise_Exception;
768 ELSE
769 x_msg_data := FND_MESSAGE.Get;
770 END IF;
771
772 END Check_Integrity;
773
774 PROCEDURE Check_Primary_Key
775 /* p_phrase_group_code is the phrase group code to check.
776 ** p_phrase_code is the phrase code to check.
777 ** p_called_by_form is 'T' if called by a form or 'F' if not.
778 ** x_rowid is the row id of the record if found.
779 ** x_key_exists is 'T' is the record is found, 'F' if not.
780 */
781 (p_phrase_group_code IN VARCHAR2,
782 p_phrase_code IN VARCHAR2,
783 p_called_by_form IN VARCHAR2,
784 x_rowid OUT NOCOPY VARCHAR2,
785 x_key_exists OUT NOCOPY VARCHAR2)
786 IS
787 /* Alphanumeric variables */
788
789 L_MSG_DATA VARCHAR2(80);
790
791 /* Declare any variables and the cursor */
792
793
794 CURSOR c_get_group_assoc_rowid
795 IS
796 SELECT pga.rowid
797 FROM gr_phrase_group_assoc pga
798 WHERE pga.phrase_group_code = p_phrase_group_code
799 AND pga.phrase_code = p_phrase_code;
800 AssocRecord c_get_group_assoc_rowid%ROWTYPE;
801
802 BEGIN
803
804 x_key_exists := 'F';
805 OPEN c_get_group_assoc_rowid;
806 FETCH c_get_group_assoc_rowid INTO AssocRecord;
807 IF c_get_group_assoc_rowid%FOUND THEN
808 x_key_exists := 'T';
809 x_rowid := AssocRecord.rowid;
810 ELSE
811 x_key_exists := 'F';
812 END IF;
813 CLOSE c_get_group_assoc_rowid;
814
815 EXCEPTION
816
817 WHEN Others THEN
818 l_msg_data := APP_EXCEPTION.Get_Text;
819 FND_MESSAGE.SET_NAME('GR',
820 'GR_UNEXPECTED_ERROR');
821 FND_MESSAGE.SET_TOKEN('TEXT',
822 l_msg_data,
823 FALSE);
824 IF FND_API.To_Boolean(p_called_by_form) THEN
825 APP_EXCEPTION.Raise_Exception;
826 END IF;
827
828 END Check_Primary_Key;
829
830 END GR_PHRASE_GROUP_ASSOC_PKG;