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