DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_STREAMS_PUB

Source


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