[Home] [Help]
PACKAGE BODY: APPS.OKL_INTEREST_MAINT_PVT
Source
1 PACKAGE BODY OKL_INTEREST_MAINT_PVT AS
2 /* $Header: OKLRINMB.pls 115.6 2003/05/03 17:38:14 hkpatel noship $ */
3
4
5 FUNCTION overlap_exists(p_idx_type IN VARCHAR2,
6 p_idx_name IN VARCHAR2,
7 p_datetime_valid IN DATE,
8 p_datetime_invalid IN DATE)
9
10 RETURN VARCHAR2
11
12 IS
13
14
15 TYPE ref_cursor IS REF CURSOR;
16 check_csr ref_cursor;
17
18
19 l_dummy VARCHAR2(1);
20 l_overlap_exists VARCHAR2(1) := OKL_API.G_FALSE;
21 l_datetime_valid DATE;
22 l_datetime_invalid DATE;
23
24 l_stmt VARCHAR2(2000);
25 l_stmt_org VARCHAR2(2000);
26 l_where VARCHAR2(2000);
27 l_exist VARCHAR2(10);
28
29
30 BEGIN
31
32
33
34 l_stmt_org := ' SELECT datetime_valid,
35 datetime_invalid
36 FROM OKL_INDICES_V idx, OKL_INDEX_VALUES_V idxv
37 WHERE idx.id = idxv.idx_id
38 AND idx.name = ' || '''' || ':1' || '''' ||
39 ' AND idx.idx_type = ' || '''' || ':2' || '''' ;
40
41
42
43
44 IF (p_datetime_invalid IS NOT NULL) THEN
45 l_where := ' AND idxv.datetime_invalid IS NOT NULL
46 AND (( ' || '''' || ':3'|| '''' ||
47 ' BETWEEN idxv.datetime_valid AND idxv.datetime_invalid) OR
48 ( ' || '''' || ':4' || '''' ||
49 ' BETWEEN idxv.datetime_valid AND idxv.datetime_invalid))';
50
51 l_stmt := l_stmt_org || l_where;
52
53 OPEN check_csr FOR l_stmt USING p_idx_name,
54 p_idx_type,
55 p_datetime_valid ,
56 p_datetime_invalid;
57
58 FETCH check_csr INTO l_datetime_valid,
59 l_datetime_invalid;
60 IF check_csr%NOTFOUND THEN
61 CLOSE check_csr;
62 l_where := ' AND idxv.datetime_invalid IS NULL
63 AND ' || '''' || ':5' || '''' ||
64 ' > idxv.datetime_valid
65 AND ' || '''' || ':6' || '''' || ' > idxv.datetime_valid';
66
67 l_stmt := l_stmt_org || l_where;
68 OPEN check_csr FOR l_stmt USING p_idx_name,
69 p_idx_type,
70 p_datetime_valid ,
71 p_datetime_invalid,
72 p_datetime_valid ,
73 p_datetime_invalid;
74
75 FETCH check_csr INTO l_datetime_valid,
76 l_datetime_invalid;
77 IF (check_csr%NOTFOUND) THEN
78 l_overlap_exists := OKL_API.G_FALSE;
79 ELSE
80 l_overlap_exists := OKL_API.G_TRUE;
81 END IF;
82 CLOSE check_csr;
83 ELSE
84 l_overlap_exists := OKL_API.G_TRUE;
85 CLOSE check_csr;
86 END IF;
87
88
89 ELSE
90
91 l_where := ' AND idxv.datetime_invalid IS NOT NULL
92 AND ( ' || '''' || ':3' || '''' ||
93 ' BETWEEN idxv.datetime_valid AND idxv.datetime_invalid)';
94
95 l_stmt := l_stmt_org || l_where;
96
97 OPEN check_csr FOR l_stmt USING p_idx_name,
98 p_idx_type,
99 p_datetime_valid;
100
101 FETCH check_csr INTO l_datetime_valid,
102 l_datetime_invalid;
103 IF check_csr%NOTFOUND THEN
104
105 CLOSE check_csr;
106 l_where := ' AND idxv.datetime_invalid IS NULL
107 AND ' || '''' || ':4' || '''' ||
108 ' > idxv.datetime_valid' ;
109
110 l_stmt := l_stmt_org || l_where;
111
112 OPEN check_csr FOR l_stmt USING p_idx_name,
113 p_idx_type,
114 p_datetime_valid,
115 p_datetime_valid;
116
117 FETCH check_csr INTO l_datetime_valid,
118 l_datetime_invalid;
119 IF (check_csr%NOTFOUND) THEN
120
121 l_overlap_exists := OKL_API.G_FALSE;
122 ELSE
123
124 l_overlap_exists := OKL_API.G_TRUE;
125 END IF;
126
127 CLOSE check_csr;
128
129 ELSE
130
131 l_overlap_exists := OKL_API.G_TRUE;
132 CLOSE check_csr;
133
134 END IF;
135
136 END IF;
137
138
139 RETURN(l_overlap_exists);
140
141
142 END overlap_exists;
143
144
145 FUNCTION overlap_exists (p_idx_id IN NUMBER,
146 p_datetime_valid IN DATE,
147 p_datetime_invalid IN DATE)
148
149 RETURN VARCHAR2
150
151 IS
152
153
154 TYPE ref_cursor IS REF CURSOR;
155 check_csr ref_cursor;
156
157
158
159
160 l_dummy VARCHAR2(1);
161 l_overlap_exists VARCHAR2(1) := OKL_API.G_FALSE;
162 l_datetime_valid DATE;
163 l_datetime_invalid DATE;
164
165 l_stmt VARCHAR2(2000);
166 l_stmt_org VARCHAR2(2000);
167 l_where VARCHAR2(2000);
168 l_exist VARCHAR2(10);
169
170
171
172 BEGIN
173
174
175 l_stmt_org := ' SELECT datetime_valid,
176 datetime_invalid
177 FROM OKL_INDICES_V idx, OKL_INDEX_VALUES_V idxv
178 WHERE idx.id = idxv.idx_id
179 AND idx.id = ' || ':1' ;
180
181
182
183
184
185
186 IF (p_datetime_invalid IS NOT NULL) THEN
187 l_where := ' AND idxv.datetime_invalid IS NOT NULL
188 AND (( ' || '''' || ':2' || '''' ||
189 ' BETWEEN idxv.datetime_valid AND idxv.datetime_invalid) OR
190 ( ' || '''' || ':3' || '''' ||
191 ' BETWEEN idxv.datetime_valid AND idxv.datetime_invalid))';
192
193 l_stmt := l_stmt_org || l_where;
194
195 OPEN check_csr FOR l_stmt USING p_idx_id,
196 p_datetime_valid,
197 p_datetime_invalid;
198
199
200 FETCH check_csr INTO l_datetime_valid,
201 l_datetime_invalid;
202 IF check_csr%NOTFOUND THEN
203 CLOSE check_csr;
204 l_where := ' AND idxv.datetime_invalid IS NULL
205 AND ' || '''' || ':4' || '''' ||
206 ' > idxv.datetime_valid
207 AND ' || '''' || ':5' || '''' || ' > idxv.datetime_valid';
208
209 l_stmt := l_stmt_org || l_where;
210
211 OPEN check_csr FOR l_stmt USING p_idx_id,
212 p_datetime_valid,
213 p_datetime_invalid,
214 p_datetime_valid,
215 p_datetime_invalid ;
216
217 FETCH check_csr INTO l_datetime_valid,
218 l_datetime_invalid;
219 IF (check_csr%NOTFOUND) THEN
220 l_overlap_exists := OKL_API.G_FALSE;
221 ELSE
222 l_overlap_exists := OKL_API.G_TRUE;
223 END IF;
224 CLOSE check_csr;
225 ELSE
226 l_overlap_exists := OKL_API.G_TRUE;
227 CLOSE check_csr;
228 END IF;
229
230
231 ELSE
232
233 l_where := ' AND idxv.datetime_invalid IS NOT NULL
234 AND ( ' || '''' || ':2' || '''' ||
235 ' BETWEEN idxv.datetime_valid AND idxv.datetime_invalid)';
236
237 l_stmt := l_stmt_org || l_where;
238
239 OPEN check_csr FOR l_stmt USING p_idx_id,
240 p_datetime_valid ;
241
242 FETCH check_csr INTO l_datetime_valid,
243 l_datetime_invalid;
244 IF check_csr%NOTFOUND THEN
245
246 CLOSE check_csr;
247 l_where := ' AND idxv.datetime_invalid IS NULL
248 AND ' || '''' || ':3' || '''' ||
249 ' > idxv.datetime_valid' ;
250
251 l_stmt := l_stmt_org || l_where;
252
253 OPEN check_csr FOR l_stmt USING p_idx_id,
254 p_datetime_valid,
255 p_datetime_valid ;
256
257 FETCH check_csr INTO l_datetime_valid,
258 l_datetime_invalid;
259 IF (check_csr%NOTFOUND) THEN
260
261 l_overlap_exists := OKL_API.G_FALSE;
262 ELSE
263
264 l_overlap_exists := OKL_API.G_TRUE;
265 END IF;
266 CLOSE check_csr;
267 ELSE
268 l_overlap_exists := OKL_API.G_TRUE;
269 CLOSE check_csr;
270 END IF;
271
272 END IF;
273
274
275 RETURN(l_overlap_exists);
276
277
278 END overlap_exists;
279
280
281
282 PROCEDURE INT_HDR_INS_UPDT(p_api_version IN NUMBER,
283 p_init_msg_list IN VARCHAR2,
284 x_return_status OUT NOCOPY VARCHAR2,
285 x_msg_count OUT NOCOPY NUMBER,
286 x_msg_data OUT NOCOPY VARCHAR2,
287 p_idxv_rec IN idxv_rec_type)
288 IS
289
290 l_idxv_rec_in idxv_rec_type;
291 l_idxv_rec_out idxv_rec_type;
292
293 l_init_msg_list VARCHAR2(1) := p_init_msg_list;
294 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
295 l_msg_count NUMBER;
296 l_msg_data VARCHAR2(2000);
297 l_api_name VARCHAR2(30) := 'INT_HDR_INS_UPDT';
298 l_api_version NUMBER := 1.0;
299 l_idx_frequency OKL_INDICES.IDX_FREQUENCY%TYPE;
300
301 CURSOR freq_csr(v_idx_id NUMBER) IS
302 SELECT idx_frequency
303 FROM OKL_INDICES idx,
304 OKL_INDEX_VALUES ive
305 WHERE ive.idx_id = idx.id
306 AND idx.ID = v_idx_id;
307
308
309 BEGIN
310
311 x_return_status := OKL_API.G_RET_STS_SUCCESS;
312 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
313 G_PKG_NAME,
314 p_init_msg_list,
315 l_api_version,
316 p_api_version,
317 '_PVT',
318 x_return_status);
319 IF (l_return_status = OKL_Api.G_RET_STS_UNEXP_ERROR) THEN
320 RAISE OKL_Api.G_EXCEPTION_UNEXPECTED_ERROR;
321 ELSIF (l_return_status = OKL_Api.G_RET_STS_ERROR) THEN
322 RAISE OKL_Api.G_EXCEPTION_ERROR;
323 END IF;
324
325 l_idxv_rec_in := p_idxv_rec;
326
327 IF (p_idxv_rec.id = OKL_API.G_MISS_NUM) OR
328 (p_idxv_rec.ID IS NULL) THEN
329
330 OKL_INDICES_PUB.CREATE_INDICES(p_api_version => 1.0,
331 p_init_msg_list => l_init_msg_list,
332 x_return_status => l_return_status,
333 x_msg_count => l_msg_count,
334 x_msg_data => l_msg_data,
335 p_idxv_rec => l_idxv_rec_in,
336 x_idxv_rec => l_idxv_rec_out);
337 ELSE
338
339 OPEN freq_csr(p_idxv_rec.ID);
340 FETCH freq_csr INTO l_idx_frequency;
341
342 IF (freq_csr%NOTFOUND) THEN
343 NULL;
344 ELSE
345 IF (l_idx_frequency <> p_idxv_rec.idx_frequency) THEN
346 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
347 p_msg_name => 'OKL_INT_FREQ_CANNOT_CHANGE');
348 RAISE OKL_API.G_EXCEPTION_ERROR;
349 END IF;
350 END IF;
351 CLOSE freq_csr;
352
353 OKL_INDICES_PUB.UPDATE_INDICES(p_api_version => 1.0,
354 p_init_msg_list => l_init_msg_list,
355 x_return_status => l_return_status,
356 x_msg_count => l_msg_count,
357 x_msg_data => l_msg_data,
358 p_idxv_rec => l_idxv_rec_in,
359 x_idxv_rec => l_idxv_rec_out);
360 END IF;
361
362
363 IF (l_return_status = OKL_Api.G_RET_STS_UNEXP_ERROR) THEN
364 RAISE OKL_Api.G_EXCEPTION_UNEXPECTED_ERROR;
365 ELSIF (l_return_status = OKL_Api.G_RET_STS_ERROR) THEN
366 RAISE OKL_Api.G_EXCEPTION_ERROR;
367 END IF;
368
369 OKL_Api.END_ACTIVITY(x_msg_count, x_msg_data);
370
371 EXCEPTION
372 WHEN OKL_Api.G_EXCEPTION_ERROR THEN
373 x_return_status := OKL_Api.HANDLE_EXCEPTIONS
374 (
375 l_api_name,
376 G_PKG_NAME,
377 'OKL_API.G_RET_STS_ERROR',
378 x_msg_count,
379 x_msg_data,
380 '_PVT'
381 );
382 WHEN OKL_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
383 x_return_status :=OKL_Api.HANDLE_EXCEPTIONS
384 (
385 l_api_name,
386 G_PKG_NAME,
387 'OKL_API.G_RET_STS_UNEXP_ERROR',
388 x_msg_count,
389 x_msg_data,
390 '_PVT'
391 );
392 WHEN OTHERS THEN
393 x_return_status :=OKL_Api.HANDLE_EXCEPTIONS
394 (
395 l_api_name,
396 G_PKG_NAME,
397 'OTHERS',
398 x_msg_count,
399 x_msg_data,
400 '_PVT');
401
402 END INT_HDR_INS_UPDT;
403
404
405
406
407 PROCEDURE INT_HDR_INS_UPDT(p_api_version IN NUMBER,
408 p_init_msg_list IN VARCHAR2,
409 x_return_status OUT NOCOPY VARCHAR2,
410 x_msg_count OUT NOCOPY NUMBER,
411 x_msg_data OUT NOCOPY VARCHAR2,
412 p_idxv_tbl IN idxv_tbl_type)
413 IS
414
415 l_api_version CONSTANT NUMBER := 1.0;
416 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
417 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
418 i NUMBER := 0;
419 l_msg_count NUMBER;
420 l_msg_data VARCHAR2(2000);
421
422
423
424 BEGIN
425
426 IF (p_idxv_tbl.COUNT > 0) THEN
427
428 i := p_idxv_tbl.FIRST;
429
430 LOOP
431 INT_HDR_INS_UPDT (
432 p_api_version => l_api_version,
433 p_init_msg_list => OKL_API.G_FALSE,
434 x_return_status => l_return_status,
435 x_msg_count => l_msg_count,
436 x_msg_data => l_msg_data,
437 p_idxv_rec => p_idxv_tbl(i));
438
439
440 IF l_return_status <> OKL_API.G_RET_STS_SUCCESS THEN
441 IF l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR THEN
442 l_overall_status := l_return_status;
443 END IF;
444 END IF;
445
446 EXIT WHEN (i = p_idxv_tbl.LAST);
447
448 i := p_idxv_tbl.NEXT(i);
449
450 END LOOP;
451
452 x_return_status := l_overall_status;
453
454 END IF;
455
456
457 END INT_HDR_INS_UPDT;
458
459
460
461
462
463 PROCEDURE INT_DTL_INS_UPDT(p_api_version IN NUMBER,
464 p_init_msg_list IN VARCHAR2,
465 x_return_status OUT NOCOPY VARCHAR2,
466 x_msg_count OUT NOCOPY NUMBER,
467 x_msg_data OUT NOCOPY VARCHAR2,
468 p_ivev_rec IN ivev_rec_type)
469 IS
470
471 l_error_flag VARCHAR2(1) := 'N';
472 l_api_name CONSTANT VARCHAR2(40) := 'OKL_INT_DTL_INS_UPDT';
473 l_api_version CONSTANT NUMBER := 1.0;
474 l_row_count NUMBER;
475 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
476
477
478 l_ivev_rec_in ivev_rec_type;
479 l_ivev_rec_out ivev_rec_type;
480
481
482
483 l_init_msg_list VARCHAR2(1);
484 l_msg_count NUMBER;
485 l_msg_data VARCHAR2(2000);
486 l_msg_text VARCHAR2(50);
487
488 i NUMBER := 0;
489
490
491 BEGIN
492
493
494 l_ivev_rec_in := p_ivev_rec;
495
496 IF (p_ivev_rec.datetime_valid IS NOT NULL) THEN
497
498 IF (p_ivev_rec.datetime_invalid IS NOT NULL) THEN
499
500 IF (p_ivev_rec.datetime_invalid < p_ivev_rec.datetime_valid) THEN
501
502 l_error_flag := 'Y';
503 l_msg_text := 'OKL_INVALID_TO_DATE';
504
505 END IF;
506
507 END IF;
508 /*
509
510 IF (overlap_exists(p_ivev_rec.idx_id,
511 p_ivev_rec.datetime_valid,
512 p_ivev_rec.datetime_invalid) = OKL_API.G_TRUE )
513 AND (p_ivev_rec.ID = OKL_API.G_MISS_NUM) THEN
514
515 l_error_flag := 'Y';
516 l_msg_text := 'OKL_DATE_RANGE_OVERLAP';
517
518 END IF;
519 */
520
521 ELSE
522
523 l_error_flag := 'Y';
524 l_msg_text := 'OKL_FROM_DATE_MANDATORY';
525
526 END IF;
527
528
529 IF (l_error_flag = 'N') THEN
530
531 IF (l_ivev_rec_in.ID = OKL_API.G_MISS_NUM) OR
532 (l_ivev_rec_in.ID IS NULL) THEN
533
534 OKL_INDICES_PUB.create_index_values(p_api_version => 1.0,
535 p_init_msg_list => l_init_msg_list,
536 x_return_status => l_return_status,
537 x_msg_count => l_msg_count,
538 x_msg_data => l_msg_data,
539 p_ivev_rec => l_ivev_rec_in,
540 x_ivev_rec => l_ivev_rec_out);
541 ELSE
542
543 OKL_INDICES_PUB.update_index_values(p_api_version => 1.0,
544 p_init_msg_list => l_init_msg_list,
545 x_return_status => l_return_status,
546 x_msg_count => l_msg_count,
547 x_msg_data => l_msg_data,
548 p_ivev_rec => l_ivev_rec_in,
549 x_ivev_rec => l_ivev_rec_out);
550 END IF;
551
552
553 ELSE
554
555 l_return_status := OKL_API.G_RET_STS_ERROR;
556 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
557 p_msg_name => l_msg_text);
558
559
560 END IF;
561
562 x_return_status := l_return_status;
563 x_msg_count := l_msg_count;
564 x_msg_data := l_msg_data;
565
566
567 END INT_DTL_INS_UPDT;
568
569
570
571 PROCEDURE INT_DTL_INS_UPDT(p_api_version IN NUMBER,
572 p_init_msg_list IN VARCHAR2,
573 x_return_status OUT NOCOPY VARCHAR2,
574 x_msg_count OUT NOCOPY NUMBER,
575 x_msg_data OUT NOCOPY VARCHAR2,
576 p_ivev_tbl IN ivev_tbl_type)
577 IS
578
579 l_api_version CONSTANT NUMBER := 1.0;
580 l_api_name CONSTANT VARCHAR2(40) := 'INT_DTL_INS_UPDT';
581 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
582 i NUMBER := 0;
583 l_msg_count NUMBER;
584 l_msg_data VARCHAR2(2000);
585 l_ivev_tbl ivev_tbl_type;
586 j NUMBER := 0;
587 k NUMBER := 0;
588
589 CURSOR ive_csr(v_idx_id NUMBER) IS
590 SELECT datetime_valid,
591 datetime_invalid
592 FROM OKL_INDEX_VALUES
593 WHERE idx_id = v_idx_id;
594
595
596 BEGIN
597
598 x_return_status := OKL_API.G_RET_STS_SUCCESS;
599 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
600 G_PKG_NAME,
601 p_init_msg_list,
602 l_api_version,
603 p_api_version,
604 '_PVT',
605 x_return_status);
606 IF (l_return_status = OKL_Api.G_RET_STS_UNEXP_ERROR) THEN
607 RAISE OKL_Api.G_EXCEPTION_UNEXPECTED_ERROR;
608 ELSIF (l_return_status = OKL_Api.G_RET_STS_ERROR) THEN
609 RAISE OKL_Api.G_EXCEPTION_ERROR;
610 END IF;
611
612 IF (p_ivev_tbl.COUNT > 0) THEN
613
614 i := p_ivev_tbl.FIRST;
615
616 LOOP
617 INT_DTL_INS_UPDT(p_api_version => l_api_version,
618 p_init_msg_list => p_init_msg_list,
619 x_return_status => l_return_status,
620 x_msg_count => l_msg_count,
621 x_msg_data => l_msg_data,
622 p_ivev_rec => p_ivev_tbl(i));
623
624 IF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
625 RAISE OKL_API.G_EXCEPTION_ERROR;
626 ELSIF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
627 RAISE OKL_API.G_EXCEPTION_ERROR;
628 END IF;
629
630 EXIT WHEN (i = p_ivev_tbl.LAST);
631
632 i := p_ivev_tbl.NEXT(i);
633
634 END LOOP;
635
636 -- The following logic inserted to check for overlapping
637
638 FOR ive_rec IN ive_csr(p_ivev_tbl(i).idx_id)
639 LOOP
640 k := k + 1;
641 l_ivev_tbl(k).datetime_valid := ive_rec.datetime_valid;
642 l_ivev_tbl(k).datetime_invalid := ive_rec.datetime_invalid;
643 END LOOP;
644
645 FOR i IN 1..l_ivev_tbl.COUNT
646 LOOP
647 IF (l_ivev_tbl(i).datetime_invalid is not null) THEN
648 FOR j IN 1..l_ivev_tbl.COUNT
649 LOOP
650 IF (l_ivev_tbl(j).datetime_invalid is not null) AND (j <> i) THEN
651 IF (l_ivev_tbl(i).datetime_invalid between l_ivev_tbl(j).datetime_valid AND
652 l_ivev_tbl(j).datetime_invalid) THEN
653 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
654 p_msg_name => 'OKL_DATE_RANGE_OVERLAP');
655 RAISE OKL_API.G_EXCEPTION_ERROR;
656 END IF;
657 ELSIF (l_ivev_tbl(j).datetime_invalid is NULL) AND (j <> i) THEN
658 IF (l_ivev_tbl(i).datetime_invalid >= l_ivev_tbl(j).datetime_valid) THEN
659 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
660 p_msg_name => 'OKL_DATE_RANGE_OVERLAP');
661 RAISE OKL_API.G_EXCEPTION_ERROR;
662 END IF;
663 END IF;
664
665 END LOOP;
666 ELSE
667 FOR j IN 1..l_ivev_tbl.COUNT
668 LOOP
669 IF (l_ivev_tbl(j).datetime_invalid is NULL) and (j <> i) THEN
670 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
671 p_msg_name => 'OKL_DATE_RANGE_OVERLAP');
672 RAISE OKL_API.G_EXCEPTION_ERROR;
673 END IF;
674
675 END LOOP;
676 END IF;
677 END LOOP;
678
679 END IF;
680
681 OKL_Api.END_ACTIVITY(x_msg_count, x_msg_data);
682
683
684 EXCEPTION
685 WHEN OKL_Api.G_EXCEPTION_ERROR THEN
686 x_return_status := OKL_Api.HANDLE_EXCEPTIONS
687 (
688 l_api_name,
689 G_PKG_NAME,
690 'OKL_API.G_RET_STS_ERROR',
691 x_msg_count,
692 x_msg_data,
693 '_PVT'
694 );
695 WHEN OKL_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
696 x_return_status :=OKL_Api.HANDLE_EXCEPTIONS
697 (
698 l_api_name,
699 G_PKG_NAME,
700 'OKL_API.G_RET_STS_UNEXP_ERROR',
701 x_msg_count,
702 x_msg_data,
703 '_PVT'
704 );
705 WHEN OTHERS THEN
706 x_return_status :=OKL_Api.HANDLE_EXCEPTIONS
707 (
708 l_api_name,
709 G_PKG_NAME,
710 'OTHERS',
711 x_msg_count,
712 x_msg_data,
713 '_PVT'
714 );
715
716 END INT_DTL_INS_UPDT;
717
718 END OKL_INTEREST_MAINT_PVT;