[Home] [Help]
PACKAGE BODY: APPS.OKL_DRA_PVT
Source
1 PACKAGE BODY OKL_DRA_PVT AS
2 /* $Header: OKLSDRAB.pls 120.3 2007/05/03 18:22:29 cklee noship $ */
3 ---------------------------------------------------------------------------
4 -- PROCEDURE load_error_tbl
5 ---------------------------------------------------------------------------
6
7 PROCEDURE load_error_tbl (
8 px_error_rec IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
9 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
10 j INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
11 last_msg_idx INTEGER := FND_MSG_PUB.COUNT_MSG;
12 l_msg_idx INTEGER := FND_MSG_PUB.G_NEXT;
13
14 BEGIN
15
16 -- FND_MSG_PUB has a small error in it. If we call FND_MSG_PUB.COUNT_AND_GET before
17
18 -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
19
20 -- message stack gets set to 1. This makes sense until we call FND_MSG_PUB.GET which
21
22 -- automatically increments the index by 1, (making it 2), however, when the GET function
23
24 -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
25
26 -- message 2. To circumvent this problem, check the amount of messages and compensate.
27
28 -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
29
30 -- will only update the index variable when 1 and only 1 message is on the stack.
31
32 IF (last_msg_idx = 1) THEN
33
34 l_msg_idx := FND_MSG_PUB.G_FIRST;
35
36 END IF;
37
38 LOOP
39
40 fnd_msg_pub.get(
41
42 p_msg_index => l_msg_idx,
43
44 p_encoded => fnd_api.g_false,
45
46 p_data => px_error_rec.msg_data,
47
48 p_msg_index_out => px_error_rec.msg_count);
49
50 px_error_tbl(j) := px_error_rec;
51
52 j := j + 1;
53
54 EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
55
56 END LOOP;
57
58 END load_error_tbl;
59
60 ---------------------------------------------------------------------------
61
62 -- FUNCTION find_highest_exception
63
64 ---------------------------------------------------------------------------
65
66 -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
67
68 -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
69
70 FUNCTION find_highest_exception(
71
72 p_error_tbl IN OKL_API.ERROR_TBL_TYPE
73
74 ) RETURN VARCHAR2 IS
75
76 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
77
78 i INTEGER := 1;
79
80 BEGIN
81
82 IF (p_error_tbl.COUNT > 0) THEN
83
84 i := p_error_tbl.FIRST;
85
86 LOOP
87
88 IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
89
90 IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
91
92 l_return_status := p_error_tbl(i).error_type;
93
94 END IF;
95
96 END IF;
97
98 EXIT WHEN (i = p_error_tbl.LAST);
99
100 i := p_error_tbl.NEXT(i);
101
102 END LOOP;
103
104 END IF;
105
106 RETURN(l_return_status);
107
108 END find_highest_exception;
109
110 ---------------------------------------------------------------------------
111
112 -- FUNCTION get_seq_id
113
114 ---------------------------------------------------------------------------
115
116 FUNCTION get_seq_id RETURN NUMBER IS
117
118 l_pk_value NUMBER;
119
120 --start:| May 3, 2007 cklee -- fixed sequence issue | |
121 -- CURSOR c_pk_csr IS SELECT okl_disb_rules_all_b_s.NEXTVAL FROM DUAL;
122 CURSOR c_pk_csr IS SELECT okl_disb_rules_s.NEXTVAL FROM DUAL;
123 --end:| May 3, 2007 cklee -- fixed sequence issue | |
124
125 BEGIN
126
127 /* Fetch the pk value from the sequence */
128
129 OPEN c_pk_csr;
130
131 FETCH c_pk_csr INTO l_pk_value;
132
133 CLOSE c_pk_csr;
134
135 RETURN l_pk_value;
136
137 END get_seq_id;
138
139
140
141 ---------------------------------------------------------------------------
142
143 -- PROCEDURE qc
144
145 ---------------------------------------------------------------------------
146
147 PROCEDURE qc IS
148
149 BEGIN
150
151 null;
152
153 END qc;
154
155
156
157 ---------------------------------------------------------------------------
158
159 -- PROCEDURE change_version
160
161 ---------------------------------------------------------------------------
162
163 PROCEDURE change_version IS
164
165 BEGIN
166
167 null;
168
169 END change_version;
170
171
172
173 ---------------------------------------------------------------------------
174
175 -- PROCEDURE api_copy
176
177 ---------------------------------------------------------------------------
178
179 PROCEDURE api_copy IS
180
181 BEGIN
182
183 null;
184
185 END api_copy;
186
187
188
189 ---------------------------------------------------------------------------
190
191 -- PROCEDURE add_language
192
193 ---------------------------------------------------------------------------
194
195 PROCEDURE add_language IS
196
197 BEGIN
198
199 DELETE FROM OKL_DISB_RULES_TL T
200
201 WHERE NOT EXISTS (
202
203 SELECT NULL
204
205 FROM OKL_DISB_RULES_B B
206
207 WHERE B.DISB_RULE_ID =T.DISB_RULE_ID
208
209 );
210
211
212
213 UPDATE OKL_DISB_RULES_TL T SET(
214
215 DESCRIPTION) = (SELECT
216
217 B.DESCRIPTION
218
219 FROM OKL_DISB_RULES_TL B
220
221 WHERE B.DISB_RULE_ID = T.DISB_RULE_ID
222
223 AND B.LANGUAGE = T.SOURCE_LANG)
224
225 WHERE ( T.DISB_RULE_ID,
226
227 T.LANGUAGE)
228
229 IN (SELECT
230
231 SUBT.DISB_RULE_ID,
232
233 SUBT.LANGUAGE
234
235 FROM OKL_DISB_RULES_TL SUBB, OKL_DISB_RULES_TL SUBT
236
237 WHERE SUBB.DISB_RULE_ID = SUBT.DISB_RULE_ID
238
239 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
240
241 AND (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
242
243 OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
244
245 ));
246
247
248
249 INSERT INTO OKL_DISB_RULES_TL (
250
251 DISB_RULE_ID,
252
253 LANGUAGE,
254
255 SOURCE_LANG,
256
257 SFWT_FLAG,
258
259 DESCRIPTION,
260
261 CREATED_BY,
262
263 CREATION_DATE,
264
265 LAST_UPDATED_BY,
266
267 LAST_UPDATE_DATE,
268
269 LAST_UPDATE_LOGIN)
270
271 SELECT
272
273 B.DISB_RULE_ID,
274
275 L.LANGUAGE_CODE,
276
277 B.SOURCE_LANG,
278
279 B.SFWT_FLAG,
280
281 B.DESCRIPTION,
282
283 B.CREATED_BY,
284
285 B.CREATION_DATE,
286
287 B.LAST_UPDATED_BY,
288
289 B.LAST_UPDATE_DATE,
290
291 B.LAST_UPDATE_LOGIN
292
293 FROM OKL_DISB_RULES_TL B, FND_LANGUAGES L
294
295 WHERE L.INSTALLED_FLAG IN ('I', 'B')
296
297 AND B.LANGUAGE = USERENV('LANG')
298
299 AND NOT EXISTS (
300
301 SELECT NULL
302
303 FROM OKL_DISB_RULES_TL T
304
305 WHERE T.DISB_RULE_ID = B.DISB_RULE_ID
306
307 AND T.LANGUAGE = L.LANGUAGE_CODE
308
309 );
310
311 END add_language;
312
313
314
315 ---------------------------------------------------------------------------
316
317 -- FUNCTION get_rec for: OKL_DISB_RULES_V
318
319 ---------------------------------------------------------------------------
320
321 FUNCTION get_rec (
322
323 p_drav_rec IN drav_rec_type,
324
325 x_no_data_found OUT NOCOPY BOOLEAN
326
327 ) RETURN drav_rec_type IS
328
329 CURSOR okl_drav_pk_csr (p_disb_rule_id IN NUMBER) IS
330
331 SELECT
332 DISB_RULE_ID,
333 OBJECT_VERSION_NUMBER,
334 SFWT_FLAG,
335 RULE_NAME,
336 ORG_ID,
337 START_DATE,
338 END_DATE,
339 FEE_OPTION,
340 FEE_BASIS,
341 FEE_AMOUNT,
342 FEE_PERCENT,
343 CONSOLIDATE_BY_DUE_DATE,
344 FREQUENCY,
345 DAY_OF_MONTH,
346 SCHEDULED_MONTH,
347 CONSOLIDATE_STRM_TYPE,
348 DESCRIPTION,
349 ATTRIBUTE_CATEGORY,
350 ATTRIBUTE1,
351 ATTRIBUTE2,
352 ATTRIBUTE3,
353 ATTRIBUTE4,
354 ATTRIBUTE5,
355 ATTRIBUTE6,
356 ATTRIBUTE7,
357 ATTRIBUTE8,
358 ATTRIBUTE9,
359 ATTRIBUTE10,
360 ATTRIBUTE11,
361 ATTRIBUTE12,
362 ATTRIBUTE13,
363 ATTRIBUTE14,
364 ATTRIBUTE15,
365 CREATED_BY,
366 CREATION_DATE,
367 LAST_UPDATED_BY,
368 LAST_UPDATE_DATE,
369 LAST_UPDATE_LOGIN
370 FROM Okl_Disb_Rules_V
371 WHERE okl_disb_rules_v.disb_rule_id = p_disb_rule_id;
372
373 l_okl_drav_pk okl_drav_pk_csr%ROWTYPE;
374 l_drav_rec drav_rec_type;
375
376 BEGIN
377
378 x_no_data_found := TRUE;
379
380 -- Get current database values
381
382 OPEN okl_drav_pk_csr (p_drav_rec.disb_rule_id);
383
384 FETCH okl_drav_pk_csr INTO
385
386 l_drav_rec.disb_rule_id,
387
388 l_drav_rec.object_version_number,
389
390 l_drav_rec.sfwt_flag,
391
392 l_drav_rec.rule_name,
393
394 l_drav_rec.org_id,
395
396 l_drav_rec.start_date,
397
398 l_drav_rec.end_date,
399
400 l_drav_rec.fee_option,
401
402 l_drav_rec.fee_basis,
403
404 l_drav_rec.fee_amount,
405
406 l_drav_rec.fee_percent,
407
408 l_drav_rec.consolidate_by_due_date,
409
410 l_drav_rec.frequency,
411
412 l_drav_rec.day_of_month,
413
414 l_drav_rec.scheduled_month,
415
416 l_drav_rec.consolidate_strm_type,
417
418 l_drav_rec.description,
419
420 l_drav_rec.attribute_category,
421
422 l_drav_rec.attribute1,
423
424 l_drav_rec.attribute2,
425
426 l_drav_rec.attribute3,
427
428 l_drav_rec.attribute4,
429
430 l_drav_rec.attribute5,
431
432 l_drav_rec.attribute6,
433
434 l_drav_rec.attribute7,
435
436 l_drav_rec.attribute8,
437
438 l_drav_rec.attribute9,
439
440 l_drav_rec.attribute10,
441
442 l_drav_rec.attribute11,
443
444 l_drav_rec.attribute12,
445
446 l_drav_rec.attribute13,
447
448 l_drav_rec.attribute14,
449
450 l_drav_rec.attribute15,
451
452 l_drav_rec.created_by,
453
454 l_drav_rec.creation_date,
455
456 l_drav_rec.last_updated_by,
457
458 l_drav_rec.last_update_date,
459
460 l_drav_rec.last_update_login;
461
462 x_no_data_found := okl_drav_pk_csr%NOTFOUND;
463
464 CLOSE okl_drav_pk_csr;
465
466 RETURN(l_drav_rec);
467
468 END get_rec;
469
470
471
472 ------------------------------------------------------------------
473
474 -- This version of get_rec sets error messages if no data found --
475
476 ------------------------------------------------------------------
477
478 FUNCTION get_rec (
479
480 p_drav_rec IN drav_rec_type,
481
482 x_return_status OUT NOCOPY VARCHAR2
483
484 ) RETURN drav_rec_type IS
485
486 l_drav_rec drav_rec_type;
487
488 l_row_notfound BOOLEAN := TRUE;
489
490 BEGIN
491
492 x_return_status := OKL_API.G_RET_STS_SUCCESS;
493
494 l_drav_rec := get_rec(p_drav_rec, l_row_notfound);
495
496 IF (l_row_notfound) THEN
497
498 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'DISB_RULE_ID');
499
500 x_return_status := OKL_API.G_RET_STS_ERROR;
501
502 END IF;
503
504 RETURN(l_drav_rec);
505
506 END get_rec;
507
508 -----------------------------------------------------------
509
510 -- So we don't have to pass an "l_row_notfound" variable --
511
512 -----------------------------------------------------------
513
514 FUNCTION get_rec (
515
516 p_drav_rec IN drav_rec_type
517
518 ) RETURN drav_rec_type IS
519
520 l_row_not_found BOOLEAN := TRUE;
521
522 BEGIN
523
524 RETURN(get_rec(p_drav_rec, l_row_not_found));
525
526 END get_rec;
527
528 ---------------------------------------------------------------------------
529
530 -- FUNCTION get_rec for: OKL_DISB_RULES_TL
531
532 ---------------------------------------------------------------------------
533
534 FUNCTION get_rec (
535
536 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
537
538 x_no_data_found OUT NOCOPY BOOLEAN
539
540 ) RETURN okl_disb_rules_tl_rec_type IS
541
542 CURSOR okl_drt_pk_csr (p_disb_rule_id IN NUMBER,
543
544 p_language IN VARCHAR2) IS
545
546 SELECT
547
548 DISB_RULE_ID,
549
550 LANGUAGE,
551
552 SOURCE_LANG,
553
554 SFWT_FLAG,
555
556 DESCRIPTION,
557
558 CREATED_BY,
559
560 CREATION_DATE,
561
562 LAST_UPDATED_BY,
563
564 LAST_UPDATE_DATE,
565
566 LAST_UPDATE_LOGIN
567
568 FROM Okl_Disb_Rules_Tl
569
570 WHERE okl_disb_rules_tl.disb_rule_id = p_disb_rule_id
571
572 AND okl_disb_rules_tl.language = p_language;
573
574 l_okl_drt_pk okl_drt_pk_csr%ROWTYPE;
575
576 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
577
578 BEGIN
579
580 x_no_data_found := TRUE;
581
582 -- Get current database values
583
584 OPEN okl_drt_pk_csr (p_okl_disb_rules_tl_rec.disb_rule_id,
585
586 p_okl_disb_rules_tl_rec.language);
587
588 FETCH okl_drt_pk_csr INTO
589
590 l_okl_disb_rules_tl_rec.disb_rule_id,
591
592 l_okl_disb_rules_tl_rec.language,
593
594 l_okl_disb_rules_tl_rec.source_lang,
595
596 l_okl_disb_rules_tl_rec.sfwt_flag,
597
598 l_okl_disb_rules_tl_rec.description,
599
600 l_okl_disb_rules_tl_rec.created_by,
601
602 l_okl_disb_rules_tl_rec.creation_date,
603
604 l_okl_disb_rules_tl_rec.last_updated_by,
605
606 l_okl_disb_rules_tl_rec.last_update_date,
607
608 l_okl_disb_rules_tl_rec.last_update_login;
609
610 x_no_data_found := okl_drt_pk_csr%NOTFOUND;
611
612 CLOSE okl_drt_pk_csr;
613
614 RETURN(l_okl_disb_rules_tl_rec);
615
616 END get_rec;
617
618
619
620 ------------------------------------------------------------------
621
622 -- This version of get_rec sets error messages if no data found --
623
624 ------------------------------------------------------------------
625
626 FUNCTION get_rec (
627
628 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
629
630 x_return_status OUT NOCOPY VARCHAR2
631
632 ) RETURN okl_disb_rules_tl_rec_type IS
633
634 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
635
636 l_row_notfound BOOLEAN := TRUE;
637
638 BEGIN
639
640 x_return_status := OKL_API.G_RET_STS_SUCCESS;
641
642 l_okl_disb_rules_tl_rec := get_rec(p_okl_disb_rules_tl_rec, l_row_notfound);
643
644 IF (l_row_notfound) THEN
645
646 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'DISB_RULE_ID');
647
648 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LANGUAGE');
649
650 x_return_status := OKL_API.G_RET_STS_ERROR;
651
652 END IF;
653
654 RETURN(l_okl_disb_rules_tl_rec);
655
656 END get_rec;
657
658 -----------------------------------------------------------
659
660 -- So we don't have to pass an "l_row_notfound" variable --
661
662 -----------------------------------------------------------
663
664 FUNCTION get_rec (
665
666 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type
667
668 ) RETURN okl_disb_rules_tl_rec_type IS
669
670 l_row_not_found BOOLEAN := TRUE;
671
672 BEGIN
673
674 RETURN(get_rec(p_okl_disb_rules_tl_rec, l_row_not_found));
675
676 END get_rec;
677
678 ---------------------------------------------------------------------------
679
680 -- FUNCTION get_rec for: OKL_DISB_RULES_B
681
682 ---------------------------------------------------------------------------
683
684 FUNCTION get_rec (
685
686 p_dra_rec IN dra_rec_type,
687
688 x_no_data_found OUT NOCOPY BOOLEAN
689
690 ) RETURN dra_rec_type IS
691
692 CURSOR okl_dra_pk_csr (p_disb_rule_id IN NUMBER) IS
693
694 SELECT
695
696 DISB_RULE_ID,
697
698 OBJECT_VERSION_NUMBER,
699
700 RULE_NAME,
701
702 ORG_ID,
703
704 START_DATE,
705
706 END_DATE,
707
708 FEE_OPTION,
709
710 FEE_BASIS,
711
712 FEE_AMOUNT,
713
714 FEE_PERCENT,
715
716 CONSOLIDATE_BY_DUE_DATE,
717
718 FREQUENCY,
719
720 DAY_OF_MONTH,
721
722 SCHEDULED_MONTH,
723
724 CONSOLIDATE_STRM_TYPE,
725
726 ATTRIBUTE_CATEGORY,
727
728 ATTRIBUTE1,
729
730 ATTRIBUTE2,
731
732 ATTRIBUTE3,
733
734 ATTRIBUTE4,
735
736 ATTRIBUTE5,
737
738 ATTRIBUTE6,
739
740 ATTRIBUTE7,
741
742 ATTRIBUTE8,
743
744 ATTRIBUTE9,
745
746 ATTRIBUTE10,
747
748 ATTRIBUTE11,
749
750 ATTRIBUTE12,
751
752 ATTRIBUTE13,
753
754 ATTRIBUTE14,
755
756 ATTRIBUTE15,
757
758 CREATED_BY,
759
760 CREATION_DATE,
761
762 LAST_UPDATED_BY,
763
764 LAST_UPDATE_DATE,
765
766 LAST_UPDATE_LOGIN
767
768 FROM Okl_Disb_Rules_B
769
770 WHERE okl_disb_rules_b.disb_rule_id = p_disb_rule_id;
771
772 l_okl_dra_pk okl_dra_pk_csr%ROWTYPE;
773
774 l_dra_rec dra_rec_type;
775
776 BEGIN
777
778 x_no_data_found := TRUE;
779
780 -- Get current database values
781
782 OPEN okl_dra_pk_csr (p_dra_rec.disb_rule_id);
783
784 FETCH okl_dra_pk_csr INTO
785
786 l_dra_rec.disb_rule_id,
787
788 l_dra_rec.object_version_number,
789
790 l_dra_rec.rule_name,
791
792 l_dra_rec.org_id,
793
794 l_dra_rec.start_date,
795
796 l_dra_rec.end_date,
797
798 l_dra_rec.fee_option,
799
800 l_dra_rec.fee_basis,
801
802 l_dra_rec.fee_amount,
803
804 l_dra_rec.fee_percent,
805
806 l_dra_rec.consolidate_by_due_date,
807
808 l_dra_rec.frequency,
809
810 l_dra_rec.day_of_month,
811
812 l_dra_rec.scheduled_month,
813
814 l_dra_rec.consolidate_strm_type,
815
816 l_dra_rec.attribute_category,
817
818 l_dra_rec.attribute1,
819
820 l_dra_rec.attribute2,
821
822 l_dra_rec.attribute3,
823
824 l_dra_rec.attribute4,
825
826 l_dra_rec.attribute5,
827
828 l_dra_rec.attribute6,
829
830 l_dra_rec.attribute7,
831
832 l_dra_rec.attribute8,
833
834 l_dra_rec.attribute9,
835
836 l_dra_rec.attribute10,
837
838 l_dra_rec.attribute11,
839
840 l_dra_rec.attribute12,
841
842 l_dra_rec.attribute13,
843
844 l_dra_rec.attribute14,
845
846 l_dra_rec.attribute15,
847
848 l_dra_rec.created_by,
849
850 l_dra_rec.creation_date,
851
852 l_dra_rec.last_updated_by,
853
854 l_dra_rec.last_update_date,
855
856 l_dra_rec.last_update_login;
857
858 x_no_data_found := okl_dra_pk_csr%NOTFOUND;
859
860 CLOSE okl_dra_pk_csr;
861
862 RETURN(l_dra_rec);
863
864 END get_rec;
865
866
867
868 ------------------------------------------------------------------
869
870 -- This version of get_rec sets error messages if no data found --
871
872 ------------------------------------------------------------------
873
874 FUNCTION get_rec (
875
876 p_dra_rec IN dra_rec_type,
877
878 x_return_status OUT NOCOPY VARCHAR2
879
880 ) RETURN dra_rec_type IS
881
882 l_dra_rec dra_rec_type;
883
884 l_row_notfound BOOLEAN := TRUE;
885
886 BEGIN
887
888 x_return_status := OKL_API.G_RET_STS_SUCCESS;
889
890 l_dra_rec := get_rec(p_dra_rec, l_row_notfound);
891
892 IF (l_row_notfound) THEN
893
894 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'DISB_RULE_ID');
895
896 x_return_status := OKL_API.G_RET_STS_ERROR;
897
898 END IF;
899
900 RETURN(l_dra_rec);
901
902 END get_rec;
903
904 -----------------------------------------------------------
905
906 -- So we don't have to pass an "l_row_notfound" variable --
907
908 -----------------------------------------------------------
909
910 FUNCTION get_rec (
911
912 p_dra_rec IN dra_rec_type
913
914 ) RETURN dra_rec_type IS
915
916 l_row_not_found BOOLEAN := TRUE;
917
918 BEGIN
919
920 RETURN(get_rec(p_dra_rec, l_row_not_found));
921
922 END get_rec;
923
924 ---------------------------------------------------------------------------
925
926 -- FUNCTION null_out_defaults for: OKL_DISB_RULES_V
927
928 ---------------------------------------------------------------------------
929
930 FUNCTION null_out_defaults (
931
932 p_drav_rec IN drav_rec_type
933
934 ) RETURN drav_rec_type IS
935
936 l_drav_rec drav_rec_type := p_drav_rec;
937
938 BEGIN
939
940 IF (l_drav_rec.disb_rule_id = OKL_API.G_MISS_NUM ) THEN
941
942 l_drav_rec.disb_rule_id := NULL;
943
944 END IF;
945
946 IF (l_drav_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
947
948 l_drav_rec.object_version_number := NULL;
949
950 END IF;
951
952 IF (l_drav_rec.sfwt_flag = OKL_API.G_MISS_CHAR ) THEN
953
954 l_drav_rec.sfwt_flag := NULL;
955
956 END IF;
957
958 IF (l_drav_rec.rule_name = OKL_API.G_MISS_CHAR ) THEN
959
960 l_drav_rec.rule_name := NULL;
961
962 END IF;
963
964 IF (l_drav_rec.org_id = OKL_API.G_MISS_NUM ) THEN
965
966 l_drav_rec.org_id := NULL;
967
968 END IF;
969
970 IF (l_drav_rec.start_date = OKL_API.G_MISS_DATE ) THEN
971
972 l_drav_rec.start_date := NULL;
973
974 END IF;
975
976 IF (l_drav_rec.end_date = OKL_API.G_MISS_DATE ) THEN
977
978 l_drav_rec.end_date := NULL;
979
980 END IF;
981
982 IF (l_drav_rec.fee_option = OKL_API.G_MISS_CHAR ) THEN
983
984 l_drav_rec.fee_option := NULL;
985
986 END IF;
987
988 IF (l_drav_rec.fee_basis = OKL_API.G_MISS_CHAR ) THEN
989
990 l_drav_rec.fee_basis := NULL;
991
992 END IF;
993
994 IF (l_drav_rec.fee_amount = OKL_API.G_MISS_NUM ) THEN
995
996 l_drav_rec.fee_amount := NULL;
997
998 END IF;
999
1000 IF (l_drav_rec.fee_percent = OKL_API.G_MISS_NUM ) THEN
1001
1002 l_drav_rec.fee_percent := NULL;
1003
1004 END IF;
1005
1006 IF (l_drav_rec.consolidate_by_due_date = OKL_API.G_MISS_CHAR ) THEN
1007
1008 l_drav_rec.consolidate_by_due_date := NULL;
1009
1010 END IF;
1011
1012 IF (l_drav_rec.frequency = OKL_API.G_MISS_CHAR ) THEN
1013
1014 l_drav_rec.frequency := NULL;
1015
1016 END IF;
1017
1018 IF (l_drav_rec.day_of_month = OKL_API.G_MISS_NUM ) THEN
1019
1020 l_drav_rec.day_of_month := NULL;
1021
1022 END IF;
1023
1024 IF (l_drav_rec.scheduled_month = OKL_API.G_MISS_CHAR ) THEN
1025
1026 l_drav_rec.scheduled_month := NULL;
1027
1028 END IF;
1029
1030 IF (l_drav_rec.consolidate_strm_type = OKL_API.G_MISS_CHAR ) THEN
1031
1032 l_drav_rec.consolidate_strm_type := NULL;
1033
1034 END IF;
1035
1036 IF (l_drav_rec.description = OKL_API.G_MISS_CHAR ) THEN
1037
1038 l_drav_rec.description := NULL;
1039
1040 END IF;
1041
1042 IF (l_drav_rec.attribute_category = OKL_API.G_MISS_CHAR ) THEN
1043
1044 l_drav_rec.attribute_category := NULL;
1045
1046 END IF;
1047
1048 IF (l_drav_rec.attribute1 = OKL_API.G_MISS_CHAR ) THEN
1049
1050 l_drav_rec.attribute1 := NULL;
1051
1052 END IF;
1053
1054 IF (l_drav_rec.attribute2 = OKL_API.G_MISS_CHAR ) THEN
1055
1056 l_drav_rec.attribute2 := NULL;
1057
1058 END IF;
1059
1060 IF (l_drav_rec.attribute3 = OKL_API.G_MISS_CHAR ) THEN
1061
1062 l_drav_rec.attribute3 := NULL;
1063
1064 END IF;
1065
1066 IF (l_drav_rec.attribute4 = OKL_API.G_MISS_CHAR ) THEN
1067
1068 l_drav_rec.attribute4 := NULL;
1069
1070 END IF;
1071
1072 IF (l_drav_rec.attribute5 = OKL_API.G_MISS_CHAR ) THEN
1073
1074 l_drav_rec.attribute5 := NULL;
1075
1076 END IF;
1077
1078 IF (l_drav_rec.attribute6 = OKL_API.G_MISS_CHAR ) THEN
1079
1080 l_drav_rec.attribute6 := NULL;
1081
1082 END IF;
1083
1084 IF (l_drav_rec.attribute7 = OKL_API.G_MISS_CHAR ) THEN
1085
1086 l_drav_rec.attribute7 := NULL;
1087
1088 END IF;
1089
1090 IF (l_drav_rec.attribute8 = OKL_API.G_MISS_CHAR ) THEN
1091
1092 l_drav_rec.attribute8 := NULL;
1093
1094 END IF;
1095
1096 IF (l_drav_rec.attribute9 = OKL_API.G_MISS_CHAR ) THEN
1097
1098 l_drav_rec.attribute9 := NULL;
1099
1100 END IF;
1101
1102 IF (l_drav_rec.attribute10 = OKL_API.G_MISS_CHAR ) THEN
1103
1104 l_drav_rec.attribute10 := NULL;
1105
1106 END IF;
1107
1108 IF (l_drav_rec.attribute11 = OKL_API.G_MISS_CHAR ) THEN
1109
1110 l_drav_rec.attribute11 := NULL;
1111
1112 END IF;
1113
1114 IF (l_drav_rec.attribute12 = OKL_API.G_MISS_CHAR ) THEN
1115
1116 l_drav_rec.attribute12 := NULL;
1117
1118 END IF;
1119
1120 IF (l_drav_rec.attribute13 = OKL_API.G_MISS_CHAR ) THEN
1121
1122 l_drav_rec.attribute13 := NULL;
1123
1124 END IF;
1125
1126 IF (l_drav_rec.attribute14 = OKL_API.G_MISS_CHAR ) THEN
1127
1128 l_drav_rec.attribute14 := NULL;
1129
1130 END IF;
1131
1132 IF (l_drav_rec.attribute15 = OKL_API.G_MISS_CHAR ) THEN
1133
1134 l_drav_rec.attribute15 := NULL;
1135
1136 END IF;
1137
1138 IF (l_drav_rec.created_by = OKL_API.G_MISS_NUM ) THEN
1139
1140 l_drav_rec.created_by := NULL;
1141
1142 END IF;
1143
1144 IF (l_drav_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
1145
1146 l_drav_rec.creation_date := NULL;
1147
1148 END IF;
1149
1150 IF (l_drav_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
1151
1152 l_drav_rec.last_updated_by := NULL;
1153
1154 END IF;
1155
1156 IF (l_drav_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
1157
1158 l_drav_rec.last_update_date := NULL;
1159
1160 END IF;
1161
1162 IF (l_drav_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
1163
1164 l_drav_rec.last_update_login := NULL;
1165
1166 END IF;
1167
1168 RETURN(l_drav_rec);
1169
1170 END null_out_defaults;
1171
1172 -------------------------------------------
1173
1174 -- Validate_Attributes for: DISB_RULE_ID --
1175
1176 -------------------------------------------
1177
1178 PROCEDURE validate_disb_rule_id(
1179
1180 x_return_status OUT NOCOPY VARCHAR2,
1181
1182 p_disb_rule_id IN NUMBER) IS
1183
1184 BEGIN
1185
1186 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1187
1188 IF (p_disb_rule_id IS NULL) THEN
1189
1190 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'disb_rule_id');
1191
1192 x_return_status := OKL_API.G_RET_STS_ERROR;
1193
1194 RAISE G_EXCEPTION_HALT_VALIDATION;
1195
1196 END IF;
1197
1198 EXCEPTION
1199
1200 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1201
1202 null;
1203
1204 WHEN OTHERS THEN
1205
1206 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1207
1208 ,p_msg_name => G_UNEXPECTED_ERROR
1209
1210 ,p_token1 => G_SQLCODE_TOKEN
1211
1212 ,p_token1_value => SQLCODE
1213
1214 ,p_token2 => G_SQLERRM_TOKEN
1215
1216 ,p_token2_value => SQLERRM);
1217
1218 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1219
1220 END validate_disb_rule_id;
1221
1222 ----------------------------------------------------
1223
1224 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
1225
1226 ----------------------------------------------------
1227
1228 PROCEDURE validate_object_version_number(
1229
1230 x_return_status OUT NOCOPY VARCHAR2,
1231
1232 p_object_version_number IN NUMBER) IS
1233
1234 BEGIN
1235
1236 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1237
1238 IF (p_object_version_number IS NULL) THEN
1239
1240 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
1241
1242 x_return_status := OKL_API.G_RET_STS_ERROR;
1243
1244 RAISE G_EXCEPTION_HALT_VALIDATION;
1245
1246 END IF;
1247
1248 EXCEPTION
1249
1250 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1251
1252 null;
1253
1254 WHEN OTHERS THEN
1255
1256 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1257
1258 ,p_msg_name => G_UNEXPECTED_ERROR
1259
1260 ,p_token1 => G_SQLCODE_TOKEN
1261
1262 ,p_token1_value => SQLCODE
1263
1264 ,p_token2 => G_SQLERRM_TOKEN
1265
1266 ,p_token2_value => SQLERRM);
1267
1268 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1269
1270 END validate_object_version_number;
1271
1272 ----------------------------------------
1273
1274 -- Validate_Attributes for: SFWT_FLAG --
1275
1276 ----------------------------------------
1277
1278 PROCEDURE validate_sfwt_flag(
1279
1280 x_return_status OUT NOCOPY VARCHAR2,
1281
1282 p_sfwt_flag IN VARCHAR2) IS
1283
1284 BEGIN
1285
1286 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1287
1288 IF (p_sfwt_flag IS NULL) THEN
1289
1290 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'sfwt_flag');
1291
1292 x_return_status := OKL_API.G_RET_STS_ERROR;
1293
1294 RAISE G_EXCEPTION_HALT_VALIDATION;
1295
1296 END IF;
1297
1298 EXCEPTION
1299
1300 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1301
1302 null;
1303
1304 WHEN OTHERS THEN
1305
1306 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1307
1308 ,p_msg_name => G_UNEXPECTED_ERROR
1309
1310 ,p_token1 => G_SQLCODE_TOKEN
1311
1312 ,p_token1_value => SQLCODE
1313
1314 ,p_token2 => G_SQLERRM_TOKEN
1315
1316 ,p_token2_value => SQLERRM);
1317
1318 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1319
1320 END validate_sfwt_flag;
1321
1322 ----------------------------------------
1323
1324 -- Validate_Attributes for: RULE_NAME --
1325
1326 ----------------------------------------
1327
1328 PROCEDURE validate_rule_name(
1329
1330 x_return_status OUT NOCOPY VARCHAR2,
1331
1332 p_rule_name IN VARCHAR2) IS
1333
1334 BEGIN
1335
1336 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1337
1338 IF (p_rule_name IS NULL) THEN
1339
1340 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'rule_name');
1341
1342 x_return_status := OKL_API.G_RET_STS_ERROR;
1343
1344 RAISE G_EXCEPTION_HALT_VALIDATION;
1345
1346 END IF;
1347
1348 EXCEPTION
1349
1350 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1351
1352 null;
1353
1354 WHEN OTHERS THEN
1355
1356 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1357
1358 ,p_msg_name => G_UNEXPECTED_ERROR
1359
1360 ,p_token1 => G_SQLCODE_TOKEN
1361
1362 ,p_token1_value => SQLCODE
1363
1364 ,p_token2 => G_SQLERRM_TOKEN
1365
1366 ,p_token2_value => SQLERRM);
1367
1368 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1369
1370 END validate_rule_name;
1371
1372 -------------------------------------
1373
1374 -- Validate_Attributes for: ORG_ID --
1375
1376 -------------------------------------
1377
1378 PROCEDURE validate_org_id(
1379
1380 x_return_status OUT NOCOPY VARCHAR2,
1381
1382 p_org_id IN NUMBER) IS
1383
1384 BEGIN
1385
1386 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1387
1388 IF (p_org_id IS NULL) THEN
1389
1390 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'org_id');
1391
1392 x_return_status := OKL_API.G_RET_STS_ERROR;
1393
1394 RAISE G_EXCEPTION_HALT_VALIDATION;
1395
1396 END IF;
1397
1398 EXCEPTION
1399
1400 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1401
1402 null;
1403
1404 WHEN OTHERS THEN
1405
1406 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1407
1408 ,p_msg_name => G_UNEXPECTED_ERROR
1409
1410 ,p_token1 => G_SQLCODE_TOKEN
1411
1412 ,p_token1_value => SQLCODE
1413
1414 ,p_token2 => G_SQLERRM_TOKEN
1415
1416 ,p_token2_value => SQLERRM);
1417
1418 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1419
1420 END validate_org_id;
1421
1422 -----------------------------------------
1423
1424 -- Validate_Attributes for: START_DATE --
1425
1426 -----------------------------------------
1427
1428 PROCEDURE validate_start_date(
1429
1430 x_return_status OUT NOCOPY VARCHAR2,
1431
1432 p_start_date IN DATE) IS
1433
1434 BEGIN
1435
1436 x_return_status := OKL_API.G_RET_STS_SUCCESS;
1437
1438 IF (p_start_date IS NULL) THEN
1439
1440 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'start_date');
1441
1442 x_return_status := OKL_API.G_RET_STS_ERROR;
1443
1444 RAISE G_EXCEPTION_HALT_VALIDATION;
1445
1446 END IF;
1447
1448 EXCEPTION
1449
1450 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1451
1452 null;
1453
1454 WHEN OTHERS THEN
1455
1456 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1457
1458 ,p_msg_name => G_UNEXPECTED_ERROR
1459
1460 ,p_token1 => G_SQLCODE_TOKEN
1461
1462 ,p_token1_value => SQLCODE
1463
1464 ,p_token2 => G_SQLERRM_TOKEN
1465
1466 ,p_token2_value => SQLERRM);
1467
1468 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1469
1470 END validate_start_date;
1471
1472 ---------------------------------------------------------------------------
1473
1474 -- FUNCTION Validate_Attributes
1475
1476 ---------------------------------------------------------------------------
1477
1478 ----------------------------------------------
1479
1480 -- Validate_Attributes for:OKL_DISB_RULES_V --
1481
1482 ----------------------------------------------
1483
1484 FUNCTION Validate_Attributes (
1485
1486 p_drav_rec IN drav_rec_type
1487
1488 ) RETURN VARCHAR2 IS
1489
1490 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1491
1492 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1493
1494 BEGIN
1495
1496 -----------------------------
1497
1498 -- Column Level Validation --
1499
1500 -----------------------------
1501
1502 -- ***
1503
1504 -- disb_rule_id
1505
1506 -- ***
1507
1508 validate_disb_rule_id(x_return_status, p_drav_rec.disb_rule_id);
1509
1510 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1511
1512 l_return_status := x_return_status;
1513
1514 RAISE G_EXCEPTION_HALT_VALIDATION;
1515
1516 END IF;
1517
1518
1519
1520 -- ***
1521
1522 -- object_version_number
1523
1524 -- ***
1525
1526 validate_object_version_number(x_return_status, p_drav_rec.object_version_number);
1527
1528 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1529
1530 l_return_status := x_return_status;
1531
1532 RAISE G_EXCEPTION_HALT_VALIDATION;
1533
1534 END IF;
1535
1536
1537
1538 -- ***
1539
1540 -- sfwt_flag
1541
1542 -- ***
1543
1544 /* validate_sfwt_flag(x_return_status, p_drav_rec.sfwt_flag);
1545
1546 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1547
1548 l_return_status := x_return_status;
1549
1550 RAISE G_EXCEPTION_HALT_VALIDATION;
1551
1552 END IF;*/
1553
1554
1555
1556 -- ***
1557
1558 -- rule_name
1559
1560 -- ***
1561
1562 validate_rule_name(x_return_status, p_drav_rec.rule_name);
1563
1564 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1565
1566 l_return_status := x_return_status;
1567
1568 RAISE G_EXCEPTION_HALT_VALIDATION;
1569
1570 END IF;
1571
1572
1573
1574 -- ***
1575
1576 -- org_id
1577
1578 -- ***
1579
1580 validate_org_id(x_return_status, p_drav_rec.org_id);
1581
1582 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1583
1584 l_return_status := x_return_status;
1585
1586 RAISE G_EXCEPTION_HALT_VALIDATION;
1587
1588 END IF;
1589
1590
1591
1592 -- ***
1593
1594 -- start_date
1595
1596 -- ***
1597
1598 validate_start_date(x_return_status, p_drav_rec.start_date);
1599
1600 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1601
1602 l_return_status := x_return_status;
1603
1604 RAISE G_EXCEPTION_HALT_VALIDATION;
1605
1606 END IF;
1607
1608
1609
1610 RETURN(l_return_status);
1611
1612 EXCEPTION
1613
1614 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1615
1616 RETURN(l_return_status);
1617
1618 WHEN OTHERS THEN
1619
1620 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1621
1622 ,p_msg_name => G_UNEXPECTED_ERROR
1623
1624 ,p_token1 => G_SQLCODE_TOKEN
1625
1626 ,p_token1_value => SQLCODE
1627
1628 ,p_token2 => G_SQLERRM_TOKEN
1629
1630 ,p_token2_value => SQLERRM);
1631
1632 l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1633
1634 RETURN(l_return_status);
1635
1636 END Validate_Attributes;
1637
1638 ---------------------------------------------------------------------------
1639
1640 -- PROCEDURE Validate_Record
1641
1642 ---------------------------------------------------------------------------
1643
1644 ------------------------------------------
1645
1646 -- Validate Record for:OKL_DISB_RULES_V --
1647
1648 ------------------------------------------
1649
1650 FUNCTION Validate_Record (
1651
1652 p_drav_rec IN drav_rec_type,
1653
1654 p_db_drav_rec IN drav_rec_type
1655
1656 ) RETURN VARCHAR2 IS
1657
1658 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1659
1660 BEGIN
1661
1662 RETURN (l_return_status);
1663
1664 END Validate_Record;
1665
1666 FUNCTION Validate_Record (
1667
1668 p_drav_rec IN drav_rec_type
1669
1670 ) RETURN VARCHAR2 IS
1671
1672 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1673
1674 l_db_drav_rec drav_rec_type := get_rec(p_drav_rec);
1675
1676 BEGIN
1677
1678 l_return_status := Validate_Record(p_drav_rec => p_drav_rec,
1679
1680 p_db_drav_rec => l_db_drav_rec);
1681
1682 RETURN (l_return_status);
1683
1684 END Validate_Record;
1685
1686
1687
1688 ---------------------------------------------------------------------------
1689
1690 -- PROCEDURE Migrate
1691
1692 ---------------------------------------------------------------------------
1693
1694 PROCEDURE migrate (
1695
1696 p_from IN drav_rec_type,
1697
1698 p_to IN OUT NOCOPY okl_disb_rules_tl_rec_type
1699
1700 ) IS
1701
1702 BEGIN
1703
1704 p_to.disb_rule_id := p_from.disb_rule_id;
1705
1706 p_to.sfwt_flag := p_from.sfwt_flag;
1707
1708 p_to.description := p_from.description;
1709
1710 p_to.created_by := p_from.created_by;
1711
1712 p_to.creation_date := p_from.creation_date;
1713
1714 p_to.last_updated_by := p_from.last_updated_by;
1715
1716 p_to.last_update_date := p_from.last_update_date;
1717
1718 p_to.last_update_login := p_from.last_update_login;
1719
1720 END migrate;
1721
1722 PROCEDURE migrate (
1723
1724 p_from IN okl_disb_rules_tl_rec_type,
1725
1726 p_to IN OUT NOCOPY drav_rec_type
1727
1728 ) IS
1729
1730 BEGIN
1731
1732 p_to.disb_rule_id := p_from.disb_rule_id;
1733
1734 p_to.sfwt_flag := p_from.sfwt_flag;
1735
1736 p_to.description := p_from.description;
1737
1738 p_to.created_by := p_from.created_by;
1739
1740 p_to.creation_date := p_from.creation_date;
1741
1742 p_to.last_updated_by := p_from.last_updated_by;
1743
1744 p_to.last_update_date := p_from.last_update_date;
1745
1746 p_to.last_update_login := p_from.last_update_login;
1747
1748 END migrate;
1749
1750 PROCEDURE migrate (
1751
1752 p_from IN drav_rec_type,
1753
1754 p_to IN OUT NOCOPY dra_rec_type
1755
1756 ) IS
1757
1758 BEGIN
1759
1760 p_to.disb_rule_id := p_from.disb_rule_id;
1761
1762 --g_debug_proc('Migrate disb_rule_id' || p_to.disb_rule_id);
1763
1764 p_to.object_version_number := p_from.object_version_number;
1765
1766 p_to.rule_name := p_from.rule_name;
1767
1768 p_to.org_id := p_from.org_id;
1769
1770 p_to.start_date := p_from.start_date;
1771
1772 p_to.end_date := p_from.end_date;
1773
1774 p_to.fee_option := p_from.fee_option;
1775
1776 p_to.fee_basis := p_from.fee_basis;
1777
1778 p_to.fee_amount := p_from.fee_amount;
1779
1780 p_to.fee_percent := p_from.fee_percent;
1781
1782 p_to.consolidate_by_due_date := p_from.consolidate_by_due_date;
1783
1784 p_to.frequency := p_from.frequency;
1785
1786 p_to.day_of_month := p_from.day_of_month;
1787
1788 p_to.scheduled_month := p_from.scheduled_month;
1789
1790 ----g_debug_proc('Migrate p_from' || p_to.scheduled_month);
1791 ----g_debug_proc('Migrate p_to' || p_to.scheduled_month);
1792
1793
1794 p_to.consolidate_strm_type := p_from.consolidate_strm_type;
1795
1796 p_to.attribute_category := p_from.attribute_category;
1797
1798 p_to.attribute1 := p_from.attribute1;
1799
1800 p_to.attribute2 := p_from.attribute2;
1801
1802 p_to.attribute3 := p_from.attribute3;
1803
1804 p_to.attribute4 := p_from.attribute4;
1805
1806 p_to.attribute5 := p_from.attribute5;
1807
1808 p_to.attribute6 := p_from.attribute6;
1809
1810 p_to.attribute7 := p_from.attribute7;
1811
1812 p_to.attribute8 := p_from.attribute8;
1813
1814 p_to.attribute9 := p_from.attribute9;
1815
1816 p_to.attribute10 := p_from.attribute10;
1817
1818 p_to.attribute11 := p_from.attribute11;
1819
1820 p_to.attribute12 := p_from.attribute12;
1821
1822 p_to.attribute13 := p_from.attribute13;
1823
1824 p_to.attribute14 := p_from.attribute14;
1825
1826 p_to.attribute15 := p_from.attribute15;
1827
1828 p_to.created_by := p_from.created_by;
1829
1830 p_to.creation_date := p_from.creation_date;
1831
1832 p_to.last_updated_by := p_from.last_updated_by;
1833
1834 p_to.last_update_date := p_from.last_update_date;
1835
1836 p_to.last_update_login := p_from.last_update_login;
1837
1838 END migrate;
1839
1840 PROCEDURE migrate (
1841
1842 p_from IN dra_rec_type,
1843
1844 p_to IN OUT NOCOPY drav_rec_type
1845
1846 ) IS
1847
1848 BEGIN
1849
1850 p_to.disb_rule_id := p_from.disb_rule_id;
1851
1852 p_to.object_version_number := p_from.object_version_number;
1853
1854 p_to.rule_name := p_from.rule_name;
1855
1856 p_to.org_id := p_from.org_id;
1857
1858 p_to.start_date := p_from.start_date;
1859
1860 p_to.end_date := p_from.end_date;
1861
1862 p_to.fee_option := p_from.fee_option;
1863
1864 p_to.fee_basis := p_from.fee_basis;
1865
1866 p_to.fee_amount := p_from.fee_amount;
1867
1868 p_to.fee_percent := p_from.fee_percent;
1869
1870 p_to.consolidate_by_due_date := p_from.consolidate_by_due_date;
1871
1872 p_to.frequency := p_from.frequency;
1873
1874 p_to.day_of_month := p_from.day_of_month;
1875
1876 p_to.scheduled_month := p_from.scheduled_month;
1877
1878 p_to.consolidate_strm_type := p_from.consolidate_strm_type;
1879
1880 p_to.attribute_category := p_from.attribute_category;
1881
1882 p_to.attribute1 := p_from.attribute1;
1883
1884 p_to.attribute2 := p_from.attribute2;
1885
1886 p_to.attribute3 := p_from.attribute3;
1887
1888 p_to.attribute4 := p_from.attribute4;
1889
1890 p_to.attribute5 := p_from.attribute5;
1891
1892 p_to.attribute6 := p_from.attribute6;
1893
1894 p_to.attribute7 := p_from.attribute7;
1895
1896 p_to.attribute8 := p_from.attribute8;
1897
1898 p_to.attribute9 := p_from.attribute9;
1899
1900 p_to.attribute10 := p_from.attribute10;
1901
1902 p_to.attribute11 := p_from.attribute11;
1903
1904 p_to.attribute12 := p_from.attribute12;
1905
1906 p_to.attribute13 := p_from.attribute13;
1907
1908 p_to.attribute14 := p_from.attribute14;
1909
1910 p_to.attribute15 := p_from.attribute15;
1911
1912 p_to.created_by := p_from.created_by;
1913
1914 p_to.creation_date := p_from.creation_date;
1915
1916 p_to.last_updated_by := p_from.last_updated_by;
1917
1918 p_to.last_update_date := p_from.last_update_date;
1919
1920 p_to.last_update_login := p_from.last_update_login;
1921
1922 END migrate;
1923
1924 ---------------------------------------------------------------------------
1925
1926 -- PROCEDURE validate_row
1927
1928 ---------------------------------------------------------------------------
1929
1930 ---------------------------------------
1931
1932 -- validate_row for:OKL_DISB_RULES_V --
1933
1934 ---------------------------------------
1935
1936 PROCEDURE validate_row(
1937
1938 p_api_version IN NUMBER,
1939
1940 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1941
1942 x_return_status OUT NOCOPY VARCHAR2,
1943
1944 x_msg_count OUT NOCOPY NUMBER,
1945
1946 x_msg_data OUT NOCOPY VARCHAR2,
1947
1948 p_drav_rec IN drav_rec_type) IS
1949
1950
1951
1952 l_api_version CONSTANT NUMBER := 1;
1953
1954 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1955
1956 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1957
1958 l_drav_rec drav_rec_type := p_drav_rec;
1959
1960 l_dra_rec dra_rec_type;
1961
1962 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
1963
1964 BEGIN
1965
1966 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1967
1968 G_PKG_NAME,
1969
1970 p_init_msg_list,
1971
1972 l_api_version,
1973
1974 p_api_version,
1975
1976 '_PVT',
1977
1978 x_return_status);
1979
1980 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1981
1982 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1983
1984 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1985
1986 RAISE OKL_API.G_EXCEPTION_ERROR;
1987
1988 END IF;
1989
1990 --- Validate all non-missing attributes (Item Level Validation)
1991
1992 l_return_status := Validate_Attributes(l_drav_rec);
1993
1994 --- If any errors happen abort API
1995
1996 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1997
1998 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1999
2000 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2001
2002 RAISE OKL_API.G_EXCEPTION_ERROR;
2003
2004 END IF;
2005
2006 l_return_status := Validate_Record(l_drav_rec);
2007
2008 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2009
2010 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2011
2012 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2013
2014 RAISE OKL_API.G_EXCEPTION_ERROR;
2015
2016 END IF;
2017
2018 x_return_status := l_return_status;
2019
2020 EXCEPTION
2021
2022 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2023
2024 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2025
2026 (
2027
2028 l_api_name,
2029
2030 G_PKG_NAME,
2031
2032 'OKL_API.G_RET_STS_ERROR',
2033
2034 x_msg_count,
2035
2036 x_msg_data,
2037
2038 '_PVT'
2039
2040 );
2041
2042 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2043
2044 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2045
2046 (
2047
2048 l_api_name,
2049
2050 G_PKG_NAME,
2051
2052 'OKL_API.G_RET_STS_UNEXP_ERROR',
2053
2054 x_msg_count,
2055
2056 x_msg_data,
2057
2058 '_PVT'
2059
2060 );
2061
2062 WHEN OTHERS THEN
2063
2064 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2065
2066 (
2067
2068 l_api_name,
2069
2070 G_PKG_NAME,
2071
2072 'OTHERS',
2073
2074 x_msg_count,
2075
2076 x_msg_data,
2077
2078 '_PVT'
2079
2080 );
2081
2082 END validate_row;
2083
2084 --------------------------------------------------
2085
2086 -- PL/SQL TBL validate_row for:OKL_DISB_RULES_V --
2087
2088 --------------------------------------------------
2089
2090 PROCEDURE validate_row(
2091
2092 p_api_version IN NUMBER,
2093
2094 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2095
2096 x_return_status OUT NOCOPY VARCHAR2,
2097
2098 x_msg_count OUT NOCOPY NUMBER,
2099
2100 x_msg_data OUT NOCOPY VARCHAR2,
2101
2102 p_drav_tbl IN drav_tbl_type,
2103
2104 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2105
2106
2107
2108 l_api_version CONSTANT NUMBER := 1;
2109
2110 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
2111
2112 i NUMBER := 0;
2113
2114 BEGIN
2115
2116 OKL_API.init_msg_list(p_init_msg_list);
2117
2118 -- Make sure PL/SQL table has records in it before passing
2119
2120 IF (p_drav_tbl.COUNT > 0) THEN
2121
2122 i := p_drav_tbl.FIRST;
2123
2124 LOOP
2125
2126 DECLARE
2127
2128 l_error_rec OKL_API.ERROR_REC_TYPE;
2129
2130 BEGIN
2131
2132 l_error_rec.api_name := l_api_name;
2133
2134 l_error_rec.api_package := G_PKG_NAME;
2135
2136 l_error_rec.idx := i;
2137
2138 validate_row (
2139
2140 p_api_version => p_api_version,
2141
2142 p_init_msg_list => OKL_API.G_FALSE,
2143
2144 x_return_status => l_error_rec.error_type,
2145
2146 x_msg_count => l_error_rec.msg_count,
2147
2148 x_msg_data => l_error_rec.msg_data,
2149
2150 p_drav_rec => p_drav_tbl(i));
2151
2152 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2153
2154 l_error_rec.sqlcode := SQLCODE;
2155
2156 load_error_tbl(l_error_rec, px_error_tbl);
2157
2158 ELSE
2159
2160 x_msg_count := l_error_rec.msg_count;
2161
2162 x_msg_data := l_error_rec.msg_data;
2163
2164 END IF;
2165
2166 EXCEPTION
2167
2168 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2169
2170 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2171
2172 l_error_rec.sqlcode := SQLCODE;
2173
2174 load_error_tbl(l_error_rec, px_error_tbl);
2175
2176 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2177
2178 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2179
2180 l_error_rec.sqlcode := SQLCODE;
2181
2182 load_error_tbl(l_error_rec, px_error_tbl);
2183
2184 WHEN OTHERS THEN
2185
2186 l_error_rec.error_type := 'OTHERS';
2187
2188 l_error_rec.sqlcode := SQLCODE;
2189
2190 load_error_tbl(l_error_rec, px_error_tbl);
2191
2192 END;
2193
2194 EXIT WHEN (i = p_drav_tbl.LAST);
2195
2196 i := p_drav_tbl.NEXT(i);
2197
2198 END LOOP;
2199
2200 END IF;
2201
2202 -- Loop through the error_tbl to find the error with the highest severity
2203
2204 -- and return it.
2205
2206 x_return_status := find_highest_exception(px_error_tbl);
2207
2208 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2209
2210 EXCEPTION
2211
2212 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2213
2214 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2215
2216 (
2217
2218 l_api_name,
2219
2220 G_PKG_NAME,
2221
2222 'OKL_API.G_RET_STS_ERROR',
2223
2224 x_msg_count,
2225
2226 x_msg_data,
2227
2228 '_PVT'
2229
2230 );
2231
2232 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2233
2234 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2235
2236 (
2237
2238 l_api_name,
2239
2240 G_PKG_NAME,
2241
2242 'OKL_API.G_RET_STS_UNEXP_ERROR',
2243
2244 x_msg_count,
2245
2246 x_msg_data,
2247
2248 '_PVT'
2249
2250 );
2251
2252 WHEN OTHERS THEN
2253
2254 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2255
2256 (
2257
2258 l_api_name,
2259
2260 G_PKG_NAME,
2261
2262 'OTHERS',
2263
2264 x_msg_count,
2265
2266 x_msg_data,
2267
2268 '_PVT'
2269
2270 );
2271
2272 END validate_row;
2273
2274
2275
2276 --------------------------------------------------
2277
2278 -- PL/SQL TBL validate_row for:OKL_DISB_RULES_V --
2279
2280 --------------------------------------------------
2281
2282 PROCEDURE validate_row(
2283
2284 p_api_version IN NUMBER,
2285
2286 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2287
2288 x_return_status OUT NOCOPY VARCHAR2,
2289
2290 x_msg_count OUT NOCOPY NUMBER,
2291
2292 x_msg_data OUT NOCOPY VARCHAR2,
2293
2294 p_drav_tbl IN drav_tbl_type) IS
2295
2296
2297
2298 l_api_version CONSTANT NUMBER := 1;
2299
2300 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
2301
2302 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2303
2304 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2305
2306 BEGIN
2307
2308 OKL_API.init_msg_list(p_init_msg_list);
2309
2310 -- Make sure PL/SQL table has records in it before passing
2311
2312 IF (p_drav_tbl.COUNT > 0) THEN
2313
2314 validate_row (
2315
2316 p_api_version => p_api_version,
2317
2318 p_init_msg_list => OKL_API.G_FALSE,
2319
2320 x_return_status => x_return_status,
2321
2322 x_msg_count => x_msg_count,
2323
2324 x_msg_data => x_msg_data,
2325
2326 p_drav_tbl => p_drav_tbl,
2327
2328 px_error_tbl => l_error_tbl);
2329
2330 END IF;
2331
2332 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2333
2334 EXCEPTION
2335
2336 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2337
2338 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2339
2340 (
2341
2342 l_api_name,
2343
2344 G_PKG_NAME,
2345
2346 'OKL_API.G_RET_STS_ERROR',
2347
2348 x_msg_count,
2349
2350 x_msg_data,
2351
2352 '_PVT'
2353
2354 );
2355
2356 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2357
2358 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2359
2360 (
2361
2362 l_api_name,
2363
2364 G_PKG_NAME,
2365
2366 'OKL_API.G_RET_STS_UNEXP_ERROR',
2367
2368 x_msg_count,
2369
2370 x_msg_data,
2371
2372 '_PVT'
2373
2374 );
2375
2376 WHEN OTHERS THEN
2377
2378 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2379
2380 (
2381
2382 l_api_name,
2383
2384 G_PKG_NAME,
2385
2386 'OTHERS',
2387
2388 x_msg_count,
2389
2390 x_msg_data,
2391
2392 '_PVT'
2393
2394 );
2395
2396 END validate_row;
2397
2398
2399
2400 ---------------------------------------------------------------------------
2401
2402 -- PROCEDURE insert_row
2403
2404 ---------------------------------------------------------------------------
2405
2406 -------------------------------------
2407
2408 -- insert_row for:OKL_DISB_RULES_B --
2409
2410 -------------------------------------
2411
2412 PROCEDURE insert_row(
2413
2414 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2415 x_return_status OUT NOCOPY VARCHAR2,
2416 x_msg_count OUT NOCOPY NUMBER,
2417 x_msg_data OUT NOCOPY VARCHAR2,
2418 p_dra_rec IN dra_rec_type,
2419 x_dra_rec OUT NOCOPY dra_rec_type) IS
2420
2421
2422
2423 l_api_version CONSTANT NUMBER := 1;
2424 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
2425 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2426 l_dra_rec dra_rec_type := p_dra_rec;
2427 l_def_dra_rec dra_rec_type;
2428
2429 -----------------------------------------
2430
2431 -- Set_Attributes for:OKL_DISB_RULES_B --
2432
2433 -----------------------------------------
2434
2435 FUNCTION Set_Attributes (
2436 p_dra_rec IN dra_rec_type,
2437 x_dra_rec OUT NOCOPY dra_rec_type
2438
2439 ) RETURN VARCHAR2 IS
2440
2441 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2442
2443 BEGIN
2444 x_dra_rec := p_dra_rec;
2445 RETURN(l_return_status);
2446 END Set_Attributes;
2447
2448 BEGIN
2449
2450 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2451 p_init_msg_list,
2452 '_PVT',
2453 x_return_status);
2454
2455 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2456 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2457 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2458 RAISE OKL_API.G_EXCEPTION_ERROR;
2459 END IF;
2460
2461 --- Setting item atributes
2462
2463 l_return_status := Set_Attributes(
2464 l_dra_rec, -- IN
2465 l_def_dra_rec); -- OUT
2466
2467 --- If any errors happen abort API
2468
2469 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2470 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2471 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2472 RAISE OKL_API.G_EXCEPTION_ERROR;
2473 END IF;
2474
2475 INSERT INTO OKL_DISB_RULES_B(
2476 disb_rule_id,
2477 object_version_number,
2478 rule_name,
2479 org_id,
2480
2481 start_date,
2482
2483 end_date,
2484
2485 fee_option,
2486
2487 fee_basis,
2488
2489 fee_amount,
2490
2491 fee_percent,
2492
2493 consolidate_by_due_date,
2494
2495 frequency,
2496
2497 day_of_month,
2498
2499 scheduled_month,
2500
2501 consolidate_strm_type,
2502
2503 attribute_category,
2504
2505 attribute1,
2506
2507 attribute2,
2508
2509 attribute3,
2510
2511 attribute4,
2512
2513 attribute5,
2514
2515 attribute6,
2516
2517 attribute7,
2518
2519 attribute8,
2520
2521 attribute9,
2522
2523 attribute10,
2524
2525 attribute11,
2526
2527 attribute12,
2528
2529 attribute13,
2530
2531 attribute14,
2532
2533 attribute15,
2534
2535 created_by,
2536
2537 creation_date,
2538
2539 last_updated_by,
2540
2541 last_update_date,
2542
2543 last_update_login)
2544
2545 VALUES (
2546
2547 l_def_dra_rec.disb_rule_id,
2548
2549 l_def_dra_rec.object_version_number,
2550
2551 l_def_dra_rec.rule_name,
2552
2553 l_def_dra_rec.org_id,
2554
2555 l_def_dra_rec.start_date,
2556
2557 l_def_dra_rec.end_date,
2558
2559 l_def_dra_rec.fee_option,
2560
2561 l_def_dra_rec.fee_basis,
2562
2563 l_def_dra_rec.fee_amount,
2564
2565 l_def_dra_rec.fee_percent,
2566
2567 l_def_dra_rec.consolidate_by_due_date,
2568
2569 l_def_dra_rec.frequency,
2570
2571 l_def_dra_rec.day_of_month,
2572
2573 l_def_dra_rec.scheduled_month,
2574
2575 l_def_dra_rec.consolidate_strm_type,
2576
2577 l_def_dra_rec.attribute_category,
2578
2579 l_def_dra_rec.attribute1,
2580
2581 l_def_dra_rec.attribute2,
2582
2583 l_def_dra_rec.attribute3,
2584
2585 l_def_dra_rec.attribute4,
2586
2587 l_def_dra_rec.attribute5,
2588
2589 l_def_dra_rec.attribute6,
2590
2591 l_def_dra_rec.attribute7,
2592
2593 l_def_dra_rec.attribute8,
2594
2595 l_def_dra_rec.attribute9,
2596
2597 l_def_dra_rec.attribute10,
2598
2599 l_def_dra_rec.attribute11,
2600
2601 l_def_dra_rec.attribute12,
2602
2603 l_def_dra_rec.attribute13,
2604
2605 l_def_dra_rec.attribute14,
2606
2607 l_def_dra_rec.attribute15,
2608
2609 l_def_dra_rec.created_by,
2610
2611 l_def_dra_rec.creation_date,
2612
2613 l_def_dra_rec.last_updated_by,
2614
2615 l_def_dra_rec.last_update_date,
2616
2617 l_def_dra_rec.last_update_login);
2618
2619 -- Set OUT values
2620
2621 x_dra_rec := l_dra_rec;
2622
2623 x_return_status := l_return_status;
2624
2625 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2626
2627 EXCEPTION
2628
2629 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2630
2631 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2632
2633 (
2634
2635 l_api_name,
2636
2637 G_PKG_NAME,
2638
2639 'OKL_API.G_RET_STS_ERROR',
2640
2641 x_msg_count,
2642
2643 x_msg_data,
2644
2645 '_PVT'
2646
2647 );
2648
2649 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2650
2651 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2652
2653 (
2654
2655 l_api_name,
2656
2657 G_PKG_NAME,
2658
2659 'OKL_API.G_RET_STS_UNEXP_ERROR',
2660
2661 x_msg_count,
2662
2663 x_msg_data,
2664
2665 '_PVT'
2666
2667 );
2668
2669 WHEN OTHERS THEN
2670
2671 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2672
2673 (
2674
2675 l_api_name,
2676
2677 G_PKG_NAME,
2678
2679 'OTHERS',
2680
2681 x_msg_count,
2682
2683 x_msg_data,
2684
2685 '_PVT'
2686
2687 );
2688
2689 END insert_row;
2690
2691 --------------------------------------
2692
2693 -- insert_row for:OKL_DISB_RULES_TL --
2694
2695 --------------------------------------
2696
2697 PROCEDURE insert_row(
2698
2699 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2700
2701 x_return_status OUT NOCOPY VARCHAR2,
2702
2703 x_msg_count OUT NOCOPY NUMBER,
2704
2705 x_msg_data OUT NOCOPY VARCHAR2,
2706
2707 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
2708
2709 x_okl_disb_rules_tl_rec OUT NOCOPY okl_disb_rules_tl_rec_type) IS
2710
2711
2712
2713 l_api_version CONSTANT NUMBER := 1;
2714
2715 l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
2716
2717 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2718
2719 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type := p_okl_disb_rules_tl_rec;
2720
2721 l_def_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
2722
2723 CURSOR get_languages IS
2724
2725 SELECT *
2726
2727 FROM FND_LANGUAGES
2728
2729 WHERE INSTALLED_FLAG IN ('I', 'B');
2730
2731 ------------------------------------------
2732
2733 -- Set_Attributes for:OKL_DISB_RULES_TL --
2734
2735 ------------------------------------------
2736
2737 FUNCTION Set_Attributes (
2738
2739 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
2740
2741 x_okl_disb_rules_tl_rec OUT NOCOPY okl_disb_rules_tl_rec_type
2742
2743 ) RETURN VARCHAR2 IS
2744
2745 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2746
2747 BEGIN
2748
2749 x_okl_disb_rules_tl_rec := p_okl_disb_rules_tl_rec;
2750
2751 x_okl_disb_rules_tl_rec.LANGUAGE := USERENV('LANG');
2752
2753 x_okl_disb_rules_tl_rec.SOURCE_LANG := USERENV('LANG');
2754
2755 RETURN(l_return_status);
2756
2757 END Set_Attributes;
2758
2759 BEGIN
2760
2761 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2762
2763 p_init_msg_list,
2764
2765 '_PVT',
2766
2767 x_return_status);
2768
2769 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2770
2771 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2772
2773 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2774
2775 RAISE OKL_API.G_EXCEPTION_ERROR;
2776
2777 END IF;
2778
2779 --- Setting item attributes
2780
2781 l_return_status := Set_Attributes(
2782
2783 p_okl_disb_rules_tl_rec, -- IN
2784
2785 l_okl_disb_rules_tl_rec); -- OUT
2786
2787 --- If any errors happen abort API
2788
2789 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2790
2791 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2792
2793 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2794
2795 RAISE OKL_API.G_EXCEPTION_ERROR;
2796
2797 END IF;
2798
2799 FOR l_lang_rec IN get_languages LOOP
2800
2801 l_okl_disb_rules_tl_rec.language := l_lang_rec.language_code;
2802
2803 INSERT INTO OKL_DISB_RULES_TL(
2804
2805 disb_rule_id,
2806
2807 language,
2808
2809 source_lang,
2810
2811 sfwt_flag,
2812
2813 description,
2814
2815 created_by,
2816
2817 creation_date,
2818
2819 last_updated_by,
2820
2821 last_update_date,
2822
2823 last_update_login)
2824
2825 VALUES (
2826
2827 l_okl_disb_rules_tl_rec.disb_rule_id,
2828
2829 l_okl_disb_rules_tl_rec.language,
2830
2831 l_okl_disb_rules_tl_rec.source_lang,
2832
2833 l_okl_disb_rules_tl_rec.sfwt_flag,
2834
2835 l_okl_disb_rules_tl_rec.description,
2836
2837 l_okl_disb_rules_tl_rec.created_by,
2838
2839 l_okl_disb_rules_tl_rec.creation_date,
2840
2841 l_okl_disb_rules_tl_rec.last_updated_by,
2842
2843 l_okl_disb_rules_tl_rec.last_update_date,
2844
2845 l_okl_disb_rules_tl_rec.last_update_login);
2846
2847 END LOOP;
2848
2849 -- Set OUT values
2850
2851 x_okl_disb_rules_tl_rec := l_okl_disb_rules_tl_rec;
2852
2853 x_return_status := l_return_status;
2854
2855 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2856
2857 EXCEPTION
2858
2859 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2860
2861 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2862
2863 (
2864
2865 l_api_name,
2866
2867 G_PKG_NAME,
2868
2869 'OKL_API.G_RET_STS_ERROR',
2870
2871 x_msg_count,
2872
2873 x_msg_data,
2874
2875 '_PVT'
2876
2877 );
2878
2879 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2880
2881 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2882
2883 (
2884
2885 l_api_name,
2886
2887 G_PKG_NAME,
2888
2889 'OKL_API.G_RET_STS_UNEXP_ERROR',
2890
2891 x_msg_count,
2892
2893 x_msg_data,
2894
2895 '_PVT'
2896
2897 );
2898
2899 WHEN OTHERS THEN
2900
2901 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2902
2903 (
2904
2905 l_api_name,
2906
2907 G_PKG_NAME,
2908
2909 'OTHERS',
2910
2911 x_msg_count,
2912
2913 x_msg_data,
2914
2915 '_PVT'
2916
2917 );
2918
2919 END insert_row;
2920
2921 --------------------------------------
2922
2923 -- insert_row for :OKL_DISB_RULES_B --
2924
2925 --------------------------------------
2926
2927 PROCEDURE insert_row(
2928
2929 p_api_version IN NUMBER,
2930
2931 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2932
2933 x_return_status OUT NOCOPY VARCHAR2,
2934
2935 x_msg_count OUT NOCOPY NUMBER,
2936
2937 x_msg_data OUT NOCOPY VARCHAR2,
2938
2939 p_drav_rec IN drav_rec_type,
2940
2941 x_drav_rec OUT NOCOPY drav_rec_type) IS
2942
2943
2944
2945 l_api_version CONSTANT NUMBER := 1;
2946
2947 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
2948
2949 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2950
2951 l_drav_rec drav_rec_type := p_drav_rec;
2952
2953 l_def_drav_rec drav_rec_type;
2954
2955 l_dra_rec dra_rec_type;
2956
2957 lx_dra_rec dra_rec_type;
2958
2959 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
2960
2961 lx_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
2962
2963 -------------------------------
2964
2965 -- FUNCTION fill_who_columns --
2966
2967 -------------------------------
2968
2969 FUNCTION fill_who_columns (
2970
2971 p_drav_rec IN drav_rec_type
2972
2973 ) RETURN drav_rec_type IS
2974
2975 l_drav_rec drav_rec_type := p_drav_rec;
2976
2977 BEGIN
2978
2979 l_drav_rec.CREATION_DATE := SYSDATE;
2980
2981 l_drav_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2982
2983 l_drav_rec.LAST_UPDATE_DATE := l_drav_rec.CREATION_DATE;
2984
2985 l_drav_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2986
2987 l_drav_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2988
2989 RETURN(l_drav_rec);
2990
2991 END fill_who_columns;
2992
2993 -----------------------------------------
2994
2995 -- Set_Attributes for:OKL_DISB_RULES_B --
2996
2997 -----------------------------------------
2998
2999 FUNCTION Set_Attributes (
3000
3001 p_drav_rec IN drav_rec_type,
3002
3003 x_drav_rec OUT NOCOPY drav_rec_type
3004
3005 ) RETURN VARCHAR2 IS
3006
3007 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3008
3009 BEGIN
3010
3011 x_drav_rec := p_drav_rec;
3012
3013 x_drav_rec.OBJECT_VERSION_NUMBER := 1;
3014
3015 x_drav_rec.SFWT_FLAG := 'N';
3016
3017 RETURN(l_return_status);
3018
3019 END Set_Attributes;
3020
3021 BEGIN
3022
3023 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3024
3025 G_PKG_NAME,
3026
3027 p_init_msg_list,
3028
3029 l_api_version,
3030
3031 p_api_version,
3032
3033 '_PVT',
3034
3035 x_return_status);
3036
3037 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3038
3039 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3040
3041 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3042
3043 RAISE OKL_API.G_EXCEPTION_ERROR;
3044
3045 END IF;
3046
3047 l_drav_rec := null_out_defaults(p_drav_rec);
3048
3049 -- Set primary key value
3050
3051 l_drav_rec.DISB_RULE_ID := get_seq_id;
3052
3053 -- Setting item attributes
3054
3055 l_return_Status := Set_Attributes(
3056
3057 l_drav_rec, -- IN
3058
3059 l_def_drav_rec); -- OUT
3060
3061 --- If any errors happen abort API
3062
3063 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3064
3065 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3066
3067 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3068
3069 RAISE OKL_API.G_EXCEPTION_ERROR;
3070
3071 END IF;
3072
3073 l_def_drav_rec := fill_who_columns(l_def_drav_rec);
3074
3075 --- Validate all non-missing attributes (Item Level Validation)
3076
3077 l_return_status := Validate_Attributes(l_def_drav_rec);
3078
3079 --- If any errors happen abort API
3080
3081 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3082
3083 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3084
3085 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3086
3087 RAISE OKL_API.G_EXCEPTION_ERROR;
3088
3089 END IF;
3090
3091 l_return_status := Validate_Record(l_def_drav_rec);
3092
3093 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3094
3095 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3096
3097 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3098
3099 RAISE OKL_API.G_EXCEPTION_ERROR;
3100
3101 END IF;
3102
3103 -----------------------------------------
3104
3105 -- Move VIEW record to "Child" records --
3106
3107 -----------------------------------------
3108
3109 migrate(l_def_drav_rec, l_dra_rec);
3110
3111 migrate(l_def_drav_rec, l_okl_disb_rules_tl_rec);
3112
3113 --g_debug_proc('DRA INSERT l_def_drav_rec' || l_def_drav_rec.disb_rule_id);
3114 --g_debug_proc('DRA INSERT l_dra_rec' || l_dra_rec.disb_rule_id);
3115 --g_debug_proc('DRA INSERT l_okl_disb_rules_tl_rec' || l_okl_disb_rules_tl_rec.disb_rule_id);
3116
3117
3118 -----------------------------------------------
3119
3120 -- Call the INSERT_ROW for each child record --
3121
3122 -----------------------------------------------
3123
3124 insert_row(
3125
3126 p_init_msg_list,
3127
3128 l_return_status,
3129
3130 x_msg_count,
3131
3132 x_msg_data,
3133
3134 l_dra_rec,
3135
3136 lx_dra_rec
3137
3138 );
3139
3140 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3141
3142 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3143
3144 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3145
3146 RAISE OKL_API.G_EXCEPTION_ERROR;
3147
3148 END IF;
3149
3150 migrate(lx_dra_rec, l_def_drav_rec);
3151
3152 insert_row(
3153
3154 p_init_msg_list,
3155
3156 l_return_status,
3157
3158 x_msg_count,
3159
3160 x_msg_data,
3161
3162 l_okl_disb_rules_tl_rec,
3163
3164 lx_okl_disb_rules_tl_rec
3165
3166 );
3167
3168 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3169
3170 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3171
3172 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3173
3174 RAISE OKL_API.G_EXCEPTION_ERROR;
3175
3176 END IF;
3177
3178 migrate(lx_okl_disb_rules_tl_rec, l_def_drav_rec);
3179
3180 -- Set OUT values
3181
3182 x_drav_rec := l_def_drav_rec;
3183
3184 x_return_status := l_return_status;
3185
3186 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3187
3188 EXCEPTION
3189
3190 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3191
3192 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3193
3194 (
3195
3196 l_api_name,
3197
3198 G_PKG_NAME,
3199
3200 'OKL_API.G_RET_STS_ERROR',
3201
3202 x_msg_count,
3203
3204 x_msg_data,
3205
3206 '_PVT'
3207
3208 );
3209
3210 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3211
3212 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3213
3214 (
3215
3216 l_api_name,
3217
3218 G_PKG_NAME,
3219
3220 'OKL_API.G_RET_STS_UNEXP_ERROR',
3221
3222 x_msg_count,
3223
3224 x_msg_data,
3225
3226 '_PVT'
3227
3228 );
3229
3230 WHEN OTHERS THEN
3231
3232 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3233
3234 (
3235
3236 l_api_name,
3237
3238 G_PKG_NAME,
3239
3240 'OTHERS',
3241
3242 x_msg_count,
3243
3244 x_msg_data,
3245
3246 '_PVT'
3247
3248 );
3249
3250 END insert_row;
3251
3252 ----------------------------------------
3253
3254 -- PL/SQL TBL insert_row for:DRAV_TBL --
3255
3256 ----------------------------------------
3257
3258 PROCEDURE insert_row(
3259
3260 p_api_version IN NUMBER,
3261
3262 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3263
3264 x_return_status OUT NOCOPY VARCHAR2,
3265
3266 x_msg_count OUT NOCOPY NUMBER,
3267
3268 x_msg_data OUT NOCOPY VARCHAR2,
3269
3270 p_drav_tbl IN drav_tbl_type,
3271
3272 x_drav_tbl OUT NOCOPY drav_tbl_type,
3273
3274 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3275
3276
3277
3278 l_api_version CONSTANT NUMBER := 1;
3279
3280 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
3281
3282 i NUMBER := 0;
3283
3284 BEGIN
3285
3286 OKL_API.init_msg_list(p_init_msg_list);
3287
3288 -- Make sure PL/SQL table has records in it before passing
3289
3290 IF (p_drav_tbl.COUNT > 0) THEN
3291
3292 i := p_drav_tbl.FIRST;
3293
3294 LOOP
3295
3296 DECLARE
3297
3298 l_error_rec OKL_API.ERROR_REC_TYPE;
3299
3300 BEGIN
3301
3302 l_error_rec.api_name := l_api_name;
3303
3304 l_error_rec.api_package := G_PKG_NAME;
3305
3306 l_error_rec.idx := i;
3307
3308 insert_row (
3309
3310 p_api_version => p_api_version,
3311
3312 p_init_msg_list => OKL_API.G_FALSE,
3313
3314 x_return_status => l_error_rec.error_type,
3315
3316 x_msg_count => l_error_rec.msg_count,
3317
3318 x_msg_data => l_error_rec.msg_data,
3319
3320 p_drav_rec => p_drav_tbl(i),
3321
3322 x_drav_rec => x_drav_tbl(i));
3323
3324 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3325
3326 l_error_rec.sqlcode := SQLCODE;
3327
3328 load_error_tbl(l_error_rec, px_error_tbl);
3329
3330 ELSE
3331
3332 x_msg_count := l_error_rec.msg_count;
3333
3334 x_msg_data := l_error_rec.msg_data;
3335
3336 END IF;
3337
3338 EXCEPTION
3339
3340 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3341
3342 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3343
3344 l_error_rec.sqlcode := SQLCODE;
3345
3346 load_error_tbl(l_error_rec, px_error_tbl);
3347
3348 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3349
3350 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3351
3352 l_error_rec.sqlcode := SQLCODE;
3353
3354 load_error_tbl(l_error_rec, px_error_tbl);
3355
3356 WHEN OTHERS THEN
3357
3358 l_error_rec.error_type := 'OTHERS';
3359
3360 l_error_rec.sqlcode := SQLCODE;
3361
3362 load_error_tbl(l_error_rec, px_error_tbl);
3363
3364 END;
3365
3366 EXIT WHEN (i = p_drav_tbl.LAST);
3367
3368 i := p_drav_tbl.NEXT(i);
3369
3370 END LOOP;
3371
3372 END IF;
3373
3374 -- Loop through the error_tbl to find the error with the highest severity
3375
3376 -- and return it.
3377
3378 x_return_status := find_highest_exception(px_error_tbl);
3379
3380 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3381
3382 EXCEPTION
3383
3384 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3385
3386 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3387
3388 (
3389
3390 l_api_name,
3391
3392 G_PKG_NAME,
3393
3394 'OKL_API.G_RET_STS_ERROR',
3395
3396 x_msg_count,
3397
3398 x_msg_data,
3399
3400 '_PVT'
3401
3402 );
3403
3404 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3405
3406 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3407
3408 (
3409
3410 l_api_name,
3411
3412 G_PKG_NAME,
3413
3414 'OKL_API.G_RET_STS_UNEXP_ERROR',
3415
3416 x_msg_count,
3417
3418 x_msg_data,
3419
3420 '_PVT'
3421
3422 );
3423
3424 WHEN OTHERS THEN
3425
3426 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3427
3428 (
3429
3430 l_api_name,
3431
3432 G_PKG_NAME,
3433
3434 'OTHERS',
3435
3436 x_msg_count,
3437
3438 x_msg_data,
3439
3440 '_PVT'
3441
3442 );
3443
3444 END insert_row;
3445
3446
3447
3448 ----------------------------------------
3449
3450 -- PL/SQL TBL insert_row for:DRAV_TBL --
3451
3452 ----------------------------------------
3453
3454 PROCEDURE insert_row(
3455
3456 p_api_version IN NUMBER,
3457
3458 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3459
3460 x_return_status OUT NOCOPY VARCHAR2,
3461
3462 x_msg_count OUT NOCOPY NUMBER,
3463
3464 x_msg_data OUT NOCOPY VARCHAR2,
3465
3466 p_drav_tbl IN drav_tbl_type,
3467
3468 x_drav_tbl OUT NOCOPY drav_tbl_type) IS
3469
3470
3471
3472 l_api_version CONSTANT NUMBER := 1;
3473
3474 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
3475
3476 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3477
3478 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3479
3480 BEGIN
3481
3482 OKL_API.init_msg_list(p_init_msg_list);
3483
3484 -- Make sure PL/SQL table has records in it before passing
3485
3486 IF (p_drav_tbl.COUNT > 0) THEN
3487
3488 insert_row (
3489
3490 p_api_version => p_api_version,
3491
3492 p_init_msg_list => OKL_API.G_FALSE,
3493
3494 x_return_status => x_return_status,
3495
3496 x_msg_count => x_msg_count,
3497
3498 x_msg_data => x_msg_data,
3499
3500 p_drav_tbl => p_drav_tbl,
3501
3502 x_drav_tbl => x_drav_tbl,
3503
3504 px_error_tbl => l_error_tbl);
3505
3506 END IF;
3507
3508 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3509
3510 EXCEPTION
3511
3512 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3513
3514 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3515
3516 (
3517
3518 l_api_name,
3519
3520 G_PKG_NAME,
3521
3522 'OKL_API.G_RET_STS_ERROR',
3523
3524 x_msg_count,
3525
3526 x_msg_data,
3527
3528 '_PVT'
3529
3530 );
3531
3532 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3533
3534 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3535
3536 (
3537
3538 l_api_name,
3539
3540 G_PKG_NAME,
3541
3542 'OKL_API.G_RET_STS_UNEXP_ERROR',
3543
3544 x_msg_count,
3545
3546 x_msg_data,
3547
3548 '_PVT'
3549
3550 );
3551
3552 WHEN OTHERS THEN
3553
3554 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3555
3556 (
3557
3558 l_api_name,
3559
3560 G_PKG_NAME,
3561
3562 'OTHERS',
3563
3564 x_msg_count,
3565
3566 x_msg_data,
3567
3568 '_PVT'
3569
3570 );
3571
3572 END insert_row;
3573
3574
3575
3576 ---------------------------------------------------------------------------
3577
3578 -- PROCEDURE lock_row
3579
3580 ---------------------------------------------------------------------------
3581
3582 -----------------------------------
3583
3584 -- lock_row for:OKL_DISB_RULES_B --
3585
3586 -----------------------------------
3587
3588 PROCEDURE lock_row(
3589
3590 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3591
3592 x_return_status OUT NOCOPY VARCHAR2,
3593
3594 x_msg_count OUT NOCOPY NUMBER,
3595
3596 x_msg_data OUT NOCOPY VARCHAR2,
3597
3598 p_dra_rec IN dra_rec_type) IS
3599
3600
3601
3602 E_Resource_Busy EXCEPTION;
3603
3604 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3605
3606 CURSOR lock_csr (p_dra_rec IN dra_rec_type) IS
3607
3608 SELECT OBJECT_VERSION_NUMBER
3609
3610 FROM OKL_DISB_RULES_B
3611
3612 WHERE DISB_RULE_ID = p_dra_rec.disb_rule_id
3613
3614 AND OBJECT_VERSION_NUMBER = p_dra_rec.object_version_number
3615
3616 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
3617
3618
3619
3620 CURSOR lchk_csr (p_dra_rec IN dra_rec_type) IS
3621
3622 SELECT OBJECT_VERSION_NUMBER
3623
3624 FROM OKL_DISB_RULES_B
3625
3626 WHERE DISB_RULE_ID = p_dra_rec.disb_rule_id;
3627
3628 l_api_version CONSTANT NUMBER := 1;
3629
3630 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
3631
3632 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3633
3634 l_object_version_number OKL_DISB_RULES_B.OBJECT_VERSION_NUMBER%TYPE;
3635
3636 lc_object_version_number OKL_DISB_RULES_B.OBJECT_VERSION_NUMBER%TYPE;
3637
3638 l_row_notfound BOOLEAN := FALSE;
3639
3640 lc_row_notfound BOOLEAN := FALSE;
3641
3642 BEGIN
3643
3644 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3645
3646 p_init_msg_list,
3647
3648 '_PVT',
3649
3650 x_return_status);
3651
3652 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3653
3654 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3655
3656 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3657
3658 RAISE OKL_API.G_EXCEPTION_ERROR;
3659
3660 END IF;
3661
3662 BEGIN
3663
3664 OPEN lock_csr(p_dra_rec);
3665
3666 FETCH lock_csr INTO l_object_version_number;
3667
3668 l_row_notfound := lock_csr%NOTFOUND;
3669
3670 CLOSE lock_csr;
3671
3672 EXCEPTION
3673
3674 WHEN E_Resource_Busy THEN
3675
3676 IF (lock_csr%ISOPEN) THEN
3677
3678 CLOSE lock_csr;
3679
3680 END IF;
3681
3682 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3683
3684 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3685
3686 END;
3687
3688
3689
3690 IF ( l_row_notfound ) THEN
3691
3692 OPEN lchk_csr(p_dra_rec);
3693
3694 FETCH lchk_csr INTO lc_object_version_number;
3695
3696 lc_row_notfound := lchk_csr%NOTFOUND;
3697
3698 CLOSE lchk_csr;
3699
3700 END IF;
3701
3702 IF (lc_row_notfound) THEN
3703
3704 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3705
3706 RAISE OKL_API.G_EXCEPTION_ERROR;
3707
3708 ELSIF lc_object_version_number > p_dra_rec.object_version_number THEN
3709
3710 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3711
3712 RAISE OKL_API.G_EXCEPTION_ERROR;
3713
3714 ELSIF lc_object_version_number <> p_dra_rec.object_version_number THEN
3715
3716 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3717
3718 RAISE OKL_API.G_EXCEPTION_ERROR;
3719
3720 ELSIF lc_object_version_number = -1 THEN
3721
3722 OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
3723
3724 RAISE OKL_API.G_EXCEPTION_ERROR;
3725
3726 END IF;
3727
3728 x_return_status := l_return_status;
3729
3730 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3731
3732 EXCEPTION
3733
3734 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3735
3736 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3737
3738 (
3739
3740 l_api_name,
3741
3742 G_PKG_NAME,
3743
3744 'OKL_API.G_RET_STS_ERROR',
3745
3746 x_msg_count,
3747
3748 x_msg_data,
3749
3750 '_PVT'
3751
3752 );
3753
3754 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3755
3756 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3757
3758 (
3759
3760 l_api_name,
3761
3762 G_PKG_NAME,
3763
3764 'OKL_API.G_RET_STS_UNEXP_ERROR',
3765
3766 x_msg_count,
3767
3768 x_msg_data,
3769
3770 '_PVT'
3771
3772 );
3773
3774 WHEN OTHERS THEN
3775
3776 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3777
3778 (
3779
3780 l_api_name,
3781
3782 G_PKG_NAME,
3783
3784 'OTHERS',
3785
3786 x_msg_count,
3787
3788 x_msg_data,
3789
3790 '_PVT'
3791
3792 );
3793
3794 END lock_row;
3795
3796 ------------------------------------
3797
3798 -- lock_row for:OKL_DISB_RULES_TL --
3799
3800 ------------------------------------
3801
3802 PROCEDURE lock_row(
3803
3804 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3805
3806 x_return_status OUT NOCOPY VARCHAR2,
3807
3808 x_msg_count OUT NOCOPY NUMBER,
3809
3810 x_msg_data OUT NOCOPY VARCHAR2,
3811
3812 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type) IS
3813
3814
3815
3816 E_Resource_Busy EXCEPTION;
3817
3818 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3819
3820 CURSOR lock_csr (p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type) IS
3821
3822 SELECT *
3823
3824 FROM OKL_DISB_RULES_TL
3825
3826 WHERE DISB_RULE_ID = p_okl_disb_rules_tl_rec.disb_rule_id
3827
3828 FOR UPDATE NOWAIT;
3829
3830
3831
3832 l_api_version CONSTANT NUMBER := 1;
3833
3834 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
3835
3836 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3837
3838 l_lock_var lock_csr%ROWTYPE;
3839
3840 l_row_notfound BOOLEAN := FALSE;
3841
3842 lc_row_notfound BOOLEAN := FALSE;
3843
3844 BEGIN
3845
3846 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3847
3848 p_init_msg_list,
3849
3850 '_PVT',
3851
3852 x_return_status);
3853
3854 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3855
3856 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3857
3858 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3859
3860 RAISE OKL_API.G_EXCEPTION_ERROR;
3861
3862 END IF;
3863
3864 BEGIN
3865
3866 OPEN lock_csr(p_okl_disb_rules_tl_rec);
3867
3868 FETCH lock_csr INTO l_lock_var;
3869
3870 l_row_notfound := lock_csr%NOTFOUND;
3871
3872 CLOSE lock_csr;
3873
3874 EXCEPTION
3875
3876 WHEN E_Resource_Busy THEN
3877
3878 IF (lock_csr%ISOPEN) THEN
3879
3880 CLOSE lock_csr;
3881
3882 END IF;
3883
3884 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3885
3886 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3887
3888 END;
3889
3890
3891
3892 IF ( l_row_notfound ) THEN
3893
3894 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3895
3896 RAISE OKL_API.G_EXCEPTION_ERROR;
3897
3898 END IF;
3899
3900 x_return_status := l_return_status;
3901
3902 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3903
3904 EXCEPTION
3905
3906 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3907
3908 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3909
3910 (
3911
3912 l_api_name,
3913
3914 G_PKG_NAME,
3915
3916 'OKL_API.G_RET_STS_ERROR',
3917
3918 x_msg_count,
3919
3920 x_msg_data,
3921
3922 '_PVT'
3923
3924 );
3925
3926 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3927
3928 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3929
3930 (
3931
3932 l_api_name,
3933
3934 G_PKG_NAME,
3935
3936 'OKL_API.G_RET_STS_UNEXP_ERROR',
3937
3938 x_msg_count,
3939
3940 x_msg_data,
3941
3942 '_PVT'
3943
3944 );
3945
3946 WHEN OTHERS THEN
3947
3948 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3949
3950 (
3951
3952 l_api_name,
3953
3954 G_PKG_NAME,
3955
3956 'OTHERS',
3957
3958 x_msg_count,
3959
3960 x_msg_data,
3961
3962 '_PVT'
3963
3964 );
3965
3966 END lock_row;
3967
3968 ------------------------------------
3969
3970 -- lock_row for: OKL_DISB_RULES_V --
3971
3972 ------------------------------------
3973
3974 PROCEDURE lock_row(
3975
3976 p_api_version IN NUMBER,
3977
3978 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3979
3980 x_return_status OUT NOCOPY VARCHAR2,
3981
3982 x_msg_count OUT NOCOPY NUMBER,
3983
3984 x_msg_data OUT NOCOPY VARCHAR2,
3985
3986 p_drav_rec IN drav_rec_type) IS
3987
3988
3989
3990 l_api_version CONSTANT NUMBER := 1;
3991
3992 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
3993
3994 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3995
3996 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
3997
3998 l_dra_rec dra_rec_type;
3999
4000 BEGIN
4001
4002 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4003
4004 G_PKG_NAME,
4005
4006 p_init_msg_list,
4007
4008 l_api_version,
4009
4010 p_api_version,
4011
4012 '_PVT',
4013
4014 x_return_status);
4015
4016 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4017
4018 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4019
4020 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4021
4022 RAISE OKL_API.G_EXCEPTION_ERROR;
4023
4024 END IF;
4025
4026 -----------------------------------------
4027
4028 -- Move VIEW record to "Child" records --
4029
4030 -----------------------------------------
4031
4032 migrate(p_drav_rec, l_okl_disb_rules_tl_rec);
4033
4034 migrate(p_drav_rec, l_dra_rec);
4035
4036 ---------------------------------------------
4037
4038 -- Call the LOCK_ROW for each child record --
4039
4040 ---------------------------------------------
4041
4042 lock_row(
4043
4044 p_init_msg_list,
4045
4046 l_return_status,
4047
4048 x_msg_count,
4049
4050 x_msg_data,
4051
4052 l_okl_disb_rules_tl_rec
4053
4054 );
4055
4056 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4057
4058 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4059
4060 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4061
4062 RAISE OKL_API.G_EXCEPTION_ERROR;
4063
4064 END IF;
4065
4066 lock_row(
4067
4068 p_init_msg_list,
4069
4070 l_return_status,
4071
4072 x_msg_count,
4073
4074 x_msg_data,
4075
4076 l_dra_rec
4077
4078 );
4079
4080 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4081
4082 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4083
4084 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4085
4086 RAISE OKL_API.G_EXCEPTION_ERROR;
4087
4088 END IF;
4089
4090 x_return_status := l_return_status;
4091
4092 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4093
4094 EXCEPTION
4095
4096 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4097
4098 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4099
4100 (
4101
4102 l_api_name,
4103
4104 G_PKG_NAME,
4105
4106 'OKL_API.G_RET_STS_ERROR',
4107
4108 x_msg_count,
4109
4110 x_msg_data,
4111
4112 '_PVT'
4113
4114 );
4115
4116 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4117
4118 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4119
4120 (
4121
4122 l_api_name,
4123
4124 G_PKG_NAME,
4125
4126 'OKL_API.G_RET_STS_UNEXP_ERROR',
4127
4128 x_msg_count,
4129
4130 x_msg_data,
4131
4132 '_PVT'
4133
4134 );
4135
4136 WHEN OTHERS THEN
4137
4138 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4139
4140 (
4141
4142 l_api_name,
4143
4144 G_PKG_NAME,
4145
4146 'OTHERS',
4147
4148 x_msg_count,
4149
4150 x_msg_data,
4151
4152 '_PVT'
4153
4154 );
4155
4156 END lock_row;
4157
4158 --------------------------------------
4159
4160 -- PL/SQL TBL lock_row for:DRAV_TBL --
4161
4162 --------------------------------------
4163
4164 PROCEDURE lock_row(
4165
4166 p_api_version IN NUMBER,
4167
4168 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4169
4170 x_return_status OUT NOCOPY VARCHAR2,
4171
4172 x_msg_count OUT NOCOPY NUMBER,
4173
4174 x_msg_data OUT NOCOPY VARCHAR2,
4175
4176 p_drav_tbl IN drav_tbl_type,
4177
4178 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4179
4180
4181
4182 l_api_version CONSTANT NUMBER := 1;
4183
4184 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
4185
4186 i NUMBER := 0;
4187
4188 BEGIN
4189
4190 OKL_API.init_msg_list(p_init_msg_list);
4191
4192 -- Make sure PL/SQL table has recrods in it before passing
4193
4194 IF (p_drav_tbl.COUNT > 0) THEN
4195
4196 i := p_drav_tbl.FIRST;
4197
4198 LOOP
4199
4200 DECLARE
4201
4202 l_error_rec OKL_API.ERROR_REC_TYPE;
4203
4204 BEGIN
4205
4206 l_error_rec.api_name := l_api_name;
4207
4208 l_error_rec.api_package := G_PKG_NAME;
4209
4210 l_error_rec.idx := i;
4211
4212 lock_row(
4213
4214 p_api_version => p_api_version,
4215
4216 p_init_msg_list => OKL_API.G_FALSE,
4217
4218 x_return_status => l_error_rec.error_type,
4219
4220 x_msg_count => l_error_rec.msg_count,
4221
4222 x_msg_data => l_error_rec.msg_data,
4223
4224 p_drav_rec => p_drav_tbl(i));
4225
4226 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4227
4228 l_error_rec.sqlcode := SQLCODE;
4229
4230 load_error_tbl(l_error_rec, px_error_tbl);
4231
4232 ELSE
4233
4234 x_msg_count := l_error_rec.msg_count;
4235
4236 x_msg_data := l_error_rec.msg_data;
4237
4238 END IF;
4239
4240 EXCEPTION
4241
4242 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4243
4244 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4245
4246 l_error_rec.sqlcode := SQLCODE;
4247
4248 load_error_tbl(l_error_rec, px_error_tbl);
4249
4250 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4251
4252 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4253
4254 l_error_rec.sqlcode := SQLCODE;
4255
4256 load_error_tbl(l_error_rec, px_error_tbl);
4257
4258 WHEN OTHERS THEN
4259
4260 l_error_rec.error_type := 'OTHERS';
4261
4262 l_error_rec.sqlcode := SQLCODE;
4263
4264 load_error_tbl(l_error_rec, px_error_tbl);
4265
4266 END;
4267
4268 EXIT WHEN (i = p_drav_tbl.LAST);
4269
4270 i := p_drav_tbl.NEXT(i);
4271
4272 END LOOP;
4273
4274 END IF;
4275
4276 -- Loop through the error_tbl to find the error with the highest severity
4277
4278 -- and return it.
4279
4280 x_return_status := find_highest_exception(px_error_tbl);
4281
4282 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4283
4284 EXCEPTION
4285
4286 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4287
4288 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4289
4290 (
4291
4292 l_api_name,
4293
4294 G_PKG_NAME,
4295
4296 'OKL_API.G_RET_STS_ERROR',
4297
4298 x_msg_count,
4299
4300 x_msg_data,
4301
4302 '_PVT'
4303
4304 );
4305
4306 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4307
4308 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4309
4310 (
4311
4312 l_api_name,
4313
4314 G_PKG_NAME,
4315
4316 'OKL_API.G_RET_STS_UNEXP_ERROR',
4317
4318 x_msg_count,
4319
4320 x_msg_data,
4321
4322 '_PVT'
4323
4324 );
4325
4326 WHEN OTHERS THEN
4327
4328 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4329
4330 (
4331
4332 l_api_name,
4333
4334 G_PKG_NAME,
4335
4336 'OTHERS',
4337
4338 x_msg_count,
4339
4340 x_msg_data,
4341
4342 '_PVT'
4343
4344 );
4345
4346 END lock_row;
4347
4348 --------------------------------------
4349
4350 -- PL/SQL TBL lock_row for:DRAV_TBL --
4351
4352 --------------------------------------
4353
4354 PROCEDURE lock_row(
4355
4356 p_api_version IN NUMBER,
4357
4358 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4359
4360 x_return_status OUT NOCOPY VARCHAR2,
4361
4362 x_msg_count OUT NOCOPY NUMBER,
4363
4364 x_msg_data OUT NOCOPY VARCHAR2,
4365
4366 p_drav_tbl IN drav_tbl_type) IS
4367
4368
4369
4370 l_api_version CONSTANT NUMBER := 1;
4371
4372 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
4373
4374 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4375
4376 l_error_tbl OKL_API.ERROR_TBL_TYPE;
4377
4378 BEGIN
4379
4380 OKL_API.init_msg_list(p_init_msg_list);
4381
4382 -- Make sure PL/SQL table has recrods in it before passing
4383
4384 IF (p_drav_tbl.COUNT > 0) THEN
4385
4386 lock_row(
4387
4388 p_api_version => p_api_version,
4389
4390 p_init_msg_list => OKL_API.G_FALSE,
4391
4392 x_return_status => x_return_status,
4393
4394 x_msg_count => x_msg_count,
4395
4396 x_msg_data => x_msg_data,
4397
4398 p_drav_tbl => p_drav_tbl,
4399
4400 px_error_tbl => l_error_tbl);
4401
4402 END IF;
4403
4404 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4405
4406 EXCEPTION
4407
4408 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4409
4410 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4411
4412 (
4413
4414 l_api_name,
4415
4416 G_PKG_NAME,
4417
4418 'OKL_API.G_RET_STS_ERROR',
4419
4420 x_msg_count,
4421
4422 x_msg_data,
4423
4424 '_PVT'
4425
4426 );
4427
4428 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4429
4430 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4431
4432 (
4433
4434 l_api_name,
4435
4436 G_PKG_NAME,
4437
4438 'OKL_API.G_RET_STS_UNEXP_ERROR',
4439
4440 x_msg_count,
4441
4442 x_msg_data,
4443
4444 '_PVT'
4445
4446 );
4447
4448 WHEN OTHERS THEN
4449
4450 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4451
4452 (
4453
4454 l_api_name,
4455
4456 G_PKG_NAME,
4457
4458 'OTHERS',
4459
4460 x_msg_count,
4461
4462 x_msg_data,
4463
4464 '_PVT'
4465
4466 );
4467
4468 END lock_row;
4469
4470 ---------------------------------------------------------------------------
4471
4472 -- PROCEDURE update_row
4473
4474 ---------------------------------------------------------------------------
4475
4476 -------------------------------------
4477
4478 -- update_row for:OKL_DISB_RULES_B --
4479
4480 -------------------------------------
4481
4482 PROCEDURE update_row(
4483
4484 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4485 x_return_status OUT NOCOPY VARCHAR2,
4486 x_msg_count OUT NOCOPY NUMBER,
4487 x_msg_data OUT NOCOPY VARCHAR2,
4488 p_dra_rec IN dra_rec_type,
4489 x_dra_rec OUT NOCOPY dra_rec_type) IS
4490
4491
4492
4493 l_api_version CONSTANT NUMBER := 1;
4494 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
4495 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4496 l_dra_rec dra_rec_type := p_dra_rec;
4497 l_def_dra_rec dra_rec_type;
4498 l_row_notfound BOOLEAN := TRUE;
4499
4500 ----------------------------------
4501
4502 -- FUNCTION populate_new_record --
4503
4504 ----------------------------------
4505
4506 FUNCTION populate_new_record (
4507
4508 p_dra_rec IN dra_rec_type,
4509
4510 x_dra_rec OUT NOCOPY dra_rec_type
4511
4512 ) RETURN VARCHAR2 IS
4513
4514 l_dra_rec dra_rec_type;
4515
4516 l_row_notfound BOOLEAN := TRUE;
4517
4518 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4519
4520 BEGIN
4521
4522 x_dra_rec := p_dra_rec;
4523
4524 -- Get current database values
4525
4526 l_dra_rec := get_rec(p_dra_rec, l_return_status);
4527
4528 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
4529
4530 IF x_dra_rec.disb_rule_id IS NULL THEN
4531
4532 x_dra_rec.disb_rule_id := l_dra_rec.disb_rule_id;
4533
4534 END IF;
4535
4536 IF x_dra_rec.object_version_number IS NULL THEN
4537
4538 x_dra_rec.object_version_number := l_dra_rec.object_version_number;
4539
4540 END IF;
4541
4542 IF x_dra_rec.rule_name IS NULL THEN
4543
4544 x_dra_rec.rule_name := l_dra_rec.rule_name;
4545
4546 END IF;
4547
4548 IF x_dra_rec.org_id IS NULL THEN
4549
4550 x_dra_rec.org_id := l_dra_rec.org_id;
4551
4552 END IF;
4553
4554 IF x_dra_rec.start_date IS NULL THEN
4555
4556 x_dra_rec.start_date := l_dra_rec.start_date;
4557
4558 END IF;
4559
4560 IF x_dra_rec.end_date IS NULL THEN
4561
4562 x_dra_rec.end_date := l_dra_rec.end_date;
4563
4564 END IF;
4565
4566 IF x_dra_rec.fee_option IS NULL THEN
4567
4568 x_dra_rec.fee_option := l_dra_rec.fee_option;
4569
4570 END IF;
4571
4572 IF x_dra_rec.fee_basis IS NULL THEN
4573
4574 x_dra_rec.fee_basis := l_dra_rec.fee_basis;
4575
4576 END IF;
4577
4578 IF x_dra_rec.fee_amount IS NULL THEN
4579
4580 x_dra_rec.fee_amount := l_dra_rec.fee_amount;
4581
4582 END IF;
4583
4584 IF x_dra_rec.fee_percent IS NULL THEN
4585
4586 x_dra_rec.fee_percent := l_dra_rec.fee_percent;
4587
4588 END IF;
4589
4590 IF x_dra_rec.consolidate_by_due_date IS NULL THEN
4591
4592 x_dra_rec.consolidate_by_due_date := l_dra_rec.consolidate_by_due_date;
4593
4594 END IF;
4595
4596 IF x_dra_rec.frequency IS NULL THEN
4597
4598 x_dra_rec.frequency := l_dra_rec.frequency;
4599
4600 END IF;
4601
4602 IF x_dra_rec.day_of_month IS NULL THEN
4603
4604 x_dra_rec.day_of_month := l_dra_rec.day_of_month;
4605
4606 END IF;
4607
4608 IF x_dra_rec.scheduled_month IS NULL THEN
4609
4610 x_dra_rec.scheduled_month := l_dra_rec.scheduled_month;
4611
4612 END IF;
4613
4614 IF x_dra_rec.consolidate_strm_type IS NULL THEN
4615
4616 x_dra_rec.consolidate_strm_type := l_dra_rec.consolidate_strm_type;
4617
4618 END IF;
4619
4620 IF x_dra_rec.attribute_category IS NULL THEN
4621
4622 x_dra_rec.attribute_category := l_dra_rec.attribute_category;
4623
4624 END IF;
4625
4626 IF x_dra_rec.attribute1 IS NULL THEN
4627
4628 x_dra_rec.attribute1 := l_dra_rec.attribute1;
4629
4630 END IF;
4631
4632 IF x_dra_rec.attribute2 IS NULL THEN
4633
4634 x_dra_rec.attribute2 := l_dra_rec.attribute2;
4635
4636 END IF;
4637
4638 IF x_dra_rec.attribute3 IS NULL THEN
4639
4640 x_dra_rec.attribute3 := l_dra_rec.attribute3;
4641
4642 END IF;
4643
4644 IF x_dra_rec.attribute4 IS NULL THEN
4645
4646 x_dra_rec.attribute4 := l_dra_rec.attribute4;
4647
4648 END IF;
4649
4650 IF x_dra_rec.attribute5 IS NULL THEN
4651
4652 x_dra_rec.attribute5 := l_dra_rec.attribute5;
4653
4654 END IF;
4655
4656 IF x_dra_rec.attribute6 IS NULL THEN
4657
4658 x_dra_rec.attribute6 := l_dra_rec.attribute6;
4659
4660 END IF;
4661
4662 IF x_dra_rec.attribute7 IS NULL THEN
4663
4664 x_dra_rec.attribute7 := l_dra_rec.attribute7;
4665
4666 END IF;
4667
4668 IF x_dra_rec.attribute8 IS NULL THEN
4669
4670 x_dra_rec.attribute8 := l_dra_rec.attribute8;
4671
4672 END IF;
4673
4674 IF x_dra_rec.attribute9 IS NULL THEN
4675
4676 x_dra_rec.attribute9 := l_dra_rec.attribute9;
4677
4678 END IF;
4679
4680 IF x_dra_rec.attribute10 IS NULL THEN
4681
4682 x_dra_rec.attribute10 := l_dra_rec.attribute10;
4683
4684 END IF;
4685
4686 IF x_dra_rec.attribute11 IS NULL THEN
4687
4688 x_dra_rec.attribute11 := l_dra_rec.attribute11;
4689
4690 END IF;
4691
4692 IF x_dra_rec.attribute12 IS NULL THEN
4693
4694 x_dra_rec.attribute12 := l_dra_rec.attribute12;
4695
4696 END IF;
4697
4698 IF x_dra_rec.attribute13 IS NULL THEN
4699
4700 x_dra_rec.attribute13 := l_dra_rec.attribute13;
4701
4702 END IF;
4703
4704 IF x_dra_rec.attribute14 IS NULL THEN
4705
4706 x_dra_rec.attribute14 := l_dra_rec.attribute14;
4707
4708 END IF;
4709
4710 IF x_dra_rec.attribute15 IS NULL THEN
4711
4712 x_dra_rec.attribute15 := l_dra_rec.attribute15;
4713
4714 END IF;
4715
4716 IF x_dra_rec.created_by IS NULL THEN
4717
4718 x_dra_rec.created_by := l_dra_rec.created_by;
4719
4720 END IF;
4721
4722 IF x_dra_rec.creation_date IS NULL THEN
4723
4724 x_dra_rec.creation_date := l_dra_rec.creation_date;
4725
4726 END IF;
4727
4728 IF x_dra_rec.last_updated_by IS NULL THEN
4729
4730 x_dra_rec.last_updated_by := l_dra_rec.last_updated_by;
4731
4732 END IF;
4733
4734 IF x_dra_rec.last_update_date IS NULL THEN
4735
4736 x_dra_rec.last_update_date := l_dra_rec.last_update_date;
4737
4738 END IF;
4739
4740 IF x_dra_rec.last_update_login IS NULL THEN
4741
4742 x_dra_rec.last_update_login := l_dra_rec.last_update_login;
4743
4744 END IF;
4745
4746 END IF;
4747
4748 RETURN(l_return_status);
4749
4750 END populate_new_record;
4751
4752 -----------------------------------------
4753
4754 -- Set_Attributes for:OKL_DISB_RULES_B --
4755
4756 -----------------------------------------
4757
4758 FUNCTION Set_Attributes (
4759
4760 p_dra_rec IN dra_rec_type,
4761
4762 x_dra_rec OUT NOCOPY dra_rec_type
4763
4764 ) RETURN VARCHAR2 IS
4765
4766 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4767
4768 BEGIN
4769
4770 x_dra_rec := p_dra_rec;
4771
4772 x_dra_rec.OBJECT_VERSION_NUMBER := p_dra_rec.OBJECT_VERSION_NUMBER + 1;
4773
4774 RETURN(l_return_status);
4775
4776 END Set_Attributes;
4777
4778 BEGIN
4779
4780 --g_debug_proc('In DRA l_def_dra_rec.day_of_month ' || p_dra_rec.day_of_month);
4781 --g_debug_proc('In DRA l_def_dra_rec.scheduled_month ' || p_dra_rec.scheduled_month);
4782
4783 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4784
4785 p_init_msg_list,
4786
4787 '_PVT',
4788
4789 x_return_status);
4790
4791 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4792
4793 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4794
4795 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4796
4797 RAISE OKL_API.G_EXCEPTION_ERROR;
4798
4799 END IF;
4800
4801 --- Setting item attributes
4802
4803 l_return_status := Set_Attributes(
4804
4805 p_dra_rec, -- IN
4806
4807 l_dra_rec); -- OUT
4808
4809 --- If any errors happen abort API
4810
4811 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4812
4813 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4814
4815 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4816
4817 RAISE OKL_API.G_EXCEPTION_ERROR;
4818
4819 END IF;
4820
4821 l_return_status := populate_new_record(l_dra_rec, l_def_dra_rec);
4822
4823 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4824
4825 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4826
4827 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4828
4829 RAISE OKL_API.G_EXCEPTION_ERROR;
4830
4831 END IF;
4832
4833 --g_debug_proc('In DRA l_def_dra_rec.day_of_month ' || l_def_dra_rec.day_of_month);
4834 --g_debug_proc('In DRA l_def_dra_rec.scheduled_month ' || l_def_dra_rec.scheduled_month);
4835
4836 UPDATE OKL_DISB_RULES_B
4837
4838 SET OBJECT_VERSION_NUMBER = l_def_dra_rec.object_version_number,
4839
4840 RULE_NAME = l_def_dra_rec.rule_name,
4841
4842 ORG_ID = l_def_dra_rec.org_id,
4843
4844 START_DATE = l_def_dra_rec.start_date,
4845
4846 END_DATE = l_def_dra_rec.end_date,
4847
4848 FEE_OPTION = l_def_dra_rec.fee_option,
4849
4850 FEE_BASIS = l_def_dra_rec.fee_basis,
4851
4852 FEE_AMOUNT = l_def_dra_rec.fee_amount,
4853
4854 FEE_PERCENT = l_def_dra_rec.fee_percent,
4855
4856 CONSOLIDATE_BY_DUE_DATE = l_def_dra_rec.consolidate_by_due_date,
4857
4858 FREQUENCY = l_def_dra_rec.frequency,
4859
4860 DAY_OF_MONTH = l_def_dra_rec.day_of_month,
4861
4862 SCHEDULED_MONTH = l_def_dra_rec.scheduled_month,
4863
4864 CONSOLIDATE_STRM_TYPE = l_def_dra_rec.consolidate_strm_type,
4865
4866 ATTRIBUTE_CATEGORY = l_def_dra_rec.attribute_category,
4867
4868 ATTRIBUTE1 = l_def_dra_rec.attribute1,
4869
4870 ATTRIBUTE2 = l_def_dra_rec.attribute2,
4871
4872 ATTRIBUTE3 = l_def_dra_rec.attribute3,
4873
4874 ATTRIBUTE4 = l_def_dra_rec.attribute4,
4875
4876 ATTRIBUTE5 = l_def_dra_rec.attribute5,
4877
4878 ATTRIBUTE6 = l_def_dra_rec.attribute6,
4879
4880 ATTRIBUTE7 = l_def_dra_rec.attribute7,
4881
4882 ATTRIBUTE8 = l_def_dra_rec.attribute8,
4883
4884 ATTRIBUTE9 = l_def_dra_rec.attribute9,
4885
4886 ATTRIBUTE10 = l_def_dra_rec.attribute10,
4887
4888 ATTRIBUTE11 = l_def_dra_rec.attribute11,
4889
4890 ATTRIBUTE12 = l_def_dra_rec.attribute12,
4891
4892 ATTRIBUTE13 = l_def_dra_rec.attribute13,
4893
4894 ATTRIBUTE14 = l_def_dra_rec.attribute14,
4895
4896 ATTRIBUTE15 = l_def_dra_rec.attribute15,
4897
4898 CREATED_BY = l_def_dra_rec.created_by,
4899
4900 CREATION_DATE = l_def_dra_rec.creation_date,
4901
4902 LAST_UPDATED_BY = l_def_dra_rec.last_updated_by,
4903
4904 LAST_UPDATE_DATE = l_def_dra_rec.last_update_date,
4905
4906 LAST_UPDATE_LOGIN = l_def_dra_rec.last_update_login
4907
4908 WHERE DISB_RULE_ID = l_def_dra_rec.disb_rule_id;
4909
4910
4911
4912 x_dra_rec := l_dra_rec;
4913
4914 x_return_status := l_return_status;
4915
4916 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4917
4918 EXCEPTION
4919
4920 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4921
4922 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4923
4924 (
4925
4926 l_api_name,
4927
4928 G_PKG_NAME,
4929
4930 'OKL_API.G_RET_STS_ERROR',
4931
4932 x_msg_count,
4933
4934 x_msg_data,
4935
4936 '_PVT'
4937
4938 );
4939
4940 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4941
4942 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4943
4944 (
4945
4946 l_api_name,
4947
4948 G_PKG_NAME,
4949
4950 'OKL_API.G_RET_STS_UNEXP_ERROR',
4951
4952 x_msg_count,
4953
4954 x_msg_data,
4955
4956 '_PVT'
4957
4958 );
4959
4960 WHEN OTHERS THEN
4961
4962 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4963
4964 (
4965
4966 l_api_name,
4967
4968 G_PKG_NAME,
4969
4970 'OTHERS',
4971
4972 x_msg_count,
4973
4974 x_msg_data,
4975
4976 '_PVT'
4977
4978 );
4979
4980 END update_row;
4981
4982 --------------------------------------
4983
4984 -- update_row for:OKL_DISB_RULES_TL --
4985
4986 --------------------------------------
4987
4988 PROCEDURE update_row(
4989
4990 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4991
4992 x_return_status OUT NOCOPY VARCHAR2,
4993
4994 x_msg_count OUT NOCOPY NUMBER,
4995
4996 x_msg_data OUT NOCOPY VARCHAR2,
4997
4998 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
4999
5000 x_okl_disb_rules_tl_rec OUT NOCOPY okl_disb_rules_tl_rec_type) IS
5001
5002
5003
5004 l_api_version CONSTANT NUMBER := 1;
5005
5006 l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
5007
5008 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5009
5010 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type := p_okl_disb_rules_tl_rec;
5011
5012 l_def_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
5013
5014 l_row_notfound BOOLEAN := TRUE;
5015
5016 ----------------------------------
5017
5018 -- FUNCTION populate_new_record --
5019
5020 ----------------------------------
5021
5022 FUNCTION populate_new_record (
5023
5024 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
5025
5026 x_okl_disb_rules_tl_rec OUT NOCOPY okl_disb_rules_tl_rec_type
5027
5028 ) RETURN VARCHAR2 IS
5029
5030 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
5031
5032 l_row_notfound BOOLEAN := TRUE;
5033
5034 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5035
5036 BEGIN
5037
5038 x_okl_disb_rules_tl_rec := p_okl_disb_rules_tl_rec;
5039
5040 -- Get current database values
5041
5042 l_okl_disb_rules_tl_rec := get_rec(p_okl_disb_rules_tl_rec, l_return_status);
5043
5044 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
5045
5046 IF x_okl_disb_rules_tl_rec.disb_rule_id IS NULL THEN
5047
5048 x_okl_disb_rules_tl_rec.disb_rule_id := l_okl_disb_rules_tl_rec.disb_rule_id;
5049
5050 END IF;
5051
5052 IF x_okl_disb_rules_tl_rec.language IS NULL THEN
5053
5054 x_okl_disb_rules_tl_rec.language := l_okl_disb_rules_tl_rec.language;
5055
5056 END IF;
5057
5058 IF x_okl_disb_rules_tl_rec.source_lang IS NULL THEN
5059
5060 x_okl_disb_rules_tl_rec.source_lang := l_okl_disb_rules_tl_rec.source_lang;
5061
5062 END IF;
5063
5064 IF x_okl_disb_rules_tl_rec.sfwt_flag IS NULL THEN
5065
5066 x_okl_disb_rules_tl_rec.sfwt_flag := l_okl_disb_rules_tl_rec.sfwt_flag;
5067
5068 END IF;
5069
5070 IF x_okl_disb_rules_tl_rec.description IS NULL THEN
5071
5072 x_okl_disb_rules_tl_rec.description := l_okl_disb_rules_tl_rec.description;
5073
5074 END IF;
5075
5076 IF x_okl_disb_rules_tl_rec.created_by IS NULL THEN
5077
5078 x_okl_disb_rules_tl_rec.created_by := l_okl_disb_rules_tl_rec.created_by;
5079
5080 END IF;
5081
5082 IF x_okl_disb_rules_tl_rec.creation_date IS NULL THEN
5083
5084 x_okl_disb_rules_tl_rec.creation_date := l_okl_disb_rules_tl_rec.creation_date;
5085
5086 END IF;
5087
5088 IF x_okl_disb_rules_tl_rec.last_updated_by IS NULL THEN
5089
5090 x_okl_disb_rules_tl_rec.last_updated_by := l_okl_disb_rules_tl_rec.last_updated_by;
5091
5092 END IF;
5093
5094 IF x_okl_disb_rules_tl_rec.last_update_date IS NULL THEN
5095
5096 x_okl_disb_rules_tl_rec.last_update_date := l_okl_disb_rules_tl_rec.last_update_date;
5097
5098 END IF;
5099
5100 IF x_okl_disb_rules_tl_rec.last_update_login IS NULL THEN
5101
5102 x_okl_disb_rules_tl_rec.last_update_login := l_okl_disb_rules_tl_rec.last_update_login;
5103
5104 END IF;
5105
5106 END IF;
5107
5108 RETURN(l_return_status);
5109
5110 END populate_new_record;
5111
5112 ------------------------------------------
5113
5114 -- Set_Attributes for:OKL_DISB_RULES_TL --
5115
5116 ------------------------------------------
5117
5118 FUNCTION Set_Attributes (
5119
5120 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type,
5121
5122 x_okl_disb_rules_tl_rec OUT NOCOPY okl_disb_rules_tl_rec_type
5123
5124 ) RETURN VARCHAR2 IS
5125 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5126 BEGIN
5127 x_okl_disb_rules_tl_rec := p_okl_disb_rules_tl_rec;
5128 x_okl_disb_rules_tl_rec.LANGUAGE := USERENV('LANG');
5129 x_okl_disb_rules_tl_rec.LANGUAGE := USERENV('LANG');
5130 RETURN(l_return_status);
5131 END Set_Attributes;
5132
5133 BEGIN
5134
5135 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
5136
5137 p_init_msg_list,
5138
5139 '_PVT',
5140
5141 x_return_status);
5142
5143 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5144
5145 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5146
5147 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5148
5149 RAISE OKL_API.G_EXCEPTION_ERROR;
5150
5151 END IF;
5152
5153 --- Setting item attributes
5154
5155 l_return_status := Set_Attributes(
5156
5157 p_okl_disb_rules_tl_rec, -- IN
5158
5159 l_okl_disb_rules_tl_rec); -- OUT
5160
5161 --- If any errors happen abort API
5162
5163 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5164
5165 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5166
5167 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5168
5169 RAISE OKL_API.G_EXCEPTION_ERROR;
5170
5171 END IF;
5172
5173 l_return_status := populate_new_record(l_okl_disb_rules_tl_rec, l_def_okl_disb_rules_tl_rec);
5174
5175 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5176
5177 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5178
5179 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5180
5181 RAISE OKL_API.G_EXCEPTION_ERROR;
5182
5183 END IF;
5184
5185 UPDATE OKL_DISB_RULES_TL
5186
5187 SET DESCRIPTION = l_def_okl_disb_rules_tl_rec.description,
5188
5189 CREATED_BY = l_def_okl_disb_rules_tl_rec.created_by,
5190
5191 CREATION_DATE = l_def_okl_disb_rules_tl_rec.creation_date,
5192
5193 LAST_UPDATED_BY = l_def_okl_disb_rules_tl_rec.last_updated_by,
5194
5195 LAST_UPDATE_DATE = l_def_okl_disb_rules_tl_rec.last_update_date,
5196
5197 LAST_UPDATE_LOGIN = l_def_okl_disb_rules_tl_rec.last_update_login
5198
5199 WHERE DISB_RULE_ID = l_def_okl_disb_rules_tl_rec.disb_rule_id
5200
5201 AND SOURCE_LANG = USERENV('LANG');
5202
5203
5204
5205 UPDATE OKL_DISB_RULES_TL
5206
5207 SET SFWT_FLAG = 'Y'
5208
5209 WHERE DISB_RULE_ID = l_def_okl_disb_rules_tl_rec.disb_rule_id
5210
5211 AND SOURCE_LANG <> USERENV('LANG');
5212
5213
5214
5215 x_okl_disb_rules_tl_rec := l_okl_disb_rules_tl_rec;
5216
5217 x_return_status := l_return_status;
5218
5219 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5220
5221 EXCEPTION
5222
5223 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5224
5225 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5226
5227 (
5228
5229 l_api_name,
5230
5231 G_PKG_NAME,
5232
5233 'OKL_API.G_RET_STS_ERROR',
5234
5235 x_msg_count,
5236
5237 x_msg_data,
5238
5239 '_PVT'
5240
5241 );
5242
5243 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5244
5245 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5246
5247 (
5248
5249 l_api_name,
5250
5251 G_PKG_NAME,
5252
5253 'OKL_API.G_RET_STS_UNEXP_ERROR',
5254
5255 x_msg_count,
5256
5257 x_msg_data,
5258
5259 '_PVT'
5260
5261 );
5262
5263 WHEN OTHERS THEN
5264
5265 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5266
5267 (
5268
5269 l_api_name,
5270
5271 G_PKG_NAME,
5272
5273 'OTHERS',
5274
5275 x_msg_count,
5276
5277 x_msg_data,
5278
5279 '_PVT'
5280
5281 );
5282
5283 END update_row;
5284
5285 -------------------------------------
5286
5287 -- update_row for:OKL_DISB_RULES_V --
5288
5289 -------------------------------------
5290
5291 PROCEDURE update_row(
5292 p_api_version IN NUMBER,
5293 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5294 x_return_status OUT NOCOPY VARCHAR2,
5295 x_msg_count OUT NOCOPY NUMBER,
5296 x_msg_data OUT NOCOPY VARCHAR2,
5297 p_drav_rec IN drav_rec_type,
5298 x_drav_rec OUT NOCOPY drav_rec_type) IS
5299
5300 l_api_version CONSTANT NUMBER := 1;
5301 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
5302 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5303 l_drav_rec drav_rec_type := p_drav_rec;
5304 l_def_drav_rec drav_rec_type;
5305 l_db_drav_rec drav_rec_type;
5306 l_dra_rec dra_rec_type;
5307 lx_dra_rec dra_rec_type;
5308 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
5309 lx_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
5310
5311 -------------------------------
5312
5313 -- FUNCTION fill_who_columns --
5314
5315 -------------------------------
5316
5317 FUNCTION fill_who_columns (
5318
5319 p_drav_rec IN drav_rec_type
5320
5321 ) RETURN drav_rec_type IS
5322
5323 l_drav_rec drav_rec_type := p_drav_rec;
5324
5325 BEGIN
5326
5327 l_drav_rec.LAST_UPDATE_DATE := SYSDATE;
5328
5329 l_drav_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
5330
5331 l_drav_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
5332
5333 RETURN(l_drav_rec);
5334
5335 END fill_who_columns;
5336
5337 ----------------------------------
5338
5339 -- FUNCTION populate_new_record --
5340
5341 ----------------------------------
5342
5343 FUNCTION populate_new_record (
5344
5345 p_drav_rec IN drav_rec_type,
5346
5347 x_drav_rec OUT NOCOPY drav_rec_type
5348
5349 ) RETURN VARCHAR2 IS
5350
5351 l_row_notfound BOOLEAN := TRUE;
5352
5353 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5354
5355 BEGIN
5356
5357 x_drav_rec := p_drav_rec;
5358
5359 -- Get current database values
5360
5361 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
5362
5363 -- so it may be verified through LOCK_ROW.
5364
5365 l_db_drav_rec := get_rec(p_drav_rec, l_return_status);
5366
5367 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
5368
5369 IF x_drav_rec.disb_rule_id IS NULL THEN
5370
5371 x_drav_rec.disb_rule_id := l_db_drav_rec.disb_rule_id;
5372
5373 END IF;
5374
5375 IF x_drav_rec.sfwt_flag IS NULL THEN
5376
5377 x_drav_rec.sfwt_flag := l_db_drav_rec.sfwt_flag;
5378
5379 END IF;
5380
5381 IF x_drav_rec.rule_name IS NULL THEN
5382
5383 x_drav_rec.rule_name := l_db_drav_rec.rule_name;
5384
5385 END IF;
5386
5387 IF x_drav_rec.org_id IS NULL THEN
5388
5389 x_drav_rec.org_id := l_db_drav_rec.org_id;
5390
5391 END IF;
5392
5393 IF x_drav_rec.start_date IS NULL THEN
5394
5395 x_drav_rec.start_date := l_db_drav_rec.start_date;
5396
5397 END IF;
5398
5399 IF x_drav_rec.end_date IS NULL THEN
5400
5401 x_drav_rec.end_date := l_db_drav_rec.end_date;
5402
5403 END IF;
5404
5405 IF x_drav_rec.fee_option IS NULL THEN
5406
5407 x_drav_rec.fee_option := l_db_drav_rec.fee_option;
5408
5409 END IF;
5410
5411 IF x_drav_rec.fee_basis IS NULL THEN
5412
5413 x_drav_rec.fee_basis := l_db_drav_rec.fee_basis;
5414
5415 END IF;
5416
5417 IF x_drav_rec.fee_amount IS NULL THEN
5418
5419 x_drav_rec.fee_amount := l_db_drav_rec.fee_amount;
5420
5421 END IF;
5422
5423 IF x_drav_rec.fee_percent IS NULL THEN
5424
5425 x_drav_rec.fee_percent := l_db_drav_rec.fee_percent;
5426
5427 END IF;
5428
5429 IF x_drav_rec.consolidate_by_due_date IS NULL THEN
5430
5431 x_drav_rec.consolidate_by_due_date := l_db_drav_rec.consolidate_by_due_date;
5432
5433 END IF;
5434
5435 IF x_drav_rec.frequency IS NULL THEN
5436
5437 x_drav_rec.frequency := l_db_drav_rec.frequency;
5438
5439 END IF;
5440
5441 IF x_drav_rec.day_of_month IS NULL THEN
5442
5443 x_drav_rec.day_of_month := l_db_drav_rec.day_of_month;
5444
5445 END IF;
5446
5447 IF x_drav_rec.scheduled_month IS NULL THEN
5448
5449 x_drav_rec.scheduled_month := l_db_drav_rec.scheduled_month;
5450
5451 END IF;
5452
5453 IF x_drav_rec.consolidate_strm_type IS NULL THEN
5454
5455 x_drav_rec.consolidate_strm_type := l_db_drav_rec.consolidate_strm_type;
5456
5457 END IF;
5458
5459 IF x_drav_rec.description IS NULL THEN
5460
5461 x_drav_rec.description := l_db_drav_rec.description;
5462
5463 END IF;
5464
5465 IF x_drav_rec.attribute_category IS NULL THEN
5466
5467 x_drav_rec.attribute_category := l_db_drav_rec.attribute_category;
5468
5469 END IF;
5470
5471 IF x_drav_rec.attribute1 IS NULL THEN
5472
5473 x_drav_rec.attribute1 := l_db_drav_rec.attribute1;
5474
5475 END IF;
5476
5477 IF x_drav_rec.attribute2 IS NULL THEN
5478
5479 x_drav_rec.attribute2 := l_db_drav_rec.attribute2;
5480
5481 END IF;
5482
5483 IF x_drav_rec.attribute3 IS NULL THEN
5484
5485 x_drav_rec.attribute3 := l_db_drav_rec.attribute3;
5486
5487 END IF;
5488
5489 IF x_drav_rec.attribute4 IS NULL THEN
5490
5491 x_drav_rec.attribute4 := l_db_drav_rec.attribute4;
5492
5493 END IF;
5494
5495 IF x_drav_rec.attribute5 IS NULL THEN
5496
5497 x_drav_rec.attribute5 := l_db_drav_rec.attribute5;
5498
5499 END IF;
5500
5501 IF x_drav_rec.attribute6 IS NULL THEN
5502
5503 x_drav_rec.attribute6 := l_db_drav_rec.attribute6;
5504
5505 END IF;
5506
5507 IF x_drav_rec.attribute7 IS NULL THEN
5508
5509 x_drav_rec.attribute7 := l_db_drav_rec.attribute7;
5510
5511 END IF;
5512
5513 IF x_drav_rec.attribute8 IS NULL THEN
5514
5515 x_drav_rec.attribute8 := l_db_drav_rec.attribute8;
5516
5517 END IF;
5518
5519 IF x_drav_rec.attribute9 IS NULL THEN
5520
5521 x_drav_rec.attribute9 := l_db_drav_rec.attribute9;
5522
5523 END IF;
5524
5525 IF x_drav_rec.attribute10 IS NULL THEN
5526
5527 x_drav_rec.attribute10 := l_db_drav_rec.attribute10;
5528
5529 END IF;
5530
5531 IF x_drav_rec.attribute11 IS NULL THEN
5532
5533 x_drav_rec.attribute11 := l_db_drav_rec.attribute11;
5534
5535 END IF;
5536
5537 IF x_drav_rec.attribute12 IS NULL THEN
5538
5539 x_drav_rec.attribute12 := l_db_drav_rec.attribute12;
5540
5541 END IF;
5542
5543 IF x_drav_rec.attribute13 IS NULL THEN
5544
5545 x_drav_rec.attribute13 := l_db_drav_rec.attribute13;
5546
5547 END IF;
5548
5549 IF x_drav_rec.attribute14 IS NULL THEN
5550
5551 x_drav_rec.attribute14 := l_db_drav_rec.attribute14;
5552
5553 END IF;
5554
5555 IF x_drav_rec.attribute15 IS NULL THEN
5556
5557 x_drav_rec.attribute15 := l_db_drav_rec.attribute15;
5558
5559 END IF;
5560
5561 IF x_drav_rec.created_by IS NULL THEN
5562
5563 x_drav_rec.created_by := l_db_drav_rec.created_by;
5564
5565 END IF;
5566
5567 IF x_drav_rec.creation_date IS NULL THEN
5568
5569 x_drav_rec.creation_date := l_db_drav_rec.creation_date;
5570
5571 END IF;
5572
5573 IF x_drav_rec.last_updated_by IS NULL THEN
5574
5575 x_drav_rec.last_updated_by := l_db_drav_rec.last_updated_by;
5576
5577 END IF;
5578
5579 IF x_drav_rec.last_update_date IS NULL THEN
5580
5581 x_drav_rec.last_update_date := l_db_drav_rec.last_update_date;
5582
5583 END IF;
5584
5585 IF x_drav_rec.last_update_login IS NULL THEN
5586
5587 x_drav_rec.last_update_login := l_db_drav_rec.last_update_login;
5588
5589 END IF;
5590
5591 END IF;
5592
5593 RETURN(l_return_status);
5594
5595 END populate_new_record;
5596
5597 -----------------------------------------
5598
5599 -- Set_Attributes for:OKL_DISB_RULES_V --
5600
5601 -----------------------------------------
5602
5603 FUNCTION Set_Attributes (
5604
5605 p_drav_rec IN drav_rec_type,
5606
5607 x_drav_rec OUT NOCOPY drav_rec_type
5608
5609 ) RETURN VARCHAR2 IS
5610
5611 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
5612
5613 BEGIN
5614
5615 x_drav_rec := p_drav_rec;
5616
5617 RETURN(l_return_status);
5618
5619 END Set_Attributes;
5620
5621 BEGIN
5622 --g_debug_proc('In TAPI DRA ' || p_drav_rec.scheduled_month);
5623
5624 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
5625 G_PKG_NAME,
5626 p_init_msg_list,
5627 l_api_version,
5628 p_api_version,
5629 '_PVT',
5630 x_return_status);
5631
5632 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5633 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5634 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5635 RAISE OKL_API.G_EXCEPTION_ERROR;
5636 END IF;
5637
5638 --- Setting item attributes
5639
5640 l_return_status := Set_Attributes(
5641 p_drav_rec, -- IN
5642 l_drav_rec); -- OUT
5643
5644 ----g_debug_proc('SEt Attri');
5645
5646 --- If any errors happen abort API
5647
5648 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5649 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5650 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5651 RAISE OKL_API.G_EXCEPTION_ERROR;
5652 END IF;
5653
5654 l_return_status := populate_new_record(l_drav_rec, l_def_drav_rec);
5655
5656 ----g_debug_proc('Populate Record');
5657
5658 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5659 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5660 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5661 RAISE OKL_API.G_EXCEPTION_ERROR;
5662 END IF;
5663
5664 l_def_drav_rec := null_out_defaults(l_def_drav_rec);
5665 --g_debug_proc('null defects ' || l_def_drav_rec.scheduled_month);
5666
5667 l_def_drav_rec := fill_who_columns(l_def_drav_rec);
5668
5669 --g_debug_proc('fill columns ' || l_def_drav_rec.scheduled_month);
5670 --- Validate all non-missing attributes (Item Level Validation)
5671
5672 l_return_status := Validate_Attributes(l_def_drav_rec);
5673
5674 --g_debug_proc('validate attri ' || l_return_status);
5675 --- If any errors happen abort API
5676
5677 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5678
5679 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5680
5681 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5682
5683 RAISE OKL_API.G_EXCEPTION_ERROR;
5684
5685 END IF;
5686
5687 l_return_status := Validate_Record(l_def_drav_rec, l_db_drav_rec);
5688 --g_debug_proc('validate rec ' || l_return_status);
5689
5690 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5691 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5692 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5693 RAISE OKL_API.G_EXCEPTION_ERROR;
5694 END IF;
5695
5696
5697 --g_debug_proc('Tapi update LOCK DRA');
5698 -- Lock the Record
5699
5700 lock_row(
5701 p_api_version => p_api_version,
5702 p_init_msg_list => p_init_msg_list,
5703 x_return_status => l_return_status,
5704 x_msg_count => x_msg_count,
5705 x_msg_data => x_msg_data,
5706 p_drav_rec => l_db_drav_rec);
5707
5708 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5709 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5710 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5711 RAISE OKL_API.G_EXCEPTION_ERROR;
5712 END IF;
5713
5714
5715
5716 -----------------------------------------
5717
5718 -- Move VIEW record to "Child" records --
5719
5720 -----------------------------------------
5721 --g_debug_proc('Tapi Before Migrate');
5722 migrate(l_def_drav_rec, l_dra_rec);
5723 migrate(l_def_drav_rec, l_okl_disb_rules_tl_rec);
5724
5725 -----------------------------------------------
5726
5727 -- Call the UPDATE_ROW for each child record --
5728
5729 -----------------------------------------------
5730 --g_debug_proc('Tapi UpdateDRA ' || l_db_drav_rec.object_version_number || l_dra_rec.object_version_number );
5731 --g_debug_proc('Tapi UpdateDRA ' || l_def_drav_rec.scheduled_month);
5732 --g_debug_proc('Tapi UpdateDRA ' || l_dra_rec.scheduled_month);
5733
5734 update_row(
5735 p_init_msg_list,
5736 l_return_status,
5737 x_msg_count,
5738 x_msg_data,
5739 l_dra_rec,
5740 lx_dra_rec
5741 );
5742
5743 --g_debug_proc('Tapi UpdateDRA ' || l_return_status);
5744
5745 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5746
5747 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5748
5749 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5750
5751 RAISE OKL_API.G_EXCEPTION_ERROR;
5752
5753 END IF;
5754
5755 migrate(lx_dra_rec, l_def_drav_rec);
5756
5757 update_row(
5758
5759 p_init_msg_list,
5760
5761 l_return_status,
5762
5763 x_msg_count,
5764
5765 x_msg_data,
5766
5767 l_okl_disb_rules_tl_rec,
5768
5769 lx_okl_disb_rules_tl_rec
5770
5771 );
5772
5773 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
5774
5775 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
5776
5777 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
5778
5779 RAISE OKL_API.G_EXCEPTION_ERROR;
5780
5781 END IF;
5782
5783 migrate(lx_okl_disb_rules_tl_rec, l_def_drav_rec);
5784
5785 x_drav_rec := l_def_drav_rec;
5786
5787 x_return_status := l_return_status;
5788
5789 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5790
5791 EXCEPTION
5792
5793 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5794
5795 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5796
5797 (
5798
5799 l_api_name,
5800
5801 G_PKG_NAME,
5802
5803 'OKL_API.G_RET_STS_ERROR',
5804
5805 x_msg_count,
5806
5807 x_msg_data,
5808
5809 '_PVT'
5810
5811 );
5812
5813 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5814
5815 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5816
5817 (
5818
5819 l_api_name,
5820
5821 G_PKG_NAME,
5822
5823 'OKL_API.G_RET_STS_UNEXP_ERROR',
5824
5825 x_msg_count,
5826
5827 x_msg_data,
5828
5829 '_PVT'
5830
5831 );
5832
5833 WHEN OTHERS THEN
5834
5835 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5836
5837 (
5838
5839 l_api_name,
5840
5841 G_PKG_NAME,
5842
5843 'OTHERS',
5844
5845 x_msg_count,
5846
5847 x_msg_data,
5848
5849 '_PVT'
5850
5851 );
5852
5853 END update_row;
5854
5855 ----------------------------------------
5856
5857 -- PL/SQL TBL update_row for:drav_tbl --
5858
5859 ----------------------------------------
5860
5861 PROCEDURE update_row(
5862
5863 p_api_version IN NUMBER,
5864
5865 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5866
5867 x_return_status OUT NOCOPY VARCHAR2,
5868
5869 x_msg_count OUT NOCOPY NUMBER,
5870
5871 x_msg_data OUT NOCOPY VARCHAR2,
5872
5873 p_drav_tbl IN drav_tbl_type,
5874
5875 x_drav_tbl OUT NOCOPY drav_tbl_type,
5876
5877 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
5878
5879
5880
5881 l_api_version CONSTANT NUMBER := 1;
5882
5883 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
5884
5885 i NUMBER := 0;
5886
5887 BEGIN
5888
5889 OKL_API.init_msg_list(p_init_msg_list);
5890
5891 -- Make sure PL/SQL table has records in it before passing
5892
5893 IF (p_drav_tbl.COUNT > 0) THEN
5894
5895 i := p_drav_tbl.FIRST;
5896
5897 LOOP
5898
5899 DECLARE
5900
5901 l_error_rec OKL_API.ERROR_REC_TYPE;
5902
5903 BEGIN
5904
5905 l_error_rec.api_name := l_api_name;
5906
5907 l_error_rec.api_package := G_PKG_NAME;
5908
5909 l_error_rec.idx := i;
5910
5911 update_row (
5912
5913 p_api_version => p_api_version,
5914
5915 p_init_msg_list => OKL_API.G_FALSE,
5916
5917 x_return_status => l_error_rec.error_type,
5918
5919 x_msg_count => l_error_rec.msg_count,
5920
5921 x_msg_data => l_error_rec.msg_data,
5922
5923 p_drav_rec => p_drav_tbl(i),
5924
5925 x_drav_rec => x_drav_tbl(i));
5926
5927 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
5928
5929 l_error_rec.sqlcode := SQLCODE;
5930
5931 load_error_tbl(l_error_rec, px_error_tbl);
5932
5933 ELSE
5934
5935 x_msg_count := l_error_rec.msg_count;
5936
5937 x_msg_data := l_error_rec.msg_data;
5938
5939 END IF;
5940
5941 EXCEPTION
5942
5943 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5944
5945 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
5946
5947 l_error_rec.sqlcode := SQLCODE;
5948
5949 load_error_tbl(l_error_rec, px_error_tbl);
5950
5951 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5952
5953 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
5954
5955 l_error_rec.sqlcode := SQLCODE;
5956
5957 load_error_tbl(l_error_rec, px_error_tbl);
5958
5959 WHEN OTHERS THEN
5960
5961 l_error_rec.error_type := 'OTHERS';
5962
5963 l_error_rec.sqlcode := SQLCODE;
5964
5965 load_error_tbl(l_error_rec, px_error_tbl);
5966
5967 END;
5968
5969 EXIT WHEN (i = p_drav_tbl.LAST);
5970
5971 i := p_drav_tbl.NEXT(i);
5972
5973 END LOOP;
5974
5975 END IF;
5976
5977 -- Loop through the error_tbl to find the error with the highest severity
5978
5979 -- and return it.
5980
5981 x_return_status := find_highest_exception(px_error_tbl);
5982
5983 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
5984
5985 EXCEPTION
5986
5987 WHEN OKL_API.G_EXCEPTION_ERROR THEN
5988
5989 x_return_status := OKL_API.HANDLE_EXCEPTIONS
5990
5991 (
5992
5993 l_api_name,
5994
5995 G_PKG_NAME,
5996
5997 'OKL_API.G_RET_STS_ERROR',
5998
5999 x_msg_count,
6000
6001 x_msg_data,
6002
6003 '_PVT'
6004
6005 );
6006
6007 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6008
6009 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6010
6011 (
6012
6013 l_api_name,
6014
6015 G_PKG_NAME,
6016
6017 'OKL_API.G_RET_STS_UNEXP_ERROR',
6018
6019 x_msg_count,
6020
6021 x_msg_data,
6022
6023 '_PVT'
6024
6025 );
6026
6027 WHEN OTHERS THEN
6028
6029 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6030
6031 (
6032
6033 l_api_name,
6034
6035 G_PKG_NAME,
6036
6037 'OTHERS',
6038
6039 x_msg_count,
6040
6041 x_msg_data,
6042
6043 '_PVT'
6044
6045 );
6046
6047 END update_row;
6048
6049
6050
6051 ----------------------------------------
6052
6053 -- PL/SQL TBL update_row for:DRAV_TBL --
6054
6055 ----------------------------------------
6056
6057 PROCEDURE update_row(
6058
6059 p_api_version IN NUMBER,
6060
6061 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6062
6063 x_return_status OUT NOCOPY VARCHAR2,
6064
6065 x_msg_count OUT NOCOPY NUMBER,
6066
6067 x_msg_data OUT NOCOPY VARCHAR2,
6068
6069 p_drav_tbl IN drav_tbl_type,
6070
6071 x_drav_tbl OUT NOCOPY drav_tbl_type) IS
6072
6073
6074
6075 l_api_version CONSTANT NUMBER := 1;
6076
6077 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
6078
6079 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
6080
6081 l_error_tbl OKL_API.ERROR_TBL_TYPE;
6082
6083 BEGIN
6084
6085 OKL_API.init_msg_list(p_init_msg_list);
6086
6087 -- Make sure PL/SQL table has records in it before passing
6088
6089 IF (p_drav_tbl.COUNT > 0) THEN
6090
6091 update_row (
6092
6093 p_api_version => p_api_version,
6094
6095 p_init_msg_list => OKL_API.G_FALSE,
6096
6097 x_return_status => x_return_status,
6098
6099 x_msg_count => x_msg_count,
6100
6101 x_msg_data => x_msg_data,
6102
6103 p_drav_tbl => p_drav_tbl,
6104
6105 x_drav_tbl => x_drav_tbl,
6106
6107 px_error_tbl => l_error_tbl);
6108
6109 END IF;
6110
6111 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
6112
6113 EXCEPTION
6114
6115 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6116
6117 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6118
6119 (
6120
6121 l_api_name,
6122
6123 G_PKG_NAME,
6124
6125 'OKL_API.G_RET_STS_ERROR',
6126
6127 x_msg_count,
6128
6129 x_msg_data,
6130
6131 '_PVT'
6132
6133 );
6134
6135 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6136
6137 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6138
6139 (
6140
6141 l_api_name,
6142
6143 G_PKG_NAME,
6144
6145 'OKL_API.G_RET_STS_UNEXP_ERROR',
6146
6147 x_msg_count,
6148
6149 x_msg_data,
6150
6151 '_PVT'
6152
6153 );
6154
6155 WHEN OTHERS THEN
6156
6157 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6158
6159 (
6160
6161 l_api_name,
6162
6163 G_PKG_NAME,
6164
6165 'OTHERS',
6166
6167 x_msg_count,
6168
6169 x_msg_data,
6170
6171 '_PVT'
6172
6173 );
6174
6175 END update_row;
6176
6177
6178
6179 ---------------------------------------------------------------------------
6180
6181 -- PROCEDURE delete_row
6182
6183 ---------------------------------------------------------------------------
6184
6185 -------------------------------------
6186
6187 -- delete_row for:OKL_DISB_RULES_B --
6188
6189 -------------------------------------
6190
6191 PROCEDURE delete_row(
6192
6193 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6194
6195 x_return_status OUT NOCOPY VARCHAR2,
6196
6197 x_msg_count OUT NOCOPY NUMBER,
6198
6199 x_msg_data OUT NOCOPY VARCHAR2,
6200
6201 p_dra_rec IN dra_rec_type) IS
6202
6203
6204
6205 l_api_version CONSTANT NUMBER := 1;
6206
6207 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
6208
6209 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
6210
6211 l_dra_rec dra_rec_type := p_dra_rec;
6212
6213 l_row_notfound BOOLEAN := TRUE;
6214
6215 BEGIN
6216
6217 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
6218
6219 p_init_msg_list,
6220
6221 '_PVT',
6222
6223 x_return_status);
6224
6225 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6226
6227 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6228
6229 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6230
6231 RAISE OKL_API.G_EXCEPTION_ERROR;
6232
6233 END IF;
6234
6235
6236
6237 DELETE FROM OKL_DISB_RULES_B
6238
6239 WHERE DISB_RULE_ID = p_dra_rec.disb_rule_id;
6240
6241
6242
6243 x_return_status := l_return_status;
6244
6245 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
6246
6247 EXCEPTION
6248
6249 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6250
6251 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6252
6253 (
6254
6255 l_api_name,
6256
6257 G_PKG_NAME,
6258
6259 'OKL_API.G_RET_STS_ERROR',
6260
6261 x_msg_count,
6262
6263 x_msg_data,
6264
6265 '_PVT'
6266
6267 );
6268
6269 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6270
6271 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6272
6273 (
6274
6275 l_api_name,
6276
6277 G_PKG_NAME,
6278
6279 'OKL_API.G_RET_STS_UNEXP_ERROR',
6280
6281 x_msg_count,
6282
6283 x_msg_data,
6284
6285 '_PVT'
6286
6287 );
6288
6289 WHEN OTHERS THEN
6290
6291 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6292
6293 (
6294
6295 l_api_name,
6296
6297 G_PKG_NAME,
6298
6299 'OTHERS',
6300
6301 x_msg_count,
6302
6303 x_msg_data,
6304
6305 '_PVT'
6306
6307 );
6308
6309 END delete_row;
6310
6311 --------------------------------------
6312
6313 -- delete_row for:OKL_DISB_RULES_TL --
6314
6315 --------------------------------------
6316
6317 PROCEDURE delete_row(
6318
6319 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6320
6321 x_return_status OUT NOCOPY VARCHAR2,
6322
6323 x_msg_count OUT NOCOPY NUMBER,
6324
6325 x_msg_data OUT NOCOPY VARCHAR2,
6326
6327 p_okl_disb_rules_tl_rec IN okl_disb_rules_tl_rec_type) IS
6328
6329
6330
6331 l_api_version CONSTANT NUMBER := 1;
6332
6333 l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
6334
6335 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
6336
6337 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type := p_okl_disb_rules_tl_rec;
6338
6339 l_row_notfound BOOLEAN := TRUE;
6340
6341 BEGIN
6342
6343 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
6344
6345 p_init_msg_list,
6346
6347 '_PVT',
6348
6349 x_return_status);
6350
6351 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6352
6353 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6354
6355 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6356
6357 RAISE OKL_API.G_EXCEPTION_ERROR;
6358
6359 END IF;
6360
6361
6362
6363 DELETE FROM OKL_DISB_RULES_TL
6364
6365 WHERE DISB_RULE_ID = p_okl_disb_rules_tl_rec.disb_rule_id;
6366
6367
6368
6369 x_return_status := l_return_status;
6370
6371 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
6372
6373 EXCEPTION
6374
6375 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6376
6377 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6378
6379 (
6380
6381 l_api_name,
6382
6383 G_PKG_NAME,
6384
6385 'OKL_API.G_RET_STS_ERROR',
6386
6387 x_msg_count,
6388
6389 x_msg_data,
6390
6391 '_PVT'
6392
6393 );
6394
6395 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6396
6397 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6398
6399 (
6400
6401 l_api_name,
6402
6403 G_PKG_NAME,
6404
6405 'OKL_API.G_RET_STS_UNEXP_ERROR',
6406
6407 x_msg_count,
6408
6409 x_msg_data,
6410
6411 '_PVT'
6412
6413 );
6414
6415 WHEN OTHERS THEN
6416
6417 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6418
6419 (
6420
6421 l_api_name,
6422
6423 G_PKG_NAME,
6424
6425 'OTHERS',
6426
6427 x_msg_count,
6428
6429 x_msg_data,
6430
6431 '_PVT'
6432
6433 );
6434
6435 END delete_row;
6436
6437 -------------------------------------
6438
6439 -- delete_row for:OKL_DISB_RULES_V --
6440
6441 -------------------------------------
6442
6443 PROCEDURE delete_row(
6444
6445 p_api_version IN NUMBER,
6446
6447 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6448
6449 x_return_status OUT NOCOPY VARCHAR2,
6450
6451 x_msg_count OUT NOCOPY NUMBER,
6452
6453 x_msg_data OUT NOCOPY VARCHAR2,
6454
6455 p_drav_rec IN drav_rec_type) IS
6456
6457
6458
6459 l_api_version CONSTANT NUMBER := 1;
6460
6461 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
6462
6463 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
6464
6465 l_drav_rec drav_rec_type := p_drav_rec;
6466
6467 l_okl_disb_rules_tl_rec okl_disb_rules_tl_rec_type;
6468
6469 l_dra_rec dra_rec_type;
6470
6471 BEGIN
6472
6473 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
6474
6475 G_PKG_NAME,
6476
6477 p_init_msg_list,
6478
6479 l_api_version,
6480
6481 p_api_version,
6482
6483 '_PVT',
6484
6485 x_return_status);
6486
6487 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6488
6489 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6490
6491 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6492
6493 RAISE OKL_API.G_EXCEPTION_ERROR;
6494
6495 END IF;
6496
6497 -----------------------------------------
6498
6499 -- Move VIEW record to "Child" records --
6500
6501 -----------------------------------------
6502
6503 migrate(l_drav_rec, l_okl_disb_rules_tl_rec);
6504
6505 migrate(l_drav_rec, l_dra_rec);
6506
6507 -----------------------------------------------
6508
6509 -- Call the DELETE_ROW for each child record --
6510
6511 -----------------------------------------------
6512
6513 delete_row(
6514
6515 p_init_msg_list,
6516
6517 l_return_status,
6518
6519 x_msg_count,
6520
6521 x_msg_data,
6522
6523 l_okl_disb_rules_tl_rec
6524
6525 );
6526
6527 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6528
6529 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6530
6531 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6532
6533 RAISE OKL_API.G_EXCEPTION_ERROR;
6534
6535 END IF;
6536
6537 delete_row(
6538
6539 p_init_msg_list,
6540
6541 l_return_status,
6542
6543 x_msg_count,
6544
6545 x_msg_data,
6546
6547 l_dra_rec
6548
6549 );
6550
6551 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
6552
6553 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
6554
6555 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
6556
6557 RAISE OKL_API.G_EXCEPTION_ERROR;
6558
6559 END IF;
6560
6561 x_return_status := l_return_status;
6562
6563 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
6564
6565 EXCEPTION
6566
6567 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6568
6569 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6570
6571 (
6572
6573 l_api_name,
6574
6575 G_PKG_NAME,
6576
6577 'OKL_API.G_RET_STS_ERROR',
6578
6579 x_msg_count,
6580
6581 x_msg_data,
6582
6583 '_PVT'
6584
6585 );
6586
6587 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6588
6589 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6590
6591 (
6592
6593 l_api_name,
6594
6595 G_PKG_NAME,
6596
6597 'OKL_API.G_RET_STS_UNEXP_ERROR',
6598
6599 x_msg_count,
6600
6601 x_msg_data,
6602
6603 '_PVT'
6604
6605 );
6606
6607 WHEN OTHERS THEN
6608
6609 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6610
6611 (
6612
6613 l_api_name,
6614
6615 G_PKG_NAME,
6616
6617 'OTHERS',
6618
6619 x_msg_count,
6620
6621 x_msg_data,
6622
6623 '_PVT'
6624
6625 );
6626
6627 END delete_row;
6628
6629 ------------------------------------------------
6630
6631 -- PL/SQL TBL delete_row for:OKL_DISB_RULES_V --
6632
6633 ------------------------------------------------
6634
6635 PROCEDURE delete_row(
6636
6637 p_api_version IN NUMBER,
6638
6639 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6640
6641 x_return_status OUT NOCOPY VARCHAR2,
6642
6643 x_msg_count OUT NOCOPY NUMBER,
6644
6645 x_msg_data OUT NOCOPY VARCHAR2,
6646
6647 p_drav_tbl IN drav_tbl_type,
6648
6649 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
6650
6651
6652
6653 l_api_version CONSTANT NUMBER := 1;
6654
6655 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
6656
6657 i NUMBER := 0;
6658
6659 BEGIN
6660
6661 OKL_API.init_msg_list(p_init_msg_list);
6662
6663 -- Make sure PL/SQL table has records in it before passing
6664
6665 IF (p_drav_tbl.COUNT > 0) THEN
6666
6667 i := p_drav_tbl.FIRST;
6668
6669 LOOP
6670
6671 DECLARE
6672
6673 l_error_rec OKL_API.ERROR_REC_TYPE;
6674
6675 BEGIN
6676
6677 l_error_rec.api_name := l_api_name;
6678
6679 l_error_rec.api_package := G_PKG_NAME;
6680
6681 l_error_rec.idx := i;
6682
6683 delete_row (
6684
6685 p_api_version => p_api_version,
6686
6687 p_init_msg_list => OKL_API.G_FALSE,
6688
6689 x_return_status => l_error_rec.error_type,
6690
6691 x_msg_count => l_error_rec.msg_count,
6692
6693 x_msg_data => l_error_rec.msg_data,
6694
6695 p_drav_rec => p_drav_tbl(i));
6696
6697 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
6698
6699 l_error_rec.sqlcode := SQLCODE;
6700
6701 load_error_tbl(l_error_rec, px_error_tbl);
6702
6703 ELSE
6704
6705 x_msg_count := l_error_rec.msg_count;
6706
6707 x_msg_data := l_error_rec.msg_data;
6708
6709 END IF;
6710
6711 EXCEPTION
6712
6713 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6714
6715 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
6716
6717 l_error_rec.sqlcode := SQLCODE;
6718
6719 load_error_tbl(l_error_rec, px_error_tbl);
6720
6721 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6722
6723 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
6724
6725 l_error_rec.sqlcode := SQLCODE;
6726
6727 load_error_tbl(l_error_rec, px_error_tbl);
6728
6729 WHEN OTHERS THEN
6730
6731 l_error_rec.error_type := 'OTHERS';
6732
6733 l_error_rec.sqlcode := SQLCODE;
6734
6735 load_error_tbl(l_error_rec, px_error_tbl);
6736
6737 END;
6738
6739 EXIT WHEN (i = p_drav_tbl.LAST);
6740
6741 i := p_drav_tbl.NEXT(i);
6742
6743 END LOOP;
6744
6745 END IF;
6746
6747 -- Loop through the error_tbl to find the error with the highest severity
6748
6749 -- and return it.
6750
6751 x_return_status := find_highest_exception(px_error_tbl);
6752
6753 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
6754
6755 EXCEPTION
6756
6757 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6758
6759 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6760
6761 (
6762
6763 l_api_name,
6764
6765 G_PKG_NAME,
6766
6767 'OKL_API.G_RET_STS_ERROR',
6768
6769 x_msg_count,
6770
6771 x_msg_data,
6772
6773 '_PVT'
6774
6775 );
6776
6777 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6778
6779 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6780
6781 (
6782
6783 l_api_name,
6784
6785 G_PKG_NAME,
6786
6787 'OKL_API.G_RET_STS_UNEXP_ERROR',
6788
6789 x_msg_count,
6790
6791 x_msg_data,
6792
6793 '_PVT'
6794
6795 );
6796
6797 WHEN OTHERS THEN
6798
6799 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6800
6801 (
6802
6803 l_api_name,
6804
6805 G_PKG_NAME,
6806
6807 'OTHERS',
6808
6809 x_msg_count,
6810
6811 x_msg_data,
6812
6813 '_PVT'
6814
6815 );
6816
6817 END delete_row;
6818
6819
6820
6821 ------------------------------------------------
6822
6823 -- PL/SQL TBL delete_row for:OKL_DISB_RULES_V --
6824
6825 ------------------------------------------------
6826
6827 PROCEDURE delete_row(
6828
6829 p_api_version IN NUMBER,
6830
6831 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6832
6833 x_return_status OUT NOCOPY VARCHAR2,
6834
6835 x_msg_count OUT NOCOPY NUMBER,
6836
6837 x_msg_data OUT NOCOPY VARCHAR2,
6838
6839 p_drav_tbl IN drav_tbl_type) IS
6840
6841
6842
6843 l_api_version CONSTANT NUMBER := 1;
6844
6845 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
6846
6847 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
6848
6849 l_error_tbl OKL_API.ERROR_TBL_TYPE;
6850
6851 BEGIN
6852
6853 OKL_API.init_msg_list(p_init_msg_list);
6854
6855 -- Make sure PL/SQL table has records in it before passing
6856
6857 IF (p_drav_tbl.COUNT > 0) THEN
6858
6859 delete_row (
6860
6861 p_api_version => p_api_version,
6862
6863 p_init_msg_list => OKL_API.G_FALSE,
6864
6865 x_return_status => x_return_status,
6866
6867 x_msg_count => x_msg_count,
6868
6869 x_msg_data => x_msg_data,
6870
6871 p_drav_tbl => p_drav_tbl,
6872
6873 px_error_tbl => l_error_tbl);
6874
6875 END IF;
6876
6877 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
6878
6879 EXCEPTION
6880
6881 WHEN OKL_API.G_EXCEPTION_ERROR THEN
6882
6883 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6884
6885 (
6886
6887 l_api_name,
6888
6889 G_PKG_NAME,
6890
6891 'OKL_API.G_RET_STS_ERROR',
6892
6893 x_msg_count,
6894
6895 x_msg_data,
6896
6897 '_PVT'
6898
6899 );
6900
6901 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6902
6903 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6904
6905 (
6906
6907 l_api_name,
6908
6909 G_PKG_NAME,
6910
6911 'OKL_API.G_RET_STS_UNEXP_ERROR',
6912
6913 x_msg_count,
6914
6915 x_msg_data,
6916
6917 '_PVT'
6918
6919 );
6920
6921 WHEN OTHERS THEN
6922
6923 x_return_status := OKL_API.HANDLE_EXCEPTIONS
6924
6925 (
6926
6927 l_api_name,
6928
6929 G_PKG_NAME,
6930
6931 'OTHERS',
6932
6933 x_msg_count,
6934
6935 x_msg_data,
6936
6937 '_PVT'
6938
6939 );
6940
6941 END delete_row;
6942
6943 END OKL_DRA_PVT;