DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_EIN_NUMBERS_B_PKG

Source


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