DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_EN_UNIT_SET_MAP_PKG

Source


1 PACKAGE BODY igs_en_unit_set_map_pkg AS
2 /* $Header: IGSEI70B.pls 115.1 2003/06/06 11:42:19 myoganat noship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_en_unit_set_map%ROWTYPE;
6   new_references igs_en_unit_set_map%ROWTYPE;
7 
8   PROCEDURE set_column_values (
9     p_action                            IN     VARCHAR2,
10     x_rowid                             IN     VARCHAR2,
11     x_mapping_set_cd                    IN     VARCHAR2,
12     x_sequence_no                       IN     NUMBER,
13     x_stream_unit_set_cd                IN     VARCHAR2,
14     x_us_version_number                 IN     NUMBER,
15     x_creation_date                     IN     DATE,
16     x_created_by                        IN     NUMBER,
17     x_last_update_date                  IN     DATE,
18     x_last_updated_by                   IN     NUMBER,
19     x_last_update_login                 IN     NUMBER
20   ) AS
21   /*
22   ||  Created By : [email protected]
23   ||  Created On : 02-JUN-2003
24   ||  Purpose : Initialises the Old and New references for the columns of the table.
25   ||  Known limitations, enhancements or remarks :
26   ||  Change History :
27   ||  Who             When            What
28   ||  (reverse chronological order - newest change first)
29   */
30 
31     CURSOR cur_old_ref_values IS
32       SELECT   *
33       FROM     igs_en_unit_set_map
34       WHERE    rowid = x_rowid;
35 
36   BEGIN
37 
38     l_rowid := x_rowid;
39 
40     -- Code for setting the Old and New Reference Values.
41     -- Populate Old Values.
42     OPEN cur_old_ref_values;
43     FETCH cur_old_ref_values INTO old_references;
44     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
45       CLOSE cur_old_ref_values;
46       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
47       igs_ge_msg_stack.add;
48       app_exception.raise_exception;
49       RETURN;
50     END IF;
51     CLOSE cur_old_ref_values;
52 
53     -- Populate New Values.
54     new_references.mapping_set_cd                    := x_mapping_set_cd;
55     new_references.sequence_no                       := x_sequence_no;
56     new_references.stream_unit_set_cd                := x_stream_unit_set_cd;
57     new_references.us_version_number                 := x_us_version_number;
58 
59     IF (p_action = 'UPDATE') THEN
60       new_references.creation_date                   := old_references.creation_date;
61       new_references.created_by                      := old_references.created_by;
62     ELSE
63       new_references.creation_date                   := x_creation_date;
64       new_references.created_by                      := x_created_by;
65     END IF;
66 
67     new_references.last_update_date                  := x_last_update_date;
68     new_references.last_updated_by                   := x_last_updated_by;
69     new_references.last_update_login                 := x_last_update_login;
70 
71   END set_column_values;
72 
73 
74   PROCEDURE check_parent_existance AS
75   /*
76   ||  Created By : [email protected]
77   ||  Created On : 02-JUN-2003
78   ||  Purpose : Checks for the existance of Parent records.
79   ||  Known limitations, enhancements or remarks :
80   ||  Change History :
81   ||  Who             When            What
82   ||  (reverse chronological order - newest change first)
83   */
84   BEGIN
85 
86     IF (((old_references.stream_unit_set_cd = new_references.stream_unit_set_cd) AND
87          (old_references.us_version_number = new_references.us_version_number)) OR
88         ((new_references.stream_unit_set_cd IS NULL) OR
89          (new_references.us_version_number IS NULL))) THEN
90       NULL;
91     ELSIF NOT igs_en_unit_set_pkg.get_pk_for_validation (
92                 new_references.stream_unit_set_cd,
93                 new_references.us_version_number
94               ) THEN
95       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
96       igs_ge_msg_stack.add;
97       app_exception.raise_exception;
98     END IF;
99 
100     IF (((old_references.mapping_set_cd = new_references.mapping_set_cd) AND
101          (old_references.sequence_no = new_references.sequence_no)) OR
102         ((new_references.mapping_set_cd IS NULL) OR
103          (new_references.sequence_no IS NULL))) THEN
104       NULL;
105     ELSIF NOT igs_ps_us_prenr_cfg_pkg.get_pk_for_validation (
106                 new_references.mapping_set_cd,
107                 new_references.sequence_no
108               ) THEN
109       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
110       igs_ge_msg_stack.add;
111       app_exception.raise_exception;
112     END IF;
113 
114   END check_parent_existance;
115 
116 
117   FUNCTION get_pk_for_validation (
118     x_mapping_set_cd                    IN     VARCHAR2,
119     x_sequence_no                       IN     NUMBER,
120     x_stream_unit_set_cd                IN     VARCHAR2,
121     x_us_version_number                 IN     NUMBER
122   ) RETURN BOOLEAN AS
123   /*
124   ||  Created By : [email protected]
125   ||  Created On : 02-JUN-2003
126   ||  Purpose : Validates the Primary Key of the table.
127   ||  Known limitations, enhancements or remarks :
128   ||  Change History :
129   ||  Who             When            What
130   ||  (reverse chronological order - newest change first)
131   */
132     CURSOR cur_rowid IS
133       SELECT   rowid
134       FROM     igs_en_unit_set_map
135       WHERE    mapping_set_cd = x_mapping_set_cd
136       AND      sequence_no = x_sequence_no
137       AND      stream_unit_set_cd = x_stream_unit_set_cd
138       AND      us_version_number = x_us_version_number
139       FOR UPDATE NOWAIT;
140 
141     lv_rowid cur_rowid%RowType;
142 
143   BEGIN
144 
145     OPEN cur_rowid;
146     FETCH cur_rowid INTO lv_rowid;
147     IF (cur_rowid%FOUND) THEN
148       CLOSE cur_rowid;
149       RETURN(TRUE);
150     ELSE
151       CLOSE cur_rowid;
152       RETURN(FALSE);
153     END IF;
154 
155   END get_pk_for_validation;
156 
157 
158   PROCEDURE get_fk_igs_en_unit_set (
159     x_unit_set_cd                       IN     VARCHAR2,
160     x_version_number                    IN     NUMBER
161   ) AS
162   /*
163   ||  Created By : [email protected]
164   ||  Created On : 02-JUN-2003
165   ||  Purpose : Validates the Foreign Keys for the table.
166   ||  Known limitations, enhancements or remarks :
167   ||  Change History :
168   ||  Who             When            What
169   ||  (reverse chronological order - newest change first)
170   */
171     CURSOR cur_rowid IS
172       SELECT   rowid
173       FROM     igs_en_unit_set_map
174       WHERE   ((stream_unit_set_cd = x_unit_set_cd) AND
175                (us_version_number = x_version_number));
176 
177     lv_rowid cur_rowid%RowType;
178 
179   BEGIN
180 
181     OPEN cur_rowid;
182     FETCH cur_rowid INTO lv_rowid;
183     IF (cur_rowid%FOUND) THEN
184       CLOSE cur_rowid;
185       fnd_message.set_name ('IGS', 'IGS_PS_PUPC_US_FK1');
186       igs_ge_msg_stack.add;
187       app_exception.raise_exception;
188       RETURN;
189     END IF;
190     CLOSE cur_rowid;
191 
192   END get_fk_igs_en_unit_set;
193 
194 
195   PROCEDURE get_fk_igs_ps_us_prenr_cfg (
196     x_mapping_set_cd                    IN     VARCHAR2,
197     x_sequence_no                       IN     NUMBER
198   ) AS
199   /*
200   ||  Created By : [email protected]
201   ||  Created On : 02-JUN-2003
202   ||  Purpose : Validates the Foreign Keys for the table.
203   ||  Known limitations, enhancements or remarks :
204   ||  Change History :
205   ||  Who             When            What
206   ||  (reverse chronological order - newest change first)
207   */
208     CURSOR cur_rowid IS
209       SELECT   rowid
210       FROM     igs_en_unit_set_map
211       WHERE   ((mapping_set_cd = x_mapping_set_cd) AND
212                (sequence_no = x_sequence_no));
213 
214     lv_rowid cur_rowid%RowType;
215 
216   BEGIN
217 
218     OPEN cur_rowid;
219     FETCH cur_rowid INTO lv_rowid;
220     IF (cur_rowid%FOUND) THEN
221       CLOSE cur_rowid;
222       fnd_message.set_name ('IGS', 'IGS_EN_UPC_USM_FK');
223       igs_ge_msg_stack.add;
224       app_exception.raise_exception;
225       RETURN;
226     END IF;
227     CLOSE cur_rowid;
228 
229   END get_fk_igs_ps_us_prenr_cfg;
230 
231 
232   PROCEDURE before_dml (
233     p_action                            IN     VARCHAR2,
234     x_rowid                             IN     VARCHAR2,
235     x_mapping_set_cd                    IN     VARCHAR2,
236     x_sequence_no                       IN     NUMBER,
237     x_stream_unit_set_cd                IN     VARCHAR2,
238     x_us_version_number                 IN     NUMBER,
239     x_creation_date                     IN     DATE,
240     x_created_by                        IN     NUMBER,
241     x_last_update_date                  IN     DATE,
242     x_last_updated_by                   IN     NUMBER,
243     x_last_update_login                 IN     NUMBER
244   ) AS
245   /*
246   ||  Created By : [email protected]
247   ||  Created On : 02-JUN-2003
248   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
249   ||            Trigger Handlers for the table, before any DML operation.
250   ||  Known limitations, enhancements or remarks :
251   ||  Change History :
252   ||  Who             When            What
253   ||  (reverse chronological order - newest change first)
254   */
255   BEGIN
256 
257     set_column_values (
258       p_action,
259       x_rowid,
260       x_mapping_set_cd,
261       x_sequence_no,
262       x_stream_unit_set_cd,
263       x_us_version_number,
264       x_creation_date,
265       x_created_by,
266       x_last_update_date,
267       x_last_updated_by,
268       x_last_update_login
269     );
270 
271     IF (p_action = 'INSERT') THEN
272       -- Call all the procedures related to Before Insert.
273       IF ( get_pk_for_validation(
274              new_references.mapping_set_cd,
275              new_references.sequence_no,
276              new_references.stream_unit_set_cd,
277              new_references.us_version_number
278            )
279          ) THEN
280         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
281         igs_ge_msg_stack.add;
282         app_exception.raise_exception;
283       END IF;
284       check_parent_existance;
285     ELSIF (p_action = 'UPDATE') THEN
286       -- Call all the procedures related to Before Update.
287       check_parent_existance;
288     ELSIF (p_action = 'VALIDATE_INSERT') THEN
289       -- Call all the procedures related to Before Insert.
290       IF ( get_pk_for_validation (
291              new_references.mapping_set_cd,
292              new_references.sequence_no,
293              new_references.stream_unit_set_cd,
294              new_references.us_version_number
295            )
296          ) THEN
297         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
298         igs_ge_msg_stack.add;
299         app_exception.raise_exception;
300       END IF;
301     END IF;
302 
303   END before_dml;
304 
305 
306   PROCEDURE insert_row (
307     x_rowid                             IN OUT NOCOPY VARCHAR2,
308     x_mapping_set_cd                    IN     VARCHAR2,
309     x_sequence_no                       IN     NUMBER,
310     x_stream_unit_set_cd                IN     VARCHAR2,
311     x_us_version_number                 IN     NUMBER,
312     x_mode                              IN     VARCHAR2
313   ) AS
314   /*
315   ||  Created By : [email protected]
316   ||  Created On : 02-JUN-2003
317   ||  Purpose : Handles the INSERT DML logic for the table.
318   ||  Known limitations, enhancements or remarks :
319   ||  Change History :
320   ||  Who             When            What
321   ||  (reverse chronological order - newest change first)
322   */
323 
324     x_last_update_date           DATE;
325     x_last_updated_by            NUMBER;
326     x_last_update_login          NUMBER;
327 
328   BEGIN
329 
330     x_last_update_date := SYSDATE;
331     IF (x_mode = 'I') THEN
332       x_last_updated_by := 1;
333       x_last_update_login := 0;
334     ELSIF (x_mode = 'R') THEN
335       x_last_updated_by := fnd_global.user_id;
336       IF (x_last_updated_by IS NULL) THEN
337         x_last_updated_by := -1;
338       END IF;
339       x_last_update_login := fnd_global.login_id;
340       IF (x_last_update_login IS NULL) THEN
341         x_last_update_login := -1;
342       END IF;
343     ELSE
344       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
345       fnd_message.set_token ('ROUTINE', 'IGS_EN_UNIT_SET_MAP_PKG.INSERT_ROW');
346       igs_ge_msg_stack.add;
347       app_exception.raise_exception;
348     END IF;
349 
350     before_dml(
351       p_action                            => 'INSERT',
352       x_rowid                             => x_rowid,
353       x_mapping_set_cd                    => x_mapping_set_cd,
354       x_sequence_no                       => x_sequence_no,
355       x_stream_unit_set_cd                => x_stream_unit_set_cd,
356       x_us_version_number                 => x_us_version_number,
357       x_creation_date                     => x_last_update_date,
358       x_created_by                        => x_last_updated_by,
359       x_last_update_date                  => x_last_update_date,
360       x_last_updated_by                   => x_last_updated_by,
361       x_last_update_login                 => x_last_update_login
362     );
363 
364     INSERT INTO igs_en_unit_set_map (
365       mapping_set_cd,
366       sequence_no,
367       stream_unit_set_cd,
368       us_version_number,
369       creation_date,
370       created_by,
371       last_update_date,
372       last_updated_by,
373       last_update_login
374     ) VALUES (
375       new_references.mapping_set_cd,
376       new_references.sequence_no,
377       new_references.stream_unit_set_cd,
378       new_references.us_version_number,
379       x_last_update_date,
380       x_last_updated_by,
381       x_last_update_date,
382       x_last_updated_by,
383       x_last_update_login
384     ) RETURNING ROWID INTO x_rowid;
385 
386   END insert_row;
387 
388 
389   PROCEDURE lock_row (
390     x_rowid                             IN     VARCHAR2,
391     x_mapping_set_cd                    IN     VARCHAR2,
392     x_sequence_no                       IN     NUMBER,
393     x_stream_unit_set_cd                IN     VARCHAR2,
394     x_us_version_number                 IN     NUMBER
395   ) AS
396   /*
397   ||  Created By : [email protected]
398   ||  Created On : 02-JUN-2003
399   ||  Purpose : Handles the LOCK mechanism for the table.
400   ||  Known limitations, enhancements or remarks :
401   ||  Change History :
402   ||  Who             When            What
403   ||  (reverse chronological order - newest change first)
404   */
405     CURSOR c1 IS
406       SELECT
407         rowid
408       FROM  igs_en_unit_set_map
409       WHERE rowid = x_rowid
410       FOR UPDATE NOWAIT;
411 
412     tlinfo c1%ROWTYPE;
413 
414   BEGIN
415 
416     OPEN c1;
417     FETCH c1 INTO tlinfo;
418     IF (c1%notfound) THEN
419       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
420       igs_ge_msg_stack.add;
421       CLOSE c1;
422       app_exception.raise_exception;
423       RETURN;
424     END IF;
425     CLOSE c1;
426 
427 
428     RETURN;
429 
430   END lock_row;
431 
432 
433   PROCEDURE delete_row (
434     x_rowid IN VARCHAR2
435   ) AS
436   /*
437   ||  Created By : [email protected]
438   ||  Created On : 02-JUN-2003
439   ||  Purpose : Handles the DELETE DML logic for the table.
440   ||  Known limitations, enhancements or remarks :
441   ||  Change History :
442   ||  Who             When            What
443   ||  (reverse chronological order - newest change first)
444   */
445   BEGIN
446 
447     before_dml (
448       p_action => 'DELETE',
449       x_rowid => x_rowid
450     );
451 
452     DELETE FROM igs_en_unit_set_map
453     WHERE rowid = x_rowid;
454 
455     IF (SQL%NOTFOUND) THEN
456       RAISE NO_DATA_FOUND;
457     END IF;
458 
459   END delete_row;
460 
461  END igs_en_unit_set_map_pkg;