[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_APPQUAL_CODE_PKG
Source
1 PACKAGE BODY igs_ad_appqual_code_pkg AS
2 /* $Header: IGSAII1B.pls 120.1 2005/10/20 22:27:44 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_ad_appqual_code%ROWTYPE;
6 new_references igs_ad_appqual_code%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2,
11 x_person_id IN NUMBER,
12 x_admission_appl_number IN NUMBER,
13 x_nominated_course_cd IN VARCHAR2,
14 x_sequence_number IN NUMBER,
15 x_qualifying_type_code IN VARCHAR2,
16 x_qualifying_code_id IN NUMBER,
17 x_qualifying_value IN VARCHAR2,
18 x_creation_date IN DATE,
19 x_created_by IN NUMBER,
20 x_last_update_date IN DATE,
21 x_last_updated_by IN NUMBER,
22 x_last_update_login IN NUMBER
23 ) AS
24 /*
25 || Created By : [email protected]
26 || Created On : 05-AUG-2005
27 || Purpose : Initialises the Old and New references for the columns of the table.
28 || Known limitations, enhancements or remarks :
29 || Change History :
30 || Who When What
31 || (reverse chronological order - newest change first)
32 */
33
34 CURSOR cur_old_ref_values IS
35 SELECT *
36 FROM igs_ad_appqual_code
37 WHERE rowid = x_rowid;
38
39 BEGIN
40
41 l_rowid := x_rowid;
42
43 -- Code for setting the Old and New Reference Values.
44 -- Populate Old Values.
45 OPEN cur_old_ref_values;
46 FETCH cur_old_ref_values INTO old_references;
47 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
48 CLOSE cur_old_ref_values;
49 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
50 igs_ge_msg_stack.add;
51 app_exception.raise_exception;
52 RETURN;
53 END IF;
54 CLOSE cur_old_ref_values;
55
56 -- Populate New Values.
57 new_references.person_id := x_person_id;
58 new_references.admission_appl_number := x_admission_appl_number;
59 new_references.nominated_course_cd := x_nominated_course_cd;
60 new_references.sequence_number := x_sequence_number;
61 new_references.qualifying_type_code := x_qualifying_type_code;
62 new_references.qualifying_code_id := x_qualifying_code_id;
63 new_references.qualifying_value := x_qualifying_value;
64
65 IF (p_action = 'UPDATE') THEN
66 new_references.creation_date := old_references.creation_date;
67 new_references.created_by := old_references.created_by;
68 ELSE
69 new_references.creation_date := x_creation_date;
70 new_references.created_by := x_created_by;
71 END IF;
72
73 new_references.last_update_date := x_last_update_date;
74 new_references.last_updated_by := x_last_updated_by;
75 new_references.last_update_login := x_last_update_login;
76
77 END set_column_values;
78
79
80 PROCEDURE After_DML (
81 p_action IN VARCHAR2,
82 x_rowid IN VARCHAR2
83 ) IS
84 /*************************************************************
85 Created By :
86 Date Created By :
87 Purpose :
88 Know limitations, enhancements or remarks
89 Change History
90 Who When What
91
92 (reverse chronological order - newest change first)
93 ***************************************************************/
94
95 BEGIN
96
97 l_rowid := x_rowid;
98
99 IF (p_action = 'INSERT') THEN
100 -- Call all the procedures related to After Insert.
101 null;
102 ELSIF (p_action = 'UPDATE') THEN
103 -- Call all the procedures related to After Update.
104 --Raise the Qual code update Business Event
105
106 IF new_references.QUALIFYING_CODE_ID <> old_references.QUALIFYING_CODE_ID
107 OR new_references.QUALIFYING_VALUE <> old_references.QUALIFYING_VALUE THEN
108 igs_ad_wf_001.APP_INST_QUALIFYING_CODE_EVENT
109 (
110 P_PERSON_ID => new_references.PERSON_ID,
111 P_ADMISSION_APPL_NUMBER => new_references.ADMISSION_APPL_NUMBER,
112 P_NOMINATED_COURSE_CD => new_references.NOMINATED_COURSE_CD,
113 P_SEQUENCE_NUMBER => new_references.SEQUENCE_NUMBER,
114 P_QUALIFYING_TYPE_CODE => new_references.QUALIFYING_TYPE_CODE,
115 P_QUALIFYING_CODE_ID_NEW => new_references.QUALIFYING_CODE_ID,
116 P_QUALIFYING_CODE_ID_OLD => old_references.QUALIFYING_CODE_ID,
117 P_QUALIFYING_VALUE_NEW => new_references.QUALIFYING_VALUE,
118 P_QUALIFYING_VALUE_OLD => old_references.QUALIFYING_VALUE
119 );
120 END IF;
121 ELSIF (p_action = 'DELETE') THEN
122 -- Call all the procedures related to After Delete.
123 Null;
124 END IF;
125
126 l_rowid:=NULL;
127 END After_DML;
128
129 PROCEDURE check_parent_existance AS
130 /*
131 || Created By : [email protected]
132 || Created On : 05-AUG-2005
133 || Purpose : Checks for the existance of Parent records.
134 || Known limitations, enhancements or remarks :
135 || Change History :
136 || Who When What
137 || (reverse chronological order - newest change first)
138 */
139 BEGIN
140
141 IF (((old_references.person_id = new_references.person_id) AND
142 (old_references.admission_appl_number = new_references.admission_appl_number) AND
143 (old_references.nominated_course_cd = new_references.nominated_course_cd) AND
144 (old_references.sequence_number = new_references.sequence_number)) OR
145 ((new_references.person_id IS NULL) OR
146 (new_references.admission_appl_number IS NULL) OR
147 (new_references.nominated_course_cd IS NULL) OR
148 (new_references.sequence_number IS NULL))) THEN
149 NULL;
150 ELSIF NOT igs_ad_ps_appl_inst_pkg.get_pk_for_validation (
151 new_references.person_id,
152 new_references.admission_appl_number,
153 new_references.nominated_course_cd,
154 new_references.sequence_number
155 ) THEN
156 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
157 igs_ge_msg_stack.add;
158 app_exception.raise_exception;
159 END IF;
160
161 END check_parent_existance;
162
163
164 FUNCTION get_pk_for_validation (
165 x_person_id IN NUMBER,
166 x_admission_appl_number IN NUMBER,
167 x_nominated_course_cd IN VARCHAR2,
168 x_sequence_number IN NUMBER,
169 x_qualifying_type_code IN VARCHAR2
170 ) RETURN BOOLEAN AS
171 /*
172 || Created By : [email protected]
173 || Created On : 05-AUG-2005
174 || Purpose : Validates the Primary Key of the table.
175 || Known limitations, enhancements or remarks :
176 || Change History :
177 || Who When What
178 || (reverse chronological order - newest change first)
179 */
180 CURSOR cur_rowid IS
181 SELECT rowid
182 FROM igs_ad_appqual_code
183 WHERE person_id = x_person_id
184 AND admission_appl_number = x_admission_appl_number
185 AND nominated_course_cd = x_nominated_course_cd
186 AND sequence_number = x_sequence_number
187 AND qualifying_type_code = x_qualifying_type_code
188 FOR UPDATE NOWAIT;
189
190 lv_rowid cur_rowid%RowType;
191
192 BEGIN
193
194 OPEN cur_rowid;
195 FETCH cur_rowid INTO lv_rowid;
196 IF (cur_rowid%FOUND) THEN
197 CLOSE cur_rowid;
198 RETURN(TRUE);
199 ELSE
200 CLOSE cur_rowid;
201 RETURN(FALSE);
202 END IF;
203
204 END get_pk_for_validation;
205
206
207 PROCEDURE get_fk_igs_ad_ps_appl_inst (
208 x_person_id IN NUMBER,
209 x_admission_appl_number IN NUMBER,
210 x_nominated_course_cd IN VARCHAR2,
211 x_sequence_number IN NUMBER
212 ) AS
213 /*
214 || Created By : [email protected]
215 || Created On : 05-AUG-2005
216 || Purpose : Validates the Foreign Keys for the table.
217 || Known limitations, enhancements or remarks :
218 || Change History :
219 || Who When What
220 || (reverse chronological order - newest change first)
221 */
222 CURSOR cur_rowid IS
223 SELECT rowid
224 FROM igs_ad_appqual_code
225 WHERE ((admission_appl_number = x_admission_appl_number) AND
226 (nominated_course_cd = x_nominated_course_cd) AND
227 (person_id = x_person_id) AND
228 (sequence_number = x_sequence_number));
229
230 lv_rowid cur_rowid%RowType;
231
232 BEGIN
233
234 OPEN cur_rowid;
235 FETCH cur_rowid INTO lv_rowid;
236 IF (cur_rowid%FOUND) THEN
237 CLOSE cur_rowid;
238 fnd_message.set_name ('IGS', 'IGS_FOREIGN_KEY_REFERENCE');
239 igs_ge_msg_stack.add;
240 app_exception.raise_exception;
241 RETURN;
242 END IF;
243 CLOSE cur_rowid;
244
245 END get_fk_igs_ad_ps_appl_inst;
246
247
248 PROCEDURE before_dml (
249 p_action IN VARCHAR2,
250 x_rowid IN VARCHAR2,
251 x_person_id IN NUMBER,
252 x_admission_appl_number IN NUMBER,
253 x_nominated_course_cd IN VARCHAR2,
254 x_sequence_number IN NUMBER,
255 x_qualifying_type_code IN VARCHAR2,
256 x_qualifying_code_id IN NUMBER,
257 x_qualifying_value IN VARCHAR2,
258 x_creation_date IN DATE,
259 x_created_by IN NUMBER,
260 x_last_update_date IN DATE,
261 x_last_updated_by IN NUMBER,
262 x_last_update_login IN NUMBER
263 ) AS
264 /*
265 || Created By : [email protected]
266 || Created On : 05-AUG-2005
267 || Purpose : Initialises the columns, Checks Constraints, Calls the
268 || Trigger Handlers for the table, before any DML operation.
269 || Known limitations, enhancements or remarks :
270 || Change History :
271 || Who When What
272 || (reverse chronological order - newest change first)
273 */
274 BEGIN
275
276 set_column_values (
277 p_action,
278 x_rowid,
279 x_person_id,
280 x_admission_appl_number,
281 x_nominated_course_cd,
282 x_sequence_number,
283 x_qualifying_type_code,
284 x_qualifying_code_id,
285 x_qualifying_value,
286 x_creation_date,
287 x_created_by,
288 x_last_update_date,
289 x_last_updated_by,
290 x_last_update_login
291 );
292 igs_ad_gen_002.check_adm_appl_inst_stat(
293 nvl(x_person_id,old_references.person_id),
294 nvl(x_admission_appl_number,old_references.admission_appl_number),
295 nvl(x_nominated_course_cd,old_references.nominated_course_cd),
296 nvl(x_sequence_number,old_references.sequence_number)
297 );
298
299 IF (p_action = 'INSERT') THEN
300 -- Call all the procedures related to Before Insert.
301 IF ( get_pk_for_validation(
302 new_references.person_id,
303 new_references.admission_appl_number,
304 new_references.nominated_course_cd,
305 new_references.sequence_number,
306 new_references.qualifying_type_code
307 )
308 ) THEN
309 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
310 igs_ge_msg_stack.add;
311 app_exception.raise_exception;
312 END IF;
313 check_parent_existance;
314 ELSIF (p_action = 'UPDATE') THEN
315 -- Call all the procedures related to Before Update.
316 check_parent_existance;
317 ELSIF (p_action = 'VALIDATE_INSERT') THEN
318 -- Call all the procedures related to Before Insert.
319 IF ( get_pk_for_validation (
320 new_references.person_id,
321 new_references.admission_appl_number,
322 new_references.nominated_course_cd,
323 new_references.sequence_number,
324 new_references.qualifying_type_code
325 )
326 ) THEN
327 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
328 igs_ge_msg_stack.add;
329 app_exception.raise_exception;
330 END IF;
331 END IF;
332
333 END before_dml;
334
335
336 PROCEDURE insert_row (
340 x_nominated_course_cd IN VARCHAR2,
337 x_rowid IN OUT NOCOPY VARCHAR2,
338 x_person_id IN NUMBER,
339 x_admission_appl_number IN NUMBER,
341 x_sequence_number IN NUMBER,
342 x_qualifying_type_code IN VARCHAR2,
343 x_qualifying_code_id IN NUMBER,
344 x_qualifying_value IN VARCHAR2,
345 x_mode IN VARCHAR2
346 ) AS
347 /*
348 || Created By : [email protected]
349 || Created On : 05-AUG-2005
350 || Purpose : Handles the INSERT DML logic for the table.
351 || Known limitations, enhancements or remarks :
352 || Change History :
353 || Who When What
354 || (reverse chronological order - newest change first)
355 */
356
357 x_last_update_date DATE;
358 x_last_updated_by NUMBER;
359 x_last_update_login NUMBER;
360
361 BEGIN
362
363 x_last_update_date := SYSDATE;
364 IF (x_mode = 'I') THEN
365 x_last_updated_by := 1;
366 x_last_update_login := 0;
367 ELSIF (x_mode = 'R') THEN
368 x_last_updated_by := fnd_global.user_id;
369 IF (x_last_updated_by IS NULL) THEN
370 x_last_updated_by := -1;
371 END IF;
372 x_last_update_login := fnd_global.login_id;
373 IF (x_last_update_login IS NULL) THEN
374 x_last_update_login := -1;
375 END IF;
376 ELSE
377 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
378 fnd_message.set_token ('ROUTINE', 'IGS_AD_APPQUAL_CODE_PKG.INSERT_ROW');
379 igs_ge_msg_stack.add;
380 app_exception.raise_exception;
381 END IF;
382
383
384 before_dml(
385 p_action => 'INSERT',
386 x_rowid => x_rowid,
387 x_person_id => x_person_id,
388 x_admission_appl_number => x_admission_appl_number,
389 x_nominated_course_cd => x_nominated_course_cd,
390 x_sequence_number => x_sequence_number,
391 x_qualifying_type_code => x_qualifying_type_code,
392 x_qualifying_code_id => x_qualifying_code_id,
393 x_qualifying_value => x_qualifying_value,
394 x_creation_date => x_last_update_date,
395 x_created_by => x_last_updated_by,
396 x_last_update_date => x_last_update_date,
397 x_last_updated_by => x_last_updated_by,
398 x_last_update_login => x_last_update_login
399 );
400
401 INSERT INTO igs_ad_appqual_code (
402 person_id,
403 admission_appl_number,
404 nominated_course_cd,
405 sequence_number,
406 qualifying_type_code,
407 qualifying_code_id,
408 qualifying_value,
409 creation_date,
410 created_by,
411 last_update_date,
412 last_updated_by,
413 last_update_login
414 ) VALUES (
415 new_references.person_id,
416 new_references.admission_appl_number,
417 new_references.nominated_course_cd,
418 new_references.sequence_number,
419 new_references.qualifying_type_code,
420 new_references.qualifying_code_id,
421 new_references.qualifying_value,
422 x_last_update_date,
423 x_last_updated_by,
424 x_last_update_date,
425 x_last_updated_by,
426 x_last_update_login
427 ) RETURNING ROWID INTO x_rowid;
428
429 After_DML (
430 p_action => 'INSERT',
431 x_rowid => x_rowid
432 );
433
434 END insert_row;
435
436
437 PROCEDURE lock_row (
438 x_rowid IN VARCHAR2,
439 x_person_id IN NUMBER,
440 x_admission_appl_number IN NUMBER,
441 x_nominated_course_cd IN VARCHAR2,
442 x_sequence_number IN NUMBER,
443 x_qualifying_type_code IN VARCHAR2,
444 x_qualifying_code_id IN NUMBER,
445 x_qualifying_value IN VARCHAR2
446 ) AS
447 /*
448 || Created By : [email protected]
449 || Created On : 05-AUG-2005
450 || Purpose : Handles the LOCK mechanism for the table.
451 || Known limitations, enhancements or remarks :
452 || Change History :
453 || Who When What
454 || (reverse chronological order - newest change first)
455 */
456 CURSOR c1 IS
457 SELECT
458 qualifying_code_id,
459 qualifying_value
460 FROM igs_ad_appqual_code
461 WHERE rowid = x_rowid
462 FOR UPDATE NOWAIT;
463
464 tlinfo c1%ROWTYPE;
465
466 BEGIN
467
468 OPEN c1;
469 FETCH c1 INTO tlinfo;
470 IF (c1%notfound) THEN
471 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
472 igs_ge_msg_stack.add;
473 CLOSE c1;
474 app_exception.raise_exception;
475 RETURN;
476 END IF;
477 CLOSE c1;
478
479 IF (
480 ((tlinfo.qualifying_code_id = x_qualifying_code_id) OR ((tlinfo.qualifying_code_id IS NULL) AND (X_qualifying_code_id IS NULL)))
484 ELSE
481 AND ((tlinfo.qualifying_value = x_qualifying_value) OR ((tlinfo.qualifying_value IS NULL) AND (X_qualifying_value IS NULL)))
482 ) THEN
483 NULL;
485 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
486 igs_ge_msg_stack.add;
487 app_exception.raise_exception;
488 END IF;
489
490 RETURN;
491
492 END lock_row;
493
494
495 PROCEDURE update_row (
496 x_rowid IN VARCHAR2,
497 x_person_id IN NUMBER,
498 x_admission_appl_number IN NUMBER,
499 x_nominated_course_cd IN VARCHAR2,
500 x_sequence_number IN NUMBER,
501 x_qualifying_type_code IN VARCHAR2,
502 x_qualifying_code_id IN NUMBER,
503 x_qualifying_value IN VARCHAR2,
504 x_mode IN VARCHAR2
505 ) AS
506 /*
507 || Created By : [email protected]
508 || Created On : 05-AUG-2005
509 || Purpose : Handles the UPDATE DML logic for the table.
510 || Known limitations, enhancements or remarks :
511 || Change History :
512 || Who When What
513 || (reverse chronological order - newest change first)
514 */
515 x_last_update_date DATE ;
516 x_last_updated_by NUMBER;
517 x_last_update_login NUMBER;
518
519 BEGIN
520
521 x_last_update_date := SYSDATE;
522 IF (X_MODE = 'I') THEN
523 x_last_updated_by := 1;
524 x_last_update_login := 0;
525 ELSIF (x_mode = 'R') THEN
526 x_last_updated_by := fnd_global.user_id;
527 IF x_last_updated_by IS NULL THEN
528 x_last_updated_by := -1;
529 END IF;
530 x_last_update_login := fnd_global.login_id;
531 IF (x_last_update_login IS NULL) THEN
532 x_last_update_login := -1;
533 END IF;
534 ELSE
535 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
536 fnd_message.set_token ('ROUTINE', 'IGS_AD_APPQUAL_CODE_PKG.UPDATE_ROW');
537 igs_ge_msg_stack.add;
538 app_exception.raise_exception;
539 END IF;
540
541 before_dml(
542 p_action => 'UPDATE',
543 x_rowid => x_rowid,
544 x_person_id => x_person_id,
545 x_admission_appl_number => x_admission_appl_number,
546 x_nominated_course_cd => x_nominated_course_cd,
547 x_sequence_number => x_sequence_number,
548 x_qualifying_type_code => x_qualifying_type_code,
549 x_qualifying_code_id => x_qualifying_code_id,
550 x_qualifying_value => x_qualifying_value,
551 x_creation_date => x_last_update_date,
552 x_created_by => x_last_updated_by,
553 x_last_update_date => x_last_update_date,
554 x_last_updated_by => x_last_updated_by,
555 x_last_update_login => x_last_update_login
556 );
557
558 UPDATE igs_ad_appqual_code
559 SET
560 qualifying_code_id = new_references.qualifying_code_id,
561 qualifying_value = new_references.qualifying_value,
562 last_update_date = x_last_update_date,
563 last_updated_by = x_last_updated_by,
564 last_update_login = x_last_update_login
565 WHERE rowid = x_rowid;
566
567 IF (SQL%NOTFOUND) THEN
568 RAISE NO_DATA_FOUND;
569 END IF;
570 After_DML (
571 p_action => 'UPDATE',
572 x_rowid => x_rowid
573 );
574 END update_row;
575
576
577 PROCEDURE add_row (
578 x_rowid IN OUT NOCOPY VARCHAR2,
579 x_person_id IN OUT NOCOPY NUMBER,
580 x_admission_appl_number IN NUMBER,
581 x_nominated_course_cd IN VARCHAR2,
582 x_sequence_number IN NUMBER,
583 x_qualifying_type_code IN VARCHAR2,
584 x_qualifying_code_id IN NUMBER,
585 x_qualifying_value IN VARCHAR2,
586 x_mode IN VARCHAR2
587 ) AS
588 /*
589 || Created By : [email protected]
590 || Created On : 05-AUG-2005
591 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
592 || Known limitations, enhancements or remarks :
593 || Change History :
594 || Who When What
595 || (reverse chronological order - newest change first)
596 */
597 CURSOR c1 IS
598 SELECT rowid
599 FROM igs_ad_appqual_code
600 WHERE person_id = x_person_id
601 AND admission_appl_number = x_admission_appl_number
602 AND nominated_course_cd = x_nominated_course_cd
603 AND sequence_number = x_sequence_number
604 AND qualifying_type_code = x_qualifying_type_code;
605
606 BEGIN
607
608 OPEN c1;
609 FETCH c1 INTO x_rowid;
610 IF (c1%NOTFOUND) THEN
611 CLOSE c1;
612
613 insert_row (
614 x_rowid,
615 x_person_id,
616 x_admission_appl_number,
617 x_nominated_course_cd,
618 x_sequence_number,
619 x_qualifying_type_code,
620 x_qualifying_code_id,
621 x_qualifying_value,
622 x_mode
626 CLOSE c1;
623 );
624 RETURN;
625 END IF;
627
628 update_row (
629 x_rowid,
630 x_person_id,
631 x_admission_appl_number,
632 x_nominated_course_cd,
633 x_sequence_number,
634 x_qualifying_type_code,
635 x_qualifying_code_id,
636 x_qualifying_value,
637 x_mode
638 );
639
640 END add_row;
641
642
643 PROCEDURE delete_row (
644 x_rowid IN VARCHAR2
645 ) AS
646 /*
647 || Created By : [email protected]
648 || Created On : 05-AUG-2005
649 || Purpose : Handles the DELETE DML logic for the table.
650 || Known limitations, enhancements or remarks :
651 || Change History :
652 || Who When What
653 || (reverse chronological order - newest change first)
654 */
655 BEGIN
656
657 before_dml (
658 p_action => 'DELETE',
659 x_rowid => x_rowid
660 );
661
662 DELETE FROM igs_ad_appqual_code
663 WHERE rowid = x_rowid;
664
665 IF (SQL%NOTFOUND) THEN
666 RAISE NO_DATA_FOUND;
667 END IF;
668 After_DML (
669 p_action => 'DELETE',
670 x_rowid => x_rowid
671 );
672
673 END delete_row;
674
675 PROCEDURE Get_FK_Igs_Ad_Code_Classes (
676 x_code_id IN NUMBER
677 ) AS
678
679 /*************************************************************
680 Created By :
681 Date Created By :
682 Purpose :
683 Know limitations, enhancements or remarks
684 Change History
685 Who When What
686
687 (reverse chronological order - newest change first)
688 ***************************************************************/
689
690 CURSOR cur_rowid IS
691 SELECT rowid
692 FROM igs_ad_appqual_code
693 WHERE qualifying_code_id = x_code_id ;
694
695 lv_rowid cur_rowid%RowType;
696
697 BEGIN
698
699 Open cur_rowid;
703 Fnd_Message.Set_Name ('IGS', 'IGS_AD_AQUAL_CODE_FK');
700 Fetch cur_rowid INTO lv_rowid;
701 IF (cur_rowid%FOUND) THEN
702 Close cur_rowid;
704 IGS_GE_MSG_STACK.ADD;
705 App_Exception.Raise_Exception;
706 Return;
707 END IF;
708 Close cur_rowid;
709
710 END Get_FK_Igs_Ad_Code_Classes;
711
712 END igs_ad_appqual_code_pkg;