DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ACC_GEN_RULE_PUB

Source


1 PACKAGE BODY OKL_ACC_GEN_RULE_PUB AS
2 /* $Header: OKLPAGRB.pls 115.8 2002/12/18 12:09:57 kjinger noship $ */
3 
4 
5 
6   PROCEDURE create_acc_gen_rule(
7 
8      p_api_version                  IN  NUMBER
9 
10     ,p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
11 
12     ,x_return_status                OUT NOCOPY VARCHAR2
13 
14     ,x_msg_count                    OUT NOCOPY NUMBER
15 
16     ,x_msg_data                     OUT NOCOPY VARCHAR2
17 
18     ,p_agrv_rec                     IN  agrv_rec_type
19 
20     ,p_aulv_tbl                     IN  aulv_tbl_type
21 
22     ,x_agrv_rec                     OUT NOCOPY agrv_rec_type
23 
24     ,x_aulv_tbl                     OUT NOCOPY aulv_tbl_type
25 
26     ) IS
27 
28 
29 
30     i                               NUMBER;
31 
32     l_api_name                      CONSTANT VARCHAR2(30)  := 'create_acc_gen_rule';
33 
34     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
35 
36     l_return_status                 VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
37 
38     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
39 
40 
41 
42   BEGIN
43 
44     SAVEPOINT create_acc_gen_rule;
45     x_return_status    := FND_API.G_RET_STS_SUCCESS;
46 
47    -- customer pre-processing
48 
49 
50 
51 
52 
53 
54    -- vertical industry-preprocessing
55 
56 
57 
58 
59 
60 
61    -- call complex entity API
62 
63 
64 
65     okl_acc_gen_rule_pvt.create_acc_gen_rule(
66 
67                          p_api_version   => p_api_version
68 
69                         ,p_init_msg_list => p_init_msg_list
70 
71                         ,x_return_status => l_return_status
72 
73                         ,x_msg_count     => x_msg_count
74 
75                         ,x_msg_data      => x_msg_data
76 
77                         ,p_agrv_rec      => l_agrv_rec
78 
79                         ,p_aulv_tbl      => l_aulv_tbl
80 
81                         ,x_agrv_rec      => x_agrv_rec
82 
83                         ,x_aulv_tbl      => x_aulv_tbl);
84 
85        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
86              RAISE FND_API.G_EXC_ERROR;
87        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
88             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
89        END IF;
90 
91 
92 	   l_agrv_rec := x_agrv_rec;
93 	   l_aulv_tbl := x_aulv_tbl;
94 
95     -- vertical industry-post-processing
96 
97 
98 
99 
100 
101 
102      -- customer post-processing
103 
104 
105 
106 
107 
108 
109   EXCEPTION
110     WHEN FND_API.G_EXC_ERROR THEN
111       ROLLBACK TO create_acc_gen_rule;
112       x_return_status := FND_API.G_RET_STS_ERROR;
113 
114       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
115                                ,p_count   => x_msg_count
116                                ,p_data    => x_msg_data);
117 
118     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
119       ROLLBACK TO create_acc_gen_rule;
120       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
121       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
122                                ,p_count   => x_msg_count
123                                ,p_data    => x_msg_data);
124 
125     WHEN OTHERS THEN
126       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','create_acc_gen_rule');
127       -- store SQL error message on message stack for caller
128       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
129                                ,p_count   => x_msg_count
130                                ,p_data    => x_msg_data);
131       -- notify caller of an UNEXPECTED error
132       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
133 
134 
135   END create_acc_gen_rule;
136 
137 
138 
139   PROCEDURE create_acc_gen_rule(
140 
141      p_api_version             IN  NUMBER
142 
143     ,p_init_msg_list           IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
144 
145     ,x_return_status           OUT NOCOPY VARCHAR2
146 
147     ,x_msg_count               OUT NOCOPY NUMBER
148 
149     ,x_msg_data                OUT NOCOPY VARCHAR2
150 
151     ,p_agrv_rec                IN  agrv_rec_type
152 
153     ,x_agrv_rec                OUT NOCOPY agrv_rec_type) IS
154 
155     l_return_status            VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
156 
157     l_api_name                 CONSTANT VARCHAR2(30)  := 'create_acc_gen_rule';
158 
159     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
160 
161 
162 
163   BEGIN
164 
165     SAVEPOINT create_acc_gen_rule;
166     x_return_status    := FND_API.G_RET_STS_SUCCESS;
167 
168 
169 
170    -- customer pre-processing
171 
172 
173 
174 
175 
176 
177    -- vertical industry-preprocessing
178 
179 
180 
181 
182 
183 
184    -- call complex entity API
185 
186     okl_acc_gen_rule_pvt.create_acc_gen_rule(
187 
188                            p_api_version   => p_api_version
189 
190                           ,p_init_msg_list => p_init_msg_list
191 
192                           ,x_return_status => l_return_status
193 
194                           ,x_msg_count     => x_msg_count
195 
196                           ,x_msg_data      => x_msg_data
197 
198                           ,p_agrv_rec      => l_agrv_rec
199 
200                           ,x_agrv_rec      => x_agrv_rec
201 
202                           );
203 
204 
205 
206        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
207              RAISE FND_API.G_EXC_ERROR;
208        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
209             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
210        END IF;
211 
212 	   l_agrv_rec := x_agrv_rec;
213 
214     -- vertical industry-post-processing
215 
216 
217 
218 
219 
220 
221      -- customer post-processing
222 
223 
224 
225 
226 
227 
228   EXCEPTION
229 
230     WHEN FND_API.G_EXC_ERROR THEN
231       ROLLBACK TO create_acc_gen_rule;
232       x_return_status := FND_API.G_RET_STS_ERROR;
233 
234       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
235                                ,p_count   => x_msg_count
236                                ,p_data    => x_msg_data);
237 
238     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
239       ROLLBACK TO create_acc_gen_rule;
240       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
241       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
242                                ,p_count   => x_msg_count
243                                ,p_data    => x_msg_data);
244 
245     WHEN OTHERS THEN
246       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','create_acc_gen_rule');
247       -- store SQL error message on message stack for caller
248       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
249                                ,p_count   => x_msg_count
250                                ,p_data    => x_msg_data);
251       -- notify caller of an UNEXPECTED error
252       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
253 
254   END create_acc_gen_rule;
255 
256 
257 
258   PROCEDURE create_acc_gen_rule(
259 
260      p_api_version               IN  NUMBER
261 
262     ,p_init_msg_list             IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
263 
264     ,x_return_status             OUT NOCOPY VARCHAR2
265 
266     ,x_msg_count                 OUT NOCOPY NUMBER
267 
268     ,x_msg_data                  OUT NOCOPY VARCHAR2
269 
270     ,p_agrv_tbl                  IN  agrv_tbl_type
271 
272     ,x_agrv_tbl                  OUT NOCOPY agrv_tbl_type) IS
273 
274     l_return_status              VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
275 
276     l_api_name                   CONSTANT VARCHAR2(30)  := 'create_acc_gen_rule';
277 
278     i                            NUMBER;
279 
280 	l_overall_status			 VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
281 
282     l_agrv_tbl                      agrv_tbl_type := p_agrv_tbl;
283 
284   BEGIN
285 
286   --Initialize the return status
287     SAVEPOINT create_acc_gen_rule;
288     x_return_status    := FND_API.G_RET_STS_SUCCESS;
289 
290 
291 
292    -- customer pre-processing
293 
294 
295 
296 
297 
298 
299    -- vertical industry-preprocessing
300 
301 
302 
303 
304 
305 
306     IF (l_agrv_tbl.COUNT > 0) THEN
307 
308       i := l_agrv_tbl.FIRST;
309 
310       LOOP
311 
312         okl_acc_gen_rule_pub.create_acc_gen_rule(
313 
314                            p_api_version   => p_api_version
315 
316                           ,p_init_msg_list => p_init_msg_list
317 
318                           ,x_return_status => l_return_status
319 
320                           ,x_msg_count     => x_msg_count
321 
322                           ,x_msg_data      => x_msg_data
323 
324                           ,p_agrv_rec      => l_agrv_tbl(i)
325 
326                           ,x_agrv_rec      => x_agrv_tbl(i)
327 
328                           );
329 
330 		  -- store the highest degree of error
331 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
332 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
333 			 	l_overall_status := l_return_status;
334 			END IF;
335 		  END IF;
336 
337           EXIT WHEN (i = l_agrv_tbl.LAST);
338 
339           i := l_agrv_tbl.NEXT(i);
340        END LOOP;
341 
342 	   -- return overall status
343 	   l_return_status := l_overall_status;
344      END IF;
345 
346        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
347              RAISE FND_API.G_EXC_ERROR;
348        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
349             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
350        END IF;
351 
352 	   l_agrv_tbl := x_agrv_tbl;
353 
354 
355     -- vertical industry-post-processing
356 
357 
358 
359 
360 
361 
362      -- customer post-processing
363 
364 
365 
366 
367 
368 
369   EXCEPTION
370 
371     WHEN FND_API.G_EXC_ERROR THEN
372       ROLLBACK TO create_acc_gen_rule;
373       x_return_status := FND_API.G_RET_STS_ERROR;
374 
375       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
376                                ,p_count   => x_msg_count
377                                ,p_data    => x_msg_data);
378 
379     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
380       ROLLBACK TO create_acc_gen_rule;
381       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
382       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
383                                ,p_count   => x_msg_count
384                                ,p_data    => x_msg_data);
385 
386     WHEN OTHERS THEN
387       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','create_acc_gen_rule');
388       -- store SQL error message on message stack for caller
389       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
390                                ,p_count   => x_msg_count
391                                ,p_data    => x_msg_data);
392       -- notify caller of an UNEXPECTED error
393       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
394 
395 
396   END create_acc_gen_rule;
397 
398 
399 
400   -- Object type procedure for update
401 
402   PROCEDURE update_acc_gen_rule(
403 
404     p_api_version           IN  NUMBER,
405 
406     p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
407 
408     x_return_status         OUT NOCOPY VARCHAR2,
409 
410     x_msg_count             OUT NOCOPY NUMBER,
411 
412     x_msg_data              OUT NOCOPY VARCHAR2,
413 
414     p_agrv_rec              IN  agrv_rec_type,
415 
416     p_aulv_tbl              IN  aulv_tbl_type,
417 
418     x_agrv_rec              OUT NOCOPY agrv_rec_type,
419 
420     x_aulv_tbl              OUT NOCOPY aulv_tbl_type) IS
421 
422     l_return_status         VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
423 
424     l_api_name              CONSTANT VARCHAR2(30)  := 'update_acc_gen_rule';
425 
426     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
427 
428     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
429 
430 
431 
432   BEGIN
433 
434     SAVEPOINT update_acc_gen_rule;
435     x_return_status    := FND_API.G_RET_STS_SUCCESS;
436 
437 
438 
439    -- customer pre-processing
440 
441 
442 
443 
444 
445 
446    -- vertical industry-preprocessing
447 
448 
449 
450 
451 
452 
453    -- call complex entity API
454 
455 
456 
457     okl_acc_gen_rule_pvt.update_acc_gen_rule(
458 
459                          p_api_version   => p_api_version
460 
461                         ,p_init_msg_list => p_init_msg_list
462 
463                         ,x_return_status => x_return_status
464 
465                         ,x_msg_count     => x_msg_count
466 
467                         ,x_msg_data      => x_msg_data
468 
469                         ,p_agrv_rec      => l_agrv_rec
470 
471                         ,p_aulv_tbl      => l_aulv_tbl
472 
473                         ,x_agrv_rec      => x_agrv_rec
474 
475                         ,x_aulv_tbl      => x_aulv_tbl
476 
477                         );
478 
479        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
480              RAISE FND_API.G_EXC_ERROR;
481        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
482             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
483        END IF;
484 
485 	   l_agrv_rec := x_agrv_rec;
486 	   l_aulv_tbl := x_aulv_tbl;
487 
488    -- vertical industry-post processing
489 
490 
491 
492 
493 
494 
495    -- customer post-processing
496 
497 
498 
499 
500 
501 
502   EXCEPTION
503 
504     WHEN FND_API.G_EXC_ERROR THEN
505       ROLLBACK TO update_acc_gen_rule;
506       x_return_status := FND_API.G_RET_STS_ERROR;
507 
508       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
509                                ,p_count   => x_msg_count
510                                ,p_data    => x_msg_data);
511 
512     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
513       ROLLBACK TO update_acc_gen_rule;
514       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
515       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
516                                ,p_count   => x_msg_count
517                                ,p_data    => x_msg_data);
518 
519     WHEN OTHERS THEN
520       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','update_acc_gen_rule');
521       -- store SQL error message on message stack for caller
522       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
523                                ,p_count   => x_msg_count
524                                ,p_data    => x_msg_data);
525       -- notify caller of an UNEXPECTED error
526       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
527 
528   END update_acc_gen_rule;
529 
530 
531 
532   PROCEDURE validate_acc_gen_rule(
533 
534      p_api_version           IN  NUMBER
535 
536     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
537 
538     ,x_return_status         OUT NOCOPY VARCHAR2
539 
540     ,x_msg_count             OUT NOCOPY NUMBER
541 
542     ,x_msg_data              OUT NOCOPY VARCHAR2
543 
544     ,p_agrv_rec              IN  agrv_rec_type
545 
546     ,p_aulv_tbl              IN  aulv_tbl_type) IS
547 
548 
549 
550     l_return_status         VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
551 
552     l_api_name              CONSTANT VARCHAR2(30)  := 'validate_acc_gen_rule';
553 
554     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
555 
556     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
557 
558 
559 
560   BEGIN
561 
562     SAVEPOINT validate_acc_gen_rule;
563     x_return_status    := FND_API.G_RET_STS_SUCCESS;
564 
565 
566 
567    -- customer pre-processing
568 
569 
570 
571 
572 
573 
574    -- vertical industry-preprocessing
575 
576 
577 
578 
579 
580 
581 -- call complex entity API
582 
583     okl_acc_gen_rule_pvt.validate_acc_gen_rule(
584 
585                            p_api_version   => p_api_version
586 
587                           ,p_init_msg_list => p_init_msg_list
588 
589                           ,x_return_status => l_return_status
590 
591                           ,x_msg_count     => x_msg_count
592 
593                           ,x_msg_data      => x_msg_data
594 
595                           ,p_agrv_rec      => l_agrv_rec
596 
597                           ,p_aulv_tbl      => l_aulv_tbl
598 
599                           );
600 
601 
602 
603        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
604              RAISE FND_API.G_EXC_ERROR;
605        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
606             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
607        END IF;
608 
609 
610 
611    -- vertical industry-post processing
612 
613 
614 
615 
616 
617 
618    -- customer post-processing
619 
620 
621 
622 
623 
624 
625   EXCEPTION
626 
627     WHEN FND_API.G_EXC_ERROR THEN
628       ROLLBACK TO validate_acc_gen_rule;
629       x_return_status := FND_API.G_RET_STS_ERROR;
630 
631       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
632                                ,p_count   => x_msg_count
633                                ,p_data    => x_msg_data);
634 
635     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
636       ROLLBACK TO validate_acc_gen_rule;
637       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
638       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
639                                ,p_count   => x_msg_count
640                                ,p_data    => x_msg_data);
641 
642     WHEN OTHERS THEN
643       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','validate_acc_gen_rule');
644       -- store SQL error message on message stack for caller
645       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
646                                ,p_count   => x_msg_count
647                                ,p_data    => x_msg_data);
648       -- notify caller of an UNEXPECTED error
649       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
650 
651   END validate_acc_gen_rule;
652 
653 
654 
655   PROCEDURE lock_acc_gen_rule(
656 
657      p_api_version           IN  NUMBER
658 
659     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
660 
661     ,x_return_status         OUT NOCOPY VARCHAR2
662 
663     ,x_msg_count             OUT NOCOPY NUMBER
664 
665     ,x_msg_data              OUT NOCOPY VARCHAR2
666 
667     ,p_agrv_rec              IN  agrv_rec_type) IS
668 
669     l_return_status          VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
670 
671     l_api_name               CONSTANT VARCHAR2(30)  := 'lock_acc_gen_rule';
672 
673 
674 
675 
676 
677   BEGIN
678 
679     x_return_status    := FND_API.G_RET_STS_SUCCESS;
680 	SAVEPOINT lock_acc_gen_rule;
681 
682 
683     okl_acc_gen_rule_pvt.lock_acc_gen_rule(
684 
685                          p_api_version   => p_api_version
686 
687                         ,p_init_msg_list => p_init_msg_list
688 
689                         ,x_return_status => l_return_status
690 
691                         ,x_msg_count     => x_msg_count
692 
693                         ,x_msg_data      => x_msg_data
694 
695                         ,p_agrv_rec      => p_agrv_rec
696 
697                         );
698 
699      IF l_return_status = FND_API.G_RET_STS_ERROR THEN
700         RAISE FND_API.G_EXC_ERROR;
701      ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
702         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
703      END IF;
704 
705   EXCEPTION
706     WHEN FND_API.G_EXC_ERROR THEN
707       ROLLBACK TO lock_acc_gen_rule;
708       x_return_status := FND_API.G_RET_STS_ERROR;
709 
710       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
711                                ,p_count   => x_msg_count
712                                ,p_data    => x_msg_data);
713 
714     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
715       ROLLBACK TO lock_acc_gen_rule;
716       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
717       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
718                                ,p_count   => x_msg_count
719                                ,p_data    => x_msg_data);
720 
721     WHEN OTHERS THEN
722       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','lock_acc_gen_rule');
723       -- store SQL error message on message stack for caller
724       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
725                                ,p_count   => x_msg_count
726                                ,p_data    => x_msg_data);
727       -- notify caller of an UNEXPECTED error
728       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
729 
730   END lock_acc_gen_rule;
731 
732 
733 
734   PROCEDURE lock_acc_gen_rule(
735 
736      p_api_version           IN  NUMBER
737 
738     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
739 
740     ,x_return_status         OUT NOCOPY VARCHAR2
741 
742     ,x_msg_count             OUT NOCOPY NUMBER
743 
744     ,x_msg_data              OUT NOCOPY VARCHAR2
745 
746     ,p_agrv_tbl              IN  agrv_tbl_type) IS
747 
748     l_return_status          VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
749 
750     l_api_name               CONSTANT VARCHAR2(30)  := 'lock_acc_gen_rule';
751 
752     i                        NUMBER;
753 
754 	l_overall_status			 VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
755 
756 
757 
758   BEGIN
759 
760   --Initialize the return status
761 
762     x_return_status := FND_API.G_RET_STS_SUCCESS;
763 	SAVEPOINT lock_acc_gen_rule;
764 
765     IF (p_agrv_tbl.COUNT > 0) THEN
766 
767       i := p_agrv_tbl.FIRST;
768 
769       LOOP
770 
771         okl_acc_gen_rule_pub.lock_acc_gen_rule(
772 
773                            p_api_version   => p_api_version
774 
775                           ,p_init_msg_list => p_init_msg_list
776 
777                           ,x_return_status => l_return_status
778 
779                           ,x_msg_count     => x_msg_count
780 
781                           ,x_msg_data      => x_msg_data
782 
783                           ,p_agrv_rec      => p_agrv_tbl(i)
784 
785                           );
786 
787 		  -- store the highest degree of error
788 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
789 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
790 			 	l_overall_status := l_return_status;
791 			END IF;
792 		  END IF;
793 
794           EXIT WHEN (i = p_agrv_tbl.LAST);
795 
796           i := p_agrv_tbl.NEXT(i);
797 
798        END LOOP;
799 
800 	   -- return overall status
801 	   l_return_status := l_overall_status;
802 
803      END IF;
804 
805      IF l_return_status = FND_API.G_RET_STS_ERROR THEN
806         RAISE FND_API.G_EXC_ERROR;
807      ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
808         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
809      END IF;
810 
811   EXCEPTION
812     WHEN FND_API.G_EXC_ERROR THEN
813       ROLLBACK TO lock_acc_gen_rule;
814       x_return_status := FND_API.G_RET_STS_ERROR;
815 
816       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
817                                ,p_count   => x_msg_count
818                                ,p_data    => x_msg_data);
819 
820     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
821       ROLLBACK TO lock_acc_gen_rule;
822       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
823       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
824                                ,p_count   => x_msg_count
825                                ,p_data    => x_msg_data);
826 
827     WHEN OTHERS THEN
828       FND_MSG_PUB.ADD_EXC_MSG('OKL_STREAM_TYPE_PUB','lock_acc_gen_rule');
829       -- store SQL error message on message stack for caller
830       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
831                                ,p_count   => x_msg_count
832                                ,p_data    => x_msg_data);
833       -- notify caller of an UNEXPECTED error
834       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
835 
836   END lock_acc_gen_rule;
837 
838 
839 
840   PROCEDURE update_acc_gen_rule(
841 
842      p_api_version                IN  NUMBER
843 
844     ,p_init_msg_list              IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
845 
846     ,x_return_status              OUT NOCOPY VARCHAR2
847 
848     ,x_msg_count                  OUT NOCOPY NUMBER
849 
850     ,x_msg_data                   OUT NOCOPY VARCHAR2
851 
852     ,p_agrv_rec                   IN  agrv_rec_type
853 
854     ,x_agrv_rec                   OUT NOCOPY agrv_rec_type) IS
855 
856     l_return_status               VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
857 
858     l_api_name                    CONSTANT VARCHAR2(30)  := 'update_acc_gen_rule';
859 
860     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
861 
862   BEGIN
863 
864     SAVEPOINT update_acc_gen_rule;
865     x_return_status    := FND_API.G_RET_STS_SUCCESS;
866 
867 
868 
869    -- customer pre-processing
870 
871 
872 
873 
874 
875 
876    -- vertical industry-preprocessing
877 
878 
879 
880 
881 
882 
883    -- call complex entity API
884 
885     okl_acc_gen_rule_pvt.update_acc_gen_rule(
886 
887                            p_api_version   => p_api_version
888 
889                           ,p_init_msg_list => p_init_msg_list
890 
891                           ,x_return_status => l_return_status
892 
893                           ,x_msg_count     => x_msg_count
894 
895                           ,x_msg_data      => x_msg_data
896 
897                           ,p_agrv_rec      => l_agrv_rec
898 
899                           ,x_agrv_rec      => x_agrv_rec
900 
901                           );
902 
903        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
904              RAISE FND_API.G_EXC_ERROR;
905        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
906             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
907        END IF;
908 
909 	   l_agrv_rec := x_agrv_rec;
910 
911     -- vertical industry-post-processing
912 
913 
914 
915 
916 
917 
918     -- customer post-processing
919 
920 
921 
922 
923 
924 
925   EXCEPTION
926 
927     WHEN FND_API.G_EXC_ERROR THEN
928       ROLLBACK TO update_acc_gen_rule;
929       x_return_status := FND_API.G_RET_STS_ERROR;
930 
931       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
932                                ,p_count   => x_msg_count
933                                ,p_data    => x_msg_data);
934 
935     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
936       ROLLBACK TO update_acc_gen_rule;
937       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
938       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
939                                ,p_count   => x_msg_count
940                                ,p_data    => x_msg_data);
941 
942     WHEN OTHERS THEN
943       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','update_acc_gen_rule');
944       -- store SQL error message on message stack for caller
945       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
946                                ,p_count   => x_msg_count
947                                ,p_data    => x_msg_data);
948       -- notify caller of an UNEXPECTED error
949       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
950 
951   END update_acc_gen_rule;
952 
953 
954 
955   PROCEDURE update_acc_gen_rule(
956 
957      p_api_version                IN  NUMBER
958 
959     ,p_init_msg_list              IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
960 
961     ,x_return_status              OUT NOCOPY VARCHAR2
962 
963     ,x_msg_count                  OUT NOCOPY NUMBER
964 
965     ,x_msg_data                   OUT NOCOPY VARCHAR2
966 
967     ,p_agrv_tbl                   IN  agrv_tbl_type
968 
969     ,x_agrv_tbl                   OUT NOCOPY agrv_tbl_type) IS
970 
971     l_return_status               VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
972 
973     l_api_name                    CONSTANT VARCHAR2(30)  := 'update_acc_gen_rule';
974 
975     i                             NUMBER;
976 
977 	l_overall_status			  VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
978 
979 	l_agrv_tbl					  agrv_tbl_type := p_agrv_tbl;
980 
981   BEGIN
982 
983   --Initialize the return status
984 
985     x_return_status := FND_API.G_RET_STS_SUCCESS;
986 	SAVEPOINT update_acc_gen_rule;
987 
988    -- customer pre-processing
989 
990 
991 
992 
993 
994 
995    -- vertical industry-preprocessing
996 
997 
998 
999 
1000 
1001 
1002     IF (l_agrv_tbl.COUNT > 0) THEN
1003 
1004       i := l_agrv_tbl.FIRST;
1005 
1006       LOOP
1007 
1008         update_acc_gen_rule(
1009 
1010                            p_api_version   => p_api_version
1011 
1012                           ,p_init_msg_list => p_init_msg_list
1013 
1014                           ,x_return_status => l_return_status
1015 
1016                           ,x_msg_count     => x_msg_count
1017 
1018                           ,x_msg_data      => x_msg_data
1019 
1020                           ,p_agrv_rec      => l_agrv_tbl(i)
1021 
1022                           ,x_agrv_rec      => x_agrv_tbl(i)
1023 
1024                           );
1025 		  -- store the highest degree of error
1026 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1027 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
1028 			 	l_overall_status := l_return_status;
1029 			END IF;
1030 		  END IF;
1031 
1032           EXIT WHEN (i = l_agrv_tbl.LAST);
1033 
1034           i := l_agrv_tbl.NEXT(i);
1035 
1036        END LOOP;
1037 
1038 	   -- return overall status
1039 	   l_return_status := l_overall_status;
1040      END IF;
1041 
1042        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1043              RAISE FND_API.G_EXC_ERROR;
1044        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1045             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1046        END IF;
1047 
1048 
1049 	   l_agrv_tbl := x_agrv_tbl;
1050 
1051     -- vertical industry-post-processing
1052 
1053 
1054 
1055 
1056 
1057 
1058      -- customer post-processing
1059 
1060 
1061 
1062 
1063 
1064 
1065   EXCEPTION
1066 
1067     WHEN FND_API.G_EXC_ERROR THEN
1068       ROLLBACK TO update_acc_gen_rule;
1069       x_return_status := FND_API.G_RET_STS_ERROR;
1070 
1071       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1072                                ,p_count   => x_msg_count
1073                                ,p_data    => x_msg_data);
1074 
1075     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1076       ROLLBACK TO update_acc_gen_rule;
1077       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1078       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1079                                ,p_count   => x_msg_count
1080                                ,p_data    => x_msg_data);
1081 
1082     WHEN OTHERS THEN
1083       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','update_acc_gen_rule');
1084       -- store SQL error message on message stack for caller
1085       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1086                                ,p_count   => x_msg_count
1087                                ,p_data    => x_msg_data);
1088       -- notify caller of an UNEXPECTED error
1089       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1090 
1091 
1092 
1093   END update_acc_gen_rule;
1094 
1095 
1096 
1097        --Put custom code for cascade delete by developer
1098 
1099   PROCEDURE delete_acc_gen_rule(
1100 
1101      p_api_version           IN  NUMBER
1102 
1103     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1104 
1105     ,x_return_status         OUT NOCOPY VARCHAR2
1106 
1107     ,x_msg_count             OUT NOCOPY NUMBER
1108 
1109     ,x_msg_data              OUT NOCOPY VARCHAR2
1110 
1111     ,p_agrv_rec              IN  agrv_rec_type) IS
1112 
1113     i                        NUMBER :=0;
1114 
1115     l_return_status          VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1116 
1117     l_api_name               CONSTANT VARCHAR2(30)  := 'delete_acc_gen_rule';
1118 
1119     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
1120 
1121 
1122 
1123   BEGIN
1124 
1125     SAVEPOINT delete_acc_gen_rule;
1126     x_return_status    := FND_API.G_RET_STS_SUCCESS;
1127 
1128 
1129 
1130    -- customer pre-processing
1131 
1132 
1133 
1134 
1135 
1136 
1137    -- vertical industry-preprocessing
1138 
1139 
1140 
1141 
1142 
1143 
1144    -- call complex entity API
1145 
1146     okl_acc_gen_rule_pvt.delete_acc_gen_rule(
1147 
1148                            p_api_version   => p_api_version
1149 
1150                           ,p_init_msg_list => p_init_msg_list
1151 
1152                           ,x_return_status => l_return_status
1153 
1154                           ,x_msg_count     => x_msg_count
1155 
1156                           ,x_msg_data      => x_msg_data
1157 
1158                           ,p_agrv_rec      => l_agrv_rec
1159 
1160                           );
1161 
1162 
1163 
1164        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1165              RAISE FND_API.G_EXC_ERROR;
1166        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1167             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1168        END IF;
1169 
1170 
1171 
1172     -- vertical industry-post-processing
1173 
1174 
1175 
1176 
1177 
1178 
1179     -- customer post-processing
1180 
1181 
1182 
1183 
1184 
1185 
1186   EXCEPTION
1187 
1188     WHEN FND_API.G_EXC_ERROR THEN
1189       ROLLBACK TO delete_acc_gen_rule;
1190       x_return_status := FND_API.G_RET_STS_ERROR;
1191 
1192       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1193                                ,p_count   => x_msg_count
1194                                ,p_data    => x_msg_data);
1195 
1196     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1197       ROLLBACK TO delete_acc_gen_rule;
1198       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1199       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1200                                ,p_count   => x_msg_count
1201                                ,p_data    => x_msg_data);
1202 
1203     WHEN OTHERS THEN
1204       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','delete_acc_gen_rule');
1205       -- store SQL error message on message stack for caller
1206       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1207                                ,p_count   => x_msg_count
1208                                ,p_data    => x_msg_data);
1209       -- notify caller of an UNEXPECTED error
1210       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1211 
1212   END delete_acc_gen_rule;
1213 
1214 
1215 
1216   PROCEDURE delete_acc_gen_rule(
1217 
1218      p_api_version           IN  NUMBER
1219 
1220     ,p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1221 
1222     ,x_return_status         OUT NOCOPY VARCHAR2
1223 
1224     ,x_msg_count             OUT NOCOPY NUMBER
1225 
1226     ,x_msg_data              OUT NOCOPY VARCHAR2
1227 
1228     ,p_agrv_tbl              IN  agrv_tbl_type) IS
1229 
1230     i                        NUMBER :=0;
1231 
1232     l_return_status          VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1233 
1234     l_api_name               CONSTANT VARCHAR2(30)  := 'delete_acc_gen_rule';
1235 
1236     l_overall_status          VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1237 
1238 	l_agrv_tbl					  agrv_tbl_type := p_agrv_tbl;
1239 
1240   BEGIN
1241 
1242   --Initialize the return status
1243 
1244     x_return_status := FND_API.G_RET_STS_SUCCESS;
1245 	SAVEPOINT delete_acc_gen_rule;
1246 
1247    -- customer pre-processing
1248 
1249 
1250 
1251 
1252 
1253 
1254    -- vertical industry-preprocessing
1255 
1256 
1257 
1258 
1259 
1260 
1261     IF (l_agrv_tbl.COUNT > 0) THEN
1262 
1263       i := l_agrv_tbl.FIRST;
1264 
1265       LOOP
1266 
1267         delete_acc_gen_rule(
1268 
1269                              p_api_version   => p_api_version
1270 
1271                             ,p_init_msg_list => p_init_msg_list
1272 
1273                             ,x_return_status => l_return_status
1274 
1275                             ,x_msg_count     => x_msg_count
1276 
1277                             ,x_msg_data      => x_msg_data
1278 
1279                             ,p_agrv_rec      => l_agrv_tbl(i)
1280 
1281                             );
1282 
1283 		  -- store the highest degree of error
1284 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1285 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
1286 			 	l_overall_status := l_return_status;
1287 			END IF;
1288 		  END IF;
1289 
1290          EXIT WHEN (i = l_agrv_tbl.LAST);
1291 
1292          i := l_agrv_tbl.NEXT(i);
1293 
1294        END LOOP;
1295 	   -- return overall status
1296 	   l_return_status := l_overall_status;
1297 
1298       END IF;
1299 
1300        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1301              RAISE FND_API.G_EXC_ERROR;
1302        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1303             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1304        END IF;
1305 
1306 
1307 
1308     -- vertical industry-post-processing
1309 
1310 
1311 
1312 
1313 
1314 
1315      -- customer post-processing
1316 
1317 
1318 
1319 
1320 
1321 
1322   EXCEPTION
1323 
1324     WHEN FND_API.G_EXC_ERROR THEN
1325       ROLLBACK TO delete_acc_gen_rule;
1326       x_return_status := FND_API.G_RET_STS_ERROR;
1327 
1328       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1329                                ,p_count   => x_msg_count
1330                                ,p_data    => x_msg_data);
1331 
1332     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1333       ROLLBACK TO delete_acc_gen_rule;
1334       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1335       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1336                                ,p_count   => x_msg_count
1337                                ,p_data    => x_msg_data);
1338 
1339     WHEN OTHERS THEN
1340       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','delete_acc_gen_rule');
1341       -- store SQL error message on message stack for caller
1342       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1343                                ,p_count   => x_msg_count
1344                                ,p_data    => x_msg_data);
1345       -- notify caller of an UNEXPECTED error
1346       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1347 
1348 
1349 
1350   END delete_acc_gen_rule;
1351 
1352 
1353 
1354   PROCEDURE validate_acc_gen_rule(
1355 
1356      p_api_version                IN  NUMBER
1357 
1358     ,p_init_msg_list              IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1359 
1360     ,x_return_status              OUT NOCOPY VARCHAR2
1361 
1362     ,x_msg_count                  OUT NOCOPY NUMBER
1363 
1364     ,x_msg_data                   OUT NOCOPY VARCHAR2
1365 
1366     ,p_agrv_rec                   IN  agrv_rec_type) IS
1367 
1368     l_return_status               VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1369 
1370     l_api_name                    CONSTANT VARCHAR2(30)  := 'validate_acc_gen_rule';
1371 
1372     l_agrv_rec                      agrv_rec_type := p_agrv_rec;
1373 
1374 
1375 
1376   BEGIN
1377 
1378     SAVEPOINT validate_acc_gen_rule;
1379     x_return_status    := FND_API.G_RET_STS_SUCCESS;
1380 
1381 
1382 
1383    -- customer pre-processing
1384 
1385 
1386 
1387 
1388 
1389 
1390    -- vertical industry-preprocessing
1391 
1392 
1393 
1394 
1395 
1396 
1397    -- call complex entity API
1398 
1399 
1400 
1401     okl_acc_gen_rule_pvt.validate_acc_gen_rule(
1402 
1403                              p_api_version   => p_api_version
1404 
1405                             ,p_init_msg_list => p_init_msg_list
1406 
1407                             ,x_return_status => l_return_status
1408 
1409                             ,x_msg_count     => x_msg_count
1410 
1411                             ,x_msg_data      => x_msg_data
1412 
1413                             ,p_agrv_rec      => l_agrv_rec
1414 
1415                             );
1416 
1417        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1418              RAISE FND_API.G_EXC_ERROR;
1419        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1420             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1421        END IF;
1422 
1423 
1424 
1425     -- vertical industry-post-processing
1426 
1427 
1428 
1429 
1430 
1431 
1432      -- customer post-processing
1433 
1434 
1435 
1436 
1437 
1438 
1439   EXCEPTION
1440 
1441     WHEN FND_API.G_EXC_ERROR THEN
1442       ROLLBACK TO validate_acc_gen_rule;
1443       x_return_status := FND_API.G_RET_STS_ERROR;
1444 
1445       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1446                                ,p_count   => x_msg_count
1447                                ,p_data    => x_msg_data);
1448 
1449     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1450       ROLLBACK TO validate_acc_gen_rule;
1451       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1452       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1453                                ,p_count   => x_msg_count
1454                                ,p_data    => x_msg_data);
1455 
1456     WHEN OTHERS THEN
1457       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','validate_acc_gen_rule');
1458       -- store SQL error message on message stack for caller
1459       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1460                                ,p_count   => x_msg_count
1461                                ,p_data    => x_msg_data);
1462       -- notify caller of an UNEXPECTED error
1463       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1464 
1465   END validate_acc_gen_rule;
1466 
1467 
1468 
1469   PROCEDURE validate_acc_gen_rule(
1470 
1471       p_api_version               IN  NUMBER,
1472 
1473       p_init_msg_list             IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
1474 
1475       x_return_status             OUT NOCOPY VARCHAR2,
1476 
1477       x_msg_count                 OUT NOCOPY NUMBER,
1478 
1479       x_msg_data                  OUT NOCOPY VARCHAR2,
1480 
1481       p_agrv_tbl                  IN  agrv_tbl_type) IS
1482 
1483       l_return_status             VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1484 
1485       l_api_name                  CONSTANT VARCHAR2(30)  := 'validate_acc_gen_rule';
1486 
1487       i                           NUMBER;
1488 
1489       l_overall_status             VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1490 
1491     l_agrv_tbl					  agrv_tbl_type := p_agrv_tbl;
1492 
1493   BEGIN
1494 
1495   --Initialize the return status
1496 
1497     x_return_status := FND_API.G_RET_STS_SUCCESS;
1498 	SAVEPOINT validate_acc_gen_rule;
1499 
1500    -- customer pre-processing
1501 
1502 
1503 
1504 
1505 
1506 
1507    -- vertical industry-preprocessing
1508 
1509 
1510 
1511 
1512 
1513     IF (l_agrv_tbl.COUNT > 0) THEN
1514 
1515       i := l_agrv_tbl.FIRST;
1516 
1517       LOOP
1518 
1519         validate_acc_gen_rule(
1520 
1521                            p_api_version   => p_api_version
1522 
1523                           ,p_init_msg_list => p_init_msg_list
1524 
1525                           ,x_return_status => l_return_status
1526 
1527                           ,x_msg_count     => x_msg_count
1528 
1529                           ,x_msg_data      => x_msg_data
1530 
1531                           ,p_agrv_rec      => l_agrv_tbl(i)
1532 
1533                           );
1534 		  -- store the highest degree of error
1535 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1536 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
1537 			 	l_overall_status := l_return_status;
1538 			END IF;
1539 		  END IF;
1540 
1541           EXIT WHEN (i = l_agrv_tbl.LAST);
1542 
1543           i := l_agrv_tbl.NEXT(i);
1544 
1545        END LOOP;
1546 	   -- return overall status
1547 	   l_return_status := l_overall_status;
1548 
1549      END IF;
1550 
1551        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1552              RAISE FND_API.G_EXC_ERROR;
1553        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1554             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1555        END IF;
1556 
1557 
1558 
1559     -- vertical industry-post-processing
1560 
1561 
1562 
1563 
1564 
1565 
1566      -- customer post-processing
1567 
1568 
1569 
1570 
1571 
1572 
1573   EXCEPTION
1574 
1575     WHEN FND_API.G_EXC_ERROR THEN
1576       ROLLBACK TO validate_acc_gen_rule;
1577       x_return_status := FND_API.G_RET_STS_ERROR;
1578 
1579       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1580                                ,p_count   => x_msg_count
1581                                ,p_data    => x_msg_data);
1582 
1583     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1584       ROLLBACK TO validate_acc_gen_rule;
1585       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1586       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1587                                ,p_count   => x_msg_count
1588                                ,p_data    => x_msg_data);
1589 
1590     WHEN OTHERS THEN
1591       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','validate_acc_gen_rule');
1592       -- store SQL error message on message stack for caller
1593       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1594                                ,p_count   => x_msg_count
1595                                ,p_data    => x_msg_data);
1596       -- notify caller of an UNEXPECTED error
1597       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1598 
1599 
1600   END validate_acc_gen_rule;
1601 
1602 
1603 
1604   PROCEDURE create_acc_gen_rule_lns(
1605 
1606      p_api_version                    IN  NUMBER
1607 
1608     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1609 
1610     ,x_return_status                  OUT NOCOPY VARCHAR2
1611 
1612     ,x_msg_count                      OUT NOCOPY NUMBER
1613 
1614     ,x_msg_data                       OUT NOCOPY VARCHAR2
1615 
1616     ,p_aulv_rec                       IN  aulv_rec_type
1617 
1618     ,x_aulv_rec                       OUT NOCOPY aulv_rec_type) IS
1619 
1620     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1621 
1622     l_api_name                        CONSTANT VARCHAR2(30)  := 'create_acc_gen_rule_lns';
1623 
1624     l_aulv_rec                      aulv_rec_type := p_aulv_rec;
1625 
1626   BEGIN
1627 
1628     SAVEPOINT create_acc_gen_rule_lns;
1629     x_return_status    := FND_API.G_RET_STS_SUCCESS;
1630 
1631 
1632 
1633    -- customer pre-processing
1634 
1635 
1636 
1637 
1638 
1639 
1640    -- vertical industry-preprocessing
1641 
1642 
1643 
1644 
1645 
1646 
1647    -- call complex entity API
1648 
1649 
1650 
1651 
1652 
1653     okl_acc_gen_rule_pvt.create_acc_gen_rule_lns(
1654 
1655                            p_api_version   => p_api_version
1656 
1657                           ,p_init_msg_list => p_init_msg_list
1658 
1659                           ,x_return_status => l_return_status
1660 
1661                           ,x_msg_count     => x_msg_count
1662 
1663                           ,x_msg_data      => x_msg_data
1664 
1665                           ,p_aulv_rec      => l_aulv_rec
1666 
1667                           ,x_aulv_rec      => x_aulv_rec
1668 
1669                           );
1670 
1671        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1672              RAISE FND_API.G_EXC_ERROR;
1673        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1674             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1675        END IF;
1676 
1677 	   l_aulv_rec := x_aulv_rec;
1678 
1679    -- vertical industry-post-processing
1680 
1681 
1682 
1683 
1684 
1685 
1686    -- customer post-processing
1687 
1688 
1689 
1690 
1691 
1692 
1693   EXCEPTION
1694 
1695     WHEN FND_API.G_EXC_ERROR THEN
1696       ROLLBACK TO create_acc_gen_rule_lns;
1697       x_return_status := FND_API.G_RET_STS_ERROR;
1698 
1699       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1700                                ,p_count   => x_msg_count
1701                                ,p_data    => x_msg_data);
1702 
1703     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1704       ROLLBACK TO create_acc_gen_rule_lns;
1705       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1706       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1707                                ,p_count   => x_msg_count
1708                                ,p_data    => x_msg_data);
1709 
1710     WHEN OTHERS THEN
1711       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','create_acc_gen_rule_lns');
1712       -- store SQL error message on message stack for caller
1713       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1714                                ,p_count   => x_msg_count
1715                                ,p_data    => x_msg_data);
1716       -- notify caller of an UNEXPECTED error
1717       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1718 
1719   END create_acc_gen_rule_lns;
1720 
1721 
1722 
1723   PROCEDURE create_acc_gen_rule_lns(
1724 
1725      p_api_version                    IN  NUMBER
1726 
1727     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1728 
1729     ,x_return_status                  OUT NOCOPY VARCHAR2
1730 
1731     ,x_msg_count                      OUT NOCOPY NUMBER
1732 
1733     ,x_msg_data                       OUT NOCOPY VARCHAR2
1734 
1735     ,p_aulv_tbl                       IN  aulv_tbl_type
1736 
1737     ,x_aulv_tbl                       OUT NOCOPY aulv_tbl_type) IS
1738 
1739     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1740 
1741     l_api_name                        CONSTANT VARCHAR2(30)  := 'create_acc_gen_rule_lns';
1742 
1743     i                                 NUMBER;
1744 
1745     l_overall_status             VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1746 
1747     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
1748 
1749   BEGIN
1750 
1751   --Initialize the return status
1752     SAVEPOINT create_acc_gen_rule_lns;
1753     x_return_status    := FND_API.G_RET_STS_SUCCESS;
1754 
1755 
1756 
1757    -- customer pre-processing
1758 
1759 
1760 
1761 
1762 
1763 
1764    -- vertical industry-preprocessing
1765 
1766 
1767 
1768 
1769 
1770 
1771     IF (l_aulv_tbl.COUNT > 0) THEN
1772 
1773       i := l_aulv_tbl.FIRST;
1774 
1775       LOOP
1776 
1777         create_acc_gen_rule_lns(
1778 
1779                            p_api_version   => p_api_version
1780 
1781                           ,p_init_msg_list => p_init_msg_list
1782 
1783                           ,x_return_status => l_return_status
1784 
1785                           ,x_msg_count     => x_msg_count
1786 
1787                           ,x_msg_data      => x_msg_data
1788 
1789                           ,p_aulv_rec      => l_aulv_tbl(i)
1790 
1791                           ,x_aulv_rec      => x_aulv_tbl(i)
1792 
1793                           );
1794 		  -- store the highest degree of error
1795 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1796 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
1797 			 	l_overall_status := l_return_status;
1798 			END IF;
1799 		  END IF;
1800 
1801           EXIT WHEN (i = l_aulv_tbl.LAST);
1802 
1803           i := l_aulv_tbl.NEXT(i);
1804 
1805        END LOOP;
1806 	   -- return overall status
1807 	   l_return_status := l_overall_status;
1808 
1809      END IF;
1810 
1811        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1812              RAISE FND_API.G_EXC_ERROR;
1813        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1814             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1815        END IF;
1816 
1817 
1818 	   l_aulv_tbl := x_aulv_tbl;
1819 
1820     -- vertical industry-post-processing
1821 
1822 
1823 
1824 
1825 
1826 
1827      -- customer post-processing
1828 
1829 
1830 
1831 
1832 
1833 
1834   EXCEPTION
1835 
1836     WHEN FND_API.G_EXC_ERROR THEN
1837       ROLLBACK TO create_acc_gen_rule_lns;
1838       x_return_status := FND_API.G_RET_STS_ERROR;
1839 
1840       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1841                                ,p_count   => x_msg_count
1842                                ,p_data    => x_msg_data);
1843 
1844     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1845       ROLLBACK TO create_acc_gen_rule_lns;
1846       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1847       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1848                                ,p_count   => x_msg_count
1849                                ,p_data    => x_msg_data);
1850 
1851     WHEN OTHERS THEN
1852       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','create_acc_gen_rule_lns');
1853       -- store SQL error message on message stack for caller
1854       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1855                                ,p_count   => x_msg_count
1856                                ,p_data    => x_msg_data);
1857       -- notify caller of an UNEXPECTED error
1858       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1859 
1860 
1861 
1862   END create_acc_gen_rule_lns;
1863 
1864 
1865 
1866   PROCEDURE lock_acc_gen_rule_lns(
1867 
1868      p_api_version                    IN  NUMBER
1869 
1870     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1871 
1872     ,x_return_status                  OUT NOCOPY VARCHAR2
1873 
1874     ,x_msg_count                      OUT NOCOPY NUMBER
1875 
1876     ,x_msg_data                       OUT NOCOPY VARCHAR2
1877 
1878     ,p_aulv_rec                       IN  aulv_rec_type) IS
1879 
1880     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1881 
1882     l_api_name                        CONSTANT VARCHAR2(30)  := 'lock_acc_gen_rule_lns';
1883 
1884   BEGIN
1885 
1886     x_return_status    := FND_API.G_RET_STS_SUCCESS;
1887 	SAVEPOINT lock_acc_gen_rule_lns;
1888 
1889     okl_acc_gen_rule_pvt.lock_acc_gen_rule_lns(
1890 
1891                            p_api_version   => p_api_version
1892 
1893                           ,p_init_msg_list => p_init_msg_list
1894 
1895                           ,x_return_status => l_return_status
1896 
1897                           ,x_msg_count     => x_msg_count
1898 
1899                           ,x_msg_data      => x_msg_data
1900 
1901                           ,p_aulv_rec      => p_aulv_rec
1902 
1903                           );
1904 
1905      IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1906         RAISE FND_API.G_EXC_ERROR;
1907      ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1908         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1909      END IF;
1910 
1911   EXCEPTION
1912     WHEN FND_API.G_EXC_ERROR THEN
1913       ROLLBACK TO lock_acc_gen_rule_lns;
1914       x_return_status := FND_API.G_RET_STS_ERROR;
1915 
1916       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1917                                ,p_count   => x_msg_count
1918                                ,p_data    => x_msg_data);
1919 
1920     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1921       ROLLBACK TO lock_acc_gen_rule_lns;
1922       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1923       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1924                                ,p_count   => x_msg_count
1925                                ,p_data    => x_msg_data);
1926 
1927     WHEN OTHERS THEN
1928       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','lock_acc_gen_rule_lns');
1929       -- store SQL error message on message stack for caller
1930       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
1931                                ,p_count   => x_msg_count
1932                                ,p_data    => x_msg_data);
1933       -- notify caller of an UNEXPECTED error
1934       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1935 
1936   END lock_acc_gen_rule_lns;
1937 
1938 
1939 
1940   PROCEDURE lock_acc_gen_rule_lns(
1941 
1942      p_api_version                   IN  NUMBER
1943 
1944     ,p_init_msg_list                 IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
1945 
1946     ,x_return_status                 OUT NOCOPY VARCHAR2
1947 
1948     ,x_msg_count                     OUT NOCOPY NUMBER
1949 
1950     ,x_msg_data                      OUT NOCOPY VARCHAR2
1951 
1952     ,p_aulv_tbl                      IN  aulv_tbl_type) IS
1953 
1954     l_return_status                  VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
1955 
1956     l_api_name                       CONSTANT VARCHAR2(30)  := 'lock_acc_gen_rule_lns';
1957 
1958     i                                NUMBER;
1959 
1960 	l_overall_status			 VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1961 
1962 
1963   BEGIN
1964 
1965   --Initialize the return status
1966 
1967     x_return_status := FND_API.G_RET_STS_SUCCESS;
1968 	SAVEPOINT lock_acc_gen_rule_lns;
1969 
1970     IF (p_aulv_tbl.COUNT > 0) THEN
1971 
1972       i := p_aulv_tbl.FIRST;
1973 
1974       LOOP
1975 
1976         lock_acc_gen_rule_lns(
1977 
1978                            p_api_version   => p_api_version
1979 
1980                           ,p_init_msg_list => p_init_msg_list
1981 
1982                           ,x_return_status => l_return_status
1983 
1984                           ,x_msg_count     => x_msg_count
1985 
1986                           ,x_msg_data      => x_msg_data
1987 
1988                           ,p_aulv_rec      => p_aulv_tbl(i)
1989 
1990                           );
1991 		  -- store the highest degree of error
1992 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1993 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
1994 			 	l_overall_status := l_return_status;
1995 			END IF;
1996 		  END IF;
1997 
1998           EXIT WHEN (i = p_aulv_tbl.LAST);
1999 
2000           i := p_aulv_tbl.NEXT(i);
2001 
2002        END LOOP;
2003 
2004 	   -- return overall status
2005 	   l_return_status := l_overall_status;
2006 
2007      END IF;
2008 
2009      IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2010         RAISE FND_API.G_EXC_ERROR;
2011      ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2012         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2013      END IF;
2014 
2015   EXCEPTION
2016     WHEN FND_API.G_EXC_ERROR THEN
2017       ROLLBACK TO lock_acc_gen_rule_lns;
2018       x_return_status := FND_API.G_RET_STS_ERROR;
2019 
2020       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2021                                ,p_count   => x_msg_count
2022                                ,p_data    => x_msg_data);
2023 
2024     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2025       ROLLBACK TO lock_acc_gen_rule_lns;
2026       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2027       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2028                                ,p_count   => x_msg_count
2029                                ,p_data    => x_msg_data);
2030 
2031     WHEN OTHERS THEN
2032       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','lock_acc_gen_rule_lns');
2033       -- store SQL error message on message stack for caller
2034       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2035                                ,p_count   => x_msg_count
2036                                ,p_data    => x_msg_data);
2037       -- notify caller of an UNEXPECTED error
2038       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2039 
2040   END lock_acc_gen_rule_lns;
2041 
2042 
2043 
2044   PROCEDURE update_acc_gen_rule_lns(
2045 
2046      p_api_version                    IN  NUMBER
2047 
2048     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
2049 
2050     ,x_return_status                  OUT NOCOPY VARCHAR2
2051 
2052     ,x_msg_count                      OUT NOCOPY NUMBER
2053 
2054     ,x_msg_data                       OUT NOCOPY VARCHAR2
2055 
2056     ,p_aulv_rec                       IN  aulv_rec_type
2057 
2058     ,x_aulv_rec                       OUT NOCOPY aulv_rec_type) IS
2059 
2060     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2061 
2062     l_api_name                        CONSTANT VARCHAR2(30)  := 'update_acc_gen_rule_lns';
2063 
2064     l_aulv_rec                      aulv_rec_type := p_aulv_rec;
2065 
2066   BEGIN
2067 
2068     SAVEPOINT update_acc_gen_rule_lns;
2069     x_return_status    := FND_API.G_RET_STS_SUCCESS;
2070 
2071 
2072 
2073    -- customer pre-processing
2074 
2075 
2076 
2077 
2078 
2079 
2080    -- vertical industry-preprocessing
2081 
2082 
2083 
2084 
2085 
2086 
2087    -- call complex entity API
2088 
2089     okl_acc_gen_rule_pvt.update_acc_gen_rule_lns(
2090 
2091                            p_api_version   => p_api_version
2092 
2093                           ,p_init_msg_list => p_init_msg_list
2094 
2095                           ,x_return_status => l_return_status
2096 
2097                           ,x_msg_count     => x_msg_count
2098 
2099                           ,x_msg_data      => x_msg_data
2100 
2101                           ,p_aulv_rec      => l_aulv_rec
2102 
2103                           ,x_aulv_rec      => x_aulv_rec
2104 
2105                           );
2106 
2107        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2108              RAISE FND_API.G_EXC_ERROR;
2109        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2110             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2111        END IF;
2112 
2113 	   l_aulv_rec := x_aulv_rec;
2114 
2115    -- vertical industry-post-processing
2116 
2117 
2118 
2119 
2120 
2121 
2122    -- customer post-processing
2123 
2124 
2125 
2126 
2127 
2128 
2129   EXCEPTION
2130 
2131     WHEN FND_API.G_EXC_ERROR THEN
2132       ROLLBACK TO update_acc_gen_rule_lns;
2133       x_return_status := FND_API.G_RET_STS_ERROR;
2134 
2135       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2136                                ,p_count   => x_msg_count
2137                                ,p_data    => x_msg_data);
2138 
2139     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2140       ROLLBACK TO update_acc_gen_rule_lns;
2141       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2142       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2143                                ,p_count   => x_msg_count
2144                                ,p_data    => x_msg_data);
2145 
2146     WHEN OTHERS THEN
2147       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','update_acc_gen_rule_lns');
2148       -- store SQL error message on message stack for caller
2149       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2150                                ,p_count   => x_msg_count
2151                                ,p_data    => x_msg_data);
2152       -- notify caller of an UNEXPECTED error
2153       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2154 
2155   END update_acc_gen_rule_lns;
2156 
2157 
2158 
2159   PROCEDURE update_acc_gen_rule_lns(
2160 
2161      p_api_version                    IN  NUMBER
2162 
2163     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
2164 
2165     ,x_return_status                  OUT NOCOPY VARCHAR2
2166 
2167     ,x_msg_count                      OUT NOCOPY NUMBER
2168 
2169     ,x_msg_data                       OUT NOCOPY VARCHAR2
2170 
2171     ,p_aulv_tbl                       IN  aulv_tbl_type
2172 
2173     ,x_aulv_tbl                       OUT NOCOPY aulv_tbl_type) IS
2174 
2175     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2176 
2177     l_api_name                        CONSTANT VARCHAR2(30)  := 'update_acc_gen_rule_lns';
2178 
2179     i                                 NUMBER;
2180 
2181     l_overall_status             VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2182 
2183     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
2184 
2185   BEGIN
2186 
2187   --Initialize the return status
2188     SAVEPOINT update_acc_gen_rule_lns;
2189     x_return_status    := FND_API.G_RET_STS_SUCCESS;
2190 
2191 
2192 
2193    -- customer pre-processing
2194 
2195 
2196 
2197 
2198 
2199 
2200    -- vertical industry-preprocessing
2201 
2202 
2203 
2204 
2205 
2206 
2207     IF (l_aulv_tbl.COUNT > 0) THEN
2208 
2209       i := l_aulv_tbl.FIRST;
2210 
2211       LOOP
2212 
2213         update_acc_gen_rule_lns(
2214 
2215                            p_api_version   => p_api_version
2216 
2217                           ,p_init_msg_list => p_init_msg_list
2218 
2219                           ,x_return_status => l_return_status
2220 
2221                           ,x_msg_count     => x_msg_count
2222 
2223                           ,x_msg_data      => x_msg_data
2224 
2225                           ,p_aulv_rec      => l_aulv_tbl(i)
2226 
2227                           ,x_aulv_rec      => x_aulv_tbl(i)
2228 
2229                           );
2230 		  -- store the highest degree of error
2231 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2232 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
2233 			 	l_overall_status := l_return_status;
2234 			END IF;
2235 		  END IF;
2236 
2237           EXIT WHEN (i = l_aulv_tbl.LAST);
2238 
2239           i := l_aulv_tbl.NEXT(i);
2240 
2241        END LOOP;
2242 	   -- return overall status
2243 	   l_return_status := l_overall_status;
2244 
2245      END IF;
2246 
2247        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2248              RAISE FND_API.G_EXC_ERROR;
2249        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2250             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2251        END IF;
2252 
2253 	   l_aulv_tbl := x_aulv_tbl;
2254 
2255     -- vertical industry-post-processing
2256 
2257 
2258 
2259 
2260 
2261 
2262      -- customer post-processing
2263 
2264 
2265 
2266 
2267 
2268 
2269   EXCEPTION
2270 
2271     WHEN FND_API.G_EXC_ERROR THEN
2272       ROLLBACK TO update_acc_gen_rule_lns;
2273       x_return_status := FND_API.G_RET_STS_ERROR;
2274 
2275       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2276                                ,p_count   => x_msg_count
2277                                ,p_data    => x_msg_data);
2278 
2279     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2280       ROLLBACK TO update_acc_gen_rule_lns;
2281       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2282       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2283                                ,p_count   => x_msg_count
2284                                ,p_data    => x_msg_data);
2285 
2286     WHEN OTHERS THEN
2287       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','update_acc_gen_rule_lns');
2288       -- store SQL error message on message stack for caller
2289       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2290                                ,p_count   => x_msg_count
2291                                ,p_data    => x_msg_data);
2292       -- notify caller of an UNEXPECTED error
2293       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2294 
2295 
2296 
2297   END update_acc_gen_rule_lns;
2298 
2299 
2300 
2301        --Put custom code for cascade delete by developer
2302 
2303   PROCEDURE delete_acc_gen_rule_lns(
2304 
2305      p_api_version                    IN  NUMBER
2306 
2307     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
2308 
2309     ,x_return_status                  OUT NOCOPY VARCHAR2
2310 
2311     ,x_msg_count                      OUT NOCOPY NUMBER
2312 
2313     ,x_msg_data                       OUT NOCOPY VARCHAR2
2314 
2315     ,p_aulv_rec                       IN  aulv_rec_type) IS
2316 
2317     i                                 NUMBER :=0;
2318 
2319     l_return_status                   VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2320 
2321     l_api_name                        CONSTANT VARCHAR2(30)  := 'delete_acc_gen_rule_lns';
2322 
2323     l_aulv_rec                      aulv_rec_type := p_aulv_rec;
2324 
2325   BEGIN
2326 
2327     SAVEPOINT delete_acc_gen_rule_lns;
2328     x_return_status    := FND_API.G_RET_STS_SUCCESS;
2329 
2330 
2331 
2332    -- customer pre-processing
2333 
2334 
2335 
2336 
2337 
2338 
2339    -- vertical industry-preprocessing
2340 
2341 
2342 
2343 
2344 
2345 
2346    -- call complex entity API
2347 
2348 
2349 
2350     okl_acc_gen_rule_pvt.delete_acc_gen_rule_lns(
2351 
2352                            p_api_version   => p_api_version
2353 
2354                           ,p_init_msg_list => p_init_msg_list
2355 
2356                           ,x_return_status => l_return_status
2357 
2358                           ,x_msg_count     => x_msg_count
2359 
2360                           ,x_msg_data      => x_msg_data
2361 
2362                           ,p_aulv_rec      => l_aulv_rec);
2363 
2364        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2365              RAISE FND_API.G_EXC_ERROR;
2366        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2367             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2368        END IF;
2369 
2370 
2371 
2372    -- vertical industry-post-processing
2373 
2374 
2375 
2376 
2377 
2378 
2379    -- customer post-processing
2380 
2381 
2382 
2383 
2384 
2385 
2386   EXCEPTION
2387 
2388     WHEN FND_API.G_EXC_ERROR THEN
2389       ROLLBACK TO delete_acc_gen_rule_lns;
2390       x_return_status := FND_API.G_RET_STS_ERROR;
2391 
2392       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2393                                ,p_count   => x_msg_count
2394                                ,p_data    => x_msg_data);
2395 
2396     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2397       ROLLBACK TO delete_acc_gen_rule_lns;
2398       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2399       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2400                                ,p_count   => x_msg_count
2401                                ,p_data    => x_msg_data);
2402 
2403     WHEN OTHERS THEN
2404       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','delete_acc_gen_rule_lns');
2405       -- store SQL error message on message stack for caller
2406       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2407                                ,p_count   => x_msg_count
2408                                ,p_data    => x_msg_data);
2409       -- notify caller of an UNEXPECTED error
2410       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2411 
2412   END delete_acc_gen_rule_lns;
2413 
2414 
2415 
2416   PROCEDURE delete_acc_gen_rule_lns(
2417 
2418      p_api_version                    IN  NUMBER
2419 
2420     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
2421 
2422     ,x_return_status                  OUT NOCOPY VARCHAR2
2423 
2424     ,x_msg_count                      OUT NOCOPY NUMBER
2425 
2426     ,x_msg_data                       OUT NOCOPY VARCHAR2
2427 
2428     ,p_aulv_tbl                       IN  aulv_tbl_type) IS
2429 
2430 
2431 
2432     i                                 NUMBER :=0;
2433 
2434     l_return_status                   VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2435 
2436     l_api_name                        CONSTANT VARCHAR2(30)  := 'delete_acc_gen_rule_lns';
2437 
2438       l_overall_status             VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2439 
2440     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
2441 
2442   BEGIN
2443 
2444   --Initialize the return status
2445     SAVEPOINT delete_acc_gen_rule_lns;
2446     x_return_status    := FND_API.G_RET_STS_SUCCESS;
2447 
2448 
2449 
2450    -- customer pre-processing
2451 
2452 
2453 
2454 
2455 
2456 
2457    -- vertical industry-preprocessing
2458 
2459 
2460 
2461 
2462 
2463 
2464     IF (l_aulv_tbl.COUNT > 0) THEN
2465 
2466       i := l_aulv_tbl.FIRST;
2467 
2468       LOOP
2469 
2470         delete_acc_gen_rule_lns(
2471 
2472                                   p_api_version   => p_api_version
2473 
2474                                  ,p_init_msg_list => p_init_msg_list
2475 
2476                                  ,x_return_status => l_return_status
2477 
2478                                  ,x_msg_count     => x_msg_count
2479 
2480                                  ,x_msg_data      => x_msg_data
2481 
2482                                  ,p_aulv_rec      => l_aulv_tbl(i));
2483 		  -- store the highest degree of error
2484 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2485 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
2486 			 	l_overall_status := l_return_status;
2487 			END IF;
2488 		  END IF;
2489 
2490           EXIT WHEN (i = l_aulv_tbl.LAST);
2491 
2492           i := l_aulv_tbl.NEXT(i);
2493 
2494        END LOOP;
2495 	   -- return overall status
2496 	   l_return_status := l_overall_status;
2497 
2498      END IF;
2499 
2500        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2501              RAISE FND_API.G_EXC_ERROR;
2502        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2503             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2504        END IF;
2505 
2506 
2507 
2508     -- vertical industry-post-processing
2509 
2510 
2511 
2512 
2513 
2514 
2515      -- customer post-processing
2516 
2517 
2518 
2519 
2520 
2521 
2522   EXCEPTION
2523 
2524     WHEN FND_API.G_EXC_ERROR THEN
2525       ROLLBACK TO delete_acc_gen_rule_lns;
2526       x_return_status := FND_API.G_RET_STS_ERROR;
2527 
2528       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2529                                ,p_count   => x_msg_count
2530                                ,p_data    => x_msg_data);
2531 
2532     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2533       ROLLBACK TO delete_acc_gen_rule_lns;
2534       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2535       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2536                                ,p_count   => x_msg_count
2537                                ,p_data    => x_msg_data);
2538 
2539     WHEN OTHERS THEN
2540       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','delete_acc_gen_rule_lns');
2541       -- store SQL error message on message stack for caller
2542       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2543                                ,p_count   => x_msg_count
2544                                ,p_data    => x_msg_data);
2545       -- notify caller of an UNEXPECTED error
2546       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2547 
2548   END delete_acc_gen_rule_lns;
2549 
2550 
2551 
2552   PROCEDURE validate_acc_gen_rule_lns(
2553 
2554      p_api_version                    IN  NUMBER
2555 
2556     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
2557 
2558     ,x_return_status                  OUT NOCOPY VARCHAR2
2559 
2560     ,x_msg_count                      OUT NOCOPY NUMBER
2561 
2562     ,x_msg_data                       OUT NOCOPY VARCHAR2
2563 
2564     ,p_aulv_rec                       IN  aulv_rec_type) IS
2565 
2566     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2567 
2568     l_api_name                        CONSTANT VARCHAR2(30)  := 'validate_acc_gen_rule_lns';
2569 
2570     l_aulv_rec                      aulv_rec_type := p_aulv_rec;
2571 
2572   BEGIN
2573 
2574     SAVEPOINT validate_acc_gen_rule_lns;
2575     x_return_status    := FND_API.G_RET_STS_SUCCESS;
2576 
2577 
2578 
2579    -- customer pre-processing
2580 
2581 
2582 
2583 
2584 
2585 
2586    -- vertical industry-preprocessing
2587 
2588 
2589 
2590 
2591 
2592 
2593    -- call complex entity API
2594 
2595 
2596 
2597     okl_acc_gen_rule_pvt.validate_acc_gen_rule_lns(
2598 
2599                              p_api_version   => p_api_version
2600 
2601                             ,p_init_msg_list => p_init_msg_list
2602 
2603                             ,x_return_status => l_return_status
2604 
2605                             ,x_msg_count     => x_msg_count
2606 
2607                             ,x_msg_data      => x_msg_data
2608 
2609                             ,p_aulv_rec      => l_aulv_rec
2610 
2611                             );
2612 
2613        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2614              RAISE FND_API.G_EXC_ERROR;
2615        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2616             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2617        END IF;
2618 
2619 
2620 
2621    -- vertical industry-post-processing
2622 
2623 
2624 
2625 
2626 
2627 
2628    -- customer post-processing
2629 
2630 
2631 
2632 
2633 
2634 
2635   EXCEPTION
2636 
2637     WHEN FND_API.G_EXC_ERROR THEN
2638       ROLLBACK TO validate_acc_gen_rule_lns;
2639       x_return_status := FND_API.G_RET_STS_ERROR;
2640 
2641       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2642                                ,p_count   => x_msg_count
2643                                ,p_data    => x_msg_data);
2644 
2645     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2646       ROLLBACK TO validate_acc_gen_rule_lns;
2647       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2648       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2649                                ,p_count   => x_msg_count
2650                                ,p_data    => x_msg_data);
2651 
2652     WHEN OTHERS THEN
2653       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','validate_acc_gen_rule_lns');
2654       -- store SQL error message on message stack for caller
2655       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2656                                ,p_count   => x_msg_count
2657                                ,p_data    => x_msg_data);
2658       -- notify caller of an UNEXPECTED error
2659       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2660 
2661   END validate_acc_gen_rule_lns;
2662 
2663 
2664 
2665   PROCEDURE validate_acc_gen_rule_lns(
2666 
2667      p_api_version                    IN  NUMBER
2668 
2669     ,p_init_msg_list                  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE
2670 
2671     ,x_return_status                  OUT NOCOPY VARCHAR2
2672 
2673     ,x_msg_count                      OUT NOCOPY NUMBER
2674 
2675     ,x_msg_data                       OUT NOCOPY VARCHAR2
2676 
2677     ,p_aulv_tbl                       IN  aulv_tbl_type) IS
2678 
2679     l_return_status                   VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2680 
2681     l_api_name                        CONSTANT VARCHAR2(30)  := 'validate_acc_gen_rule_lns';
2682 
2683     i                                 NUMBER;
2684 
2685       l_overall_status             VARCHAR2(1)   := FND_API.G_RET_STS_SUCCESS;
2686 
2687     l_aulv_tbl                      aulv_tbl_type := p_aulv_tbl;
2688 
2689   BEGIN
2690 
2691   --Initialize the return status
2692     SAVEPOINT validate_acc_gen_rule_lns;
2693     x_return_status    := FND_API.G_RET_STS_SUCCESS;
2694 
2695 
2696 
2697    -- customer pre-processing
2698 
2699 
2700 
2701 
2702 
2703 
2704    -- vertical industry-preprocessing
2705 
2706 
2707 
2708 
2709 
2710 
2711     IF (l_aulv_tbl.COUNT > 0) THEN
2712 
2713       i := l_aulv_tbl.FIRST;
2714 
2715       LOOP
2716 
2717         validate_acc_gen_rule_lns(
2718 
2719                            p_api_version   => p_api_version
2720 
2721                           ,p_init_msg_list => p_init_msg_list
2722 
2723                           ,x_return_status => l_return_status
2724 
2725                           ,x_msg_count     => x_msg_count
2726 
2727                           ,x_msg_data      => x_msg_data
2728 
2729                           ,p_aulv_rec      => l_aulv_tbl(i)
2730 
2731                           );
2732 		  -- store the highest degree of error
2733 		  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2734 		  	 IF l_overall_status <> FND_API.G_RET_STS_UNEXP_ERROR THEN
2735 			 	l_overall_status := l_return_status;
2736 			END IF;
2737 		  END IF;
2738 
2739           EXIT WHEN (i = l_aulv_tbl.LAST);
2740 
2741           i := l_aulv_tbl.NEXT(i);
2742 
2743        END LOOP;
2744 	   -- return overall status
2745 	   l_return_status := l_overall_status;
2746 
2747      END IF;
2748 
2749        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2750              RAISE FND_API.G_EXC_ERROR;
2751        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2752             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2753        END IF;
2754 
2755 
2756     -- vertical industry-post-processing
2757 
2758 
2759 
2760 
2761 
2762 
2763      -- customer post-processing
2764 
2765 
2766 
2767 
2768 
2769 
2770   EXCEPTION
2771 
2772     WHEN FND_API.G_EXC_ERROR THEN
2773       ROLLBACK TO validate_acc_gen_rule_lns;
2774       x_return_status := FND_API.G_RET_STS_ERROR;
2775 
2776       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2777                                ,p_count   => x_msg_count
2778                                ,p_data    => x_msg_data);
2779 
2780     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2781       ROLLBACK TO validate_acc_gen_rule_lns;
2782       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2783       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2784                                ,p_count   => x_msg_count
2785                                ,p_data    => x_msg_data);
2786 
2787     WHEN OTHERS THEN
2788       FND_MSG_PUB.ADD_EXC_MSG('OKL_ACC_GEN_RULE_PUB','validate_acc_gen_rule_lns');
2789       -- store SQL error message on message stack for caller
2790       FND_MSG_PUB.Count_and_get(p_encoded => OKC_API.G_FALSE
2791                                ,p_count   => x_msg_count
2792                                ,p_data    => x_msg_data);
2793       -- notify caller of an UNEXPECTED error
2794       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2795 
2796   END validate_acc_gen_rule_lns;
2797 
2798 
2799 
2800 END OKL_ACC_GEN_RULE_PUB;
2801