DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_HE_EXT_RUN_PRMS_PKG

Source


1 PACKAGE BODY igs_he_ext_run_prms_pkg AS
2 /* $Header: IGSWI07B.pls 115.6 2002/12/20 08:47:15 bayadav noship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_he_ext_run_prms%ROWTYPE;
6   new_references igs_he_ext_run_prms%ROWTYPE;
7 
8   PROCEDURE set_column_values (
9     p_action                            IN     VARCHAR2,
10     x_rowid                             IN     VARCHAR2     ,
11     x_run_prms_id                       IN     NUMBER      ,
12     x_extract_run_id                    IN     NUMBER      ,
13     x_param_type                        IN     VARCHAR2    ,
14     x_exclude                           IN     VARCHAR2    ,
15     x_only                              IN     VARCHAR2    ,
16     x_creation_date                     IN     DATE        ,
17     x_created_by                        IN     NUMBER      ,
18     x_last_update_date                  IN     DATE        ,
19     x_last_updated_by                   IN     NUMBER      ,
20     x_last_update_login                 IN     NUMBER
21   ) AS
22   /*
23   ||  Created By : rgopalan
24   ||  Created On : 15-JUN-2001
25   ||  Purpose : Initialises the Old and New references for the columns of the table.
26   ||  Known limitations, enhancements or remarks :
27   ||  Change History :
28   ||  Who             When            What
29   ||  (reverse chronological order - newest change first)
30   */
31 
32     CURSOR cur_old_ref_values IS
33       SELECT   *
34       FROM     IGS_HE_EXT_RUN_PRMS
35       WHERE    rowid = x_rowid;
36 
37   BEGIN
38 
39     l_rowid := x_rowid;
40 
41     -- Code for setting the Old and New Reference Values.
42     -- Populate Old Values.
43     OPEN cur_old_ref_values;
44     FETCH cur_old_ref_values INTO old_references;
45     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
46       CLOSE cur_old_ref_values;
47       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
48       igs_ge_msg_stack.add;
49       app_exception.raise_exception;
50       RETURN;
51     END IF;
52     CLOSE cur_old_ref_values;
53 
54     -- Populate New Values.
55     new_references.run_prms_id                       := x_run_prms_id;
56     new_references.extract_run_id                    := x_extract_run_id;
57     new_references.param_type                        := x_param_type;
58     new_references.exclude                           := x_exclude;
59     new_references.only                              := x_only;
60 
61     IF (p_action = 'UPDATE') THEN
62       new_references.creation_date                   := old_references.creation_date;
63       new_references.created_by                      := old_references.created_by;
64     ELSE
65       new_references.creation_date                   := x_creation_date;
66       new_references.created_by                      := x_created_by;
67     END IF;
68 
69     new_references.last_update_date                  := x_last_update_date;
70     new_references.last_updated_by                   := x_last_updated_by;
71     new_references.last_update_login                 := x_last_update_login;
72 
73   END set_column_values;
74 
75 
76   PROCEDURE check_parent_existance AS
77   /*
78   ||  Created By : rgopalan
79   ||  Created On : 15-JUN-2001
80   ||  Purpose : Checks for the existance of Parent records.
81   ||  Known limitations, enhancements or remarks :
82   ||  Change History :
83   ||  Who             When            What
84   ||  (reverse chronological order - newest change first)
85   */
86   BEGIN
87 
88     IF (((old_references.extract_run_id = new_references.extract_run_id)) OR
89         ((new_references.extract_run_id IS NULL))) THEN
90       NULL;
91     ELSIF NOT igs_he_ext_run_dtls_pkg.get_pk_for_validation (
92                 new_references.extract_run_id
93               ) THEN
94       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
95       igs_ge_msg_stack.add;
96       app_exception.raise_exception;
97     END IF;
98 
99   END check_parent_existance;
100 
101 
102   FUNCTION get_pk_for_validation (
103     x_run_prms_id                       IN     NUMBER
104   ) RETURN BOOLEAN AS
105   /*
106   ||  Created By : rgopalan
107   ||  Created On : 15-JUN-2001
108   ||  Purpose : Validates the Primary Key of the table.
109   ||  Known limitations, enhancements or remarks :
110   ||  Change History :
111   ||  Who             When            What
112   ||  (reverse chronological order - newest change first)
113   */
114     CURSOR cur_rowid IS
115       SELECT   rowid
116       FROM     igs_he_ext_run_prms
117       WHERE    run_prms_id = x_run_prms_id
118       FOR UPDATE NOWAIT;
119 
120     lv_rowid cur_rowid%RowType;
121 
122   BEGIN
123 
124     OPEN cur_rowid;
125     FETCH cur_rowid INTO lv_rowid;
126     IF (cur_rowid%FOUND) THEN
127       CLOSE cur_rowid;
128       RETURN(TRUE);
129     ELSE
130       CLOSE cur_rowid;
131       RETURN(FALSE);
132     END IF;
133 
134   END get_pk_for_validation;
135 
136 
137   PROCEDURE get_fk_igs_he_ext_run_dtls (
138     x_extract_run_id                    IN     NUMBER
139   ) AS
140   /*
141   ||  Created By : rgopalan
142   ||  Created On : 15-JUN-2001
143   ||  Purpose : Validates the Foreign Keys for the table.
144   ||  Known limitations, enhancements or remarks :
145   ||  Change History :
146   ||  Who             When            What
147   ||  (reverse chronological order - newest change first)
148   */
149     CURSOR cur_rowid IS
150       SELECT   rowid
151       FROM     igs_he_ext_run_prms
152       WHERE   ((extract_run_id = x_extract_run_id));
153 
154     lv_rowid cur_rowid%RowType;
155 
156   BEGIN
157 
158     OPEN cur_rowid;
159     FETCH cur_rowid INTO lv_rowid;
160     IF (cur_rowid%FOUND) THEN
161       CLOSE cur_rowid;
162       fnd_message.set_name ('IGS', 'IGS_HE_HEERPRM_HEERDTL_FK');
163       igs_ge_msg_stack.add;
164       app_exception.raise_exception;
165       RETURN;
166     END IF;
167     CLOSE cur_rowid;
168 
169   END get_fk_igs_he_ext_run_dtls;
170 
171 
172   PROCEDURE before_dml (
173     p_action                            IN     VARCHAR2,
174     x_rowid                             IN     VARCHAR2    ,
175     x_run_prms_id                       IN     NUMBER      ,
176     x_extract_run_id                    IN     NUMBER      ,
177     x_param_type                        IN     VARCHAR2    ,
178     x_exclude                           IN     VARCHAR2    ,
179     x_only                              IN     VARCHAR2    ,
180     x_creation_date                     IN     DATE        ,
181     x_created_by                        IN     NUMBER      ,
182     x_last_update_date                  IN     DATE        ,
183     x_last_updated_by                   IN     NUMBER      ,
184     x_last_update_login                 IN     NUMBER
185   ) AS
186   /*
187   ||  Created By : rgopalan
188   ||  Created On : 15-JUN-2001
189   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
190   ||            Trigger Handlers for the table, before any DML operation.
191   ||  Known limitations, enhancements or remarks :
192   ||  Change History :
193   ||  Who             When            What
194   ||  (reverse chronological order - newest change first)
195   */
196   BEGIN
197 
198     set_column_values (
199       p_action,
200       x_rowid,
201       x_run_prms_id,
202       x_extract_run_id,
203       x_param_type,
204       x_exclude,
205       x_only,
206       x_creation_date,
207       x_created_by,
208       x_last_update_date,
209       x_last_updated_by,
210       x_last_update_login
211     );
212 
213     IF (p_action = 'INSERT') THEN
214       -- Call all the procedures related to Before Insert.
215       IF ( get_pk_for_validation(
216              new_references.run_prms_id
217            )
218          ) THEN
219         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
220         igs_ge_msg_stack.add;
221         app_exception.raise_exception;
222       END IF;
223       check_parent_existance;
224     ELSIF (p_action = 'UPDATE') THEN
225       -- Call all the procedures related to Before Update.
226       check_parent_existance;
227     ELSIF (p_action = 'VALIDATE_INSERT') THEN
228       -- Call all the procedures related to Before Insert.
229       IF ( get_pk_for_validation (
230              new_references.run_prms_id
231            )
232          ) THEN
233         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
234         igs_ge_msg_stack.add;
235         app_exception.raise_exception;
236       END IF;
237     END IF;
238 
239   END before_dml;
240 
241 
242   PROCEDURE insert_row (
243     x_rowid                             IN OUT NOCOPY VARCHAR2,
244     x_run_prms_id                       IN OUT NOCOPY NUMBER,
245     x_extract_run_id                    IN     NUMBER,
246     x_param_type                        IN     VARCHAR2,
247     x_exclude                           IN     VARCHAR2,
248     x_only                              IN     VARCHAR2,
249     x_mode                              IN     VARCHAR2
250   ) AS
251   /*
252   ||  Created By : rgopalan
253   ||  Created On : 15-JUN-2001
254   ||  Purpose : Handles the INSERT DML logic for the table.
255   ||  Known limitations, enhancements or remarks :
256   ||  Change History :
257   ||  Who             When            What
258   ||  (reverse chronological order - newest change first)
259   */
260     CURSOR c IS
261       SELECT   rowid
262       FROM     igs_he_ext_run_prms
263       WHERE    run_prms_id                       = x_run_prms_id;
264 
265     x_last_update_date           DATE;
266     x_last_updated_by            NUMBER;
267     x_last_update_login          NUMBER;
268 
269   BEGIN
270 
271     x_last_update_date := SYSDATE;
272     IF (x_mode = 'I') THEN
273       x_last_updated_by := 1;
274       x_last_update_login := 0;
275     ELSIF (x_mode = 'R') THEN
276       x_last_updated_by := fnd_global.user_id;
277       IF (x_last_updated_by IS NULL) THEN
278         x_last_updated_by := -1;
279       END IF;
280       x_last_update_login := fnd_global.login_id;
281       IF (x_last_update_login IS NULL) THEN
282         x_last_update_login := -1;
283       END IF;
284     ELSE
285       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
286       igs_ge_msg_stack.add;
287       app_exception.raise_exception;
288     END IF;
289 
290     SELECT    igs_he_ext_run_prms_s.NEXTVAL
291     INTO      x_run_prms_id
292     FROM      dual;
293 
294     before_dml(
295       p_action                            => 'INSERT',
296       x_rowid                             => x_rowid,
297       x_run_prms_id                       => x_run_prms_id,
298       x_extract_run_id                    => x_extract_run_id,
299       x_param_type                        => x_param_type,
300       x_exclude                           => x_exclude,
301       x_only                              => x_only,
302       x_creation_date                     => x_last_update_date,
303       x_created_by                        => x_last_updated_by,
304       x_last_update_date                  => x_last_update_date,
305       x_last_updated_by                   => x_last_updated_by,
306       x_last_update_login                 => x_last_update_login
307     );
308 
309     INSERT INTO igs_he_ext_run_prms (
310       run_prms_id,
311       extract_run_id,
312       param_type,
313       exclude,
314       only,
315       creation_date,
316       created_by,
317       last_update_date,
318       last_updated_by,
319       last_update_login
320     ) VALUES (
321       new_references.run_prms_id,
322       new_references.extract_run_id,
323       new_references.param_type,
324       new_references.exclude,
325       new_references.only,
326       x_last_update_date,
327       x_last_updated_by,
328       x_last_update_date,
329       x_last_updated_by,
330       x_last_update_login
331     );
332 
333     OPEN c;
334     FETCH c INTO x_rowid;
335     IF (c%NOTFOUND) THEN
336       CLOSE c;
337       RAISE NO_DATA_FOUND;
338     END IF;
339     CLOSE c;
340 
341   END insert_row;
342 
343 
344   PROCEDURE lock_row (
345     x_rowid                             IN     VARCHAR2,
346     x_run_prms_id                       IN     NUMBER,
347     x_extract_run_id                    IN     NUMBER,
348     x_param_type                        IN     VARCHAR2,
349     x_exclude                           IN     VARCHAR2,
350     x_only                              IN     VARCHAR2
351   ) AS
352   /*
353   ||  Created By : rgopalan
354   ||  Created On : 15-JUN-2001
355   ||  Purpose : Handles the LOCK mechanism for the table.
356   ||  Known limitations, enhancements or remarks :
357   ||  Change History :
358   ||  Who             When            What
359   ||  (reverse chronological order - newest change first)
360   */
361     CURSOR c1 IS
362       SELECT
363         extract_run_id,
364         param_type,
365         exclude,
366         only
367       FROM  igs_he_ext_run_prms
368       WHERE rowid = x_rowid
369       FOR UPDATE NOWAIT;
370 
371     tlinfo c1%ROWTYPE;
372 
373   BEGIN
374 
375     OPEN c1;
376     FETCH c1 INTO tlinfo;
377     IF (c1%notfound) THEN
378       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
379       igs_ge_msg_stack.add;
380       CLOSE c1;
381       app_exception.raise_exception;
382       RETURN;
383     END IF;
384     CLOSE c1;
385 
386     IF (
387         (tlinfo.extract_run_id = x_extract_run_id)
388         AND (tlinfo.param_type = x_param_type)
389         AND ((tlinfo.exclude = x_exclude) OR ((tlinfo.exclude IS NULL) AND (X_exclude IS NULL)))
390         AND ((tlinfo.only = x_only) OR ((tlinfo.only IS NULL) AND (X_only IS NULL)))
391        ) THEN
392       NULL;
393     ELSE
394       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
395       igs_ge_msg_stack.add;
396       app_exception.raise_exception;
397     END IF;
398 
399     RETURN;
400 
401   END lock_row;
402 
403 
404   PROCEDURE update_row (
405     x_rowid                             IN     VARCHAR2,
406     x_run_prms_id                       IN     NUMBER,
407     x_extract_run_id                    IN     NUMBER,
408     x_param_type                        IN     VARCHAR2,
409     x_exclude                           IN     VARCHAR2,
410     x_only                              IN     VARCHAR2,
411     x_mode                              IN     VARCHAR2
412   ) AS
413   /*
414   ||  Created By : rgopalan
415   ||  Created On : 15-JUN-2001
416   ||  Purpose : Handles the UPDATE DML logic for the table.
417   ||  Known limitations, enhancements or remarks :
418   ||  Change History :
419   ||  Who             When            What
420   ||  (reverse chronological order - newest change first)
421   */
422     x_last_update_date           DATE ;
423     x_last_updated_by            NUMBER;
424     x_last_update_login          NUMBER;
425 
426   BEGIN
427 
428     x_last_update_date := SYSDATE;
429     IF (X_MODE = 'I') THEN
430       x_last_updated_by := 1;
431       x_last_update_login := 0;
432     ELSIF (x_mode = 'R') THEN
433       x_last_updated_by := fnd_global.user_id;
434       IF x_last_updated_by IS NULL THEN
435         x_last_updated_by := -1;
436       END IF;
437       x_last_update_login := fnd_global.login_id;
438       IF (x_last_update_login IS NULL) THEN
439         x_last_update_login := -1;
440       END IF;
441     ELSE
442       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
443       igs_ge_msg_stack.add;
444       app_exception.raise_exception;
445     END IF;
446 
447     before_dml(
448       p_action                            => 'UPDATE',
449       x_rowid                             => x_rowid,
450       x_run_prms_id                       => x_run_prms_id,
451       x_extract_run_id                    => x_extract_run_id,
452       x_param_type                        => x_param_type,
453       x_exclude                           => x_exclude,
454       x_only                              => x_only,
455       x_creation_date                     => x_last_update_date,
456       x_created_by                        => x_last_updated_by,
457       x_last_update_date                  => x_last_update_date,
458       x_last_updated_by                   => x_last_updated_by,
459       x_last_update_login                 => x_last_update_login
460     );
461 
462     UPDATE igs_he_ext_run_prms
463       SET
464         extract_run_id                    = new_references.extract_run_id,
465         param_type                        = new_references.param_type,
466         exclude                           = new_references.exclude,
467         only                              = new_references.only,
468         last_update_date                  = x_last_update_date,
469         last_updated_by                   = x_last_updated_by,
470         last_update_login                 = x_last_update_login
471       WHERE rowid = x_rowid;
472 
473     IF (SQL%NOTFOUND) THEN
474       RAISE NO_DATA_FOUND;
475     END IF;
476 
477   END update_row;
478 
479 
480   PROCEDURE add_row (
481     x_rowid                             IN OUT NOCOPY VARCHAR2,
482     x_run_prms_id                       IN OUT NOCOPY NUMBER,
483     x_extract_run_id                    IN     NUMBER,
484     x_param_type                        IN     VARCHAR2,
485     x_exclude                           IN     VARCHAR2,
486     x_only                              IN     VARCHAR2,
487     x_mode                              IN     VARCHAR2
488   ) AS
489   /*
490   ||  Created By : rgopalan
491   ||  Created On : 15-JUN-2001
492   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
493   ||  Known limitations, enhancements or remarks :
494   ||  Change History :
495   ||  Who             When            What
496   ||  (reverse chronological order - newest change first)
497   */
498     CURSOR c1 IS
499       SELECT   rowid
500       FROM     igs_he_ext_run_prms
501       WHERE    run_prms_id                       = x_run_prms_id;
502 
503   BEGIN
504 
505     OPEN c1;
506     FETCH c1 INTO x_rowid;
507     IF (c1%NOTFOUND) THEN
508       CLOSE c1;
509 
510       insert_row (
511         x_rowid,
512         x_run_prms_id,
513         x_extract_run_id,
514         x_param_type,
515         x_exclude,
516         x_only,
517         x_mode
518       );
519       RETURN;
520     END IF;
521     CLOSE c1;
522 
523     update_row (
524       x_rowid,
525       x_run_prms_id,
526       x_extract_run_id,
527       x_param_type,
528       x_exclude,
529       x_only,
530       x_mode
531     );
532 
533   END add_row;
534 
535 
536   PROCEDURE delete_row (
537     x_rowid IN VARCHAR2
538   ) AS
539   /*
540   ||  Created By : rgopalan
541   ||  Created On : 15-JUN-2001
542   ||  Purpose : Handles the DELETE DML logic for the table.
543   ||  Known limitations, enhancements or remarks :
544   ||  Change History :
545   ||  Who             When            What
546   ||  (reverse chronological order - newest change first)
547   */
548   BEGIN
549 
550     before_dml (
551       p_action => 'DELETE',
552       x_rowid => x_rowid
553     );
554 
555     DELETE FROM igs_he_ext_run_prms
556     WHERE rowid = x_rowid;
557 
558     IF (SQL%NOTFOUND) THEN
559       RAISE NO_DATA_FOUND;
560     END IF;
561 
562   END delete_row;
563 
564 
565 END igs_he_ext_run_prms_pkg;