DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_ITEM_EXPOSURE_PKG

Source


1 PACKAGE BODY GR_ITEM_EXPOSURE_PKG AS
2 /*$Header: GRHIIEB.pls 115.5 2002/10/25 20:43:35 methomas ship $*/
3 PROCEDURE Insert_Row
4 	   			 (p_commit IN VARCHAR2,
5 				  p_called_by_form IN VARCHAR2,
6 				  p_item_code IN VARCHAR2,
7 				  p_label_code IN VARCHAR2,
8 				  p_exposure_authority_code IN VARCHAR2,
9 				  p_exposure_type_code IN VARCHAR2,
10 				  p_exposure_uom IN VARCHAR2,
11 				  p_exposure_dose IN NUMBER,
12 				  p_exposure_time IN VARCHAR2,
13 				  p_exposure_note IN VARCHAR2,
14 				  p_attribute_category IN VARCHAR2,
15 				  p_attribute1 IN VARCHAR2,
16 				  p_attribute2 IN VARCHAR2,
17 				  p_attribute3 IN VARCHAR2,
18 				  p_attribute4 IN VARCHAR2,
19 				  p_attribute5 IN VARCHAR2,
20 				  p_attribute6 IN VARCHAR2,
21 				  p_attribute7 IN VARCHAR2,
22 				  p_attribute8 IN VARCHAR2,
23 				  p_attribute9 IN VARCHAR2,
24 				  p_attribute10 IN VARCHAR2,
25 				  p_attribute11 IN VARCHAR2,
26 				  p_attribute12 IN VARCHAR2,
27 				  p_attribute13 IN VARCHAR2,
28 				  p_attribute14 IN VARCHAR2,
29 				  p_attribute15 IN VARCHAR2,
30 				  p_attribute16 IN VARCHAR2,
31 				  p_attribute17 IN VARCHAR2,
32 				  p_attribute18 IN VARCHAR2,
33 				  p_attribute19 IN VARCHAR2,
34 				  p_attribute20 IN VARCHAR2,
35 				  p_attribute21 IN VARCHAR2,
36 				  p_attribute22 IN VARCHAR2,
37 				  p_attribute23 IN VARCHAR2,
38 				  p_attribute24 IN VARCHAR2,
39 				  p_attribute25 IN VARCHAR2,
40 				  p_attribute26 IN VARCHAR2,
41 				  p_attribute27 IN VARCHAR2,
42 				  p_attribute28 IN VARCHAR2,
43 				  p_attribute29 IN VARCHAR2,
44 				  p_attribute30 IN VARCHAR2,
45 				  p_created_by IN NUMBER,
46 				  p_creation_date IN DATE,
47 				  p_last_updated_by IN NUMBER,
48 				  p_last_update_date IN DATE,
49 				  p_last_update_login IN NUMBER,
50 				  x_rowid OUT NOCOPY VARCHAR2,
51 				  x_return_status OUT NOCOPY VARCHAR2,
52 				  x_oracle_error OUT NOCOPY NUMBER,
53 				  x_msg_data OUT NOCOPY VARCHAR2)
54 	IS
55 /*   Alpha Variables */
56 
57 L_RETURN_STATUS VARCHAR2(1) := 'S';
58 L_KEY_EXISTS 	VARCHAR2(1);
59 L_MSG_DATA 		VARCHAR2(2000);
60 L_ROWID 		VARCHAR2(18);
61 L_MSG_TOKEN 	VARCHAR2(100);
62 
63 /*   Number Variables */
64 
65 L_ORACLE_ERROR	  NUMBER;
66 /*   Exceptions */
67 
68 FOREIGN_KEY_ERROR EXCEPTION;
69 ITEM_EXISTS_ERROR EXCEPTION;
70 ROW_MISSING_ERROR EXCEPTION;
71 
72 /* Declare cursors */
73 
74 
75 BEGIN
76 
77 /*     Initialization Routine */
78 
79    SAVEPOINT Insert_Row;
80    x_return_status := 'S';
81    x_oracle_error := 0;
82    x_msg_data := NULL;
83    l_msg_token := p_item_code || ' ' || p_label_code || ' ';
84    l_msg_token := l_msg_token || p_exposure_authority_code || ' ';
85    l_msg_token := l_msg_token || p_exposure_type_code;
86 
87 /*	  Now call the check foreign key procedure */
88 
89    Check_Foreign_Keys
90 			     (p_item_code,
91 				  p_label_code,
92 				  p_exposure_authority_code,
93 				  p_exposure_type_code,
94 				  p_exposure_uom,
95 				  p_exposure_dose,
96 				  p_exposure_time,
97 				  p_exposure_note,
98 				  p_attribute_category,
99 				  p_attribute1,
100 				  p_attribute2,
101 				  p_attribute3,
102 				  p_attribute4,
103 				  p_attribute5,
104 				  p_attribute6,
105 				  p_attribute7,
106 				  p_attribute8,
107 				  p_attribute9,
108 				  p_attribute10,
109 				  p_attribute11,
110 				  p_attribute12,
111 				  p_attribute13,
112 				  p_attribute14,
113 				  p_attribute15,
114 				  p_attribute16,
115 				  p_attribute17,
116 				  p_attribute18,
117 				  p_attribute19,
118 				  p_attribute20,
119 				  p_attribute21,
120 				  p_attribute22,
121 				  p_attribute23,
122 				  p_attribute24,
123 				  p_attribute25,
124 				  p_attribute26,
125 				  p_attribute27,
126 				  p_attribute28,
127 				  p_attribute29,
128 				  p_attribute30,
129 				  l_return_status,
130 				  l_oracle_error,
131 				  l_msg_data);
132    IF l_return_status <> 'S' THEN
133       RAISE Foreign_Key_Error;
134    END IF;
135 
136 /* 	   Now check the primary key doesn't already exist */
137 
138    Check_Primary_Key
139    	   	   		 (p_item_code,
140    	   	   		  p_label_code,
141 				  p_exposure_authority_code,
142 				  p_exposure_type_code,
143 				  'F',
144 				  l_rowid,
145 				  l_key_exists);
146 
147    IF FND_API.To_Boolean(l_key_exists) THEN
148    	  RAISE Item_Exists_Error;
149    END IF;
150 
151    INSERT INTO gr_item_exposure
152    		  	     (item_code,
153 				  label_code,
154 				  exposure_authority_code,
155 				  exposure_type_code,
156 				  exposure_uom,
157 				  exposure_dose,
158 				  exposure_time,
159 				  exposure_note,
160 				  attribute_category,
161 				  attribute1,
162 				  attribute2,
163 				  attribute3,
164 				  attribute4,
165 				  attribute5,
166 				  attribute6,
167 				  attribute7,
168 				  attribute8,
169 				  attribute9,
170 				  attribute10,
171 				  attribute11,
172 				  attribute12,
173 				  attribute13,
174 				  attribute14,
175 				  attribute15,
176 				  attribute16,
177 				  attribute17,
178 				  attribute18,
179 				  attribute19,
180 				  attribute20,
181 				  attribute21,
182 				  attribute22,
183 				  attribute23,
184 				  attribute24,
185 				  attribute25,
186 				  attribute26,
187 				  attribute27,
188 				  attribute28,
189 				  attribute29,
190 				  attribute30,
191 				  created_by,
192 				  creation_date,
193 				  last_updated_by,
194 				  last_update_date,
195 				  last_update_login)
196           VALUES
197 		         (p_item_code,
198 				  p_label_code,
199 				  p_exposure_authority_code,
200 				  p_exposure_type_code,
201 				  p_exposure_uom,
202 				  p_exposure_dose,
203 				  p_exposure_time,
204 				  p_exposure_note,
205 				  p_attribute_category,
206 				  p_attribute1,
207 				  p_attribute2,
208 				  p_attribute3,
209 				  p_attribute4,
210 				  p_attribute5,
211 				  p_attribute6,
212 				  p_attribute7,
213 				  p_attribute8,
214 				  p_attribute9,
215 				  p_attribute10,
216 				  p_attribute11,
217 				  p_attribute12,
218 				  p_attribute13,
219 				  p_attribute14,
220 				  p_attribute15,
221 				  p_attribute16,
222 				  p_attribute17,
223 				  p_attribute18,
224 				  p_attribute19,
225 				  p_attribute20,
226 				  p_attribute21,
227 				  p_attribute22,
228 				  p_attribute23,
229 				  p_attribute24,
230 				  p_attribute25,
231 				  p_attribute26,
232 				  p_attribute27,
233 				  p_attribute28,
234 				  p_attribute29,
235 				  p_attribute30,
236 				  p_created_by,
237 				  p_creation_date,
238 				  p_last_updated_by,
239 				  p_last_update_date,
240 				  p_last_update_login);
241 
242 /*   Now get the row id of the inserted record */
243 
244    Check_Primary_Key
245    	   	   		 (p_item_code,
246    	   	   		  p_label_code,
247 				  p_exposure_authority_code,
248 				  p_exposure_type_code,
249 				  'F',
250 				  l_rowid,
251 				  l_key_exists);
252 
253    IF FND_API.To_Boolean(l_key_exists) THEN
254    	  x_rowid := l_rowid;
255    ELSE
256    	  RAISE Row_Missing_Error;
257    END IF;
258 
259 /*   Check the commit flag and if set, then commit the work. */
260 
261    IF FND_API.To_Boolean(p_commit) THEN
262       COMMIT WORK;
263    END IF;
264 
265 EXCEPTION
266 
267    WHEN Foreign_Key_Error THEN
268       ROLLBACK TO SAVEPOINT Insert_Row;
269 	  x_return_status := l_return_status;
270 	  x_oracle_error := l_oracle_error;
271       FND_MESSAGE.SET_NAME('GR',
272                            'GR_FOREIGN_KEY_ERROR');
273       FND_MESSAGE.SET_TOKEN('TEXT',
274          		            l_msg_data,
275             			    FALSE);
276       IF FND_API.To_Boolean(p_called_by_form) THEN
277 	     APP_EXCEPTION.Raise_Exception;
278 	  ELSE
279          x_msg_data := FND_MESSAGE.Get;
280 	  END IF;
281 
282    WHEN Item_Exists_Error THEN
283       ROLLBACK TO SAVEPOINT Insert_Row;
284 	  x_return_status := 'E';
285 	  x_oracle_error := APP_EXCEPTION.Get_Code;
286       FND_MESSAGE.SET_NAME('GR',
287                            'GR_RECORD_EXISTS');
288       FND_MESSAGE.SET_TOKEN('CODE',
289          		            l_msg_token,
290             			    FALSE);
291       IF FND_API.To_Boolean(p_called_by_form) THEN
292 	     APP_EXCEPTION.Raise_Exception;
293 	  ELSE
294          x_msg_data := FND_MESSAGE.Get;
295 	  END IF;
296 
297    WHEN Row_Missing_Error THEN
298       ROLLBACK TO SAVEPOINT Insert_Row;
299 	  x_return_status := 'E';
300 	  x_oracle_error := APP_EXCEPTION.Get_Code;
301       FND_MESSAGE.SET_NAME('GR',
302                            'GR_NO_RECORD_INSERTED');
303       FND_MESSAGE.SET_TOKEN('CODE',
304          		            l_msg_token,
305             			    FALSE);
306       IF FND_API.To_Boolean(p_called_by_form) THEN
307 	     APP_EXCEPTION.Raise_Exception;
308 	  ELSE
309          x_msg_data := FND_MESSAGE.Get;
310 	  END IF;
311 
312    WHEN OTHERS THEN
313       ROLLBACK TO SAVEPOINT Insert_Row;
314 	  x_return_status := 'U';
315 	  x_oracle_error := APP_EXCEPTION.Get_Code;
316 	  l_msg_data := APP_EXCEPTION.Get_Text;
317 	  FND_MESSAGE.SET_NAME('GR',
318 	                       'GR_UNEXPECTED_ERROR');
319 	  FND_MESSAGE.SET_TOKEN('TEXT',
320 	                        l_msg_token,
321 	                        FALSE);
322       IF FND_API.To_Boolean(p_called_by_form) THEN
323 	     APP_EXCEPTION.Raise_Exception;
324 	  ELSE
325          x_msg_data := FND_MESSAGE.Get;
326 	  END IF;
327 
328 END Insert_Row;
329 
330 PROCEDURE Update_Row
331 	   			 (p_commit IN VARCHAR2,
332 				  p_called_by_form IN VARCHAR2,
333 				  p_rowid IN VARCHAR2,
334 				  p_item_code IN VARCHAR2,
335 				  p_label_code IN VARCHAR2,
336 				  p_exposure_authority_code IN VARCHAR2,
337 				  p_exposure_type_code IN VARCHAR2,
338 				  p_exposure_uom IN VARCHAR2,
339 				  p_exposure_dose IN NUMBER,
340 				  p_exposure_time IN VARCHAR2,
341 				  p_exposure_note IN VARCHAR2,
342 				  p_attribute_category IN VARCHAR2,
343 				  p_attribute1 IN VARCHAR2,
344 				  p_attribute2 IN VARCHAR2,
345 				  p_attribute3 IN VARCHAR2,
346 				  p_attribute4 IN VARCHAR2,
347 				  p_attribute5 IN VARCHAR2,
348 				  p_attribute6 IN VARCHAR2,
349 				  p_attribute7 IN VARCHAR2,
350 				  p_attribute8 IN VARCHAR2,
351 				  p_attribute9 IN VARCHAR2,
352 				  p_attribute10 IN VARCHAR2,
353 				  p_attribute11 IN VARCHAR2,
354 				  p_attribute12 IN VARCHAR2,
355 				  p_attribute13 IN VARCHAR2,
356 				  p_attribute14 IN VARCHAR2,
357 				  p_attribute15 IN VARCHAR2,
358 				  p_attribute16 IN VARCHAR2,
359 				  p_attribute17 IN VARCHAR2,
360 				  p_attribute18 IN VARCHAR2,
361 				  p_attribute19 IN VARCHAR2,
362 				  p_attribute20 IN VARCHAR2,
363 				  p_attribute21 IN VARCHAR2,
364 				  p_attribute22 IN VARCHAR2,
365 				  p_attribute23 IN VARCHAR2,
366 				  p_attribute24 IN VARCHAR2,
367 				  p_attribute25 IN VARCHAR2,
368 				  p_attribute26 IN VARCHAR2,
369 				  p_attribute27 IN VARCHAR2,
370 				  p_attribute28 IN VARCHAR2,
371 				  p_attribute29 IN VARCHAR2,
372 				  p_attribute30 IN VARCHAR2,
373 				  p_created_by IN NUMBER,
374 				  p_creation_date IN DATE,
375 				  p_last_updated_by IN NUMBER,
376 				  p_last_update_date IN DATE,
377 				  p_last_update_login IN NUMBER,
378 				  x_return_status OUT NOCOPY VARCHAR2,
379 				  x_oracle_error OUT NOCOPY NUMBER,
380 				  x_msg_data OUT NOCOPY VARCHAR2)
381    IS
382 
383 /*   Alpha Variables */
384 
385 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
386 L_MSG_DATA		  VARCHAR2(2000);
387 L_MSG_TOKEN		  VARCHAR2(100);
388 
389 /*   Number Variables */
390 
391 L_ORACLE_ERROR	  NUMBER;
392 
393 /*   Exceptions */
394 
395 FOREIGN_KEY_ERROR EXCEPTION;
396 ROW_MISSING_ERROR EXCEPTION;
397 
398 BEGIN
399 
400 /*       Initialization Routine */
401 
402    SAVEPOINT Update_Row;
403    x_return_status := 'S';
404    x_oracle_error := 0;
405    x_msg_data := NULL;
406    l_msg_token := p_item_code || ' ' || p_label_code || ' ';
407    l_msg_token := l_msg_token || p_exposure_authority_code || ' ';
408    l_msg_token := l_msg_token || p_exposure_type_code;
409 
410 /*	  Now call the check foreign key procedure */
411 
412    Check_Foreign_Keys
413 			     (p_item_code,
414 				  p_label_code,
415 				  p_exposure_authority_code,
416 				  p_exposure_type_code,
417 				  p_exposure_uom,
418 				  p_exposure_dose,
419 				  p_exposure_time,
420 				  p_exposure_note,
421 				  p_attribute_category,
422 				  p_attribute1,
423 				  p_attribute2,
424 				  p_attribute3,
425 				  p_attribute4,
426 				  p_attribute5,
427 				  p_attribute6,
428 				  p_attribute7,
429 				  p_attribute8,
430 				  p_attribute9,
431 				  p_attribute10,
432 				  p_attribute11,
433 				  p_attribute12,
434 				  p_attribute13,
435 				  p_attribute14,
436 				  p_attribute15,
437 				  p_attribute16,
438 				  p_attribute17,
439 				  p_attribute18,
440 				  p_attribute19,
441 				  p_attribute20,
442 				  p_attribute21,
443 				  p_attribute22,
444 				  p_attribute23,
445 				  p_attribute24,
446 				  p_attribute25,
447 				  p_attribute26,
448 				  p_attribute27,
449 				  p_attribute28,
450 				  p_attribute29,
451 				  p_attribute30,
452 				  l_return_status,
453 				  l_oracle_error,
454 				  l_msg_data);
455 
456    IF l_return_status <> 'S' THEN
457       RAISE Foreign_Key_Error;
458    ELSE
459       UPDATE gr_item_exposure
460 	  SET	 item_code						 = p_item_code,
461 			 label_code						 = p_label_code,
462 			 exposure_authority_code		 = p_exposure_authority_code,
463 			 exposure_type_code				 = p_exposure_type_code,
464 			 exposure_uom					 = p_exposure_uom,
465 			 exposure_dose					 = p_exposure_dose,
466 			 exposure_time					 = p_exposure_time,
467 			 exposure_note					 = p_exposure_note,
468 			 attribute_category				 = p_attribute_category,
469 			 attribute1						 = p_attribute1,
470 			 attribute2					 	 = p_attribute2,
471 			 attribute3					  	 = p_attribute3,
472 			 attribute4			  			 = p_attribute4,
473 			 attribute5			  			 = p_attribute5,
474 			 attribute6						 = p_attribute6,
475 			 attribute7						 = p_attribute7,
476 			 attribute8		  				 = p_attribute8,
477 			 attribute9						 = p_attribute9,
478 			 attribute10			  		 = p_attribute10,
479 			 attribute11	  				 = p_attribute11,
480 			 attribute12	  				 = p_attribute12,
481 			 attribute13					 = p_attribute13,
482 			 attribute14					 = p_attribute14,
483 			 attribute15	  				 = p_attribute15,
484 			 attribute16	  				 = p_attribute16,
485 			 attribute17				  	 = p_attribute17,
486 			 attribute18	  				 = p_attribute18,
487 			 attribute19					 = p_attribute19,
488 			 attribute20					 = p_attribute20,
489 			 attribute21					 = p_attribute21,
490 			 attribute22					 = p_attribute22,
491 			 attribute23					 = p_attribute23,
492 			 attribute24					 = p_attribute24,
493 			 attribute25					 = p_attribute25,
494 			 attribute26	  				 = p_attribute26,
495 			 attribute27					 = p_attribute27,
496 			 attribute28	  				 = p_attribute28,
497 			 attribute29					 = p_attribute29,
498 			 attribute30					 = p_attribute30,
499 			 created_by						 = p_created_by,
500 			 creation_date					 = p_creation_date,
501 			 last_updated_by				 = p_last_updated_by,
502 			 last_update_date				 = p_last_update_date,
503 			 last_update_login				 = p_last_update_login
504 	  WHERE  rowid = p_rowid;
505 	  IF SQL%NOTFOUND THEN
506 	     RAISE Row_Missing_Error;
507 	  END IF;
508    END IF;
509 
510 /*   Check the commit flag and if set, then commit the work. */
511 
512    IF FND_API.To_Boolean(p_commit) THEN
513       COMMIT WORK;
514    END IF;
515 
516 EXCEPTION
517 
518    WHEN Foreign_Key_Error THEN
519       ROLLBACK TO SAVEPOINT Update_Row;
520 	  x_return_status := l_return_status;
521 	  x_oracle_error := l_oracle_error;
522       FND_MESSAGE.SET_NAME('GR',
523                            'GR_FOREIGN_KEY_ERROR');
524       FND_MESSAGE.SET_TOKEN('TEXT',
525          		            l_msg_data,
526             			    FALSE);
527       IF FND_API.To_Boolean(p_called_by_form) THEN
528 	     APP_EXCEPTION.Raise_Exception;
529 	  ELSE
530          x_msg_data := FND_MESSAGE.Get;
531 	  END IF;
532 
533    WHEN Row_Missing_Error THEN
534       ROLLBACK TO SAVEPOINT Update_Row;
535 	  x_return_status := 'E';
536 	  x_oracle_error := APP_EXCEPTION.Get_Code;
537       FND_MESSAGE.SET_NAME('GR',
538                            'GR_NO_RECORD_INSERTED');
539       FND_MESSAGE.SET_TOKEN('CODE',
540          		            l_msg_token,
541             			    FALSE);
542       IF FND_API.To_Boolean(p_called_by_form) THEN
543 	     APP_EXCEPTION.Raise_Exception;
544 	  ELSE
545          x_msg_data := FND_MESSAGE.Get;
546 	  END IF;
547 
548    WHEN OTHERS THEN
549       ROLLBACK TO SAVEPOINT Update_Row;
550 	  x_return_status := 'U';
551 	  x_oracle_error := APP_EXCEPTION.Get_Code;
552 	  l_msg_data := APP_EXCEPTION.Get_Text;
553 	  FND_MESSAGE.SET_NAME('GR',
554 	                       'GR_UNEXPECTED_ERROR');
555 	  FND_MESSAGE.SET_TOKEN('TEXT',
556 	                        l_msg_token,
557 	                        FALSE);
558       IF FND_API.To_Boolean(p_called_by_form) THEN
559 	     APP_EXCEPTION.Raise_Exception;
560 	  ELSE
561          x_msg_data := FND_MESSAGE.Get;
562 	  END IF;
563 
564 END Update_Row;
565 
566 PROCEDURE Lock_Row
567 	   			 (p_commit IN VARCHAR2,
568 				  p_called_by_form IN VARCHAR2,
569 				  p_rowid IN VARCHAR2,
570 				  p_item_code IN VARCHAR2,
571 				  p_label_code IN VARCHAR2,
572 				  p_exposure_authority_code IN VARCHAR2,
573 				  p_exposure_type_code IN VARCHAR2,
574 				  p_exposure_uom IN VARCHAR2,
575 				  p_exposure_dose IN NUMBER,
576 				  p_exposure_time IN VARCHAR2,
577 				  p_exposure_note IN VARCHAR2,
578 				  p_attribute_category IN VARCHAR2,
579 				  p_attribute1 IN VARCHAR2,
580 				  p_attribute2 IN VARCHAR2,
581 				  p_attribute3 IN VARCHAR2,
582 				  p_attribute4 IN VARCHAR2,
583 				  p_attribute5 IN VARCHAR2,
584 				  p_attribute6 IN VARCHAR2,
585 				  p_attribute7 IN VARCHAR2,
586 				  p_attribute8 IN VARCHAR2,
587 				  p_attribute9 IN VARCHAR2,
588 				  p_attribute10 IN VARCHAR2,
589 				  p_attribute11 IN VARCHAR2,
590 				  p_attribute12 IN VARCHAR2,
591 				  p_attribute13 IN VARCHAR2,
592 				  p_attribute14 IN VARCHAR2,
593 				  p_attribute15 IN VARCHAR2,
594 				  p_attribute16 IN VARCHAR2,
595 				  p_attribute17 IN VARCHAR2,
596 				  p_attribute18 IN VARCHAR2,
597 				  p_attribute19 IN VARCHAR2,
598 				  p_attribute20 IN VARCHAR2,
599 				  p_attribute21 IN VARCHAR2,
600 				  p_attribute22 IN VARCHAR2,
601 				  p_attribute23 IN VARCHAR2,
602 				  p_attribute24 IN VARCHAR2,
603 				  p_attribute25 IN VARCHAR2,
604 				  p_attribute26 IN VARCHAR2,
605 				  p_attribute27 IN VARCHAR2,
606 				  p_attribute28 IN VARCHAR2,
607 				  p_attribute29 IN VARCHAR2,
608 				  p_attribute30 IN VARCHAR2,
609 				  p_created_by IN NUMBER,
610 				  p_creation_date IN DATE,
611 				  p_last_updated_by IN NUMBER,
612 				  p_last_update_date IN DATE,
613 				  p_last_update_login IN NUMBER,
614 				  x_return_status OUT NOCOPY VARCHAR2,
615 				  x_oracle_error OUT NOCOPY NUMBER,
616 				  x_msg_data OUT NOCOPY VARCHAR2)
617    IS
618 
619 /*  Alpha Variables */
620 
621 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
622 L_MSG_DATA		  VARCHAR2(2000);
623 L_MSG_TOKEN		  VARCHAR2(100);
624 
625 /*  Number Variables */
626 
627 L_ORACLE_ERROR	  NUMBER;
628 
629 /*   Exceptions */
630 
631 NO_DATA_FOUND_ERROR 		EXCEPTION;
632 ROW_ALREADY_LOCKED_ERROR 	EXCEPTION;
633 PRAGMA EXCEPTION_INIT(ROW_ALREADY_LOCKED_ERROR,-54);
634 
635 /*   Define the cursors */
636 
637 CURSOR c_lock_item_exposure
638  IS
639    SELECT	*
640    FROM		gr_item_exposure
641    WHERE	rowid = p_rowid
642    FOR UPDATE NOWAIT;
643 LockItemExpRcd	  c_lock_item_exposure%ROWTYPE;
644 BEGIN
645 
646 /*      Initialization Routine */
647 
648    SAVEPOINT Lock_Row;
649    x_return_status := 'S';
650    x_oracle_error := 0;
651    x_msg_data := NULL;
652    l_msg_token := p_item_code || ' ' || p_label_code || ' ';
653    l_msg_token := l_msg_token || p_exposure_authority_code || ' ';
654    l_msg_token := l_msg_token || p_exposure_type_code;
655 
656 /*	   Now lock the record */
657 
658    OPEN c_lock_item_exposure;
659    FETCH c_lock_item_exposure INTO LockItemExpRcd;
660    IF c_lock_item_exposure%NOTFOUND THEN
661 	  CLOSE c_lock_item_exposure;
662 	  RAISE No_Data_Found_Error;
663    END IF;
664    CLOSE c_lock_item_exposure;
665 
666    IF FND_API.To_Boolean(p_commit) THEN
667       COMMIT WORK;
668    END IF;
669 
670 EXCEPTION
671 
672    WHEN No_Data_Found_Error THEN
673       ROLLBACK TO SAVEPOINT Lock_Row;
674 	  x_return_status := 'E';
675 	  FND_MESSAGE.SET_NAME('GR',
676 	                       'GR_RECORD_NOT_FOUND');
677 	  FND_MESSAGE.SET_TOKEN('CODE',
678 	                        l_msg_token,
679 							FALSE);
680       IF FND_API.To_Boolean(p_called_by_form) THEN
681 	     APP_EXCEPTION.Raise_Exception;
682 	  ELSE
683          x_msg_data := FND_MESSAGE.Get;
684 	  END IF;
685 
686    WHEN Row_Already_Locked_Error THEN
687       ROLLBACK TO SAVEPOINT Lock_Row;
688 	  x_return_status := 'E';
689 	  x_oracle_error := APP_EXCEPTION.Get_Code;
690 	  FND_MESSAGE.SET_NAME('GR',
691 	                       'GR_ROW_IS_LOCKED');
692       IF FND_API.To_Boolean(p_called_by_form) THEN
693 	     APP_EXCEPTION.Raise_Exception;
694 	  ELSE
695          x_msg_data := FND_MESSAGE.Get;
696 	  END IF;
697 
698    WHEN OTHERS THEN
699       ROLLBACK TO SAVEPOINT Lock_Row;
700 	  x_return_status := 'U';
701 	  x_oracle_error := APP_EXCEPTION.Get_Code;
702 	  l_msg_data := APP_EXCEPTION.Get_Text;
703 	  FND_MESSAGE.SET_NAME('GR',
704 	                       'GR_UNEXPECTED_ERROR');
705 	  FND_MESSAGE.SET_TOKEN('TEXT',
706 	                        l_msg_token,
707 	                        FALSE);
708       IF FND_API.To_Boolean(p_called_by_form) THEN
709 	     APP_EXCEPTION.Raise_Exception;
710 	  ELSE
711          x_msg_data := FND_MESSAGE.Get;
712 	  END IF;
713 
714 END Lock_Row;
715 
716 PROCEDURE Delete_Row
717 	   			 (p_commit IN VARCHAR2,
718 				  p_called_by_form IN VARCHAR2,
719 				  p_rowid IN VARCHAR2,
720 				  p_item_code IN VARCHAR2,
721 				  p_label_code IN VARCHAR2,
722 				  p_exposure_authority_code IN VARCHAR2,
723 				  p_exposure_type_code IN VARCHAR2,
724 				  p_exposure_uom IN VARCHAR2,
725 				  p_exposure_dose IN NUMBER,
726 				  p_exposure_time IN VARCHAR2,
727 				  p_exposure_note IN VARCHAR2,
728 				  p_attribute_category IN VARCHAR2,
729 				  p_attribute1 IN VARCHAR2,
730 				  p_attribute2 IN VARCHAR2,
731 				  p_attribute3 IN VARCHAR2,
732 				  p_attribute4 IN VARCHAR2,
733 				  p_attribute5 IN VARCHAR2,
734 				  p_attribute6 IN VARCHAR2,
735 				  p_attribute7 IN VARCHAR2,
736 				  p_attribute8 IN VARCHAR2,
737 				  p_attribute9 IN VARCHAR2,
738 				  p_attribute10 IN VARCHAR2,
739 				  p_attribute11 IN VARCHAR2,
740 				  p_attribute12 IN VARCHAR2,
741 				  p_attribute13 IN VARCHAR2,
742 				  p_attribute14 IN VARCHAR2,
743 				  p_attribute15 IN VARCHAR2,
744 				  p_attribute16 IN VARCHAR2,
745 				  p_attribute17 IN VARCHAR2,
746 				  p_attribute18 IN VARCHAR2,
747 				  p_attribute19 IN VARCHAR2,
748 				  p_attribute20 IN VARCHAR2,
749 				  p_attribute21 IN VARCHAR2,
750 				  p_attribute22 IN VARCHAR2,
751 				  p_attribute23 IN VARCHAR2,
752 				  p_attribute24 IN VARCHAR2,
753 				  p_attribute25 IN VARCHAR2,
754 				  p_attribute26 IN VARCHAR2,
755 				  p_attribute27 IN VARCHAR2,
756 				  p_attribute28 IN VARCHAR2,
757 				  p_attribute29 IN VARCHAR2,
758 				  p_attribute30 IN VARCHAR2,
759 				  p_created_by IN NUMBER,
760 				  p_creation_date IN DATE,
761 				  p_last_updated_by IN NUMBER,
762 				  p_last_update_date IN DATE,
763 				  p_last_update_login IN NUMBER,
764 				  x_return_status OUT NOCOPY VARCHAR2,
765 				  x_oracle_error OUT NOCOPY NUMBER,
766 				  x_msg_data OUT NOCOPY VARCHAR2)
767    IS
768 
769 /*   Alpha Variables */
770 
771 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
772 L_MSG_DATA		  VARCHAR2(2000);
773 L_MSG_TOKEN		  VARCHAR2(100);
774 L_CALLED_BY_FORM  VARCHAR2(1);
775 
776 /*   Number Variables */
777 
778 L_ORACLE_ERROR	  NUMBER;
779 
780 /*   Exceptions */
781 
782 CHECK_INTEGRITY_ERROR EXCEPTION;
783 ROW_MISSING_ERROR	  EXCEPTION;
784 PRAGMA EXCEPTION_INIT(Row_Missing_Error,100);
785 
786 BEGIN
787 
788 /*   Initialization Routine */
789 
790    SAVEPOINT Delete_Row;
791    x_return_status := 'S';
792    l_called_by_form := 'F';
793    x_oracle_error := 0;
794    x_msg_data := NULL;
795    l_msg_token := p_item_code || ' ' || p_label_code || ' ';
796    l_msg_token := l_msg_token || p_exposure_authority_code || ' ';
797    l_msg_token := l_msg_token || p_exposure_type_code;
798 
799 /*  Now call the check integrity procedure */
800 
801    Check_Integrity
802 			     (l_called_by_form,
803 			      p_item_code,
804 				  p_label_code,
805 				  p_exposure_authority_code,
806 				  p_exposure_type_code,
807 				  p_exposure_uom,
808 				  p_exposure_dose,
809 				  p_exposure_time,
810 				  p_exposure_note,
811 				  p_attribute_category,
812 				  p_attribute1,
813 				  p_attribute2,
814 				  p_attribute3,
815 				  p_attribute4,
816 				  p_attribute5,
817 				  p_attribute6,
818 				  p_attribute7,
819 				  p_attribute8,
820 				  p_attribute9,
821 				  p_attribute10,
822 				  p_attribute11,
823 				  p_attribute12,
824 				  p_attribute13,
825 				  p_attribute14,
826 				  p_attribute15,
827 				  p_attribute16,
828 				  p_attribute17,
829 				  p_attribute18,
830 				  p_attribute19,
831 				  p_attribute20,
832 				  p_attribute21,
833 				  p_attribute22,
834 				  p_attribute23,
835 				  p_attribute24,
836 				  p_attribute25,
837 				  p_attribute26,
838 				  p_attribute27,
839 				  p_attribute28,
840 				  p_attribute29,
841 				  p_attribute30,
842 				  l_return_status,
843 				  l_oracle_error,
844 				  l_msg_data);
845 
846    IF l_return_status <> 'S' THEN
847       RAISE Check_Integrity_Error;
848    END IF;
849 
850    DELETE FROM gr_item_exposure
851    WHERE  	   rowid = p_rowid;
852 
853 /*   Check the commit flag and if set, then commit the work. */
854 
855    IF FND_API.TO_Boolean(p_commit) THEN
856       COMMIT WORK;
857    END IF;
858 
859 EXCEPTION
860 
861    WHEN Check_Integrity_Error THEN
862       ROLLBACK TO SAVEPOINT Delete_Row;
863 	  x_return_status := l_return_status;
864 	  x_oracle_error := l_oracle_error;
865       IF FND_API.To_Boolean(p_called_by_form) THEN
866 	     APP_EXCEPTION.Raise_Exception;
867 	  ELSE
868          x_msg_data := FND_MESSAGE.Get;
869 	  END IF;
870 
871    WHEN Row_Missing_Error THEN
872       ROLLBACK TO SAVEPOINT Delete_Row;
873 	  x_return_status := 'E';
874 	  x_oracle_error := APP_EXCEPTION.Get_Code;
875       FND_MESSAGE.SET_NAME('GR',
876                            'GR_RECORD_NOT_FOUND');
877       FND_MESSAGE.SET_TOKEN('CODE',
878          		            l_msg_token,
879             			    FALSE);
880       IF FND_API.To_Boolean(p_called_by_form) THEN
881 	     APP_EXCEPTION.Raise_Exception;
882 	  ELSE
883          x_msg_data := FND_MESSAGE.Get;
884 	  END IF;
885 
886    WHEN OTHERS THEN
887       ROLLBACK TO SAVEPOINT Delete_Row;
888 	  x_return_status := 'U';
889 	  x_oracle_error := APP_EXCEPTION.Get_Code;
890 	  l_msg_data := APP_EXCEPTION.Get_Text;
891 	  l_msg_data := APP_EXCEPTION.Get_Text;
892 	  FND_MESSAGE.SET_NAME('GR',
893 	                       'GR_UNEXPECTED_ERROR');
894 	  FND_MESSAGE.SET_TOKEN('TEXT',
895 	                        l_msg_token,
896 	                        FALSE);
897       IF FND_API.To_Boolean(p_called_by_form) THEN
898 	     APP_EXCEPTION.Raise_Exception;
899 	  ELSE
900          x_msg_data := FND_MESSAGE.Get;
901 	  END IF;
902 
903 END Delete_Row;
904 
905 PROCEDURE Delete_Rows
906 	             (p_commit IN VARCHAR2,
907 				  p_called_by_form IN VARCHAR2,
908 				  p_delete_option IN VARCHAR2,
909 				  p_item_code IN VARCHAR2,
910 	              p_label_code IN VARCHAR2,
911 				  p_exposure_authority_code IN VARCHAR2,
912 				  p_exposure_type_code IN VARCHAR2,
913 				  x_return_status OUT NOCOPY VARCHAR2,
914 				  x_oracle_error OUT NOCOPY NUMBER,
915 				  x_msg_data OUT NOCOPY VARCHAR2)
916   IS
917 
918 /*   Alpha Variables */
919 
920 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
921 L_MSG_DATA		  VARCHAR2(2000);
922 L_MSG_TOKEN       VARCHAR2(100);
923 
924 /*   Number Variables */
925 
926 L_ORACLE_ERROR	  NUMBER;
927 
928 /* 	 Define the exceptions */
929 NULL_DELETE_OPTION_ERROR	EXCEPTION;
930 
931 /*   Define the cursors */
932 
933 BEGIN
934 
935 /*   Initialization Routine */
936 
937    SAVEPOINT Delete_Rows;
938    x_return_status := 'S';
939    x_oracle_error := 0;
940    x_msg_data := NULL;
941 
942 /*
943 **		p delete option has one of five values
944 **		'I' - Delete all rows for the specified item.
945 **		'L' - Delete all rows for the specified label.
946 **		'A' - Delete all rows for the specified exposure authority.
947 **		'T' - Delete all rows for the specified exposure type.
948 **		'B' - Delete all rows using the item, label, authority and type
949 **			  combination.
950 */
951    IF p_delete_option = 'I' THEN
952       IF p_item_code IS NULL THEN
953 	     l_msg_token := 'Item Code';
954 	     RAISE Null_Delete_Option_Error;
955 	  ELSE
956 	     l_msg_token := p_item_code;
957 
958          DELETE FROM  gr_item_exposure
959          WHERE		  item_code = p_item_code;
960    	  END IF;
961    ELSIF p_delete_option = 'L' THEN
962       IF p_label_code IS NULL THEN
963 	     l_msg_token := 'Label Code';
964 		 RAISE Null_Delete_Option_Error;
965 	  ELSE
966 	     l_msg_token := p_label_code;
967 
968          DELETE FROM	gr_item_exposure
969          WHERE			label_code = p_label_code;
970       END IF;
971    ELSIF p_delete_option = 'A' THEN
972       IF p_exposure_authority_code IS NULL THEN
973 	     l_msg_token := 'Authority Code';
974 		 RAISE Null_Delete_Option_Error;
975 	  ELSE
976 	     l_msg_token := p_exposure_authority_code;
977 
978 		 DELETE FROM 	gr_item_exposure
979 		 WHERE			exposure_authority_code = p_exposure_authority_code;
980 	  END IF;
981    ELSIF p_delete_option = 'T' THEN
982       IF p_exposure_type_code IS NULL THEN
983 	     l_msg_token := 'Exposure Type Code';
984 		 RAISE Null_Delete_Option_Error;
985 	  ELSE
986 	     l_msg_token := p_exposure_type_code;
987 
988 		 DELETE FROM	gr_item_exposure
989 		 WHERE			exposure_type_code = p_exposure_type_code;
990 	  END IF;
991    ELSIF p_delete_option = 'B' THEN
992       IF p_item_code IS NULL OR
993 	     p_label_code IS NULL OR
994 	     p_exposure_authority_code IS NULL OR
995 	     p_exposure_type_code IS NULL THEN
996 		 l_msg_token := 'Item, Label, Authority or Type Code';
997 		 RAISE Null_Delete_Option_Error;
998 	  ELSE
999 	     l_msg_token := p_item_code ||' ' || p_label_code || ' ';
1000 		 l_msg_token := l_msg_token || p_exposure_authority_code || ' ';
1001 		 l_msg_token := l_msg_token || p_exposure_type_code;
1002 
1003 		 DELETE FROM	gr_item_exposure
1004 		 WHERE			item_code = p_item_code
1005 		 AND			label_code = p_label_code
1006 		 AND			exposure_authority_code = p_exposure_authority_code
1007 		 AND 			exposure_type_code = p_exposure_type_code;
1008 	  END IF;
1009    END IF;
1010 
1011    IF FND_API.To_Boolean(p_commit) THEN
1012       COMMIT WORK;
1013    END IF;
1014 
1015 EXCEPTION
1016 
1017    WHEN Null_Delete_Option_Error THEN
1018 	  x_return_status := 'E';
1019 	  x_oracle_error := APP_EXCEPTION.Get_Code;
1020       FND_MESSAGE.SET_NAME('GR',
1021                            'GR_NULL_VALUE');
1022       FND_MESSAGE.SET_TOKEN('CODE',
1023          		            l_msg_token,
1024             			    FALSE);
1025       IF FND_API.To_Boolean(p_called_by_form) THEN
1026 	     APP_EXCEPTION.Raise_Exception;
1027 	  ELSE
1028          x_msg_data := FND_MESSAGE.Get;
1029 	  END IF;
1030 
1031    WHEN OTHERS THEN
1032       ROLLBACK TO SAVEPOINT Delete_Rows;
1033 	  x_return_status := 'U';
1034 	  x_oracle_error := APP_EXCEPTION.Get_Code;
1035 	  l_msg_data := APP_EXCEPTION.Get_Text;
1036 	  FND_MESSAGE.SET_NAME('GR',
1037 	                       'GR_UNEXPECTED_ERROR');
1038 	  FND_MESSAGE.SET_TOKEN('TEXT',
1039 	                        l_msg_token,
1040 	                        FALSE);
1041       IF FND_API.To_Boolean(p_called_by_form) THEN
1042 	     APP_EXCEPTION.Raise_Exception;
1043 	  ELSE
1044          x_msg_data := FND_MESSAGE.Get;
1045 	  END IF;
1046 
1047 END Delete_Rows;
1048 
1049 PROCEDURE Check_Foreign_Keys
1050 	   			 (p_item_code IN VARCHAR2,
1051 				  p_label_code IN VARCHAR2,
1052 				  p_exposure_authority_code IN VARCHAR2,
1053 				  p_exposure_type_code IN VARCHAR2,
1054 				  p_exposure_uom IN VARCHAR2,
1055 				  p_exposure_dose IN NUMBER,
1056 				  p_exposure_time IN VARCHAR2,
1057 				  p_exposure_note IN VARCHAR2,
1058 				  p_attribute_category IN VARCHAR2,
1059 				  p_attribute1 IN VARCHAR2,
1060 				  p_attribute2 IN VARCHAR2,
1061 				  p_attribute3 IN VARCHAR2,
1062 				  p_attribute4 IN VARCHAR2,
1063 				  p_attribute5 IN VARCHAR2,
1064 				  p_attribute6 IN VARCHAR2,
1065 				  p_attribute7 IN VARCHAR2,
1066 				  p_attribute8 IN VARCHAR2,
1067 				  p_attribute9 IN VARCHAR2,
1068 				  p_attribute10 IN VARCHAR2,
1069 				  p_attribute11 IN VARCHAR2,
1070 				  p_attribute12 IN VARCHAR2,
1071 				  p_attribute13 IN VARCHAR2,
1072 				  p_attribute14 IN VARCHAR2,
1073 				  p_attribute15 IN VARCHAR2,
1074 				  p_attribute16 IN VARCHAR2,
1075 				  p_attribute17 IN VARCHAR2,
1076 				  p_attribute18 IN VARCHAR2,
1077 				  p_attribute19 IN VARCHAR2,
1078 				  p_attribute20 IN VARCHAR2,
1079 				  p_attribute21 IN VARCHAR2,
1080 				  p_attribute22 IN VARCHAR2,
1081 				  p_attribute23 IN VARCHAR2,
1082 				  p_attribute24 IN VARCHAR2,
1083 				  p_attribute25 IN VARCHAR2,
1084 				  p_attribute26 IN VARCHAR2,
1085 				  p_attribute27 IN VARCHAR2,
1086 				  p_attribute28 IN VARCHAR2,
1087 				  p_attribute29 IN VARCHAR2,
1088 				  p_attribute30 IN VARCHAR2,
1089 				  x_return_status OUT NOCOPY VARCHAR2,
1090 				  x_oracle_error OUT NOCOPY NUMBER,
1091 				  x_msg_data OUT NOCOPY VARCHAR2)
1092    IS
1093 
1094 /*   Alpha Variables */
1095 
1096 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
1097 L_MSG_DATA		  VARCHAR2(2000);
1098 L_MSG_TOKEN       VARCHAR2(100);
1099 L_ROWID			  VARCHAR2(18);
1100 L_KEY_EXISTS	  VARCHAR2(1);
1101 
1102 /*   Number Variables */
1103 
1104 L_ORACLE_ERROR	  NUMBER;
1105 
1106 /*	Error Definitions */
1107 
1108 ROW_MISSING_ERROR	EXCEPTION;
1109 
1110 BEGIN
1111 
1112 /*   Initialization Routine */
1113 
1114    l_return_status := 'S';
1115    x_oracle_error := 0;
1116    x_msg_data := NULL;
1117    l_msg_token := NULL;
1118 
1119 /*   Check the item code */
1120 
1121    GR_ITEM_GENERAL_PKG.Check_Primary_Key
1122 					(p_item_code,
1123 					 'F',
1124 					 l_rowid,
1125 					 l_key_exists);
1126 
1127    IF NOT FND_API.To_Boolean(l_key_exists) THEN
1128       l_return_status := 'E';
1129       l_msg_token := l_msg_token || ' ' || p_item_code;
1130    END IF;
1131 
1132 /*	 Check the label code */
1133 
1134    GR_LABELS_B_PKG.Check_Primary_Key
1135 					(p_label_code,
1136 					 'F',
1137 					 l_rowid,
1138 					 l_key_exists);
1139 
1140    IF NOT FND_API.To_Boolean(l_key_exists) THEN
1141       l_return_status := 'E';
1142       l_msg_token := l_msg_token || ' ' || p_label_code;
1143    END IF;
1144 
1145 /*   Check the exposure authority code */
1146 
1147    GR_EXPOSURE_AUTHS_B_PKG.Check_Primary_Key
1148 					(p_exposure_authority_code,
1149 					 'F',
1150 					 l_rowid,
1151 					 l_key_exists);
1152 
1153    IF NOT FND_API.To_Boolean(l_key_exists) THEN
1154       l_return_status := 'E';
1155       l_msg_token := l_msg_token || ' ' || p_exposure_authority_code;
1156    END IF;
1157 
1158 /*   Check the exposure authority code */
1159 
1160    GR_EXPOSURE_TYPES_B_PKG.Check_Primary_Key
1161 					(p_exposure_type_code,
1162 					 'F',
1163 					 l_rowid,
1164 					 l_key_exists);
1165 
1166    IF NOT FND_API.To_Boolean(l_key_exists) THEN
1167       l_return_status := 'E';
1168       l_msg_token := l_msg_token || ' ' || p_exposure_type_code;
1169    END IF;
1170 
1171    IF l_return_status <> 'S' THEN
1172       RAISE Row_Missing_Error;
1173    ELSE
1174       x_return_status := 'S';
1175    END IF;
1176 
1177 EXCEPTION
1178 
1179    WHEN Row_Missing_Error THEN
1180 	  x_return_status := 'E';
1181 	  x_oracle_error := APP_EXCEPTION.Get_Code;
1182       FND_MESSAGE.SET_NAME('GR',
1183                            'GR_RECORD_NOT_FOUND');
1184       FND_MESSAGE.SET_TOKEN('CODE',
1185          		            l_msg_token,
1186             			    FALSE);
1187 	  x_msg_data := FND_MESSAGE.Get;
1188 
1189    WHEN OTHERS THEN
1190 	  x_return_status := 'U';
1191 	  x_oracle_error := APP_EXCEPTION.Get_Code;
1192 	  l_msg_data := APP_EXCEPTION.Get_Text;
1193 	  FND_MESSAGE.SET_NAME('GR',
1194 	                       'GR_UNEXPECTED_ERROR');
1195 	  FND_MESSAGE.SET_TOKEN('TEXT',
1196 	                        l_msg_token,
1197 	                        FALSE);
1198 	  x_msg_data := FND_MESSAGE.Get;
1199 
1200 END Check_Foreign_Keys;
1201 
1202 PROCEDURE Check_Integrity
1203 	   			 (p_called_by_form IN VARCHAR2,
1204 	   			  p_item_code IN VARCHAR2,
1205 				  p_label_code IN VARCHAR2,
1206 				  p_exposure_authority_code IN VARCHAR2,
1207 				  p_exposure_type_code IN VARCHAR2,
1208 				  p_exposure_uom IN VARCHAR2,
1209 				  p_exposure_dose IN NUMBER,
1210 				  p_exposure_time IN VARCHAR2,
1211 				  p_exposure_note IN VARCHAR2,
1212 				  p_attribute_category IN VARCHAR2,
1213 				  p_attribute1 IN VARCHAR2,
1214 				  p_attribute2 IN VARCHAR2,
1215 				  p_attribute3 IN VARCHAR2,
1216 				  p_attribute4 IN VARCHAR2,
1217 				  p_attribute5 IN VARCHAR2,
1218 				  p_attribute6 IN VARCHAR2,
1219 				  p_attribute7 IN VARCHAR2,
1220 				  p_attribute8 IN VARCHAR2,
1221 				  p_attribute9 IN VARCHAR2,
1222 				  p_attribute10 IN VARCHAR2,
1223 				  p_attribute11 IN VARCHAR2,
1224 				  p_attribute12 IN VARCHAR2,
1225 				  p_attribute13 IN VARCHAR2,
1226 				  p_attribute14 IN VARCHAR2,
1227 				  p_attribute15 IN VARCHAR2,
1228 				  p_attribute16 IN VARCHAR2,
1229 				  p_attribute17 IN VARCHAR2,
1230 				  p_attribute18 IN VARCHAR2,
1231 				  p_attribute19 IN VARCHAR2,
1232 				  p_attribute20 IN VARCHAR2,
1233 				  p_attribute21 IN VARCHAR2,
1234 				  p_attribute22 IN VARCHAR2,
1235 				  p_attribute23 IN VARCHAR2,
1236 				  p_attribute24 IN VARCHAR2,
1237 				  p_attribute25 IN VARCHAR2,
1238 				  p_attribute26 IN VARCHAR2,
1239 				  p_attribute27 IN VARCHAR2,
1240 				  p_attribute28 IN VARCHAR2,
1241 				  p_attribute29 IN VARCHAR2,
1242 				  p_attribute30 IN VARCHAR2,
1243 				  x_return_status OUT NOCOPY VARCHAR2,
1244 				  x_oracle_error OUT NOCOPY NUMBER,
1245 				  x_msg_data OUT NOCOPY VARCHAR2)
1246    IS
1247 
1248 /*   Alpha Variables */
1249 
1250 L_RETURN_STATUS	  VARCHAR2(1) := 'S';
1251 L_MSG_DATA		  VARCHAR2(2000);
1252 L_CODE_BLOCK	  VARCHAR2(100);
1253 
1254 /*   Number Variables */
1255 
1256 L_ORACLE_ERROR	  NUMBER;
1257 L_RECORD_COUNT	  NUMBER;
1258 
1259 /*	 Define the Cursors */
1260 
1261 
1262 BEGIN
1263 
1264 /*     Initialization Routine */
1265 
1266    SAVEPOINT Check_Integrity;
1267    x_return_status := 'S';
1268    x_oracle_error := 0;
1269    x_msg_data := NULL;
1270 
1271 /* No integrity checking is needed */
1272 
1273 
1274 EXCEPTION
1275 
1276    WHEN OTHERS THEN
1277       ROLLBACK TO SAVEPOINT Check_Integrity;
1278 	  x_return_status := 'U';
1279 	  x_oracle_error := APP_EXCEPTION.Get_Code;
1280 	  l_msg_data := APP_EXCEPTION.Get_Text;
1281 	  FND_MESSAGE.SET_NAME('GR',
1282 	                       'GR_UNEXPECTED_ERROR');
1283 	  FND_MESSAGE.SET_TOKEN('TEXT',
1284 	                        l_msg_data,
1285 	                        FALSE);
1286       IF FND_API.To_Boolean(p_called_by_form) THEN
1287 	     APP_EXCEPTION.Raise_Exception;
1288 	  ELSE
1289          x_msg_data := FND_MESSAGE.Get;
1290 	  END IF;
1291 
1292 END Check_Integrity;
1293 
1294 PROCEDURE Check_Primary_Key
1295 /*		  p_item_code is the item code
1296 **		  p_label_code is the label code
1297 **		  p_exposure_authority_code is the exposure authority
1298 **		  p_exposure_type_code is the exposure type.
1299 **		  p_called_by_form is 'T' if called by a form or 'F' if not.
1300 **		  x_rowid is the row id of the record if found.
1301 **		  x_key_exists is 'T' is the record is found, 'F' if not.
1302 */
1303 		  		 	(p_item_code IN VARCHAR2,
1304 		  		 	 p_label_code IN VARCHAR2,
1305 					 p_exposure_authority_code IN VARCHAR2,
1306 					 p_exposure_type_code IN VARCHAR2,
1307 					 p_called_by_form IN VARCHAR2,
1308 					 x_rowid OUT NOCOPY VARCHAR2,
1309 					 x_key_exists OUT NOCOPY VARCHAR2)
1310   IS
1311 /*	Alphanumeric variables	 */
1312 
1313 L_MSG_DATA VARCHAR2(100);
1314 
1315 /*		Declare any variables and the cursor */
1316 
1317 
1318 CURSOR c_get_item_exposure_rowid
1319  IS
1320    SELECT ie.rowid
1321    FROM	  gr_item_exposure ie
1322    WHERE  ie.item_code = p_item_code
1323    AND	  ie.label_code = p_label_code
1324    AND	  ie.exposure_authority_code = p_exposure_authority_code
1325    AND	  ie.exposure_type_code = p_exposure_type_code;
1326 ItemExposureRecord			   c_get_item_exposure_rowid%ROWTYPE;
1327 
1328 BEGIN
1329 
1330    l_msg_data := p_item_code || ' ' || p_label_code || ' ';
1331    l_msg_data := l_msg_data || p_exposure_authority_code || ' ';
1332    l_msg_data := l_msg_data || p_exposure_type_code;
1333 
1334    x_key_exists := 'F';
1335    OPEN c_get_item_exposure_rowid;
1336    FETCH c_get_item_exposure_rowid INTO ItemExposureRecord;
1337    IF c_get_item_exposure_rowid%FOUND THEN
1338       x_key_exists := 'T';
1339 	  x_rowid := ItemExposureRecord.rowid;
1340    ELSE
1341       x_key_exists := 'F';
1342    END IF;
1343    CLOSE c_get_item_exposure_rowid;
1344 
1345 EXCEPTION
1346 
1347 	WHEN Others THEN
1348 	  l_msg_data := APP_EXCEPTION.Get_Text;
1349 	  FND_MESSAGE.SET_NAME('GR',
1350 	                       'GR_UNEXPECTED_ERROR');
1351 	  FND_MESSAGE.SET_TOKEN('TEXT',
1352 	                        l_msg_data,
1353 	                        FALSE);
1354       IF FND_API.To_Boolean(p_called_by_form) THEN
1355 	     APP_EXCEPTION.Raise_Exception;
1356 	  END IF;
1357 
1358 END Check_Primary_Key;
1359 
1360 END GR_ITEM_EXPOSURE_PKG;