DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_TOXIC_EFFECT_B_PKG

Source


1 PACKAGE BODY GR_TOXIC_EFFECT_B_PKG AS
2 /*$Header: GRHITEB.pls 115.7 2002/10/28 21:17:58 gkelly ship $*/
3 PROCEDURE Insert_Row
4 	   			 (p_commit IN VARCHAR2,
5 				  p_called_by_form IN VARCHAR2,
6 				  p_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effects_b
71   	     (toxic_effect_code,
72 	      created_by,
73 	      creation_date,
74 	      last_updated_by,
75 	      last_update_date,
76 	      last_update_login)
77           VALUES
78 	     (p_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effects_b
219 	  SET		toxic_effect_code		= p_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effect
320  IS
321    SELECT	last_update_date
322    FROM		gr_toxic_effects_b
323    WHERE	rowid = p_rowid
324    FOR UPDATE NOWAIT;
325 LockEffectRcd	  c_lock_toxic_effect%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_toxic_effect;
338    FETCH c_lock_toxic_effect INTO LockEffectRcd;
339    IF c_lock_toxic_effect%NOTFOUND THEN
340 	  CLOSE c_lock_toxic_effect;
341 	  RAISE No_Data_Found_Error;
342    END IF;
343    CLOSE c_lock_toxic_effect;
344 
345    IF LockEffectRcd.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_toxic_effect_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_toxic_effect_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_toxic_effect_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_toxic_effects_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 	  x_msg_data := l_msg_data;
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 
480    WHEN Row_Missing_Error THEN
481       ROLLBACK TO SAVEPOINT Delete_Row;
482 	  x_return_status := 'E';
483 	  x_oracle_error := APP_EXCEPTION.Get_Code;
484       FND_MESSAGE.SET_NAME('GR',
485                            'GR_RECORD_NOT_FOUND');
486       FND_MESSAGE.SET_TOKEN('CODE',
487          		            p_toxic_effect_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,
508 	  ELSE
505 	                        FALSE);
506       IF FND_API.To_Boolean(p_called_by_form) THEN
507 	     APP_EXCEPTION.Raise_Exception;
509 	     x_msg_data := FND_MESSAGE.Get;
510 	  END IF;
511 
512 END Delete_Row;
513 
514 PROCEDURE Check_Foreign_Keys
515 	   			 (p_toxic_effect_code IN VARCHAR2,
516 				  x_return_status OUT NOCOPY  VARCHAR2,
517 				  x_oracle_error OUT NOCOPY  NUMBER,
518 				  x_msg_data OUT NOCOPY  VARCHAR2)
519    IS
520 
521 /*   Alpha Variables */
522 
523 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
524 L_MSG_DATA		  VARCHAR2(2000);
525 L_ROWID			  VARCHAR2(18);
526 L_KEY_EXISTS	  VARCHAR2(1);
527 
528 /*   Number Variables */
529 
530 L_ORACLE_ERROR	  NUMBER;
531 
532 
533 BEGIN
534 
535 /*   Initialization Routine */
536 
537    SAVEPOINT Check_Foreign_Keys;
538    x_return_status := 'S';
539    x_oracle_error := 0;
540    x_msg_data := NULL;
541 
542 /*   No foreign keys need to be checked */
543 
544 EXCEPTION
545 
546    WHEN OTHERS THEN
547       ROLLBACK TO SAVEPOINT Check_Foreign_Keys;
548 	  x_return_status := 'U';
549 	  x_oracle_error := APP_EXCEPTION.Get_Code;
550 	  l_msg_data := APP_EXCEPTION.Get_Text;
551 	  FND_MESSAGE.SET_NAME('GR',
552 	                       'GR_UNEXPECTED_ERROR');
553 	  FND_MESSAGE.SET_TOKEN('TEXT',
554 	                        l_msg_data,
555 	                        FALSE);
556 	  x_msg_data := FND_MESSAGE.Get;
557 
558 END Check_Foreign_Keys;
559 
560 PROCEDURE Check_Integrity
561 	   			 (p_called_by_form IN VARCHAR2,
562 	   			  p_toxic_effect_code IN VARCHAR2,
563 				  x_return_status OUT NOCOPY  VARCHAR2,
564 				  x_oracle_error OUT NOCOPY  NUMBER,
565 				  x_msg_data OUT NOCOPY  VARCHAR2)
566  IS
567 
568 /*   Alpha Variables */
569 
570 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
571 L_MSG_DATA		  VARCHAR2(2000);
572 
573 /*   Number Variables */
574 
575 L_ORACLE_ERROR	  NUMBER;
576 L_RECORD_COUNT	  NUMBER;
577 
578 /*   Exceptions */
579 INTEGRITY_ERROR		EXCEPTION;
580 /*   Define Cursors */
581 
582 CURSOR c_get_item_toxic
583  IS
584    SELECT	COUNT(*)
585    FROM     gr_item_toxic
586    WHERE	toxic_effect_code = p_toxic_effect_code;
587 ToxicRecord			c_get_item_toxic%ROWTYPE;
588 
589 BEGIN
590 
591 /*
592 **   Initialization Routine
593 */
594    SAVEPOINT Check_Integrity;
595    x_return_status := 'S';
596    x_oracle_error := 0;
597    x_msg_data := NULL;
598    l_record_count := 0;
599 
600    OPEN c_get_item_toxic;
601    FETCH c_get_item_toxic INTO l_record_count;
602    CLOSE c_get_item_toxic;
603 
604    IF l_record_count <> 0 THEN
605       l_return_status := 'E';
606 	  l_msg_data := l_msg_data || ' gr_item_toxic';
607    END IF;
608 /*
609 **	 Now sort out the error messaging
610 */
611    IF l_return_status <> 'S' THEN
612      RAISE INTEGRITY_ERROR;
613    END IF;
614 
615 EXCEPTION
616 
617    WHEN INTEGRITY_ERROR THEN
618       x_return_status := 'E';
619       FND_MESSAGE.SET_NAME('GR',
620                            'GR_INTEGRITY_HEADER');
621       FND_MESSAGE.SET_TOKEN('CODE',
622 	                    p_toxic_effect_code,
623 	                    FALSE);
624       FND_MESSAGE.SET_TOKEN('TABLES',
625 	                    l_msg_data,
626 	                    FALSE);
627       IF FND_API.To_Boolean(p_called_by_form) THEN
628          APP_EXCEPTION.Raise_Exception;
629       ELSE
630         x_msg_data := FND_MESSAGE.Get;
631       END IF;
632    WHEN OTHERS THEN
633       ROLLBACK TO SAVEPOINT Check_Integrity;
634       x_return_status := 'U';
635       x_oracle_error := APP_EXCEPTION.Get_Code;
636       l_msg_data := APP_EXCEPTION.Get_Text;
637       FND_MESSAGE.SET_NAME('GR',
638                           'GR_UNEXPECTED_ERROR');
639       FND_MESSAGE.SET_TOKEN('TEXT',
640                             l_msg_data,
641                             FALSE);
642       IF FND_API.To_Boolean(p_called_by_form) THEN
643         APP_EXCEPTION.Raise_Exception;
644       ELSE
645         x_msg_data := FND_MESSAGE.Get;
646       END IF;
647 
648 END Check_Integrity;
649 
650 PROCEDURE Check_Primary_Key
651 			 (p_toxic_effect_code IN VARCHAR2,
652 			  p_called_by_form IN VARCHAR2,
653 			  x_rowid OUT NOCOPY  VARCHAR2,
654 			  x_key_exists OUT NOCOPY  VARCHAR2)
655  IS
656 /*		Declare any variables and the cursor */
657 
658 L_MSG_DATA VARCHAR2(2000);
659 
660 CURSOR c_get_toxic_effect_rowid
661  IS
662    SELECT te.rowid
663    FROM	  gr_toxic_effects_b te
664    WHERE  te.toxic_effect_code = p_toxic_effect_code;
665 ToxicEffectRecord			   c_get_toxic_effect_rowid%ROWTYPE;
666 
667 BEGIN
668 
669    x_key_exists := 'F';
670    OPEN c_get_toxic_effect_rowid;
671    FETCH c_get_toxic_effect_rowid INTO ToxicEffectRecord;
672    IF c_get_toxic_effect_rowid%FOUND THEN
673       x_key_exists := 'T';
674       x_rowid := ToxicEffectRecord.rowid;
675    ELSE
676       x_key_exists := 'F';
677    END IF;
678    CLOSE c_get_toxic_effect_rowid;
679 
680 EXCEPTION
681 
682    WHEN Others THEN
683 	  l_msg_data := APP_EXCEPTION.Get_Text;
684 	  FND_MESSAGE.SET_NAME('GR',
685 	                       'GR_UNEXPECTED_ERROR');
686 	  FND_MESSAGE.SET_TOKEN('TEXT',
687 	                        l_msg_data,
688 	                        FALSE);
689       IF FND_API.To_Boolean(p_called_by_form) THEN
690 	     APP_EXCEPTION.Raise_Exception;
691 	  END IF;
692 
693 END Check_Primary_Key;
694 
695 END GR_TOXIC_EFFECT_B_PKG;