DBA Data[Home] [Help]

PACKAGE BODY: APPS.GR_REGION_LANGUAGES_PKG

Source


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