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