DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_ITEM_GROUPS_B_PKG

Source


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