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