[Home] [Help]
PACKAGE BODY: APPS.IGF_GR_RFMS_BATCH_PKG
Source
1 PACKAGE BODY igf_gr_rfms_batch_pkg AS
2 /* $Header: IGFGI15B.pls 115.6 2002/11/28 14:18:45 nsidana ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igf_gr_rfms_batch_all%ROWTYPE;
6 new_references igf_gr_rfms_batch_all%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 ,
11 x_rfmb_id IN NUMBER ,
12 x_batch_id IN VARCHAR2 ,
13 x_data_rec_length IN VARCHAR2 ,
14 x_ope_id IN VARCHAR2 ,
15 x_software_providor IN VARCHAR2 ,
16 x_rfms_process_dt IN DATE ,
17 x_rfms_ack_dt IN DATE ,
18 x_rfms_ack_batch_id IN VARCHAR2 ,
19 x_reject_reason IN VARCHAR2 ,
20 x_creation_date IN DATE ,
21 x_created_by IN NUMBER ,
22 x_last_update_date IN DATE ,
23 x_last_updated_by IN NUMBER ,
24 x_last_update_login IN NUMBER
25 ) AS
26 /*
27 || Created By : cdcruz
28 || Created On : 10-JAN-2001
29 || Purpose : Initialises the Old and New references for the columns of the table.
30 || Known limitations, enhancements or remarks :
31 || Change History :
32 || Who When What
33 || (reverse chronological order - newest change first)
34 */
35
36 CURSOR cur_old_ref_values IS
37 SELECT *
38 FROM igf_gr_rfms_batch_all
39 WHERE rowid = x_rowid;
40
41 BEGIN
42
43 l_rowid := x_rowid;
44
45 -- Code for setting the Old and New Reference Values.
46 -- Populate Old Values.
47 OPEN cur_old_ref_values;
48 FETCH cur_old_ref_values INTO old_references;
49 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
50 CLOSE cur_old_ref_values;
51 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
52 igs_ge_msg_stack.add;
53 app_exception.raise_exception;
54 RETURN;
55 END IF;
56 CLOSE cur_old_ref_values;
57
58 -- Populate New Values.
59 new_references.rfmb_id := x_rfmb_id;
60 new_references.batch_id := x_batch_id;
61 new_references.data_rec_length := x_data_rec_length;
62 new_references.ope_id := x_ope_id;
63 new_references.software_providor := x_software_providor;
64 new_references.rfms_process_dt := x_rfms_process_dt;
65 new_references.rfms_ack_dt := x_rfms_ack_dt;
66 new_references.rfms_ack_batch_id := x_rfms_ack_batch_id;
67 new_references.reject_reason := x_reject_reason;
68
69 IF (p_action = 'UPDATE') THEN
70 new_references.creation_date := old_references.creation_date;
71 new_references.created_by := old_references.created_by;
72 ELSE
73 new_references.creation_date := x_creation_date;
74 new_references.created_by := x_created_by;
75 END IF;
76
77 new_references.last_update_date := x_last_update_date;
78 new_references.last_updated_by := x_last_updated_by;
79 new_references.last_update_login := x_last_update_login;
80
81 END set_column_values;
82
83
84 FUNCTION get_pk_for_validation (
85 x_rfmb_id IN NUMBER
86 ) RETURN BOOLEAN AS
87 /*
88 || Created By : cdcruz
89 || Created On : 10-JAN-2001
90 || Purpose : Validates the Primary Key of the table.
91 || Known limitations, enhancements or remarks :
92 || Change History :
93 || Who When What
94 || (reverse chronological order - newest change first)
95 */
96 CURSOR cur_rowid IS
97 SELECT rowid
98 FROM igf_gr_rfms_batch_all
99 WHERE rfmb_id = x_rfmb_id
100 FOR UPDATE NOWAIT;
101
102 lv_rowid cur_rowid%RowType;
103
104 BEGIN
105
106 OPEN cur_rowid;
107 FETCH cur_rowid INTO lv_rowid;
108 IF (cur_rowid%FOUND) THEN
109 CLOSE cur_rowid;
110 RETURN(TRUE);
111 ELSE
112 CLOSE cur_rowid;
113 RETURN(FALSE);
114 END IF;
115
116 END get_pk_for_validation;
117
118 PROCEDURE check_child_existance IS
119 /*
120 || Created By : cdcruz
121 || Created On : 10-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 igf_gr_rfms_pkg.get_fk_igf_gr_rfms_batch (
132 old_references.rfmb_id
133 );
134
135 igf_gr_rfms_disb_pkg.get_fk_igf_gr_rfms_batch (
136 old_references.rfmb_id
137 );
138
139 END check_child_existance ;
140
141 PROCEDURE before_dml (
142 p_action IN VARCHAR2,
143 x_rowid IN VARCHAR2 ,
144 x_rfmb_id IN NUMBER ,
145 x_batch_id IN VARCHAR2 ,
146 x_data_rec_length IN VARCHAR2 ,
147 x_ope_id IN VARCHAR2 ,
148 x_software_providor IN VARCHAR2 ,
149 x_rfms_process_dt IN DATE ,
150 x_rfms_ack_dt IN DATE ,
151 x_rfms_ack_batch_id IN VARCHAR2 ,
152 x_reject_reason IN VARCHAR2 ,
153 x_creation_date IN DATE ,
154 x_created_by IN NUMBER ,
155 x_last_update_date IN DATE ,
156 x_last_updated_by IN NUMBER ,
157 x_last_update_login IN NUMBER
158 ) AS
159 /*
160 || Created By : cdcruz
161 || Created On : 10-JAN-2001
162 || Purpose : Initialises the columns, Checks Constraints, Calls the
163 || Trigger Handlers for the table, before any DML operation.
164 || Known limitations, enhancements or remarks :
165 || Change History :
166 || Who When What
167 || (reverse chronological order - newest change first)
168 */
169 BEGIN
170
171 set_column_values (
172 p_action,
173 x_rowid,
174 x_rfmb_id,
175 x_batch_id,
176 x_data_rec_length,
177 x_ope_id,
178 x_software_providor,
179 x_rfms_process_dt,
180 x_rfms_ack_dt,
181 x_rfms_ack_batch_id,
182 x_reject_reason,
183 x_creation_date,
184 x_created_by,
185 x_last_update_date,
186 x_last_updated_by,
187 x_last_update_login
188 );
189
190 IF (p_action = 'INSERT') THEN
191 -- Call all the procedures related to Before Insert.
192 IF ( get_pk_for_validation(
193 new_references.rfmb_id
194 )
195 ) THEN
196 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
197 igs_ge_msg_stack.add;
198 app_exception.raise_exception;
199 END IF;
200 ELSIF (p_action = 'VALIDATE_INSERT') THEN
201 -- Call all the procedures related to Before Insert.
202 IF ( get_pk_for_validation (
203 new_references.rfmb_id
204 )
205 ) THEN
206 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
207 igs_ge_msg_stack.add;
208 app_exception.raise_exception;
209 END IF;
210
211 ELSIF (p_action = 'DELETE') THEN
212 check_child_existance ;
213
214 ELSIF (p_action = 'VALIDATE_DELETE') THEN
215 check_child_existance ;
216
217
218
219 END IF;
220
221 END before_dml;
222
223
224 PROCEDURE insert_row (
225 x_rowid IN OUT NOCOPY VARCHAR2,
226 x_rfmb_id IN OUT NOCOPY NUMBER,
227 x_batch_id IN VARCHAR2,
228 x_data_rec_length IN VARCHAR2,
229 x_ope_id IN VARCHAR2,
230 x_software_providor IN VARCHAR2,
231 x_rfms_process_dt IN DATE,
232 x_rfms_ack_dt IN DATE,
233 x_rfms_ack_batch_id IN VARCHAR2,
234 x_reject_reason IN VARCHAR2,
235 x_mode IN VARCHAR2
236 ) AS
237 /*
238 || Created By : cdcruz
239 || Created On : 10-JAN-2001
240 || Purpose : Handles the INSERT DML logic for the table.
241 || Known limitations, enhancements or remarks :
242 || Change History :
243 || Who When What
244 || (reverse chronological order - newest change first)
245 */
246 CURSOR c IS
247 SELECT rowid
248 FROM igf_gr_rfms_batch_all
249 WHERE rfmb_id = x_rfmb_id;
250
251 x_last_update_date DATE;
252 x_last_updated_by NUMBER;
253 x_last_update_login NUMBER;
254 x_request_id NUMBER;
255 x_program_id NUMBER;
256 x_program_application_id NUMBER;
257 x_program_update_date DATE;
258 l_org_id igf_gr_rfms_batch_all.org_id%TYPE DEFAULT igf_aw_gen.get_org_id;
259
260 BEGIN
261
262 x_last_update_date := SYSDATE;
263 IF (x_mode = 'I') THEN
264 x_last_updated_by := 1;
265 x_last_update_login := 0;
266 ELSIF (x_mode = 'R') THEN
267 x_last_updated_by := fnd_global.user_id;
268 IF (x_last_updated_by IS NULL) THEN
269 x_last_updated_by := -1;
270 END IF;
271 x_last_update_login := fnd_global.login_id;
272 IF (x_last_update_login IS NULL) THEN
273 x_last_update_login := -1;
274 END IF;
275 x_request_id := fnd_global.conc_request_id;
276 x_program_id := fnd_global.conc_program_id;
277 x_program_application_id := fnd_global.prog_appl_id;
278
279 IF (x_request_id = -1) THEN
280 x_request_id := NULL;
281 x_program_id := NULL;
282 x_program_application_id := NULL;
283 x_program_update_date := NULL;
284 ELSE
285 x_program_update_date := SYSDATE;
286 END IF;
287 ELSE
288 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
289 igs_ge_msg_stack.add;
290 app_exception.raise_exception;
291 END IF;
292
293 SELECT igf_gr_rfms_batch_s.nextval into x_rfmb_id
294 FROM dual ;
295
296 before_dml(
297 p_action => 'INSERT',
298 x_rowid => x_rowid,
299 x_rfmb_id => x_rfmb_id,
300 x_batch_id => x_batch_id,
301 x_data_rec_length => x_data_rec_length,
302 x_ope_id => x_ope_id,
303 x_software_providor => x_software_providor,
304 x_rfms_process_dt => x_rfms_process_dt,
305 x_rfms_ack_dt => x_rfms_ack_dt,
306 x_rfms_ack_batch_id => x_rfms_ack_batch_id,
307 x_reject_reason => x_reject_reason,
308 x_creation_date => x_last_update_date,
309 x_created_by => x_last_updated_by,
310 x_last_update_date => x_last_update_date,
311 x_last_updated_by => x_last_updated_by,
312 x_last_update_login => x_last_update_login
313 );
314
315 INSERT INTO igf_gr_rfms_batch_all (
316 rfmb_id,
317 batch_id,
318 data_rec_length,
319 ope_id,
320 software_providor,
321 rfms_process_dt,
322 rfms_ack_dt,
323 rfms_ack_batch_id,
324 reject_reason,
325 creation_date,
326 created_by,
327 last_update_date,
328 last_updated_by,
329 last_update_login,
330 request_id,
331 program_id,
332 program_application_id,
333 program_update_date,
334 org_id
335 ) VALUES (
336 new_references.rfmb_id,
337 new_references.batch_id,
338 new_references.data_rec_length,
339 new_references.ope_id,
340 new_references.software_providor,
341 new_references.rfms_process_dt,
342 new_references.rfms_ack_dt,
343 new_references.rfms_ack_batch_id,
344 new_references.reject_reason,
345 x_last_update_date,
346 x_last_updated_by,
347 x_last_update_date,
348 x_last_updated_by,
349 x_last_update_login ,
350 x_request_id,
351 x_program_id,
352 x_program_application_id,
353 x_program_update_date,
354 l_org_id
355 );
356
357 OPEN c;
358 FETCH c INTO x_rowid;
359 IF (c%NOTFOUND) THEN
360 CLOSE c;
361 RAISE NO_DATA_FOUND;
362 END IF;
363 CLOSE c;
364
365 END insert_row;
366
367
368 PROCEDURE lock_row (
369 x_rowid IN VARCHAR2,
370 x_rfmb_id IN NUMBER,
371 x_batch_id IN VARCHAR2,
372 x_data_rec_length IN VARCHAR2,
373 x_ope_id IN VARCHAR2,
374 x_software_providor IN VARCHAR2,
375 x_rfms_process_dt IN DATE,
376 x_rfms_ack_dt IN DATE,
377 x_rfms_ack_batch_id IN VARCHAR2,
378 x_reject_reason IN VARCHAR2
379 ) AS
380 /*
381 || Created By : cdcruz
382 || Created On : 10-JAN-2001
383 || Purpose : Handles the LOCK mechanism for the table.
384 || Known limitations, enhancements or remarks :
385 || Change History :
386 || Who When What
387 || (reverse chronological order - newest change first)
388 */
389 CURSOR c1 IS
390 SELECT
391 batch_id,
392 data_rec_length,
393 ope_id,
394 software_providor,
395 rfms_process_dt,
396 rfms_ack_dt,
397 rfms_ack_batch_id,
398 reject_reason
399 FROM igf_gr_rfms_batch_all
400 WHERE rowid = x_rowid
401 FOR UPDATE NOWAIT;
402
403 tlinfo c1%ROWTYPE;
404
405 BEGIN
406
407 OPEN c1;
408 FETCH c1 INTO tlinfo;
409 IF (c1%notfound) THEN
410 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
411 igs_ge_msg_stack.add;
412 CLOSE c1;
413 app_exception.raise_exception;
414 RETURN;
415 END IF;
416 CLOSE c1;
417
418 IF (
419 ((tlinfo.batch_id = x_batch_id) OR ((tlinfo.batch_id IS NULL) AND (X_batch_id IS NULL)))
420 AND ((tlinfo.data_rec_length = x_data_rec_length) OR ((tlinfo.data_rec_length IS NULL) AND (X_data_rec_length IS NULL)))
421 AND ((tlinfo.ope_id = x_ope_id) OR ((tlinfo.ope_id IS NULL) AND (X_ope_id IS NULL)))
422 AND ((tlinfo.software_providor = x_software_providor) OR ((tlinfo.software_providor IS NULL) AND (X_software_providor IS NULL)))
423 AND ((tlinfo.rfms_process_dt = x_rfms_process_dt) OR ((tlinfo.rfms_process_dt IS NULL) AND (X_rfms_process_dt IS NULL)))
424 AND ((tlinfo.rfms_ack_dt = x_rfms_ack_dt) OR ((tlinfo.rfms_ack_dt IS NULL) AND (X_rfms_ack_dt IS NULL)))
425 AND ((tlinfo.rfms_ack_batch_id = x_rfms_ack_batch_id) OR ((tlinfo.rfms_ack_batch_id IS NULL) AND (X_rfms_ack_batch_id IS NULL)))
426 AND ((tlinfo.reject_reason = x_reject_reason) OR ((tlinfo.reject_reason IS NULL) AND (X_reject_reason IS NULL)))
427 ) THEN
428 NULL;
429 ELSE
430 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
431 igs_ge_msg_stack.add;
432 app_exception.raise_exception;
433 END IF;
434
435 RETURN;
436
437 END lock_row;
438
439
440 PROCEDURE update_row (
441 x_rowid IN VARCHAR2,
442 x_rfmb_id IN NUMBER,
443 x_batch_id IN VARCHAR2,
444 x_data_rec_length IN VARCHAR2,
445 x_ope_id IN VARCHAR2,
446 x_software_providor IN VARCHAR2,
447 x_rfms_process_dt IN DATE,
448 x_rfms_ack_dt IN DATE,
449 x_rfms_ack_batch_id IN VARCHAR2,
450 x_reject_reason IN VARCHAR2,
451 x_mode IN VARCHAR2
452 ) AS
453 /*
454 || Created By : cdcruz
455 || Created On : 10-JAN-2001
456 || Purpose : Handles the UPDATE DML logic for the table.
457 || Known limitations, enhancements or remarks :
458 || Change History :
459 || Who When What
460 || (reverse chronological order - newest change first)
461 */
462 x_last_update_date DATE ;
463 x_last_updated_by NUMBER;
464 x_last_update_login NUMBER;
465 x_request_id NUMBER;
466 x_program_id NUMBER;
467 x_program_application_id NUMBER;
468 x_program_update_date DATE;
469
470 BEGIN
471
472 x_last_update_date := SYSDATE;
473 IF (X_MODE = 'I') THEN
474 x_last_updated_by := 1;
475 x_last_update_login := 0;
476 ELSIF (x_mode = 'R') THEN
477 x_last_updated_by := fnd_global.user_id;
478 IF x_last_updated_by IS NULL THEN
479 x_last_updated_by := -1;
480 END IF;
481 x_last_update_login := fnd_global.login_id;
482 IF (x_last_update_login IS NULL) THEN
483 x_last_update_login := -1;
484 END IF;
485 ELSE
486 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
487 igs_ge_msg_stack.add;
488 app_exception.raise_exception;
489 END IF;
490
491 before_dml(
492 p_action => 'UPDATE',
493 x_rowid => x_rowid,
494 x_rfmb_id => x_rfmb_id,
495 x_batch_id => x_batch_id,
496 x_data_rec_length => x_data_rec_length,
497 x_ope_id => x_ope_id,
498 x_software_providor => x_software_providor,
499 x_rfms_process_dt => x_rfms_process_dt,
500 x_rfms_ack_dt => x_rfms_ack_dt,
501 x_rfms_ack_batch_id => x_rfms_ack_batch_id,
502 x_reject_reason => x_reject_reason,
503 x_creation_date => x_last_update_date,
504 x_created_by => x_last_updated_by,
505 x_last_update_date => x_last_update_date,
506 x_last_updated_by => x_last_updated_by,
507 x_last_update_login => x_last_update_login
508 );
509
510 IF (x_mode = 'R') THEN
511 x_request_id := fnd_global.conc_request_id;
512 x_program_id := fnd_global.conc_program_id;
513 x_program_application_id := fnd_global.prog_appl_id;
514 IF (x_request_id = -1) THEN
515 x_request_id := old_references.request_id;
516 x_program_id := old_references.program_id;
517 x_program_application_id := old_references.program_application_id;
518 x_program_update_date := old_references.program_update_date;
519 ELSE
520 x_program_update_date := SYSDATE;
521 END IF;
522 END IF;
523
524 UPDATE igf_gr_rfms_batch_all
525 SET
526 batch_id = new_references.batch_id,
527 data_rec_length = new_references.data_rec_length,
528 ope_id = new_references.ope_id,
529 software_providor = new_references.software_providor,
530 rfms_process_dt = new_references.rfms_process_dt,
531 rfms_ack_dt = new_references.rfms_ack_dt,
532 rfms_ack_batch_id = new_references.rfms_ack_batch_id,
533 reject_reason = new_references.reject_reason,
534 last_update_date = x_last_update_date,
535 last_updated_by = x_last_updated_by,
536 last_update_login = x_last_update_login ,
537 request_id = x_request_id,
538 program_id = x_program_id,
539 program_application_id = x_program_application_id,
540 program_update_date = x_program_update_date
541 WHERE rowid = x_rowid;
542
543 IF (SQL%NOTFOUND) THEN
544 RAISE NO_DATA_FOUND;
545 END IF;
546
547 END update_row;
548
549
550 PROCEDURE add_row (
551 x_rowid IN OUT NOCOPY VARCHAR2,
552 x_rfmb_id IN OUT NOCOPY NUMBER,
553 x_batch_id IN VARCHAR2,
554 x_data_rec_length IN VARCHAR2,
555 x_ope_id IN VARCHAR2,
556 x_software_providor IN VARCHAR2,
557 x_rfms_process_dt IN DATE,
558 x_rfms_ack_dt IN DATE,
559 x_rfms_ack_batch_id IN VARCHAR2,
560 x_reject_reason IN VARCHAR2,
561 x_mode IN VARCHAR2
562 ) AS
563 /*
564 || Created By : cdcruz
565 || Created On : 10-JAN-2001
566 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
567 || Known limitations, enhancements or remarks :
568 || Change History :
569 || Who When What
570 || (reverse chronological order - newest change first)
571 */
572 CURSOR c1 IS
573 SELECT rowid
574 FROM igf_gr_rfms_batch_all
575 WHERE rfmb_id = x_rfmb_id;
576
577 BEGIN
578
579 OPEN c1;
580 FETCH c1 INTO x_rowid;
581 IF (c1%NOTFOUND) THEN
582 CLOSE c1;
583
584 insert_row (
585 x_rowid,
586 x_rfmb_id,
587 x_batch_id,
588 x_data_rec_length,
589 x_ope_id,
590 x_software_providor,
591 x_rfms_process_dt,
592 x_rfms_ack_dt,
593 x_rfms_ack_batch_id,
594 x_reject_reason,
595 x_mode
596 );
597 RETURN;
598 END IF;
599 CLOSE c1;
600
601 update_row (
602 x_rowid,
603 x_rfmb_id,
604 x_batch_id,
605 x_data_rec_length,
606 x_ope_id,
607 x_software_providor,
608 x_rfms_process_dt,
609 x_rfms_ack_dt,
610 x_rfms_ack_batch_id,
611 x_reject_reason,
612 x_mode
613 );
614
615 END add_row;
616
617
618 PROCEDURE delete_row (
619 x_rowid IN VARCHAR2
620 ) AS
621 /*
622 || Created By : cdcruz
623 || Created On : 10-JAN-2001
624 || Purpose : Handles the DELETE DML logic for the table.
625 || Known limitations, enhancements or remarks :
626 || Change History :
627 || Who When What
628 || (reverse chronological order - newest change first)
629 */
630 BEGIN
631
632 before_dml (
633 p_action => 'DELETE',
634 x_rowid => x_rowid
635 );
636
637 DELETE FROM igf_gr_rfms_batch_all
638 WHERE rowid = x_rowid;
639
640 IF (SQL%NOTFOUND) THEN
641 RAISE NO_DATA_FOUND;
642 END IF;
643
644 END delete_row;
645
646
647 END igf_gr_rfms_batch_pkg;