DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_SUBSCR_HDR_PUB

Source


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