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