DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_SUBSCR_ELEMS_PUB

Source


1 PACKAGE BODY OKS_SUBSCR_ELEMS_PUB AS
2 /* $Header: OKSPELEB.pls 120.0 2005/05/25 18:37:59 appldev noship $ */
3 
4   PROCEDURE qc IS
5   BEGIN
6     OKS_SUBSCR_ELEMS_PVT.qc;
7   END qc;
8 
9   PROCEDURE change_version IS
10   BEGIN
11     OKS_SUBSCR_ELEMS_PVT.change_version;
12   END change_version;
13 
14   PROCEDURE api_copy IS
15   BEGIN
16     OKS_SUBSCR_ELEMS_PVT.api_copy;
17   END api_copy;
18 
19   PROCEDURE insert_row(
20     p_api_version                  IN NUMBER,
21     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
22     x_return_status                OUT NOCOPY VARCHAR2,
23     x_msg_count                    OUT NOCOPY NUMBER,
24     x_msg_data                     OUT NOCOPY VARCHAR2,
25     p_scev_rec                     IN scev_rec_type,
26     x_scev_rec                     OUT NOCOPY scev_rec_type) IS
27 
28     l_api_name              CONSTANT VARCHAR2(30) := 'insert_row';
29     l_api_version           CONSTANT NUMBER       := 1.0;
30     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
31 
32     Begin
33   l_return_status := OKC_API.START_ACTIVITY
34                      (
35 				l_api_name
36                         ,p_init_msg_list
37                         ,'_PUB'
38                         ,x_return_status
39                      );
40 
41   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
42           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
43   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
44           Raise OKC_API.G_EXCEPTION_ERROR;
45   End If;
46 
47 
48   OKC_UTIL.call_user_hook
49   (
50 		x_return_status	=> x_return_status,
51   		p_package_name	=> g_pkg_name,
52   		p_procedure_name	=> l_api_name,
53   		p_before_after	=> 'B'
54   );
55 
56   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
57         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
58   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
59        raise OKC_API.G_EXCEPTION_ERROR;
60   End If;
61 
62   OKS_SUBSCR_ELEMS_PVT.insert_row(
63                                 p_api_version      => p_api_version,
64                                 p_init_msg_list    => p_init_msg_list,
65                                 x_return_status    => x_return_status,
66                                 x_msg_count        => x_msg_count,
67                                 x_msg_data         => x_msg_data,
68                                 p_scev_rec         => p_scev_rec,
69                                 x_scev_rec         => x_scev_rec);
70 
71   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
72   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
73   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
74   	  raise OKC_API.G_EXCEPTION_ERROR;
75   End If;
76 
77 
78   OKC_UTIL.call_user_hook
79   (
80 	x_return_status	=> x_return_status,
81   	p_package_name	=> g_pkg_name,
82   	p_procedure_name	=> l_api_name,
83   	p_before_after	=> 'A'
84   );
85 
86   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
87   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
88   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
89   	  raise OKC_API.G_EXCEPTION_ERROR;
90   End If;
91 
92   OKC_API.END_ACTIVITY
93   (
94 	x_msg_count	=> x_msg_count,
95 	x_msg_data	=> x_msg_data
96   );
97 
98   Exception
99   When OKC_API.G_EXCEPTION_ERROR THEN
100       x_return_status := OKC_API.HANDLE_EXCEPTIONS
101       (
102         l_api_name,
103         G_PKG_NAME,
104         'OKC_API.G_RET_STS_ERROR',
105         x_msg_count,
106         x_msg_data,
107         '_PUB'
108       );
109 
110   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
111       x_return_status := OKC_API.HANDLE_EXCEPTIONS
112       (
113         l_api_name,
114         G_PKG_NAME,
115         'OKC_API.G_RET_STS_UNEXP_ERROR',
116         x_msg_count,
117         x_msg_data,
118         '_PUB'
119       );
120 
121   When OTHERS THEN
122       x_return_status := OKC_API.HANDLE_EXCEPTIONS
123       (
124         l_api_name,
125         G_PKG_NAME,
126         'OTHERS',
127         x_msg_count,
128         x_msg_data,
129         '_PUB'
130       );
131     End insert_row;
132 
133   PROCEDURE insert_row(
134     p_api_version                  IN NUMBER,
135     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
136     x_return_status                OUT NOCOPY VARCHAR2,
137     x_msg_count                    OUT NOCOPY NUMBER,
138     x_msg_data                     OUT NOCOPY VARCHAR2,
139     p_scev_tbl                     IN scev_tbl_type,
140     x_scev_tbl                     OUT NOCOPY scev_tbl_type,
141     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
142 
146     Begin
143     l_api_name              CONSTANT VARCHAR2(30) := 'insert_row';
144     l_api_version           CONSTANT NUMBER       := 1.0;
145     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
147     l_return_status := OKC_API.START_ACTIVITY
148                      (
149 				l_api_name
150                         ,p_init_msg_list
151                         ,'_PUB'
152                         ,x_return_status
153                      );
154 
155   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
156           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
157   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
158           Raise OKC_API.G_EXCEPTION_ERROR;
159   End If;
160 
161 
162   OKC_UTIL.call_user_hook
163   (
164 		x_return_status	=> x_return_status,
165   		p_package_name	=> g_pkg_name,
166   		p_procedure_name	=> l_api_name,
167   		p_before_after	=> 'B'
168   );
169 
170   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
171         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
172   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
173        raise OKC_API.G_EXCEPTION_ERROR;
174   End If;
175   OKS_SUBSCR_ELEMS_PVT.insert_row(
176                                 p_api_version      => p_api_version,
177                                 p_init_msg_list    => p_init_msg_list,
178                                 x_return_status    => x_return_status,
179                                 x_msg_count        => x_msg_count,
180                                 x_msg_data         => x_msg_data,
181                                 p_scev_tbl         => p_scev_tbl,
182                                 x_scev_tbl         => x_scev_tbl,
183                                 px_error_tbl       => px_error_tbl);
184 
185   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
186   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
187   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
188   	  raise OKC_API.G_EXCEPTION_ERROR;
189   End If;
190 
191 
192   OKC_UTIL.call_user_hook
193   (
194 	x_return_status	=> x_return_status,
195   	p_package_name	=> g_pkg_name,
196   	p_procedure_name	=> l_api_name,
197   	p_before_after	=> 'A'
198   );
199 
200   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
201   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
202   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
203   	  raise OKC_API.G_EXCEPTION_ERROR;
204   End If;
205 
206   OKC_API.END_ACTIVITY
207   (
208 	x_msg_count	=> x_msg_count,
209 	x_msg_data	=> x_msg_data
210   );
211 
212   Exception
213   When OKC_API.G_EXCEPTION_ERROR THEN
214       x_return_status := OKC_API.HANDLE_EXCEPTIONS
215       (
216         l_api_name,
217         G_PKG_NAME,
218         'OKC_API.G_RET_STS_ERROR',
219         x_msg_count,
220         x_msg_data,
221         '_PUB'
222       );
223 
224   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
225       x_return_status := OKC_API.HANDLE_EXCEPTIONS
226       (
227         l_api_name,
228         G_PKG_NAME,
229         'OKC_API.G_RET_STS_UNEXP_ERROR',
230         x_msg_count,
231         x_msg_data,
232         '_PUB'
233       );
234 
235   When OTHERS THEN
236       x_return_status := OKC_API.HANDLE_EXCEPTIONS
237       (
238         l_api_name,
239         G_PKG_NAME,
240         'OTHERS',
241         x_msg_count,
242         x_msg_data,
243         '_PUB'
244       );
245 
246     End insert_row;
247 
248   PROCEDURE insert_row(
249     p_api_version                  IN NUMBER,
250     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
251     x_return_status                OUT NOCOPY VARCHAR2,
252     x_msg_count                    OUT NOCOPY NUMBER,
253     x_msg_data                     OUT NOCOPY VARCHAR2,
254     p_scev_tbl                     IN scev_tbl_type,
255     x_scev_tbl                     OUT NOCOPY scev_tbl_type) IS
256 
257     l_api_name              CONSTANT VARCHAR2(30) := 'insert_row';
258     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
259     l_ptr			    BINARY_INTEGER;
260 
261   Begin
262 
263   x_return_status := OKC_API.G_RET_STS_SUCCESS;
264 
265   If p_scev_tbl.COUNT > 0 Then
266 
267           l_ptr := p_scev_tbl.FIRST;
268 
269           Loop
270             insert_row
271             (
272                         p_api_version
273                        ,p_init_msg_list
274                        ,l_return_status
275                        ,x_msg_count
276                        ,x_msg_data
277                        ,p_scev_tbl(l_ptr)
278                        ,x_scev_tbl(l_ptr)
279             );
280 
281             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
282                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
283                   x_return_status := l_return_status;
284                   Raise G_EXCEPTION_HALT_VALIDATION;
285                Else
286                   x_return_status := l_return_status;
287                End If;
288             End If;
289 
290             Exit When  (l_ptr = p_scev_tbl.LAST);
291             l_ptr := p_scev_tbl.NEXT(l_ptr);
292 
293           End Loop;
294 
295   End If;
296 
297   Exception
298   When G_EXCEPTION_HALT_VALIDATION Then
299        Null;
300   When OTHERS Then
301        OKC_API.set_message(p_app_name      => g_app_name,
302                            p_msg_name      => g_unexpected_error,
306                            p_token2_value  => sqlerrm
303                            p_token1        => g_sqlcode_token,
304                            p_token1_value  => sqlcode,
305                            p_token2        => g_sqlerrm_token,
307                           );
308        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
309 
310     End insert_row;
311 
312   PROCEDURE lock_row(
313     p_api_version                  IN NUMBER,
314     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
315     x_return_status                OUT NOCOPY VARCHAR2,
316     x_msg_count                    OUT NOCOPY NUMBER,
317     x_msg_data                     OUT NOCOPY VARCHAR2,
318     p_scev_rec                     IN scev_rec_type) IS
319 
320     l_api_name              CONSTANT VARCHAR2(30) := 'lock_row';
321     l_api_version           CONSTANT NUMBER       := 1.0;
322     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
323 
324 
325   Begin
326 
327   l_return_status := OKC_API.START_ACTIVITY
328                      (
329 		         l_api_name
330                         ,p_init_msg_list
331                         ,'_PUB'
332                         ,x_return_status
333                      );
334 
335   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
336           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
337   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
338           Raise OKC_API.G_EXCEPTION_ERROR;
339   End If;
340   OKS_SUBSCR_ELEMS_PVT.lock_row(
341                                 p_api_version ,
342                                 p_init_msg_list,
343                                 x_return_status,
344                                 x_msg_count,
345                                 x_msg_data ,
346                                 p_scev_rec);
347 
348 
349   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
350   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
351   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
352   	  raise OKC_API.G_EXCEPTION_ERROR;
353   End If;
354 
355   OKC_API.END_ACTIVITY
356   (
357 	x_msg_count	=> x_msg_count,
358 	x_msg_data	=> x_msg_data
359   );
360 
361   Exception
362   When OKC_API.G_EXCEPTION_ERROR THEN
363       x_return_status := OKC_API.HANDLE_EXCEPTIONS
364       (
365         l_api_name,
366         G_PKG_NAME,
367         'OKC_API.G_RET_STS_ERROR',
368         x_msg_count,
369         x_msg_data,
370         '_PUB'
371       );
372 
373   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
374       x_return_status := OKC_API.HANDLE_EXCEPTIONS
375       (
376         l_api_name,
377         G_PKG_NAME,
378         'OKC_API.G_RET_STS_UNEXP_ERROR',
379         x_msg_count,
380         x_msg_data,
381         '_PUB'
382       );
383 
384   When OTHERS THEN
385       x_return_status := OKC_API.HANDLE_EXCEPTIONS
386       (
387         l_api_name,
388         G_PKG_NAME,
389         'OTHERS',
390         x_msg_count,
391         x_msg_data,
392         '_PUB'
393       );
394 
395     End lock_row;
396 
397   PROCEDURE lock_row(
398     p_api_version                  IN NUMBER,
399     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
400     x_return_status                OUT NOCOPY VARCHAR2,
401     x_msg_count                    OUT NOCOPY NUMBER,
402     x_msg_data                     OUT NOCOPY VARCHAR2,
403     p_scev_tbl                     IN scev_tbl_type,
404     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
405 
406     l_api_name              CONSTANT VARCHAR2(30) := 'lock_row';
407     l_api_version           CONSTANT NUMBER       := 1.0;
408     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
409 
410   Begin
411   l_return_status := OKC_API.START_ACTIVITY
412                      (
413 		         l_api_name
414                         ,p_init_msg_list
415                         ,'_PUB'
416                         ,x_return_status
417                      );
418 
419   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
420           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
421   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
422           Raise OKC_API.G_EXCEPTION_ERROR;
423   End If;
424   OKS_SUBSCR_ELEMS_PVT.lock_row(
425                                 p_api_version ,
426                                 p_init_msg_list,
427                                 x_return_status,
428                                 x_msg_count,
429                                 x_msg_data ,
430                                 p_scev_tbl,
431                                 px_error_tbl);
432 
433 
434   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
435   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
436   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
437   	  raise OKC_API.G_EXCEPTION_ERROR;
438   End If;
439 
440   OKC_API.END_ACTIVITY
441   (
442 	x_msg_count	=> x_msg_count,
443 	x_msg_data	=> x_msg_data
444   );
445 
446   Exception
447   When OKC_API.G_EXCEPTION_ERROR THEN
448       x_return_status := OKC_API.HANDLE_EXCEPTIONS
449       (
450         l_api_name,
451         G_PKG_NAME,
452         'OKC_API.G_RET_STS_ERROR',
453         x_msg_count,
454         x_msg_data,
455         '_PUB'
456       );
457 
458   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
459       x_return_status := OKC_API.HANDLE_EXCEPTIONS
460       (
461         l_api_name,
462         G_PKG_NAME,
463         'OKC_API.G_RET_STS_UNEXP_ERROR',
464         x_msg_count,
465         x_msg_data,
466         '_PUB'
467       );
468 
469   When OTHERS THEN
470       x_return_status := OKC_API.HANDLE_EXCEPTIONS
471       (
472         l_api_name,
473         G_PKG_NAME,
474         'OTHERS',
475         x_msg_count,
476         x_msg_data,
477         '_PUB'
478       );
479 
480     End lock_row;
481 
482   PROCEDURE lock_row(
483     p_api_version                  IN NUMBER,
484     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
485     x_return_status                OUT NOCOPY VARCHAR2,
486     x_msg_count                    OUT NOCOPY NUMBER,
487     x_msg_data                     OUT NOCOPY VARCHAR2,
488     p_scev_tbl                     IN scev_tbl_type) IS
489 
490     l_api_name              CONSTANT VARCHAR2(30) := 'lock_row';
491     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
492     l_ptr			    BINARY_INTEGER;
493 
494   Begin
495 
496   x_return_status := OKC_API.G_RET_STS_SUCCESS;
497 
498   If p_scev_tbl.COUNT > 0 Then
499 
500           l_ptr := p_scev_tbl.FIRST;
501 
502           Loop
503             OKS_SUBSCR_ELEMS_PVT.lock_row(
504                                 p_api_version     ,
505                                 p_init_msg_list   ,
506                                 x_return_status   ,
507                                 x_msg_count       ,
508                                 x_msg_data        ,
509                                 p_scev_tbl(l_ptr) );
510 
511             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
512                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
513                   x_return_status := l_return_status;
514                   Raise G_EXCEPTION_HALT_VALIDATION;
515                Else
516                   x_return_status := l_return_status;
517                End If;
518             End If;
519 
520             Exit When  (l_ptr = p_scev_tbl.LAST);
521             l_ptr := p_scev_tbl.NEXT(l_ptr);
522 
523           End Loop;
524 
525   End If;
526 
527   Exception
528   When OKC_API.G_EXCEPTION_ERROR THEN
529       x_return_status := OKC_API.HANDLE_EXCEPTIONS
530       (
531         l_api_name,
532         G_PKG_NAME,
533         'OKC_API.G_RET_STS_ERROR',
534         x_msg_count,
535         x_msg_data,
536         '_PUB'
537       );
538 
539   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
540       x_return_status := OKC_API.HANDLE_EXCEPTIONS
541       (
542         l_api_name,
543         G_PKG_NAME,
544         'OKC_API.G_RET_STS_UNEXP_ERROR',
545         x_msg_count,
546         x_msg_data,
547         '_PUB'
548       );
549 
550   When OTHERS THEN
551       x_return_status := OKC_API.HANDLE_EXCEPTIONS
552       (
553         l_api_name,
554         G_PKG_NAME,
555         'OTHERS',
556         x_msg_count,
557         x_msg_data,
558         '_PUB'
559       );
560 
561     End lock_row;
562 
563   PROCEDURE update_row(
564     p_api_version                  IN NUMBER,
565     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
566     x_return_status                OUT NOCOPY VARCHAR2,
567     x_msg_count                    OUT NOCOPY NUMBER,
568     x_msg_data                     OUT NOCOPY VARCHAR2,
569     p_scev_rec                     IN scev_rec_type,
570     x_scev_rec                     OUT NOCOPY scev_rec_type) IS
571 
572     l_api_name              CONSTANT VARCHAR2(30) := 'update_row';
573     l_api_version           CONSTANT NUMBER       := 1.0;
574     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
575 
576     Begin
577   l_return_status := OKC_API.START_ACTIVITY
578                      (
579 				l_api_name
580                         ,p_init_msg_list
581                         ,'_PUB'
582                         ,x_return_status
583                      );
584 
585   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
586           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
587   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
588           Raise OKC_API.G_EXCEPTION_ERROR;
589   End If;
590 
591 
592   OKC_UTIL.call_user_hook
593   (
594 		x_return_status	=> x_return_status,
595   		p_package_name	=> g_pkg_name,
596   		p_procedure_name	=> l_api_name,
597   		p_before_after	=> 'B'
598   );
599 
600   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
601         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
602   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
603        raise OKC_API.G_EXCEPTION_ERROR;
604   End If;
605 
606   OKS_SUBSCR_ELEMS_PVT.update_row(
607                                 p_api_version      => p_api_version,
608                                 p_init_msg_list    => p_init_msg_list,
609                                 x_return_status    => x_return_status,
610                                 x_msg_count        => x_msg_count,
611                                 x_msg_data         => x_msg_data,
612                                 p_scev_rec         => p_scev_rec,
613                                 x_scev_rec         => x_scev_rec);
614 
615   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
616   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
617   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
618   	  raise OKC_API.G_EXCEPTION_ERROR;
619   End If;
620 
621 
622   OKC_UTIL.call_user_hook
623   (
624 	x_return_status	=> x_return_status,
625   	p_package_name	=> g_pkg_name,
626   	p_procedure_name	=> l_api_name,
627   	p_before_after	=> 'A'
628   );
629 
630   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
631   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
632   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
633   	  raise OKC_API.G_EXCEPTION_ERROR;
634   End If;
635 
636   OKC_API.END_ACTIVITY
637   (
638 	x_msg_count	=> x_msg_count,
639 	x_msg_data	=> x_msg_data
640   );
641 
642   Exception
643   When OKC_API.G_EXCEPTION_ERROR THEN
644       x_return_status := OKC_API.HANDLE_EXCEPTIONS
645       (
646         l_api_name,
647         G_PKG_NAME,
648         'OKC_API.G_RET_STS_ERROR',
649         x_msg_count,
650         x_msg_data,
651         '_PUB'
652       );
653 
654   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
655       x_return_status := OKC_API.HANDLE_EXCEPTIONS
656       (
657         l_api_name,
658         G_PKG_NAME,
659         'OKC_API.G_RET_STS_UNEXP_ERROR',
660         x_msg_count,
661         x_msg_data,
662         '_PUB'
663       );
664 
665   When OTHERS THEN
666       x_return_status := OKC_API.HANDLE_EXCEPTIONS
667       (
668         l_api_name,
669         G_PKG_NAME,
670         'OTHERS',
671         x_msg_count,
672         x_msg_data,
673         '_PUB'
674       );
675 
676     End update_row;
677 
678   PROCEDURE update_row(
679     p_api_version                  IN NUMBER,
680     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
681     x_return_status                OUT NOCOPY VARCHAR2,
682     x_msg_count                    OUT NOCOPY NUMBER,
683     x_msg_data                     OUT NOCOPY VARCHAR2,
684     p_scev_tbl                     IN scev_tbl_type,
685     x_scev_tbl                     OUT NOCOPY scev_tbl_type,
686     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
687 
688     l_api_name              CONSTANT VARCHAR2(30) := 'update_row';
689     l_api_version           CONSTANT NUMBER       := 1.0;
690     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
691 
692     Begin
693   l_return_status := OKC_API.START_ACTIVITY
694                      (
695 				l_api_name
696                         ,p_init_msg_list
697                         ,'_PUB'
698                         ,x_return_status
699                      );
700 
701   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
702           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
703   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
704           Raise OKC_API.G_EXCEPTION_ERROR;
705   End If;
706 
707 
708   OKC_UTIL.call_user_hook
709   (
710 		x_return_status	=> x_return_status,
711   		p_package_name	=> g_pkg_name,
712   		p_procedure_name	=> l_api_name,
713   		p_before_after	=> 'B'
714   );
715 
716   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
717         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
718   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
719        raise OKC_API.G_EXCEPTION_ERROR;
720   End If;
721 
722   OKS_SUBSCR_ELEMS_PVT.update_row(
723                                 p_api_version      => p_api_version,
724                                 p_init_msg_list    => p_init_msg_list,
725                                 x_return_status    => x_return_status,
726                                 x_msg_count        => x_msg_count,
727                                 x_msg_data         => x_msg_data,
728                                 p_scev_tbl         => p_scev_tbl,
729                                 x_scev_tbl         => x_scev_tbl,
730                                 px_error_tbl       => px_error_tbl);
731 
732   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
733   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
734   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
735   	  raise OKC_API.G_EXCEPTION_ERROR;
736   End If;
737 
738 
739   OKC_UTIL.call_user_hook
740   (
741 	x_return_status	=> x_return_status,
742   	p_package_name	=> g_pkg_name,
743   	p_procedure_name	=> l_api_name,
744   	p_before_after	=> 'A'
745   );
746 
747   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
748   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
749   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
750   	  raise OKC_API.G_EXCEPTION_ERROR;
751   End If;
752 
753   OKC_API.END_ACTIVITY
754   (
755 	x_msg_count	=> x_msg_count,
756 	x_msg_data	=> x_msg_data
757   );
758 
759   Exception
760   When OKC_API.G_EXCEPTION_ERROR THEN
761       x_return_status := OKC_API.HANDLE_EXCEPTIONS
762       (
763         l_api_name,
764         G_PKG_NAME,
765         'OKC_API.G_RET_STS_ERROR',
766         x_msg_count,
767         x_msg_data,
768         '_PUB'
769       );
770 
771   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
772       x_return_status := OKC_API.HANDLE_EXCEPTIONS
773       (
774         l_api_name,
775         G_PKG_NAME,
776         'OKC_API.G_RET_STS_UNEXP_ERROR',
777         x_msg_count,
778         x_msg_data,
779         '_PUB'
780       );
781 
782   When OTHERS THEN
783       x_return_status := OKC_API.HANDLE_EXCEPTIONS
784       (
785         l_api_name,
786         G_PKG_NAME,
787         'OTHERS',
788         x_msg_count,
789         x_msg_data,
790         '_PUB'
791       );
792 
793 
794     End update_row;
795 
796   PROCEDURE update_row(
797     p_api_version                  IN NUMBER,
798     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
799     x_return_status                OUT NOCOPY VARCHAR2,
800     x_msg_count                    OUT NOCOPY NUMBER,
801     x_msg_data                     OUT NOCOPY VARCHAR2,
802     p_scev_tbl                     IN scev_tbl_type,
803     x_scev_tbl                     OUT NOCOPY scev_tbl_type) IS
804 
805     l_api_name              CONSTANT VARCHAR2(30) := 'update_row';
806     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
807     l_ptr			    BINARY_INTEGER;
808 
809   Begin
810 
811   x_return_status := OKC_API.G_RET_STS_SUCCESS;
812 
813   If p_scev_tbl.COUNT > 0 Then
814 
815           l_ptr := p_scev_tbl.FIRST;
816 
817           Loop
818             OKS_SUBSCR_ELEMS_PVT.update_row(
819                                 p_api_version     ,
820                                 p_init_msg_list   ,
821                                 x_return_status   ,
822                                 x_msg_count       ,
823                                 x_msg_data        ,
824                                 p_scev_tbl(l_ptr) ,
825                                 x_scev_tbl(l_ptr));
826 
827             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
828                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
829                   x_return_status := l_return_status;
830                   Raise G_EXCEPTION_HALT_VALIDATION;
831                Else
832                   x_return_status := l_return_status;
833                End If;
834             End If;
835 
836             Exit When  (l_ptr = p_scev_tbl.LAST);
837             l_ptr := p_scev_tbl.NEXT(l_ptr);
838 
839           End Loop;
840 
841   End If;
842 
843   Exception
844   When OKC_API.G_EXCEPTION_ERROR THEN
845       x_return_status := OKC_API.HANDLE_EXCEPTIONS
846       (
847         l_api_name,
848         G_PKG_NAME,
849         'OKC_API.G_RET_STS_ERROR',
850         x_msg_count,
851         x_msg_data,
852         '_PUB'
853       );
854 
855   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
856       x_return_status := OKC_API.HANDLE_EXCEPTIONS
857       (
858         l_api_name,
859         G_PKG_NAME,
860         'OKC_API.G_RET_STS_UNEXP_ERROR',
861         x_msg_count,
862         x_msg_data,
863         '_PUB'
864       );
865 
866   When OTHERS THEN
867       x_return_status := OKC_API.HANDLE_EXCEPTIONS
868       (
869         l_api_name,
870         G_PKG_NAME,
871         'OTHERS',
872         x_msg_count,
873         x_msg_data,
874         '_PUB'
875       );
876 
877     End update_row;
878 
879   PROCEDURE delete_row(
880     p_api_version                  IN NUMBER,
881     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
882     x_return_status                OUT NOCOPY VARCHAR2,
883     x_msg_count                    OUT NOCOPY NUMBER,
884     x_msg_data                     OUT NOCOPY VARCHAR2,
885     p_scev_rec                     IN scev_rec_type) IS
886 
887     l_api_name              CONSTANT VARCHAR2(30) := 'delete_row';
888     l_api_version           CONSTANT NUMBER       := 1.0;
889     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
890 
891     Begin
892   l_return_status := OKC_API.START_ACTIVITY
893                      (
894 				l_api_name
895                         ,p_init_msg_list
896                         ,'_PUB'
897                         ,x_return_status
898                      );
899 
900   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
901           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
902   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
903           Raise OKC_API.G_EXCEPTION_ERROR;
904   End If;
905 
906 
907   OKC_UTIL.call_user_hook
908   (
909 		x_return_status	=> x_return_status,
910   		p_package_name	=> g_pkg_name,
911   		p_procedure_name	=> l_api_name,
912   		p_before_after	=> 'B'
913   );
914 
915   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
916         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
917   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
918        raise OKC_API.G_EXCEPTION_ERROR;
919   End If;
920 
921   OKS_SUBSCR_ELEMS_PVT.delete_row(
922                                 p_api_version      => p_api_version,
923                                 p_init_msg_list    => p_init_msg_list,
924                                 x_return_status    => x_return_status,
925                                 x_msg_count        => x_msg_count,
926                                 x_msg_data         => x_msg_data,
927                                 p_scev_rec         => p_scev_rec);
928 
929   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
930   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
931   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
932   	  raise OKC_API.G_EXCEPTION_ERROR;
933   End If;
934 
935 
936   OKC_UTIL.call_user_hook
937   (
938 	x_return_status	=> x_return_status,
939   	p_package_name	=> g_pkg_name,
940   	p_procedure_name	=> l_api_name,
941   	p_before_after	=> 'A'
942   );
943 
944   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
945   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
946   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
947   	  raise OKC_API.G_EXCEPTION_ERROR;
948   End If;
949 
950   OKC_API.END_ACTIVITY
951   (
952 	x_msg_count	=> x_msg_count,
953 	x_msg_data	=> x_msg_data
954   );
955 
956   Exception
957   When OKC_API.G_EXCEPTION_ERROR THEN
958       x_return_status := OKC_API.HANDLE_EXCEPTIONS
959       (
960         l_api_name,
961         G_PKG_NAME,
962         'OKC_API.G_RET_STS_ERROR',
963         x_msg_count,
964         x_msg_data,
965         '_PUB'
966       );
967 
968   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
969       x_return_status := OKC_API.HANDLE_EXCEPTIONS
970       (
971         l_api_name,
972         G_PKG_NAME,
973         'OKC_API.G_RET_STS_UNEXP_ERROR',
974         x_msg_count,
975         x_msg_data,
976         '_PUB'
977       );
978 
979   When OTHERS THEN
980       x_return_status := OKC_API.HANDLE_EXCEPTIONS
981       (
982         l_api_name,
983         G_PKG_NAME,
984         'OTHERS',
985         x_msg_count,
986         x_msg_data,
987         '_PUB'
988       );
989     End delete_row;
990 
991   PROCEDURE delete_row(
992     p_api_version                  IN NUMBER,
993     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
994     x_return_status                OUT NOCOPY VARCHAR2,
995     x_msg_count                    OUT NOCOPY NUMBER,
996     x_msg_data                     OUT NOCOPY VARCHAR2,
997     p_scev_tbl                     IN scev_tbl_type,
998     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
999 
1000     l_api_name              CONSTANT VARCHAR2(30) := 'delete_row';
1001     l_api_version           CONSTANT NUMBER       := 1.0;
1002     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1003 
1004     Begin
1005   l_return_status := OKC_API.START_ACTIVITY
1006                      (
1010                         ,x_return_status
1007 				l_api_name
1008                         ,p_init_msg_list
1009                         ,'_PUB'
1011                      );
1012 
1013   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1014           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1015   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
1016           Raise OKC_API.G_EXCEPTION_ERROR;
1017   End If;
1018 
1019 
1020   OKC_UTIL.call_user_hook
1021   (
1022 		x_return_status	=> x_return_status,
1023   		p_package_name	=> g_pkg_name,
1024   		p_procedure_name	=> l_api_name,
1025   		p_before_after	=> 'B'
1026   );
1027 
1028   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
1029         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1030   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
1031        raise OKC_API.G_EXCEPTION_ERROR;
1032   End If;
1033 
1034   OKS_SUBSCR_ELEMS_PVT.delete_row(
1035                                 p_api_version      => p_api_version,
1036                                 p_init_msg_list    => p_init_msg_list,
1037                                 x_return_status    => x_return_status,
1038                                 x_msg_count        => x_msg_count,
1039                                 x_msg_data         => x_msg_data,
1040                                 p_scev_tbl         => p_scev_tbl,
1041                                 px_error_tbl       => px_error_tbl);
1042 
1043   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1044   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1045   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1046   	  raise OKC_API.G_EXCEPTION_ERROR;
1047   End If;
1048 
1049 
1050   OKC_UTIL.call_user_hook
1051   (
1052 	x_return_status	=> x_return_status,
1053   	p_package_name	=> g_pkg_name,
1054   	p_procedure_name	=> l_api_name,
1055   	p_before_after	=> 'A'
1056   );
1057 
1058   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1059   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1060   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1061   	  raise OKC_API.G_EXCEPTION_ERROR;
1062   End If;
1063 
1064   OKC_API.END_ACTIVITY
1065   (
1066 	x_msg_count	=> x_msg_count,
1067 	x_msg_data	=> x_msg_data
1068   );
1069 
1070   Exception
1071   When OKC_API.G_EXCEPTION_ERROR THEN
1072       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1073       (
1074         l_api_name,
1075         G_PKG_NAME,
1076         'OKC_API.G_RET_STS_ERROR',
1077         x_msg_count,
1078         x_msg_data,
1079         '_PUB'
1080       );
1081 
1082   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1083       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1084       (
1085         l_api_name,
1086         G_PKG_NAME,
1087         'OKC_API.G_RET_STS_UNEXP_ERROR',
1088         x_msg_count,
1089         x_msg_data,
1090         '_PUB'
1091       );
1092 
1093   When OTHERS THEN
1094       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1095       (
1096         l_api_name,
1097         G_PKG_NAME,
1098         'OTHERS',
1099         x_msg_count,
1100         x_msg_data,
1101         '_PUB'
1102       );
1103 
1104     End delete_row;
1105 
1106   PROCEDURE delete_row(
1107     p_api_version                  IN NUMBER,
1108     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1109     x_return_status                OUT NOCOPY VARCHAR2,
1110     x_msg_count                    OUT NOCOPY NUMBER,
1111     x_msg_data                     OUT NOCOPY VARCHAR2,
1112     p_scev_tbl                     IN scev_tbl_type) IS
1113 
1114 
1115     l_api_name              CONSTANT VARCHAR2(30) := 'delete_row';
1116     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1117     l_ptr			    BINARY_INTEGER;
1118 
1119   Begin
1120 
1121   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1122 
1123   If p_scev_tbl.COUNT > 0 Then
1124 
1125           l_ptr := p_scev_tbl.FIRST;
1126 
1127           Loop
1128             OKS_SUBSCR_ELEMS_PVT.delete_row(
1129                                 p_api_version     ,
1130                                 p_init_msg_list   ,
1131                                 x_return_status   ,
1132                                 x_msg_count       ,
1133                                 x_msg_data        ,
1134                                 p_scev_tbl(l_ptr));
1135 
1136             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1137                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1138                   x_return_status := l_return_status;
1139                   Raise G_EXCEPTION_HALT_VALIDATION;
1140                Else
1141                   x_return_status := l_return_status;
1142                End If;
1143             End If;
1144 
1145             Exit When  (l_ptr = p_scev_tbl.LAST);
1146             l_ptr := p_scev_tbl.NEXT(l_ptr);
1147 
1148           End Loop;
1149 
1150   End If;
1151 
1152   Exception
1153   When OKC_API.G_EXCEPTION_ERROR THEN
1154       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1155       (
1156         l_api_name,
1157         G_PKG_NAME,
1158         'OKC_API.G_RET_STS_ERROR',
1159         x_msg_count,
1160         x_msg_data,
1161         '_PUB'
1162       );
1163 
1164   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1165       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1166       (
1167         l_api_name,
1168         G_PKG_NAME,
1169         'OKC_API.G_RET_STS_UNEXP_ERROR',
1170         x_msg_count,
1171         x_msg_data,
1175   When OTHERS THEN
1172         '_PUB'
1173       );
1174 
1176       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1177       (
1178         l_api_name,
1179         G_PKG_NAME,
1180         'OTHERS',
1181         x_msg_count,
1182         x_msg_data,
1183         '_PUB'
1184       );
1185 
1186     End delete_row;
1187 
1188   PROCEDURE validate_row(
1189     p_api_version                  IN NUMBER,
1190     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1191     x_return_status                OUT NOCOPY VARCHAR2,
1192     x_msg_count                    OUT NOCOPY NUMBER,
1193     x_msg_data                     OUT NOCOPY VARCHAR2,
1194     p_scev_rec                     IN scev_rec_type) IS
1195 
1196     l_api_name              CONSTANT VARCHAR2(30) := 'validate_row';
1197     l_api_version           CONSTANT NUMBER       := 1.0;
1198     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1199 
1200   Begin
1201 
1202   l_return_status := OKC_API.START_ACTIVITY
1203                      (
1204 				l_api_name
1205                         ,p_init_msg_list
1206                         ,'_PUB'
1207                         ,x_return_status
1208                      );
1209 
1210   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1211           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1212   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
1213           Raise OKC_API.G_EXCEPTION_ERROR;
1214   End If;
1215 
1216 
1217 
1218   OKC_UTIL.call_user_hook
1219   (
1220 		x_return_status	=> x_return_status,
1221   		p_package_name	=> g_pkg_name,
1222   		p_procedure_name	=> l_api_name,
1223   		p_before_after	=> 'B'
1224   );
1225 
1226   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
1227         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1228   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
1229        raise OKC_API.G_EXCEPTION_ERROR;
1230   End If;
1231 
1232     OKS_SUBSCR_ELEMS_PVT.validate_row(
1233                                 p_api_version,
1234                                 p_init_msg_list,
1235                                 x_return_status,
1236                                 x_msg_count,
1237                                 x_msg_data,
1238                                 p_scev_rec);
1239 
1240 
1241   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1242   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1243   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1244   	  raise OKC_API.G_EXCEPTION_ERROR;
1245   End If;
1246 
1247   OKC_UTIL.call_user_hook
1248   (
1249 	x_return_status	=> x_return_status,
1250   	p_package_name	=> g_pkg_name,
1251   	p_procedure_name	=> l_api_name,
1252   	p_before_after	=> 'A'
1253   );
1254 
1255   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1256   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1257   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1258   	  raise OKC_API.G_EXCEPTION_ERROR;
1259   End If;
1260 
1261   OKC_API.END_ACTIVITY
1262   (
1263 	x_msg_count	=> x_msg_count,
1264 	x_msg_data	=> x_msg_data
1265   );
1266 
1267 
1268   Exception
1269   When OKC_API.G_EXCEPTION_ERROR THEN
1270       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1271       (
1272         l_api_name,
1273         G_PKG_NAME,
1274         'OKC_API.G_RET_STS_ERROR',
1275         x_msg_count,
1276         x_msg_data,
1277         '_PUB'
1278       );
1279 
1280   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1281       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1282       (
1283         l_api_name,
1284         G_PKG_NAME,
1285         'OKC_API.G_RET_STS_UNEXP_ERROR',
1286         x_msg_count,
1287         x_msg_data,
1288         '_PUB'
1289       );
1290 
1291   When OTHERS THEN
1292       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1293       (
1294         l_api_name,
1295         G_PKG_NAME,
1296         'OTHERS',
1297         x_msg_count,
1298         x_msg_data,
1299         '_PUB'
1300       );
1301 
1302     End validate_row;
1303 
1304   PROCEDURE validate_row(
1305     p_api_version                  IN NUMBER,
1306     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1307     x_return_status                OUT NOCOPY VARCHAR2,
1308     x_msg_count                    OUT NOCOPY NUMBER,
1309     x_msg_data                     OUT NOCOPY VARCHAR2,
1310     p_scev_tbl                     IN scev_tbl_type,
1311     px_error_tbl                   IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
1312 
1313     l_api_name              CONSTANT VARCHAR2(30) := 'validate_row';
1314     l_api_version           CONSTANT NUMBER       := 1.0;
1315     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1316 
1317   Begin
1318 
1319   l_return_status := OKC_API.START_ACTIVITY
1320                      (
1321 				l_api_name
1322                         ,p_init_msg_list
1323                         ,'_PUB'
1324                         ,x_return_status
1325                      );
1326 
1327   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1328           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1329   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
1330           Raise OKC_API.G_EXCEPTION_ERROR;
1331   End If;
1332 
1333 
1334 
1335   OKC_UTIL.call_user_hook
1336   (
1337 		x_return_status	=> x_return_status,
1338   		p_package_name	=> g_pkg_name,
1339   		p_procedure_name	=> l_api_name,
1340   		p_before_after	=> 'B'
1341   );
1342 
1343   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
1344         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1345   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
1346        raise OKC_API.G_EXCEPTION_ERROR;
1347   End If;
1348 
1349     OKS_SUBSCR_ELEMS_PVT.validate_row(
1350                                 p_api_version,
1351                                 p_init_msg_list,
1352                                 x_return_status,
1353                                 x_msg_count,
1354                                 x_msg_data,
1355                                 p_scev_tbl,
1356                                 px_error_tbl);
1357 
1358   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1359   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1360   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1361   	  raise OKC_API.G_EXCEPTION_ERROR;
1362   End If;
1363 
1364   OKC_UTIL.call_user_hook
1365   (
1366 	x_return_status	=> x_return_status,
1367   	p_package_name	=> g_pkg_name,
1368   	p_procedure_name	=> l_api_name,
1369   	p_before_after	=> 'A'
1370   );
1371 
1372   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1373   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1374   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1375   	  raise OKC_API.G_EXCEPTION_ERROR;
1376   End If;
1377 
1378   OKC_API.END_ACTIVITY
1379   (
1380 	x_msg_count	=> x_msg_count,
1381 	x_msg_data	=> x_msg_data
1382   );
1383 
1384 
1385   Exception
1386   When OKC_API.G_EXCEPTION_ERROR THEN
1387       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1388       (
1389         l_api_name,
1390         G_PKG_NAME,
1391         'OKC_API.G_RET_STS_ERROR',
1392         x_msg_count,
1393         x_msg_data,
1394         '_PUB'
1395       );
1396 
1397   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1398       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1399       (
1400         l_api_name,
1401         G_PKG_NAME,
1402         'OKC_API.G_RET_STS_UNEXP_ERROR',
1403         x_msg_count,
1404         x_msg_data,
1405         '_PUB'
1406       );
1407 
1408   When OTHERS THEN
1409       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1410       (
1411         l_api_name,
1412         G_PKG_NAME,
1413         'OTHERS',
1414         x_msg_count,
1415         x_msg_data,
1416         '_PUB'
1417       );
1418 
1419     End validate_row;
1420 
1421   PROCEDURE validate_row(
1422     p_api_version                  IN NUMBER,
1423     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1424     x_return_status                OUT NOCOPY VARCHAR2,
1425     x_msg_count                    OUT NOCOPY NUMBER,
1426     x_msg_data                     OUT NOCOPY VARCHAR2,
1427     p_scev_tbl                     IN scev_tbl_type) IS
1428 
1429     l_api_name              CONSTANT VARCHAR2(30) := 'validate_row';
1430     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1431     l_ptr			    BINARY_INTEGER;
1432 
1433   Begin
1434 
1435   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1436 
1437   If p_scev_tbl.COUNT > 0 Then
1438 
1439           l_ptr := p_scev_tbl.FIRST;
1440 
1441           Loop
1442             validate_row(
1443                 p_api_version ,
1444                 p_init_msg_list,
1445                 x_return_status,
1446                 x_msg_count,
1447                 x_msg_data,
1448                 p_scev_tbl(l_ptr));
1449 
1450             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1451                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1452                   x_return_status := l_return_status;
1453                   Raise G_EXCEPTION_HALT_VALIDATION;
1454                Else
1455                   x_return_status := l_return_status;
1456                End If;
1457             End If;
1458 
1459             Exit When  (l_ptr = p_scev_tbl.LAST);
1460             l_ptr := p_scev_tbl.NEXT(l_ptr);
1461 
1462           End Loop;
1463 
1464   End If;
1465 
1466   Exception
1467   When OKC_API.G_EXCEPTION_ERROR THEN
1468       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1469       (
1470         l_api_name,
1471         G_PKG_NAME,
1472         'OKC_API.G_RET_STS_ERROR',
1473         x_msg_count,
1474         x_msg_data,
1475         '_PUB'
1476       );
1477 
1478   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1479       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1480       (
1481         l_api_name,
1482         G_PKG_NAME,
1483         'OKC_API.G_RET_STS_UNEXP_ERROR',
1484         x_msg_count,
1485         x_msg_data,
1486         '_PUB'
1487       );
1488 
1489   When OTHERS THEN
1490       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1491       (
1492         l_api_name,
1493         G_PKG_NAME,
1494         'OTHERS',
1495         x_msg_count,
1496         x_msg_data,
1497         '_PUB'
1498       );
1499 
1500 
1501     End validate_row;
1502 
1503 END OKS_SUBSCR_ELEMS_PUB;