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