DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_HE_CODE_MAP_VAL_PKG

Source


1 PACKAGE BODY igs_he_code_map_val_pkg AS
2 /* $Header: IGSWI03B.pls 115.7 2003/01/07 06:21:34 smaddali noship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_he_code_map_val%ROWTYPE;
6   new_references igs_he_code_map_val%ROWTYPE;
7 
8   PROCEDURE set_column_values (
9     p_action                            IN     VARCHAR2,
10     x_rowid                             IN     VARCHAR2    ,
11     x_association_code                  IN     VARCHAR2    ,
12     x_sequence                          IN     NUMBER      ,
13     x_map_description                   IN     VARCHAR2    ,
14     x_map1                              IN     VARCHAR2    ,
15     x_map2                              IN     VARCHAR2    ,
16     x_map3                              IN     VARCHAR2    ,
17     x_map4                              IN     VARCHAR2    ,
18     x_map5                              IN     VARCHAR2    ,
19     x_map6                              IN     VARCHAR2    ,
20     x_map7                              IN     VARCHAR2    ,
21     x_map8                              IN     VARCHAR2    ,
22     x_map9                              IN     VARCHAR2    ,
23     x_map10                             IN     VARCHAR2    ,
24     x_creation_date                     IN     DATE        ,
25     x_created_by                        IN     NUMBER      ,
26     x_last_update_date                  IN     DATE        ,
27     x_last_updated_by                   IN     NUMBER      ,
28     x_last_update_login                 IN     NUMBER
29 ) AS
30   /*
31   ||  Created By :
32   ||  Created On : 23-JUL-2001
33   ||  Purpose : Initialises the Old and New references for the columns of the table.
34   ||  Known limitations, enhancements or remarks :
35   ||  Change History :
36   ||  Who             When            What
37   ||  (reverse chronological order - newest change first)
38   */
39 
40     CURSOR cur_old_ref_values IS
41       SELECT   *
42       FROM     IGS_HE_CODE_MAP_VAL
43       WHERE    rowid = x_rowid;
44 
45   BEGIN
46 
47     l_rowid := x_rowid;
48 
49     -- Code for setting the Old and New Reference Values.
50     -- Populate Old Values.
51     OPEN cur_old_ref_values;
52     FETCH cur_old_ref_values INTO old_references;
53     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
54       CLOSE cur_old_ref_values;
55       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
56       igs_ge_msg_stack.add;
57       app_exception.raise_exception;
58       RETURN;
59     END IF;
60     CLOSE cur_old_ref_values;
61 
62     -- Populate New Values.
63     new_references.association_code                  := x_association_code;
64     new_references.sequence                          := x_sequence;
65     new_references.map_description                   := x_map_description;
66     new_references.map1                              := x_map1;
67     new_references.map2                              := x_map2;
68     new_references.map3                              := x_map3;
69     new_references.map4                              := x_map4;
70     new_references.map5                              := x_map5;
71     new_references.map6                              := x_map6;
72     new_references.map7                              := x_map7;
73     new_references.map8                              := x_map8;
74     new_references.map9                              := x_map9;
75     new_references.map10                             := x_map10;
76 
77     IF (p_action = 'UPDATE') THEN
78       new_references.creation_date                   := old_references.creation_date;
79       new_references.created_by                      := old_references.created_by;
80     ELSE
81       new_references.creation_date                   := x_creation_date;
82       new_references.created_by                      := x_created_by;
83     END IF;
84 
85     new_references.last_update_date                  := x_last_update_date;
86     new_references.last_updated_by                   := x_last_updated_by;
87     new_references.last_update_login                 := x_last_update_login;
88 
89   END set_column_values;
90 
91 
92   PROCEDURE check_parent_existance AS
93   /*
94   ||  Created By :
95   ||  Created On : 23-JUL-2001
96   ||  Purpose : Checks for the existance of Parent records.
97   ||  Known limitations, enhancements or remarks :
98   ||  Change History :
99   ||  Who             When            What
100   ||  (reverse chronological order - newest change first)
101   */
102   BEGIN
103 
104     IF (((old_references.association_code = new_references.association_code)) OR
105         ((new_references.association_code IS NULL))) THEN
106       NULL;
107     ELSIF NOT igs_he_code_assoc_pkg.get_pk_for_validation (
108                 new_references.association_code
109               ) THEN
110       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
111       igs_ge_msg_stack.add;
112       app_exception.raise_exception;
113     END IF;
114 
115   END check_parent_existance;
116 
117 
118   FUNCTION get_pk_for_validation (
119     x_sequence                          IN     NUMBER
120   ) RETURN BOOLEAN AS
121   /*
122   ||  Created By :
123   ||  Created On : 23-JUL-2001
124   ||  Purpose : Validates the Primary Key of the table.
125   ||  Known limitations, enhancements or remarks :
126   ||  Change History :
127   ||  Who             When            What
128   ||  (reverse chronological order - newest change first)
129   */
130     CURSOR cur_rowid IS
131       SELECT   rowid
132       FROM     igs_he_code_map_val
133       WHERE    sequence = x_sequence
134       FOR UPDATE NOWAIT;
135 
136     lv_rowid cur_rowid%RowType;
137 
138   BEGIN
139 
140     OPEN cur_rowid;
141     FETCH cur_rowid INTO lv_rowid;
142     IF (cur_rowid%FOUND) THEN
143       CLOSE cur_rowid;
144       RETURN(TRUE);
145     ELSE
146       CLOSE cur_rowid;
147       RETURN(FALSE);
148     END IF;
149 
150   END get_pk_for_validation;
151 
152 
153   PROCEDURE get_fk_igs_he_code_assoc (
154     x_association_code                  IN     VARCHAR2
155   ) AS
156   /*
157   ||  Created By :
158   ||  Created On : 23-JUL-2001
159   ||  Purpose : Validates the Foreign Keys for the table.
160   ||  Known limitations, enhancements or remarks :
161   ||  Change History :
162   ||  Who             When            What
163   ||  (reverse chronological order - newest change first)
164   */
165     CURSOR cur_rowid IS
166       SELECT   rowid
167       FROM     igs_he_code_map_val
168       WHERE   ((association_code = x_association_code));
169 
170     lv_rowid cur_rowid%RowType;
171 
172   BEGIN
173 
174     OPEN cur_rowid;
175     FETCH cur_rowid INTO lv_rowid;
176     IF (cur_rowid%FOUND) THEN
177       CLOSE cur_rowid;
178       fnd_message.set_name ('IGS', 'IGS_FOREIGN_KEY_REFERENCE');
179       igs_ge_msg_stack.add;
180       app_exception.raise_exception;
181       RETURN;
182     END IF;
183     CLOSE cur_rowid;
184 
185   END get_fk_igs_he_code_assoc;
186 
187   FUNCTION get_uk_for_validation (
188     x_association_code                  IN     VARCHAR2,
189     x_map1                              IN     VARCHAR2,
190     x_map2                              IN     VARCHAR2,
191     x_map3                              IN     VARCHAR2,
192     x_map4                              IN     VARCHAR2,
193     x_map5                              IN     VARCHAR2,
194     x_map6                              IN     VARCHAR2,
195     x_map7                              IN     VARCHAR2,
196     x_map8                              IN     VARCHAR2,
197     x_map9                              IN     VARCHAR2,
198     x_map10                             IN     VARCHAR2
199   ) RETURN BOOLEAN AS
200   /*
201   ||  Created By : smaddali
202   ||  Created On : 13-jun-2002
203   ||  Purpose : Validates the Unique Keys of the table.
204   ||  Known limitations, enhancements or remarks :
205   ||  Change History :
206   ||  Who             When            What
207   || smaddali modified cursor cur_rowid to add check for rowid as it was missing
208   */
209       CURSOR cur_rowid IS
210       SELECT   rowid
211       FROM     igs_he_code_map_val
212       WHERE    association_code = x_association_code
213       AND      map1 = x_map1
214       AND      map2 = x_map2
215       AND      ((map3 = x_map3) OR (map3 IS NULL AND x_map3 IS NULL))
216       AND      ((map4 = x_map4) OR (map4 IS NULL AND x_map4 IS NULL))
217       AND      ((map5 = x_map5) OR (map5 IS NULL AND x_map5 IS NULL))
218       AND      ((map6 = x_map6) OR (map6 IS NULL AND x_map6 IS NULL))
219       AND      ((map7 = x_map7) OR (map7 IS NULL AND x_map7 IS NULL))
220       AND      ((map8 = x_map8) OR (map8 IS NULL AND x_map8 IS NULL))
221       AND      ((map9 = x_map9) OR (map9 IS NULL AND x_map9 IS NULL))
222       AND      ((map10 = x_map10) OR (map10 IS NULL AND x_map10 IS NULL))
223       AND      ((l_rowid IS NULL) OR (rowid <> l_rowid)) ;
224 
225     lv_rowid cur_rowid%RowType;
226 
227   BEGIN
228     OPEN cur_rowid;
229     FETCH cur_rowid INTO lv_rowid;
230     IF (cur_rowid%FOUND) THEN
231       CLOSE cur_rowid;
232         RETURN (true);
233     ELSE
234        CLOSE cur_rowid;
235       RETURN(FALSE);
236     END IF;
237 
238   END get_uk_for_validation ;
239 
240   PROCEDURE check_uniqueness AS
241   /*
242   ||  Created By : smaddali
243   ||  Created On : 13-jun-2002
244   ||  Purpose : Handles the Unique Constraint logic defined for the columns.
245   ||  Known limitations, enhancements or remarks :
246   ||  Change History :
247   ||  Who             When            What
248   ||  (reverse chronological order - newest change first)
249   */
250   BEGIN
251     IF ( get_uk_for_validation (x_association_code => new_references.association_code,
252            x_map1 => new_references.map1,
253            x_map2 => new_references.map2,
254            x_map3 => new_references.map3,
255            x_map4 => new_references.map4,
256            x_map5 =>  new_references.map5,
257            x_map6 => new_references.map6,
258            x_map7 => new_references.map7,
259            x_map8 => new_references.map8,
260            x_map9 => new_references.map9,
261            x_map10 => new_references.map10 )
262        ) THEN
263        fnd_message.set_name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
264       igs_ge_msg_stack.add;
265       app_exception.raise_exception;
266     END IF;
267 
268   END check_uniqueness;
269 
270   PROCEDURE before_dml (
271     p_action                            IN     VARCHAR2,
272     x_rowid                             IN     VARCHAR2    ,
273     x_association_code                  IN     VARCHAR2    ,
274     x_sequence                          IN     NUMBER      ,
275     x_map_description                   IN     VARCHAR2    ,
276     x_map1                              IN     VARCHAR2    ,
277     x_map2                              IN     VARCHAR2    ,
278     x_map3                              IN     VARCHAR2    ,
279     x_map4                              IN     VARCHAR2    ,
280     x_map5                              IN     VARCHAR2    ,
281     x_map6                              IN     VARCHAR2    ,
282     x_map7                              IN     VARCHAR2    ,
283     x_map8                              IN     VARCHAR2    ,
284     x_map9                              IN     VARCHAR2    ,
285     x_map10                             IN     VARCHAR2    ,
286     x_creation_date                     IN     DATE        ,
287     x_created_by                        IN     NUMBER      ,
288     x_last_update_date                  IN     DATE        ,
289     x_last_updated_by                   IN     NUMBER      ,
290     x_last_update_login                 IN     NUMBER
291 ) AS
292   /*
293   ||  Created By :
294   ||  Created On : 23-JUL-2001
295   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
296   ||            Trigger Handlers for the table, before any DML operation.
297   ||  Known limitations, enhancements or remarks :
298   ||  Change History :
299   ||  Who             When            What
300   ||  (reverse chronological order - newest change first)
301   */
302   BEGIN
303 
304     set_column_values (
305       p_action,
306       x_rowid,
307       x_association_code,
308       x_sequence,
309       x_map_description,
310       x_map1,
311       x_map2,
312       x_map3,
313       x_map4,
314       x_map5,
315       x_map6,
316       x_map7,
317       x_map8,
318       x_map9,
319       x_map10,
320       x_creation_date,
321       x_created_by,
322       x_last_update_date,
323       x_last_updated_by,
324       x_last_update_login
325     );
326 
327     IF (p_action = 'INSERT') THEN
328       -- Call all the procedures related to Before Insert.
329       IF ( get_pk_for_validation(
330              new_references.sequence
331            )
332          ) THEN
333         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
334         igs_ge_msg_stack.add;
335         app_exception.raise_exception;
336       END IF;
337       check_parent_existance;
338       check_uniqueness;
339     ELSIF (p_action = 'UPDATE') THEN
340       -- Call all the procedures related to Before Update.
341       check_parent_existance;
342       check_uniqueness;
343     ELSIF (p_action = 'VALIDATE_INSERT') THEN
344       -- Call all the procedures related to Before Insert.
345       IF ( get_pk_for_validation (
346              new_references.sequence
347            )
348          ) THEN
349         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
350         igs_ge_msg_stack.add;
351         app_exception.raise_exception;
352       END IF;
353       check_uniqueness;
354     END IF;
355 
356   END before_dml;
357 
358 
359   PROCEDURE insert_row (
360     x_rowid                             IN OUT NOCOPY VARCHAR2,
361     x_association_code                  IN     VARCHAR2,
362     x_sequence                          IN OUT NOCOPY NUMBER,
363     x_map_description                   IN     VARCHAR2,
364     x_map1                              IN     VARCHAR2,
365     x_map2                              IN     VARCHAR2,
366     x_map3                              IN     VARCHAR2,
367     x_map4                              IN     VARCHAR2,
368     x_map5                              IN     VARCHAR2,
369     x_map6                              IN     VARCHAR2,
370     x_map7                              IN     VARCHAR2,
371     x_map8                              IN     VARCHAR2,
372     x_map9                              IN     VARCHAR2,
373     x_map10                             IN     VARCHAR2,
374     x_mode                              IN     VARCHAR2
375 ) AS
376   /*
377   ||  Created By :
378   ||  Created On : 23-JUL-2001
379   ||  Purpose : Handles the INSERT DML logic for the table.
380   ||  Known limitations, enhancements or remarks :
381   ||  Change History :
382   ||  Who             When            What
383   ||  (reverse chronological order - newest change first)
384   */
385     CURSOR c IS
386       SELECT   rowid
387       FROM     igs_he_code_map_val
388       WHERE    sequence                          = x_sequence;
389 
390     x_last_update_date           DATE;
391     x_last_updated_by            NUMBER;
392     x_last_update_login          NUMBER;
393 
394   BEGIN
395 
396     x_last_update_date := SYSDATE;
397     IF (x_mode = 'I') THEN
398       x_last_updated_by := 1;
399       x_last_update_login := 0;
403         x_last_updated_by := -1;
400     ELSIF (x_mode = 'R') THEN
401       x_last_updated_by := fnd_global.user_id;
402       IF (x_last_updated_by IS NULL) THEN
404       END IF;
405       x_last_update_login := fnd_global.login_id;
406       IF (x_last_update_login IS NULL) THEN
407         x_last_update_login := -1;
408       END IF;
409     ELSE
410       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
411       igs_ge_msg_stack.add;
412       app_exception.raise_exception;
413     END IF;
414 
415     SELECT    igs_he_code_map_val_s.NEXTVAL
416     INTO      x_sequence
417     FROM      dual;
418 
419     before_dml(
420       p_action                            => 'INSERT',
421       x_rowid                             => x_rowid,
422       x_association_code                  => x_association_code,
423       x_sequence                          => x_sequence,
424       x_map_description                   => x_map_description,
425       x_map1                              => x_map1,
426       x_map2                              => x_map2,
427       x_map3                              => x_map3,
428       x_map4                              => x_map4,
429       x_map5                              => x_map5,
430       x_map6                              => x_map6,
431       x_map7                              => x_map7,
432       x_map8                              => x_map8,
433       x_map9                              => x_map9,
434       x_map10                             => x_map10,
435       x_creation_date                     => x_last_update_date,
436       x_created_by                        => x_last_updated_by,
437       x_last_update_date                  => x_last_update_date,
438       x_last_updated_by                   => x_last_updated_by,
439       x_last_update_login                 => x_last_update_login
440     );
441 
442     INSERT INTO igs_he_code_map_val (
443       association_code,
444       sequence,
445       map_description,
446       map1,
447       map2,
448       map3,
449       map4,
450       map5,
451       map6,
452       map7,
453       map8,
454       map9,
455       map10,
456       creation_date,
457       created_by,
458       last_update_date,
459       last_updated_by,
460       last_update_login
461     ) VALUES (
462       new_references.association_code,
463       new_references.sequence,
464       new_references.map_description,
465       new_references.map1,
466       new_references.map2,
467       new_references.map3,
468       new_references.map4,
469       new_references.map5,
470       new_references.map6,
471       new_references.map7,
472       new_references.map8,
473       new_references.map9,
474       new_references.map10,
475       x_last_update_date,
476       x_last_updated_by,
477       x_last_update_date,
478       x_last_updated_by,
479       x_last_update_login
480     );
481 
482     OPEN c;
483     FETCH c INTO x_rowid;
484     IF (c%NOTFOUND) THEN
485       CLOSE c;
486       RAISE NO_DATA_FOUND;
487     END IF;
488     CLOSE c;
489 
490   END insert_row;
491 
492 
493   PROCEDURE lock_row (
494     x_rowid                             IN     VARCHAR2,
495     x_association_code                  IN     VARCHAR2,
496     x_sequence                          IN     NUMBER,
497     x_map_description                   IN     VARCHAR2,
498     x_map1                              IN     VARCHAR2,
499     x_map2                              IN     VARCHAR2,
500     x_map3                              IN     VARCHAR2,
501     x_map4                              IN     VARCHAR2,
502     x_map5                              IN     VARCHAR2,
503     x_map6                              IN     VARCHAR2,
504     x_map7                              IN     VARCHAR2,
505     x_map8                              IN     VARCHAR2,
506     x_map9                              IN     VARCHAR2,
507     x_map10                             IN     VARCHAR2
508   ) AS
509   /*
510   ||  Created By :
511   ||  Created On : 23-JUL-2001
512   ||  Purpose : Handles the LOCK mechanism for the table.
513   ||  Known limitations, enhancements or remarks :
514   ||  Change History :
515   ||  Who             When            What
516   ||  (reverse chronological order - newest change first)
517   */
518     CURSOR c1 IS
519       SELECT
520         association_code,
521         map_description,
522         map1,
523         map2,
524         map3,
525         map4,
526         map5,
527         map6,
528         map7,
529         map8,
530         map9,
531         map10
532       FROM  igs_he_code_map_val
533       WHERE rowid = x_rowid
534       FOR UPDATE NOWAIT;
535 
536     tlinfo c1%ROWTYPE;
537 
538   BEGIN
539 
540     OPEN c1;
541     FETCH c1 INTO tlinfo;
542     IF (c1%notfound) THEN
543       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
544       igs_ge_msg_stack.add;
545       CLOSE c1;
546       app_exception.raise_exception;
547       RETURN;
548     END IF;
549     CLOSE c1;
550 
551     IF (
552         (tlinfo.association_code = x_association_code)
553         AND (tlinfo.map_description = x_map_description)
557         AND ((tlinfo.map4 = x_map4) OR ((tlinfo.map4 IS NULL) AND (X_map4 IS NULL)))
554         AND (tlinfo.map1 = x_map1)
555         AND (tlinfo.map2 = x_map2)
556         AND ((tlinfo.map3 = x_map3) OR ((tlinfo.map3 IS NULL) AND (X_map3 IS NULL)))
558         AND ((tlinfo.map5 = x_map5) OR ((tlinfo.map5 IS NULL) AND (X_map5 IS NULL)))
559         AND ((tlinfo.map6 = x_map6) OR ((tlinfo.map6 IS NULL) AND (X_map6 IS NULL)))
560         AND ((tlinfo.map7 = x_map7) OR ((tlinfo.map7 IS NULL) AND (X_map7 IS NULL)))
561         AND ((tlinfo.map8 = x_map8) OR ((tlinfo.map8 IS NULL) AND (X_map8 IS NULL)))
562         AND ((tlinfo.map9 = x_map9) OR ((tlinfo.map9 IS NULL) AND (X_map9 IS NULL)))
563         AND ((tlinfo.map10 = x_map10) OR ((tlinfo.map10 IS NULL) AND (X_map10 IS NULL)))
564        ) THEN
565       NULL;
566     ELSE
567       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
568       igs_ge_msg_stack.add;
569       app_exception.raise_exception;
570     END IF;
571 
572     RETURN;
573 
574   END lock_row;
575 
576 
577   PROCEDURE update_row (
578     x_rowid                             IN     VARCHAR2,
579     x_association_code                  IN     VARCHAR2,
580     x_sequence                          IN     NUMBER,
581     x_map_description                   IN     VARCHAR2,
582     x_map1                              IN     VARCHAR2,
583     x_map2                              IN     VARCHAR2,
584     x_map3                              IN     VARCHAR2,
585     x_map4                              IN     VARCHAR2,
586     x_map5                              IN     VARCHAR2,
587     x_map6                              IN     VARCHAR2,
588     x_map7                              IN     VARCHAR2,
589     x_map8                              IN     VARCHAR2,
590     x_map9                              IN     VARCHAR2,
591     x_map10                             IN     VARCHAR2,
592     x_mode                              IN     VARCHAR2
593 ) AS
594   /*
595   ||  Created By :
596   ||  Created On : 23-JUL-2001
597   ||  Purpose : Handles the UPDATE DML logic for the table.
598   ||  Known limitations, enhancements or remarks :
599   ||  Change History :
600   ||  Who             When            What
601   ||  (reverse chronological order - newest change first)
602   */
603     x_last_update_date           DATE ;
604     x_last_updated_by            NUMBER;
605     x_last_update_login          NUMBER;
606 
607   BEGIN
608 
609     x_last_update_date := SYSDATE;
610     IF (X_MODE = 'I') THEN
611       x_last_updated_by := 1;
612       x_last_update_login := 0;
613     ELSIF (x_mode = 'R') THEN
614       x_last_updated_by := fnd_global.user_id;
615       IF x_last_updated_by IS NULL THEN
616         x_last_updated_by := -1;
617       END IF;
618       x_last_update_login := fnd_global.login_id;
619       IF (x_last_update_login IS NULL) THEN
620         x_last_update_login := -1;
621       END IF;
622     ELSE
623       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
624       igs_ge_msg_stack.add;
625       app_exception.raise_exception;
626     END IF;
627 
628     before_dml(
629       p_action                            => 'UPDATE',
630       x_rowid                             => x_rowid,
631       x_association_code                  => x_association_code,
632       x_sequence                          => x_sequence,
633       x_map_description                   => x_map_description,
634       x_map1                              => x_map1,
635       x_map2                              => x_map2,
636       x_map3                              => x_map3,
637       x_map4                              => x_map4,
638       x_map5                              => x_map5,
639       x_map6                              => x_map6,
640       x_map7                              => x_map7,
641       x_map8                              => x_map8,
642       x_map9                              => x_map9,
643       x_map10                             => x_map10,
644       x_creation_date                     => x_last_update_date,
645       x_created_by                        => x_last_updated_by,
646       x_last_update_date                  => x_last_update_date,
647       x_last_updated_by                   => x_last_updated_by,
648       x_last_update_login                 => x_last_update_login
649     );
650 
651     UPDATE igs_he_code_map_val
652       SET
653         association_code                  = new_references.association_code,
654         map_description                   = new_references.map_description,
655         map1                              = new_references.map1,
656         map2                              = new_references.map2,
657         map3                              = new_references.map3,
658         map4                              = new_references.map4,
659         map5                              = new_references.map5,
660         map6                              = new_references.map6,
661         map7                              = new_references.map7,
662         map8                              = new_references.map8,
663         map9                              = new_references.map9,
664         map10                             = new_references.map10,
665         last_update_date                  = x_last_update_date,
666         last_updated_by                   = x_last_updated_by,
667         last_update_login                 = x_last_update_login
671       RAISE NO_DATA_FOUND;
668       WHERE rowid = x_rowid;
669 
670     IF (SQL%NOTFOUND) THEN
672     END IF;
673 
674   END update_row;
675 
676 
677   PROCEDURE add_row (
678     x_rowid                             IN OUT NOCOPY VARCHAR2,
679     x_association_code                  IN     VARCHAR2,
680     x_sequence                          IN OUT NOCOPY NUMBER,
681     x_map_description                   IN     VARCHAR2,
682     x_map1                              IN     VARCHAR2,
683     x_map2                              IN     VARCHAR2,
684     x_map3                              IN     VARCHAR2,
685     x_map4                              IN     VARCHAR2,
686     x_map5                              IN     VARCHAR2,
687     x_map6                              IN     VARCHAR2,
688     x_map7                              IN     VARCHAR2,
689     x_map8                              IN     VARCHAR2,
690     x_map9                              IN     VARCHAR2,
691     x_map10                             IN     VARCHAR2,
692     x_mode                              IN     VARCHAR2
693 ) AS
694   /*
695   ||  Created By :
696   ||  Created On : 23-JUL-2001
697   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
698   ||  Known limitations, enhancements or remarks :
699   ||  Change History :
700   ||  Who             When            What
701   ||  (reverse chronological order - newest change first)
702   */
703     CURSOR c1 IS
704       SELECT   rowid
705       FROM     igs_he_code_map_val
706       WHERE    sequence                          = x_sequence;
707 
708 
709   BEGIN
710       OPEN c1;
711       FETCH c1 INTO x_rowid;
712       IF (c1%NOTFOUND)  AND NOT ( get_uk_for_validation (
713            x_association_code,
714            x_map1,
715            x_map2,
716            x_map3,
717            x_map4,
718            x_map5,
719            x_map6,
720            x_map7,
721            x_map8,
722            x_map9,
723            x_map10 )
724        ) THEN
725 
726         CLOSE c1;
727 
728         insert_row (
729           x_rowid,
730           x_association_code,
731           x_sequence,
732           x_map_description,
733           x_map1,
734           x_map2,
735           x_map3,
736           x_map4,
737           x_map5,
738           x_map6,
739           x_map7,
740           x_map8,
741           x_map9,
742           x_map10,
743           x_mode
744          );
745          RETURN;
746     END IF;
747     CLOSE c1;
748 
749     update_row (
750       x_rowid,
751       x_association_code,
752       x_sequence,
753       x_map_description,
754       x_map1,
755       x_map2,
756       x_map3,
757       x_map4,
758       x_map5,
759       x_map6,
760       x_map7,
761       x_map8,
762       x_map9,
763       x_map10,
764       x_mode
765     );
766 
767   END add_row;
768 
769 
770   PROCEDURE delete_row (
771     x_rowid IN VARCHAR2
772   ) AS
773   /*
774   ||  Created By :
775   ||  Created On : 23-JUL-2001
776   ||  Purpose : Handles the DELETE DML logic for the table.
777   ||  Known limitations, enhancements or remarks :
778   ||  Change History :
779   ||  Who             When            What
780   ||  (reverse chronological order - newest change first)
781   */
782   BEGIN
783 
784     before_dml (
785       p_action => 'DELETE',
786       x_rowid => x_rowid
787     );
788 
789     DELETE FROM igs_he_code_map_val
790     WHERE rowid = x_rowid;
791 
792     IF (SQL%NOTFOUND) THEN
793       RAISE NO_DATA_FOUND;
794     END IF;
795 
796   END delete_row;
797 
798 
799 END igs_he_code_map_val_pkg;