DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_TOXIC_ROUTES_B_PKG

Source


1 PACKAGE BODY GR_TOXIC_ROUTES_B_PKG AS
2 /*$Header: GRHITRB.pls 115.7 2002/10/28 21:31:15 gkelly ship $*/
3 PROCEDURE Insert_Row
4 	   			 (p_commit IN VARCHAR2,
5 				  p_called_by_form IN VARCHAR2,
6 				  p_toxic_route_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_route_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_route_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_routes_b
71   	     (toxic_route_code,
72 	      created_by,
73 	      creation_date,
74 	      last_updated_by,
75 	      last_update_date,
76 	      last_update_login)
77           VALUES
78 	     (p_toxic_route_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_route_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_route_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_route_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_route_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 
199 BEGIN
200 
201 /*       Initialization Routine */
202 
203    SAVEPOINT Update_Row;
204    x_return_status := 'S';
205    x_oracle_error := 0;
206    x_msg_data := NULL;
207 
208 /*	  Now call the check foreign key procedure */
209 
210    Check_Foreign_Keys
211 	   (p_toxic_route_code,
212 		l_return_status,
213 		l_oracle_error,
214 		l_msg_data);
215 
216    IF l_return_status <> 'S' THEN
217       RAISE Foreign_Key_Error;
218    ELSE
219       UPDATE	gr_toxic_routes_b
220 	  SET		toxic_route_code		= p_toxic_route_code,
221 				created_by				= p_created_by,
222 				creation_date			= p_creation_date,
223 				last_updated_by			= p_last_updated_by,
224 				last_update_date		= p_last_update_date,
225 				last_update_login		= p_last_update_login
226 	  WHERE		rowid = p_rowid;
227 
228       IF SQL%NOTFOUND THEN
229 	     RAISE Row_Missing_Error;
230 	  END IF;
231    END IF;
232 
233 /* 	Check if do the commit */
234 
235    IF FND_API.To_Boolean(p_commit) THEN
236       COMMIT WORK;
237    END IF;
238 
239 EXCEPTION
240 
241    WHEN Foreign_Key_Error THEN
242       ROLLBACK TO SAVEPOINT Update_Row;
243       x_return_status := l_return_status;
244       x_oracle_error := l_oracle_error;
245       FND_MESSAGE.SET_NAME('GR',
246                            'GR_FOREIGN_KEY_ERROR');
247       FND_MESSAGE.SET_TOKEN('TEXT',
248     		     		    l_msg_data,
249             			    FALSE);
250       IF FND_API.To_Boolean(p_called_by_form) THEN
251 	     APP_EXCEPTION.Raise_Exception;
252 	  ELSE
253 	     x_msg_data := FND_MESSAGE.Get;
254 	  END IF;
255 
256    WHEN Row_Missing_Error THEN
257       ROLLBACK TO SAVEPOINT Update_Row;
258       x_return_status := 'E';
259       x_oracle_error := APP_EXCEPTION.Get_Code;
260       FND_MESSAGE.SET_NAME('GR',
261                            'GR_NO_RECORD_INSERTED');
262       FND_MESSAGE.SET_TOKEN('CODE',
263          		    		p_toxic_route_code,
264             		    	FALSE);
265       IF FND_API.To_Boolean(p_called_by_form) THEN
266 	     APP_EXCEPTION.Raise_Exception;
267 	  ELSE
268 	     x_msg_data := FND_MESSAGE.Get;
269 	  END IF;
270 
271    WHEN OTHERS THEN
272       ROLLBACK TO SAVEPOINT Update_Row;
273       x_return_status := 'U';
274       x_oracle_error := APP_EXCEPTION.Get_Code;
275       l_msg_data := APP_EXCEPTION.Get_Text;
276 	  FND_MESSAGE.SET_NAME('GR',
277 	                       'GR_UNEXPECTED_ERROR');
278 	  FND_MESSAGE.SET_TOKEN('TEXT',
279 	                        l_msg_data,
280 	                        FALSE);
281       IF FND_API.To_Boolean(p_called_by_form) THEN
282 	     APP_EXCEPTION.Raise_Exception;
283 	  ELSE
284 	     x_msg_data := FND_MESSAGE.Get;
285 	  END IF;
286 
287 END Update_Row;
288 
289 PROCEDURE Lock_Row
290 	   			 (p_commit IN VARCHAR2,
291 				  p_called_by_form IN VARCHAR2,
292 				  p_rowid IN VARCHAR2,
293 				  p_toxic_route_code IN VARCHAR2,
294 				  p_created_by IN NUMBER,
295 				  p_creation_date IN DATE,
296 				  p_last_updated_by IN NUMBER,
297 				  p_last_update_date IN DATE,
298 				  p_last_update_login IN NUMBER,
299 				  x_return_status OUT NOCOPY  VARCHAR2,
300 				  x_oracle_error OUT NOCOPY  NUMBER,
301 				  x_msg_data OUT NOCOPY  VARCHAR2)
302  IS
303 
304 /*  Alpha Variables */
305 
306 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
307 L_MSG_DATA		  VARCHAR2(2000);
308 
309 /*  Number Variables */
310 
311 L_ORACLE_ERROR	  NUMBER;
312 
313 /*   Exceptions */
314 
315 NO_DATA_FOUND_ERROR 		EXCEPTION;
316 RECORD_CHANGED_ERROR	 	EXCEPTION;
317 
318 /*   Define the cursors */
319 
320 CURSOR c_lock_toxic_routes
321  IS
322    SELECT	last_update_date
323    FROM		gr_toxic_routes_b
324    WHERE	rowid = p_rowid
325    FOR UPDATE NOWAIT;
326 LockRouteRcd	  c_lock_toxic_routes%ROWTYPE;
327 BEGIN
328 
329 /*      Initialization Routine */
330 
331    SAVEPOINT Lock_Row;
332    x_return_status := 'S';
333    x_oracle_error := 0;
334    x_msg_data := NULL;
335 
336 /*	   Now lock the record */
337 
338    OPEN c_lock_toxic_routes;
339    FETCH c_lock_toxic_routes INTO LockRouteRcd;
340    IF c_lock_toxic_routes%NOTFOUND THEN
341 	  CLOSE c_lock_toxic_routes;
342 	  RAISE No_Data_Found_Error;
343    END IF;
344    CLOSE c_lock_toxic_routes;
345 
346    IF LockRouteRcd.last_update_date <> p_last_update_date THEN
347      RAISE RECORD_CHANGED_ERROR;
348    END IF;
349 
350    IF FND_API.To_Boolean(p_commit) THEN
351       COMMIT WORK;
352    END IF;
353 
354 EXCEPTION
355 
356    WHEN No_Data_Found_Error THEN
357       ROLLBACK TO SAVEPOINT Lock_Row;
358 	  x_return_status := 'E';
359 	  FND_MESSAGE.SET_NAME('GR',
360 	                       'GR_RECORD_NOT_FOUND');
361 	  FND_MESSAGE.SET_TOKEN('CODE',
362 	                        p_toxic_route_code,
363 							FALSE);
364       IF FND_API.To_Boolean(p_called_by_form) THEN
365 	     APP_EXCEPTION.Raise_Exception;
366 	  ELSE
367 	     x_msg_data := FND_MESSAGE.Get;
368 	  END IF;
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_route_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_route_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_routes_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_toxic_route_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;
498 	  l_msg_data := APP_EXCEPTION.Get_Text;
499 	  l_msg_data := APP_EXCEPTION.Get_Text;
500 	  FND_MESSAGE.SET_NAME('GR',
501 	                       'GR_UNEXPECTED_ERROR');
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_toxic_route_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_toxic_route_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_toxic
582  IS
583    SELECT	COUNT(*)
584    FROM     gr_item_toxic
585    WHERE	toxic_route_code = p_toxic_route_code;
586 ToxicRecord			c_get_item_toxic%ROWTYPE;
587 
588 BEGIN
589 
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 
616 EXCEPTION
617 
618    WHEN INTEGRITY_ERROR THEN
619       x_return_status := 'E';
620       FND_MESSAGE.SET_NAME('GR',
621                            'GR_INTEGRITY_HEADER');
622       FND_MESSAGE.SET_TOKEN('CODE',
623 	                    p_toxic_route_code,
624 	                    FALSE);
625       FND_MESSAGE.SET_TOKEN('TABLES',
626 	                    l_msg_data,
627 	                    FALSE);
628       IF FND_API.To_Boolean(p_called_by_form) THEN
629          APP_EXCEPTION.Raise_Exception;
630       ELSE
631         x_msg_data := FND_MESSAGE.Get;
632       END IF;
633    WHEN OTHERS THEN
634       ROLLBACK TO SAVEPOINT Check_Integrity;
635       x_return_status := 'U';
636       x_oracle_error := APP_EXCEPTION.Get_Code;
637       l_msg_data := APP_EXCEPTION.Get_Text;
638       FND_MESSAGE.SET_NAME('GR',
639                           'GR_UNEXPECTED_ERROR');
640       FND_MESSAGE.SET_TOKEN('TEXT',
641                             l_msg_data,
642                             FALSE);
643       IF FND_API.To_Boolean(p_called_by_form) THEN
644         APP_EXCEPTION.Raise_Exception;
645       ELSE
646         x_msg_data := FND_MESSAGE.Get;
647       END IF;
648 END Check_Integrity;
649 
650 PROCEDURE Check_Primary_Key
651 			 (p_toxic_route_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_route_rowid
661  IS
662    SELECT tr.rowid
663    FROM	  gr_toxic_routes_b tr
664    WHERE  tr.toxic_route_code = p_toxic_route_code;
665 ToxicRouteRecord			   c_get_toxic_route_rowid%ROWTYPE;
666 
667 BEGIN
668 
669    x_key_exists := 'F';
670    OPEN c_get_toxic_route_rowid;
671    FETCH c_get_toxic_route_rowid INTO ToxicRouteRecord;
672    IF c_get_toxic_route_rowid%FOUND THEN
673       x_key_exists := 'T';
674       x_rowid := ToxicRouteRecord.rowid;
675    ELSE
676       x_key_exists := 'F';
677    END IF;
678    CLOSE c_get_toxic_route_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_ROUTES_B_PKG;