DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_PHRASE_TYPES_PKG

Source


1 PACKAGE BODY GR_PHRASE_TYPES_PKG AS
2 /*$Header: GRHIPTB.pls 115.5 2002/10/28 20:23:01 methomas ship $*/
3 PROCEDURE Insert_Row
4 	   			 (p_commit IN VARCHAR2,
5 				  p_called_by_form IN VARCHAR2,
6 				  p_phrase_type_code IN VARCHAR2,
7 				  p_phrase_type_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_type_code,
51 			      p_phrase_type_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_type_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_types
72    		  	     (phrase_type_code,
73    		  	      phrase_type_description,
74 				  created_by,
75 				  creation_date,
76 				  last_updated_by,
77 				  last_update_date,
78 				  last_update_login)
79           VALUES
80 		         (p_phrase_type_code,
81 				  p_phrase_type_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_type_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_type_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_type_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_type_code IN VARCHAR2,
178 				  p_phrase_type_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_type_code,
216 			      p_phrase_type_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_types
225 	  SET	 phrase_type_code	 			 = p_phrase_type_code,
226 	         phrase_type_description 	 	 = p_phrase_type_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_type_code,
269             			    FALSE);
270       IF FND_API.To_Boolean(p_called_by_form) THEN
271          APP_EXCEPTION.Raise_Exception;
272 	  ELSE
273 	     x_msg_data := FND_MESSAGE.Get;
274       END IF;
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_type_code IN VARCHAR2,
299 				  p_phrase_type_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 ROW_ALREADY_LOCKED_ERROR 	EXCEPTION;
323 PRAGMA EXCEPTION_INIT(ROW_ALREADY_LOCKED_ERROR,-54);
324 
325 /*   Define the cursors */
326 
327 CURSOR c_lock_phrase_types
328  IS
329    SELECT	*
330    FROM		gr_phrase_types
331    WHERE	rowid = p_rowid
332    FOR UPDATE NOWAIT;
333 LockTypeRcd	  c_lock_phrase_types%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_types;
346    FETCH c_lock_phrase_types INTO LockTypeRcd;
347    IF c_lock_phrase_types%NOTFOUND THEN
348 	  CLOSE c_lock_phrase_types;
349 	  RAISE No_Data_Found_Error;
350    END IF;
351    CLOSE c_lock_phrase_types;
352 
353    IF FND_API.To_Boolean(p_commit) THEN
354       COMMIT WORK;
355    END IF;
356 
357 EXCEPTION
358 
359    WHEN No_Data_Found_Error THEN
360       ROLLBACK TO SAVEPOINT Lock_Row;
361 	  x_return_status := 'E';
362 	  FND_MESSAGE.SET_NAME('GR',
363 	                       'GR_RECORD_NOT_FOUND');
364 	  FND_MESSAGE.SET_TOKEN('CODE',
365 	                        p_phrase_type_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 
376 	  x_oracle_error := APP_EXCEPTION.Get_Code;
373    WHEN Row_Already_Locked_Error THEN
374       ROLLBACK TO SAVEPOINT Lock_Row;
375 	  x_return_status := 'E';
377 	  FND_MESSAGE.SET_NAME('GR',
378 	                       'GR_ROW_IS_LOCKED');
379       IF FND_API.To_Boolean(p_called_by_form) THEN
380          APP_EXCEPTION.Raise_Exception;
381 	  ELSE
382 	     x_msg_data := FND_MESSAGE.Get;
383       END IF;
384 
385    WHEN OTHERS THEN
386       ROLLBACK TO SAVEPOINT Lock_Row;
387 	  x_return_status := 'U';
388 	  x_oracle_error := APP_EXCEPTION.Get_Code;
389 	  l_msg_data := APP_EXCEPTION.Get_Text;
390 	  FND_MESSAGE.SET_NAME('GR',
391 	                       'GR_UNEXPECTED_ERROR');
392 	  FND_MESSAGE.SET_TOKEN('TEXT',
393 	                        l_msg_data,
394 	                        FALSE);
395       IF FND_API.To_Boolean(p_called_by_form) THEN
396          APP_EXCEPTION.Raise_Exception;
397 	  ELSE
398 	     x_msg_data := FND_MESSAGE.Get;
399       END IF;
400 
401 END Lock_Row;
402 
403 PROCEDURE Delete_Row
404 	   			 (p_commit IN VARCHAR2,
405 				  p_called_by_form IN VARCHAR2,
406 				  p_rowid IN VARCHAR2,
407 				  p_phrase_type_code IN VARCHAR2,
408 				  p_phrase_type_description IN VARCHAR2,
409 				  p_created_by IN NUMBER,
410 				  p_creation_date IN DATE,
411 				  p_last_updated_by IN NUMBER,
412 				  p_last_update_date IN DATE,
413 				  p_last_update_login IN NUMBER,
414 				  x_return_status OUT NOCOPY VARCHAR2,
415 				  x_oracle_error OUT NOCOPY NUMBER,
416 				  x_msg_data OUT NOCOPY VARCHAR2)
417    IS
418 
419 /*   Alpha Variables */
420 
421 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
422 L_MSG_DATA		  VARCHAR2(2000);
423 L_CALLED_BY_FORM  VARCHAR2(1);
424 
425 /*   Number Variables */
426 
427 L_ORACLE_ERROR	  NUMBER;
428 
429 /*   Exceptions */
430 
431 CHECK_INTEGRITY_ERROR EXCEPTION;
432 ROW_MISSING_ERROR	  EXCEPTION;
433 PRAGMA EXCEPTION_INIT(Row_Missing_Error,100);
434 
435 BEGIN
436 
437 /*   Initialization Routine */
438 
439    SAVEPOINT Delete_Row;
440    x_return_status := 'S';
441    l_called_by_form := 'F';
442    x_oracle_error := 0;
443    x_msg_data := NULL;
444 
445 /*  Now call the check integrity procedure */
446 
447    Check_Integrity
448 			     (l_called_by_form,
449 			      p_phrase_type_code,
450 			      p_phrase_type_description,
451 				  l_return_status,
452 				  l_oracle_error,
453 				  l_msg_data);
454 
455    IF l_return_status <> 'S' THEN
456       RAISE Check_Integrity_Error;
457    END IF;
458 
459    DELETE FROM gr_phrase_types
460    WHERE  	   rowid = p_rowid;
461 
462 /*   Check the commit flag and if set, then commit the work. */
463 
464    IF FND_API.TO_Boolean(p_commit) THEN
465       COMMIT WORK;
466    END IF;
467 
468 EXCEPTION
469 
470    WHEN Check_Integrity_Error THEN
471       ROLLBACK TO SAVEPOINT Delete_Row;
472 	  x_return_status := l_return_status;
473 	  x_oracle_error := l_oracle_error;
474       IF FND_API.To_Boolean(p_called_by_form) THEN
475          APP_EXCEPTION.Raise_Exception;
476 	  ELSE
477 	     x_msg_data := FND_MESSAGE.Get;
478       END IF;
479 
483 	  x_oracle_error := APP_EXCEPTION.Get_Code;
480    WHEN Row_Missing_Error THEN
481       ROLLBACK TO SAVEPOINT Delete_Row;
482 	  x_return_status := 'E';
484       FND_MESSAGE.SET_NAME('GR',
485                            'GR_RECORD_NOT_FOUND');
486       FND_MESSAGE.SET_TOKEN('CODE',
487          		            p_phrase_type_code,
488             			    FALSE);
489       IF FND_API.To_Boolean(p_called_by_form) THEN
490          APP_EXCEPTION.Raise_Exception;
491 	  ELSE
492 	     x_msg_data := FND_MESSAGE.Get;
493       END IF;
494 
495    WHEN OTHERS THEN
496       ROLLBACK TO SAVEPOINT Delete_Row;
497 	  x_return_status := 'U';
498 	  x_oracle_error := APP_EXCEPTION.Get_Code;
499 	  l_msg_data := APP_EXCEPTION.Get_Text;
500 	  l_msg_data := APP_EXCEPTION.Get_Text;
501 	  FND_MESSAGE.SET_NAME('GR',
502 	                       'GR_UNEXPECTED_ERROR');
503 	  FND_MESSAGE.SET_TOKEN('TEXT',
504 	                        l_msg_data,
505 	                        FALSE);
506       IF FND_API.To_Boolean(p_called_by_form) THEN
507          APP_EXCEPTION.Raise_Exception;
508 	  ELSE
509 	     x_msg_data := FND_MESSAGE.Get;
510       END IF;
511 
512 END Delete_Row;
513 
514 PROCEDURE Check_Foreign_Keys
515 	   			 (p_phrase_type_code IN VARCHAR2,
516 	   			  p_phrase_type_description IN VARCHAR2,
517 				  x_return_status OUT NOCOPY VARCHAR2,
518 				  x_oracle_error OUT NOCOPY NUMBER,
519 				  x_msg_data OUT NOCOPY VARCHAR2)
520    IS
521 
522 /*   Alpha Variables */
523 
524 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
525 L_MSG_DATA		  VARCHAR2(2000);
526 L_KEY_EXISTS	  VARCHAR2(1);
527 
528 /*   Number Variables */
529 
530 L_ORACLE_ERROR	  NUMBER;
531 L_ROWID			  NUMBER;
532 
533 /*   Define the cursors */
534 
535 BEGIN
536 
537 /*   Initialization Routine */
538 
539    SAVEPOINT Check_Foreign_Keys;
540    x_return_status := 'S';
541    x_oracle_error := 0;
542    l_msg_data := NULL;
543    x_msg_data := NULL;
544 
545 /*   No foreign key checking needed. */
546 
547    IF x_return_status <> 'S' THEN
548       x_msg_data := l_msg_data;
549    END IF;
550 
551 EXCEPTION
552 
553    WHEN OTHERS THEN
554       ROLLBACK TO SAVEPOINT Check_Foreign_Keys;
555 	  x_return_status := 'U';
556 	  x_oracle_error := APP_EXCEPTION.Get_Code;
557 	  l_msg_data := APP_EXCEPTION.Get_Text;
558 	  FND_MESSAGE.SET_NAME('GR',
559 	                       'GR_UNEXPECTED_ERROR');
560 	  FND_MESSAGE.SET_TOKEN('TEXT',
561 	                        l_msg_data,
562 	                        FALSE);
563 	  x_msg_data := FND_MESSAGE.Get;
564 
565 END Check_Foreign_Keys;
566 
567 PROCEDURE Check_Integrity
568 	   			 (p_called_by_form IN VARCHAR2,
569 	   			  p_phrase_type_code IN VARCHAR2,
570 	   			  p_phrase_type_description IN VARCHAR2,
571 				  x_return_status OUT NOCOPY VARCHAR2,
572 				  x_oracle_error OUT NOCOPY NUMBER,
573 				  x_msg_data OUT NOCOPY VARCHAR2)
574    IS
575 
576 /*   Alpha Variables */
577 
578 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
579 L_MSG_DATA		  VARCHAR2(2000);
580 L_CODE_BLOCK	  VARCHAR2(100);
581 
582 /*   Number Variables */
583 
584 L_ORACLE_ERROR	  NUMBER;
585 L_RECORD_COUNT	  NUMBER;
586 
587 /*  Exceptions  */
588 INTEGRITY_ERROR		EXCEPTION;
589 /*	 Define the Cursors */
590 /*   Phrase Concentrations Table */
591 
592 CURSOR c_get_phrase_concs
593  IS
594    SELECT	COUNT(*)
595    FROM		gr_phrase_concs
596    WHERE	phrase_type_code = p_phrase_type_code;
597 
598 BEGIN
599 
600 /*     Initialization Routine */
601 
602    SAVEPOINT Check_Integrity;
603    x_return_status := 'S';
604    x_oracle_error := 0;
605    x_msg_data := NULL;
606    l_msg_data := NULL;
607 
608 /*   Phrase Concentrations table */
609 
610    l_record_count := 0;
611    l_code_block := 'c_get_phrase_concs';
612    OPEN c_get_phrase_concs;
613    FETCH c_get_phrase_concs INTO l_record_count;
614    IF l_record_count <> 0 THEN
615       l_return_status := 'E';
616 	  l_msg_data := l_msg_data || 'gr_phrase_concs, ';
617    END IF;
618    CLOSE c_get_phrase_concs;
619 
620 /*	 Now sort out the error messaging */
621 
622    IF l_return_status <> 'S' THEN
623      RAISE INTEGRITY_ERROR;
624    END IF;
625 
626 EXCEPTION
627 
628    WHEN INTEGRITY_ERROR THEN
629       x_return_status := 'E';
630       FND_MESSAGE.SET_NAME('GR',
631                            'GR_INTEGRITY_HEADER');
632       FND_MESSAGE.SET_TOKEN('CODE',
633 	                    p_phrase_type_code,
634 	                    FALSE);
635       FND_MESSAGE.SET_TOKEN('TABLES',
636 	                    SUBSTR(l_msg_data,1,LENGTH(l_msg_data)-1),
637 	                    FALSE);
638       IF FND_API.To_Boolean(p_called_by_form) THEN
639          APP_EXCEPTION.Raise_Exception;
640       ELSE
641         x_msg_data := FND_MESSAGE.Get;
642       END IF;
643    WHEN OTHERS THEN
644       ROLLBACK TO SAVEPOINT Check_Integrity;
645       x_return_status := 'U';
646       x_oracle_error := APP_EXCEPTION.Get_Code;
647       l_msg_data := APP_EXCEPTION.Get_Text;
648       FND_MESSAGE.SET_NAME('GR',
652                             FALSE);
649                           'GR_UNEXPECTED_ERROR');
650       FND_MESSAGE.SET_TOKEN('TEXT',
651                             l_msg_data,
653       IF FND_API.To_Boolean(p_called_by_form) THEN
654         APP_EXCEPTION.Raise_Exception;
655       ELSE
656         x_msg_data := FND_MESSAGE.Get;
657       END IF;
658 
659 END Check_Integrity;
660 
661 PROCEDURE Check_Primary_Key
662 /*		  p_phrase_type_code is the phrase_type code to check.
663 **		  p_called_by_form is 'T' if called by a form or 'F' if not.
664 **		  x_rowid is the row id of the record if found.
665 **		  x_key_exists is 'T' is the record is found, 'F' if not.
666 */
667 		  		 	(p_phrase_type_code IN VARCHAR2,
668 					 p_called_by_form IN VARCHAR2,
669 					 x_rowid OUT NOCOPY VARCHAR2,
670 					 x_key_exists OUT NOCOPY VARCHAR2)
671   IS
672 /*	Alphanumeric variables	 */
673 
674 L_MSG_DATA VARCHAR2(80);
675 
676 /*		Declare any variables and the cursor */
677 
678 
679 CURSOR c_get_phrase_type_rowid
680  IS
681    SELECT rc.rowid
682    FROM	  gr_phrase_types rc
683    WHERE  rc.phrase_type_code = p_phrase_type_code;
684 TypeRecord			   c_get_phrase_type_rowid%ROWTYPE;
685 
686 BEGIN
687 
688    x_key_exists := 'F';
689    OPEN c_get_phrase_type_rowid;
690    FETCH c_get_phrase_type_rowid INTO TypeRecord;
691    IF c_get_phrase_type_rowid%FOUND THEN
692       x_key_exists := 'T';
693 	  x_rowid := TypeRecord.rowid;
694    ELSE
695       x_key_exists := 'F';
696    END IF;
697    CLOSE c_get_phrase_type_rowid;
698 
699 EXCEPTION
700 
701 	WHEN Others THEN
702 	  l_msg_data := APP_EXCEPTION.Get_Text;
703 	  FND_MESSAGE.SET_NAME('GR',
704 	                       'GR_UNEXPECTED_ERROR');
705 	  FND_MESSAGE.SET_TOKEN('TEXT',
706 	                        l_msg_data,
707 	                        FALSE);
708       IF FND_API.To_Boolean(p_called_by_form) THEN
709 	     APP_EXCEPTION.Raise_Exception;
710 	  END IF;
711 
712 END Check_Primary_Key;
713 
714 END GR_PHRASE_TYPES_PKG;