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