DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_EXPOSURE_TYPES_B_PKG

Source


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