DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_SECTIONS_PUB

Source


1 PACKAGE BODY OKC_SECTIONS_PUB AS
2 /* $Header: OKCPSCNB.pls 120.0 2005/05/25 22:34:55 appldev noship $ */
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5   g_api_type		CONSTANT VARCHAR2(4) := '_PUB';
6 
7   PROCEDURE create_section(
8     p_api_version                  IN NUMBER,
9     p_init_msg_list                IN VARCHAR2 ,
10     x_return_status                OUT NOCOPY VARCHAR2,
11     x_msg_count                    OUT NOCOPY NUMBER,
12     x_msg_data                     OUT NOCOPY VARCHAR2,
13     p_scnv_rec                     IN  scnv_rec_type,
14     x_scnv_rec                     OUT NOCOPY  scnv_rec_type) IS
15 
16     l_scnv_rec		scnv_rec_type;
17     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_SECTION';
18     l_api_version	CONSTANT NUMBER	  := 1.0;
19     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
20   BEGIN
21     -- call START_ACTIVITY to create savepoint, check compatibility
22     -- and initialize message list
23     l_return_status := OKC_API.START_ACTIVITY(
24   					p_api_name      => l_api_name,
25   					p_pkg_name      => g_pkg_name,
26   					p_init_msg_list => p_init_msg_list,
27   					l_api_version   => l_api_version,
28   					p_api_version   => p_api_version,
29   					p_api_type      => g_api_type,
30   					x_return_status => x_return_status);
31 
32     -- check if activity started successfully
33     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
34        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
35     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
36        raise OKC_API.G_EXCEPTION_ERROR;
37     End If;
38 
39     -- call BEFORE user hook
40     l_scnv_rec := p_scnv_rec;
41     g_scnv_rec := l_scnv_rec;
42 
43     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
44   					 p_package_name	=> g_pkg_name,
45   					 p_procedure_name	=> l_api_name,
46   					 p_before_after	=> 'B');
47 
48     -- check return status of user hook call
49     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
50   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
51     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
52   	  raise OKC_API.G_EXCEPTION_ERROR;
53     End If;
54 
55     -- get values back from user hook call
56     l_scnv_rec		:= g_scnv_rec;
57     l_scnv_rec.id	:= p_scnv_rec.id;
58     l_scnv_rec.object_version_number	:= p_scnv_rec.object_version_number;
59 
60     -- call procedure in complex API
61     OKC_SECTIONS_PVT.create_section(
62 	 p_api_version		=> p_api_version,
63 	 p_init_msg_list	=> p_init_msg_list,
64       x_return_status 	=> x_return_status,
65       x_msg_count     	=> x_msg_count,
66       x_msg_data      	=> x_msg_data,
67       p_scnv_rec		=> l_scnv_rec,
68       x_scnv_rec		=> x_scnv_rec);
69 
70     -- check return status
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     -- call AFTER user hook
78     g_scnv_rec := x_scnv_rec;
79 
80     OKC_UTIL.call_user_hook(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     -- check return status of the user hook call
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     -- end activity
93     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
94   						x_msg_data		=> x_msg_data);
95   EXCEPTION
96     when OKC_API.G_EXCEPTION_ERROR then
97       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
98 						p_api_name  => l_api_name,
99 						p_pkg_name  => g_pkg_name,
100 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
101 						x_msg_count => x_msg_count,
102 						x_msg_data  => x_msg_data,
103 						p_api_type  => g_api_type);
104 
105     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
106       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
107 						p_api_name  => l_api_name,
108 						p_pkg_name  => g_pkg_name,
109 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
110 						x_msg_count => x_msg_count,
111 						x_msg_data  => x_msg_data,
112 						p_api_type  => g_api_type);
113 
114     when OTHERS then
115       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
116 						p_api_name  => l_api_name,
117 						p_pkg_name  => g_pkg_name,
118 						p_exc_name  => 'OTHERS',
119 						x_msg_count => x_msg_count,
120 						x_msg_data  => x_msg_data,
121 						p_api_type  => g_api_type);
122 
123   END create_section;
124 
125   PROCEDURE create_section(
126     p_api_version                  IN NUMBER,
127     p_init_msg_list                IN VARCHAR2 ,
128     x_return_status                OUT NOCOPY VARCHAR2,
129     x_msg_count                    OUT NOCOPY NUMBER,
130     x_msg_data                     OUT NOCOPY VARCHAR2,
131     p_scnv_tbl                     IN  scnv_tbl_type,
132     x_scnv_tbl                     OUT NOCOPY  scnv_tbl_type) IS
133 
134     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_SECTION';
135     l_api_version	CONSTANT NUMBER	  := 1.0;
136     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
137     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
138     i			NUMBER;
139   BEGIN
140     -- call START_ACTIVITY to create savepoint, check compatibility
141     -- and initialize message list
142     l_return_status := OKC_API.START_ACTIVITY(
143   					p_api_name      => l_api_name,
144   					p_pkg_name      => g_pkg_name,
145   					p_init_msg_list => p_init_msg_list,
146   					l_api_version   => l_api_version,
147   					p_api_version   => p_api_version,
148   					p_api_type      => g_api_type,
149   					x_return_status => x_return_status);
150 
151     -- check if activity started successfully
152     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
153        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
154     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
155        raise OKC_API.G_EXCEPTION_ERROR;
156     End If;
157 
158     If (p_scnv_tbl.COUNT > 0) Then
159 	   i := p_scnv_tbl.FIRST;
160 	   LOOP
161 		-- call procedure in public API for a record
162 		OKC_SECTIONS_PUB.create_section(
163 			p_api_version		=> p_api_version,
164 			p_init_msg_list	=> p_init_msg_list,
165 			x_return_status 	=> x_return_status,
166 			x_msg_count     	=> x_msg_count,
167 			x_msg_data      	=> x_msg_data,
168 			p_scnv_rec		=> p_scnv_tbl(i),
169 			x_scnv_rec		=> x_scnv_tbl(i));
170 
171 		-- store the highest degree of error
172 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
173 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
174 			 l_overall_status := x_return_status;
175 		   End If;
176 		End If;
177         EXIT WHEN (i = p_scnv_tbl.LAST);
178 		i := p_scnv_tbl.NEXT(i);
179 	   END LOOP;
180 	   -- return overall status
181 	   x_return_status := l_overall_status;
182     End If;
183 
184     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
185   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
186     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
187   	  raise OKC_API.G_EXCEPTION_ERROR;
188     End If;
189 
190     -- end activity
191     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
192   						x_msg_data		=> x_msg_data);
193   EXCEPTION
194     when OKC_API.G_EXCEPTION_ERROR then
195       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
196 						p_api_name  => l_api_name,
197 						p_pkg_name  => g_pkg_name,
198 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
199 						x_msg_count => x_msg_count,
200 						x_msg_data  => x_msg_data,
201 						p_api_type  => g_api_type);
202 
203     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
204       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
205 						p_api_name  => l_api_name,
206 						p_pkg_name  => g_pkg_name,
207 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
208 						x_msg_count => x_msg_count,
209 						x_msg_data  => x_msg_data,
210 						p_api_type  => g_api_type);
211 
212     when OTHERS then
213       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
214 						p_api_name  => l_api_name,
215 						p_pkg_name  => g_pkg_name,
216 						p_exc_name  => 'OTHERS',
217 						x_msg_count => x_msg_count,
218 						x_msg_data  => x_msg_data,
219 						p_api_type  => g_api_type);
220 
221   END create_section;
222 
223   PROCEDURE update_section(
224     p_api_version                  IN NUMBER,
225     p_init_msg_list                IN VARCHAR2 ,
226     x_return_status                OUT NOCOPY VARCHAR2,
227     x_msg_count                    OUT NOCOPY NUMBER,
228     x_msg_data                     OUT NOCOPY VARCHAR2,
229     p_scnv_rec                     IN scnv_rec_type,
230     x_scnv_rec                     OUT NOCOPY scnv_rec_type) IS
231 
232     l_scnv_rec		scnv_rec_type;
233     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_SECTION';
234     l_api_version	CONSTANT NUMBER	  := 1.0;
235     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
236   BEGIN
237     -- call START_ACTIVITY to create savepoint, check compatibility
238     -- and initialize message list
239     l_return_status := OKC_API.START_ACTIVITY(
240   					p_api_name      => l_api_name,
241   					p_pkg_name      => g_pkg_name,
242   					p_init_msg_list => p_init_msg_list,
243   					l_api_version   => l_api_version,
244   					p_api_version   => p_api_version,
245   					p_api_type      => g_api_type,
246   					x_return_status => x_return_status);
247 
248     -- check if activity started successfully
249     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
250        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
251     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
252        raise OKC_API.G_EXCEPTION_ERROR;
253     End If;
254 
255     -- call BEFORE user hook
256     l_scnv_rec := p_scnv_rec;
257     g_scnv_rec := l_scnv_rec;
258 
259     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
260   					 p_package_name	=> g_pkg_name,
261   					 p_procedure_name	=> l_api_name,
262   					 p_before_after	=> 'B');
263 
264     -- check return status of user hook call
265     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
266   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
267     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
268   	  raise OKC_API.G_EXCEPTION_ERROR;
269     End If;
270 
271     -- get values back from user hook call
272     l_scnv_rec		:= g_scnv_rec;
273     l_scnv_rec.id	:= p_scnv_rec.id;
274     l_scnv_rec.object_version_number	:= p_scnv_rec.object_version_number;
275 
276     -- call procedure in complex API
277     OKC_SECTIONS_PVT.update_section(
278 	 p_api_version			=> p_api_version,
279 	 p_init_msg_list		=> p_init_msg_list,
280       x_return_status 		=> x_return_status,
281       x_msg_count     		=> x_msg_count,
282       x_msg_data      		=> x_msg_data,
283       p_scnv_rec			=> l_scnv_rec,
284       x_scnv_rec			=> x_scnv_rec);
285 
286     -- check return status
287     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
288   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
289     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
290   	  raise OKC_API.G_EXCEPTION_ERROR;
291     End If;
292 
293     -- call AFTER user hook
294     g_scnv_rec := x_scnv_rec;
295 
296     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
297   					   p_package_name	=> g_pkg_name,
298   					   p_procedure_name	=> l_api_name,
299   					   p_before_after	=> 'A');
300 
301     -- check return status of the user hook call
302     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
303   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
304     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
305   	  raise OKC_API.G_EXCEPTION_ERROR;
306     End If;
307 
308     -- end activity
309     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
310   						x_msg_data		=> x_msg_data);
311   EXCEPTION
312     when OKC_API.G_EXCEPTION_ERROR then
313       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
314 						p_api_name  => l_api_name,
315 						p_pkg_name  => g_pkg_name,
316 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
317 						x_msg_count => x_msg_count,
318 						x_msg_data  => x_msg_data,
319 						p_api_type  => g_api_type);
320 
321     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
322       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
323 						p_api_name  => l_api_name,
324 						p_pkg_name  => g_pkg_name,
325 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
326 						x_msg_count => x_msg_count,
327 						x_msg_data  => x_msg_data,
328 						p_api_type  => g_api_type);
329 
330     when OTHERS then
331       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
332 						p_api_name  => l_api_name,
333 						p_pkg_name  => g_pkg_name,
334 						p_exc_name  => 'OTHERS',
335 						x_msg_count => x_msg_count,
336 						x_msg_data  => x_msg_data,
337 						p_api_type  => g_api_type);
338 
339   END update_section;
340 
341   PROCEDURE update_section(
342     p_api_version                  IN NUMBER,
343     p_init_msg_list                IN VARCHAR2 ,
344     x_return_status                OUT NOCOPY VARCHAR2,
345     x_msg_count                    OUT NOCOPY NUMBER,
346     x_msg_data                     OUT NOCOPY VARCHAR2,
347     p_scnv_tbl                     IN scnv_tbl_type,
348     x_scnv_tbl                     OUT NOCOPY scnv_tbl_type) IS
349 
350     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_SECTION';
351     l_api_version	CONSTANT NUMBER	  := 1.0;
352     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
353     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
354     i			NUMBER;
355   BEGIN
356     -- call START_ACTIVITY to create savepoint, check compatibility
357     -- and initialize message list
358     l_return_status := OKC_API.START_ACTIVITY(
359   					p_api_name      => l_api_name,
360   					p_pkg_name      => g_pkg_name,
361   					p_init_msg_list => p_init_msg_list,
362   					l_api_version   => l_api_version,
363   					p_api_version   => p_api_version,
364   					p_api_type      => g_api_type,
365   					x_return_status => x_return_status);
366 
367     -- check if activity started successfully
368     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
369        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
370     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
371        raise OKC_API.G_EXCEPTION_ERROR;
372     End If;
373 
374     If (p_scnv_tbl.COUNT > 0) Then
375 	   i := p_scnv_tbl.FIRST;
376 	   LOOP
377 		-- call procedure in complex API
378 		OKC_SECTIONS_PUB.update_section(
379 			p_api_version		=> p_api_version,
380 			p_init_msg_list	=> p_init_msg_list,
381 			x_return_status 	=> x_return_status,
382 			x_msg_count     	=> x_msg_count,
383 			x_msg_data      	=> x_msg_data,
384 			p_scnv_rec		=> p_scnv_tbl(i),
385 			x_scnv_rec		=> x_scnv_tbl(i));
386 
387 		-- store the highest degree of error
388 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
389 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
390 			 l_overall_status := x_return_status;
391 		   End If;
392 		End If;
393         EXIT WHEN (i = p_scnv_tbl.LAST);
394 		i := p_scnv_tbl.NEXT(i);
395 	   END LOOP;
396 	   -- return overall status
397 	   x_return_status := l_overall_status;
398     End If;
399 
400     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
401   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
402     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
403   	  raise OKC_API.G_EXCEPTION_ERROR;
404     End If;
405 
406     -- end activity
407     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
408   						x_msg_data		=> x_msg_data);
409   EXCEPTION
410     when OKC_API.G_EXCEPTION_ERROR then
411       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
412 						p_api_name  => l_api_name,
413 						p_pkg_name  => g_pkg_name,
414 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
415 						x_msg_count => x_msg_count,
416 						x_msg_data  => x_msg_data,
417 						p_api_type  => g_api_type);
418 
419     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
420       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
421 						p_api_name  => l_api_name,
422 						p_pkg_name  => g_pkg_name,
423 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
424 						x_msg_count => x_msg_count,
425 						x_msg_data  => x_msg_data,
426 						p_api_type  => g_api_type);
427 
428     when OTHERS then
429       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
430 						p_api_name  => l_api_name,
431 						p_pkg_name  => g_pkg_name,
432 						p_exc_name  => 'OTHERS',
433 						x_msg_count => x_msg_count,
434 						x_msg_data  => x_msg_data,
435 						p_api_type  => g_api_type);
436 
437   END update_section;
438 
439   PROCEDURE delete_section(
440     p_api_version                  IN NUMBER,
441     p_init_msg_list                IN VARCHAR2 ,
442     x_return_status                OUT NOCOPY VARCHAR2,
443     x_msg_count                    OUT NOCOPY NUMBER,
444     x_msg_data                     OUT NOCOPY VARCHAR2,
445     p_scnv_rec                     IN scnv_rec_type) IS
446 
447     l_scnv_rec		scnv_rec_type;
448     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_SECTION';
449     l_api_version	CONSTANT NUMBER	  := 1.0;
450     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
451   BEGIN
452     -- call START_ACTIVITY to create savepoint, check compatibility
453     -- and initialize message list
454     l_return_status := OKC_API.START_ACTIVITY(
455   					p_api_name      => l_api_name,
456   					p_pkg_name      => g_pkg_name,
457   					p_init_msg_list => p_init_msg_list,
458   					l_api_version   => l_api_version,
459   					p_api_version   => p_api_version,
460   					p_api_type      => g_api_type,
461   					x_return_status => x_return_status);
462 
463     -- check if activity started successfully
464     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
465        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
466     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
467        raise OKC_API.G_EXCEPTION_ERROR;
468     End If;
469 
470     -- call BEFORE user hook
471     l_scnv_rec := p_scnv_rec;
472     g_scnv_rec := l_scnv_rec;
473 
474     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
475   					   p_package_name	=> g_pkg_name,
476   					   p_procedure_name	=> l_api_name,
477   					   p_before_after	=> 'B');
478 
479     -- check return status of user hook call
480     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
481   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
482     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
483   	  raise OKC_API.G_EXCEPTION_ERROR;
484     End If;
485 
486     -- get values back from user hook call
487     l_scnv_rec		:= g_scnv_rec;
488     l_scnv_rec.id	:= p_scnv_rec.id;
489     l_scnv_rec.object_version_number	:= p_scnv_rec.object_version_number;
490 
491     -- call procedure in complex API
492     OKC_SECTIONS_PVT.delete_section(
493 	 p_api_version		=> p_api_version,
494 	 p_init_msg_list	=> p_init_msg_list,
495       x_return_status 	=> x_return_status,
496       x_msg_count     	=> x_msg_count,
497       x_msg_data      	=> x_msg_data,
498       p_scnv_rec		=> l_scnv_rec);
499 
500     -- check return status
501     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
502   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
503     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
504   	  raise OKC_API.G_EXCEPTION_ERROR;
505     End If;
506 
507     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
508   					   p_package_name	=> g_pkg_name,
509   					   p_procedure_name	=> l_api_name,
510   					   p_before_after	=> 'A');
511 
512     -- check return status of the user hook call
513     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
514   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
515     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
516   	  raise OKC_API.G_EXCEPTION_ERROR;
517     End If;
518 
519     -- end activity
520     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
521   						x_msg_data		=> x_msg_data);
522   EXCEPTION
523     when OKC_API.G_EXCEPTION_ERROR then
524       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
525 						p_api_name  => l_api_name,
526 						p_pkg_name  => g_pkg_name,
527 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
528 						x_msg_count => x_msg_count,
529 						x_msg_data  => x_msg_data,
530 						p_api_type  => g_api_type);
531 
532     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
533       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
534 						p_api_name  => l_api_name,
535 						p_pkg_name  => g_pkg_name,
536 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
537 						x_msg_count => x_msg_count,
538 						x_msg_data  => x_msg_data,
539 						p_api_type  => g_api_type);
540 
541     when OTHERS then
542       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
543 						p_api_name  => l_api_name,
544 						p_pkg_name  => g_pkg_name,
545 						p_exc_name  => 'OTHERS',
546 						x_msg_count => x_msg_count,
547 						x_msg_data  => x_msg_data,
548 						p_api_type  => g_api_type);
549 
550   END delete_section;
551 
552   PROCEDURE delete_section(
553     p_api_version                  IN NUMBER,
554     p_init_msg_list                IN VARCHAR2 ,
555     x_return_status                OUT NOCOPY VARCHAR2,
556     x_msg_count                    OUT NOCOPY NUMBER,
557     x_msg_data                     OUT NOCOPY VARCHAR2,
558     p_scnv_tbl                     IN scnv_tbl_type) IS
559 
560     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_SECTION';
561     l_api_version	CONSTANT NUMBER	  := 1.0;
562     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
563     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
564     i			NUMBER;
565   BEGIN
566     -- call START_ACTIVITY to create savepoint, check compatibility
567     -- and initialize message list
568     l_return_status := OKC_API.START_ACTIVITY(
569   					p_api_name      => l_api_name,
570   					p_pkg_name      => g_pkg_name,
571   					p_init_msg_list => p_init_msg_list,
572   					l_api_version   => l_api_version,
573   					p_api_version   => p_api_version,
574   					p_api_type      => g_api_type,
575   					x_return_status => x_return_status);
576 
577     -- check if activity started successfully
578     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
579        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
580     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
581        raise OKC_API.G_EXCEPTION_ERROR;
582     End If;
583 
584     If (p_scnv_tbl.COUNT > 0) Then
585 	   i := p_scnv_tbl.FIRST;
586 	   LOOP
587 		-- call procedure in complex API
588 		OKC_SECTIONS_PUB.delete_section(
589 			p_api_version		=> p_api_version,
590 			p_init_msg_list	=> p_init_msg_list,
591 			x_return_status 	=> x_return_status,
592 			x_msg_count     	=> x_msg_count,
593 			x_msg_data      	=> x_msg_data,
594 			p_scnv_rec		=> p_scnv_tbl(i));
595 
596 		-- store the highest degree of error
597 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
598 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
599 			 l_overall_status := x_return_status;
600 		   End If;
601 		End If;
602         EXIT WHEN (i = p_scnv_tbl.LAST);
603 		i := p_scnv_tbl.NEXT(i);
604 	   END LOOP;
605 	   -- return overall status
606 	   x_return_status := l_overall_status;
607     End If;
608 
609     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
610   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
611     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
612   	  raise OKC_API.G_EXCEPTION_ERROR;
613     End If;
614 
615     -- end activity
616     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
617   						x_msg_data		=> x_msg_data);
618   EXCEPTION
619     when OKC_API.G_EXCEPTION_ERROR then
620       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
621 						p_api_name  => l_api_name,
622 						p_pkg_name  => g_pkg_name,
623 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
624 						x_msg_count => x_msg_count,
625 						x_msg_data  => x_msg_data,
626 						p_api_type  => g_api_type);
627 
628     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
629       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
630 						p_api_name  => l_api_name,
631 						p_pkg_name  => g_pkg_name,
632 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
633 						x_msg_count => x_msg_count,
634 						x_msg_data  => x_msg_data,
635 						p_api_type  => g_api_type);
636 
637     when OTHERS then
638       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
639 						p_api_name  => l_api_name,
640 						p_pkg_name  => g_pkg_name,
641 						p_exc_name  => 'OTHERS',
642 						x_msg_count => x_msg_count,
643 						x_msg_data  => x_msg_data,
644 						p_api_type  => g_api_type);
645 
646   END delete_section;
647 
648   PROCEDURE lock_section(
649     p_api_version                  IN NUMBER,
650     p_init_msg_list                IN VARCHAR2 ,
651     x_return_status                OUT NOCOPY VARCHAR2,
652     x_msg_count                    OUT NOCOPY NUMBER,
653     x_msg_data                     OUT NOCOPY VARCHAR2,
654     p_scnv_rec                     IN scnv_rec_type) IS
655 
656     l_scnv_rec		scnv_rec_type;
657     l_api_name		CONSTANT VARCHAR2(30) := 'LOCK_SECTION';
658     l_api_version	CONSTANT NUMBER	  := 1.0;
659     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
660   BEGIN
661     -- call START_ACTIVITY to create savepoint, check compatibility
662     -- and initialize message list
663     l_return_status := OKC_API.START_ACTIVITY(
664   					p_api_name      => l_api_name,
665   					p_pkg_name      => g_pkg_name,
666   					p_init_msg_list => p_init_msg_list,
667   					l_api_version   => l_api_version,
668   					p_api_version   => p_api_version,
669   					p_api_type      => g_api_type,
670   					x_return_status => x_return_status);
671 
672     -- check if activity started successfully
673     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
674        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
675     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
676        raise OKC_API.G_EXCEPTION_ERROR;
677     End If;
678 
679     -- call BEFORE user hook
680     l_scnv_rec := p_scnv_rec;
681     g_scnv_rec := l_scnv_rec;
682 
683     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
684   					   p_package_name	=> g_pkg_name,
685   					   p_procedure_name	=> l_api_name,
686   					   p_before_after	=> 'B');
687 
688     -- check return status of user hook call
689     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
690   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
691     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
692   	  raise OKC_API.G_EXCEPTION_ERROR;
693     End If;
694 
695     -- get values back from user hook call
696     l_scnv_rec		:= g_scnv_rec;
697     l_scnv_rec.id	:= p_scnv_rec.id;
698     l_scnv_rec.object_version_number	:= p_scnv_rec.object_version_number;
699 
700     -- call procedure in complex API
701     OKC_SECTIONS_PVT.lock_section(
702 	 p_api_version		=> p_api_version,
703 	 p_init_msg_list	=> p_init_msg_list,
704       x_return_status 	=> x_return_status,
705       x_msg_count     	=> x_msg_count,
706       x_msg_data      	=> x_msg_data,
707       p_scnv_rec		=> l_scnv_rec);
708 
709     -- check return status
710     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
711   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
712     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
713   	  raise OKC_API.G_EXCEPTION_ERROR;
714     End If;
715 
716     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
717   					   p_package_name	=> g_pkg_name,
718   					   p_procedure_name	=> l_api_name,
719   					   p_before_after	=> 'A');
720 
721     -- check return status of the user hook call
722     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
723   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
724     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
725   	  raise OKC_API.G_EXCEPTION_ERROR;
726     End If;
727 
728     -- end activity
729     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
730   						x_msg_data		=> x_msg_data);
731   EXCEPTION
732     when OKC_API.G_EXCEPTION_ERROR then
733       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
734 						p_api_name  => l_api_name,
735 						p_pkg_name  => g_pkg_name,
736 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
737 						x_msg_count => x_msg_count,
738 						x_msg_data  => x_msg_data,
739 						p_api_type  => g_api_type);
740 
741     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
742       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
743 						p_api_name  => l_api_name,
744 						p_pkg_name  => g_pkg_name,
745 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
746 						x_msg_count => x_msg_count,
747 						x_msg_data  => x_msg_data,
748 						p_api_type  => g_api_type);
749 
750     when OTHERS then
751       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
752 						p_api_name  => l_api_name,
753 						p_pkg_name  => g_pkg_name,
754 						p_exc_name  => 'OTHERS',
755 						x_msg_count => x_msg_count,
756 						x_msg_data  => x_msg_data,
757 						p_api_type  => g_api_type);
758 
759   END lock_section;
760 
761   PROCEDURE lock_section(
762     p_api_version                  IN NUMBER,
763     p_init_msg_list                IN VARCHAR2 ,
764     x_return_status                OUT NOCOPY VARCHAR2,
765     x_msg_count                    OUT NOCOPY NUMBER,
766     x_msg_data                     OUT NOCOPY VARCHAR2,
767     p_scnv_tbl                     IN scnv_tbl_type) IS
768 
769     l_api_name		CONSTANT VARCHAR2(30) := 'LOCK_SECTION';
770     l_api_version	CONSTANT NUMBER	  := 1.0;
771     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
772     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
773     i			NUMBER;
774   BEGIN
775     -- call START_ACTIVITY to create savepoint, check compatibility
776     -- and initialize message list
777     l_return_status := OKC_API.START_ACTIVITY(
778   					p_api_name      => l_api_name,
779   					p_pkg_name      => g_pkg_name,
780   					p_init_msg_list => p_init_msg_list,
781   					l_api_version   => l_api_version,
782   					p_api_version   => p_api_version,
783   					p_api_type      => g_api_type,
784   					x_return_status => x_return_status);
785 
786     -- check if activity started successfully
787     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
788        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
789     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
790        raise OKC_API.G_EXCEPTION_ERROR;
791     End If;
792 
793     If (p_scnv_tbl.COUNT > 0) Then
794 	   i := p_scnv_tbl.FIRST;
795 	   LOOP
796     		-- call procedure in complex API
797     		OKC_SECTIONS_PUB.lock_section(
798 			p_api_version		=> p_api_version,
799 			p_init_msg_list	=> p_init_msg_list,
800 			x_return_status 	=> x_return_status,
801 			x_msg_count     	=> x_msg_count,
802 			x_msg_data      	=> x_msg_data,
803 			p_scnv_rec		=> p_scnv_tbl(i));
804 
805 		-- store the highest degree of error
806 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
807 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
808 			 l_overall_status := x_return_status;
809 		   End If;
810 		End If;
811         EXIT WHEN (i = p_scnv_tbl.LAST);
812 		i := p_scnv_tbl.NEXT(i);
813 	   END LOOP;
814 	   -- return overall status
815 	   x_return_status := l_overall_status;
816     End If;
817 
818     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
819   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
820     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
821   	  raise OKC_API.G_EXCEPTION_ERROR;
822     End If;
823 
824     -- end activity
825     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
826   						x_msg_data		=> x_msg_data);
827   EXCEPTION
828     when OKC_API.G_EXCEPTION_ERROR then
829       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
830 						p_api_name  => l_api_name,
831 						p_pkg_name  => g_pkg_name,
832 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
833 						x_msg_count => x_msg_count,
834 						x_msg_data  => x_msg_data,
835 						p_api_type  => g_api_type);
836 
837     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
838       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
839 						p_api_name  => l_api_name,
840 						p_pkg_name  => g_pkg_name,
841 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
842 						x_msg_count => x_msg_count,
843 						x_msg_data  => x_msg_data,
844 						p_api_type  => g_api_type);
845 
846     when OTHERS then
847       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
848 						p_api_name  => l_api_name,
849 						p_pkg_name  => g_pkg_name,
850 						p_exc_name  => 'OTHERS',
851 						x_msg_count => x_msg_count,
852 						x_msg_data  => x_msg_data,
853 						p_api_type  => g_api_type);
854 
855   END lock_section;
856 
857   PROCEDURE validate_section(
858     p_api_version                  IN NUMBER,
859     p_init_msg_list                IN VARCHAR2 ,
860     x_return_status                OUT NOCOPY VARCHAR2,
861     x_msg_count                    OUT NOCOPY NUMBER,
862     x_msg_data                     OUT NOCOPY VARCHAR2,
863     p_scnv_rec                     IN scnv_rec_type) IS
864 
865     l_scnv_rec		scnv_rec_type;
866     l_api_name		CONSTANT VARCHAR2(30) := 'VALIDATE_SECTION';
867     l_api_version	CONSTANT NUMBER	  := 1.0;
868     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
869   BEGIN
870     -- call START_ACTIVITY to create savepoint, check compatibility
871     -- and initialize message list
872     l_return_status := OKC_API.START_ACTIVITY(
873   					p_api_name      => l_api_name,
874   					p_pkg_name      => g_pkg_name,
875   					p_init_msg_list => p_init_msg_list,
876   					l_api_version   => l_api_version,
877   					p_api_version   => p_api_version,
878   					p_api_type      => g_api_type,
879   					x_return_status => x_return_status);
880 
881     -- check if activity started successfully
882     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
883        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
884     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
885        raise OKC_API.G_EXCEPTION_ERROR;
886     End If;
887 
888     -- call BEFORE user hook
889     l_scnv_rec := p_scnv_rec;
890     g_scnv_rec := l_scnv_rec;
891 
892     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
893   					   p_package_name	=> g_pkg_name,
894   					   p_procedure_name	=> l_api_name,
895   					   p_before_after	=> 'B');
896 
897     -- check return status of user hook call
898     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
899   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
900     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
901   	  raise OKC_API.G_EXCEPTION_ERROR;
902     End If;
903 
904     -- get values back from user hook call
905     l_scnv_rec		:= g_scnv_rec;
906     l_scnv_rec.id	:= p_scnv_rec.id;
907     l_scnv_rec.object_version_number	:= p_scnv_rec.object_version_number;
908 
909     -- call procedure in complex API
910     OKC_SECTIONS_PVT.validate_section(
911 	 p_api_version		=> p_api_version,
912 	 p_init_msg_list	=> p_init_msg_list,
913       x_return_status 	=> x_return_status,
914       x_msg_count     	=> x_msg_count,
915       x_msg_data      	=> x_msg_data,
916       p_scnv_rec		=> l_scnv_rec);
917 
918     -- check return status
919     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
920   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
921     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
922   	  raise OKC_API.G_EXCEPTION_ERROR;
923     End If;
924 
925     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
926   					   p_package_name	=> g_pkg_name,
927   					   p_procedure_name	=> l_api_name,
928   					   p_before_after	=> 'A');
929 
930     -- check return status of the user hook call
931     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
932   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
933     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
934   	  raise OKC_API.G_EXCEPTION_ERROR;
935     End If;
936 
937     -- end activity
938     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
939   						x_msg_data		=> x_msg_data);
940   EXCEPTION
941     when OKC_API.G_EXCEPTION_ERROR then
942       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
943 						p_api_name  => l_api_name,
944 						p_pkg_name  => g_pkg_name,
945 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
946 						x_msg_count => x_msg_count,
947 						x_msg_data  => x_msg_data,
948 						p_api_type  => g_api_type);
949 
950     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
951       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
952 						p_api_name  => l_api_name,
953 						p_pkg_name  => g_pkg_name,
954 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
955 						x_msg_count => x_msg_count,
956 						x_msg_data  => x_msg_data,
957 						p_api_type  => g_api_type);
958 
959     when OTHERS then
960       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
961 						p_api_name  => l_api_name,
962 						p_pkg_name  => g_pkg_name,
963 						p_exc_name  => 'OTHERS',
964 						x_msg_count => x_msg_count,
965 						x_msg_data  => x_msg_data,
966 						p_api_type  => g_api_type);
967 
968   END validate_section;
969 
970   PROCEDURE validate_section(
971     p_api_version                  IN NUMBER,
972     p_init_msg_list                IN VARCHAR2 ,
973     x_return_status                OUT NOCOPY VARCHAR2,
974     x_msg_count                    OUT NOCOPY NUMBER,
975     x_msg_data                     OUT NOCOPY VARCHAR2,
976     p_scnv_tbl                     IN scnv_tbl_type) IS
977 
978     l_api_name		CONSTANT VARCHAR2(30) := 'VALIDATE_SECTION';
979     l_api_version	CONSTANT NUMBER	  := 1.0;
980     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
981     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
982     i			NUMBER;
983   BEGIN
984     -- call START_ACTIVITY to create savepoint, check compatibility
985     -- and initialize message list
986     l_return_status := OKC_API.START_ACTIVITY(
987   					p_api_name      => l_api_name,
988   					p_pkg_name      => g_pkg_name,
989   					p_init_msg_list => p_init_msg_list,
990   					l_api_version   => l_api_version,
991   					p_api_version   => p_api_version,
992   					p_api_type      => g_api_type,
993   					x_return_status => x_return_status);
994 
995     -- check if activity started successfully
996     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
997        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
998     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
999        raise OKC_API.G_EXCEPTION_ERROR;
1000     End If;
1001 
1002     If (p_scnv_tbl.COUNT > 0) Then
1003 	   i := p_scnv_tbl.FIRST;
1004 	   LOOP
1005 		-- call procedure in complex API
1006 		OKC_SECTIONS_PUB.validate_section(
1007 			p_api_version		=> p_api_version,
1008 			p_init_msg_list	=> p_init_msg_list,
1009 			x_return_status 	=> x_return_status,
1010 			x_msg_count     	=> x_msg_count,
1011 			x_msg_data      	=> x_msg_data,
1012 			p_scnv_rec		=> p_scnv_tbl(i));
1013 
1014 		-- store the highest degree of error
1015 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1016 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
1017 			 l_overall_status := x_return_status;
1018 		   End If;
1019 		End If;
1020         EXIT WHEN (i = p_scnv_tbl.LAST);
1021 		i := p_scnv_tbl.NEXT(i);
1022 	   END LOOP;
1023 	   -- return overall status
1024 	   x_return_status := l_overall_status;
1025     End If;
1026 
1027     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1028   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1029     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1030   	  raise OKC_API.G_EXCEPTION_ERROR;
1031     End If;
1032 
1033     -- end activity
1034     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1035   						x_msg_data		=> x_msg_data);
1036   EXCEPTION
1037     when OKC_API.G_EXCEPTION_ERROR then
1038       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1039 						p_api_name  => l_api_name,
1040 						p_pkg_name  => g_pkg_name,
1041 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1042 						x_msg_count => x_msg_count,
1043 						x_msg_data  => x_msg_data,
1044 						p_api_type  => g_api_type);
1045 
1046     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1047       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1048 						p_api_name  => l_api_name,
1049 						p_pkg_name  => g_pkg_name,
1050 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1051 						x_msg_count => x_msg_count,
1052 						x_msg_data  => x_msg_data,
1053 						p_api_type  => g_api_type);
1054 
1055     when OTHERS then
1056       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1057 						p_api_name  => l_api_name,
1058 						p_pkg_name  => g_pkg_name,
1059 						p_exc_name  => 'OTHERS',
1060 						x_msg_count => x_msg_count,
1061 						x_msg_data  => x_msg_data,
1062 						p_api_type  => g_api_type);
1063 
1064   END validate_section;
1065 
1066   PROCEDURE create_section_content(
1067     p_api_version                  IN NUMBER,
1068     p_init_msg_list                IN VARCHAR2 ,
1069     x_return_status                OUT NOCOPY VARCHAR2,
1070     x_msg_count                    OUT NOCOPY NUMBER,
1071     x_msg_data                     OUT NOCOPY VARCHAR2,
1072     p_sccv_rec                     IN  sccv_rec_type,
1073     x_sccv_rec                     OUT NOCOPY  sccv_rec_type) IS
1074 
1075     l_sccv_rec		sccv_rec_type;
1076     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_SECTION_CONTENT';
1077     l_api_version	CONSTANT NUMBER	  := 1.0;
1078     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1079   BEGIN
1080     -- call START_ACTIVITY to create savepoint, check compatibility
1081     -- and initialize message list
1082     l_return_status := OKC_API.START_ACTIVITY(
1083   					p_api_name      => l_api_name,
1084   					p_pkg_name      => g_pkg_name,
1085   					p_init_msg_list => p_init_msg_list,
1086   					l_api_version   => l_api_version,
1087   					p_api_version   => p_api_version,
1088   					p_api_type      => g_api_type,
1089   					x_return_status => x_return_status);
1090 
1091     -- check if activity started successfully
1092     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1093        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1094     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1095        raise OKC_API.G_EXCEPTION_ERROR;
1096     End If;
1097 
1098     -- call BEFORE user hook
1099     l_sccv_rec := p_sccv_rec;
1100     g_sccv_rec := l_sccv_rec;
1101 
1102     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1103   					 p_package_name	=> g_pkg_name,
1104   					 p_procedure_name	=> l_api_name,
1105   					 p_before_after	=> 'B');
1106 
1107     -- check return status of user hook call
1108     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1109   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1110     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1111   	  raise OKC_API.G_EXCEPTION_ERROR;
1112     End If;
1113 
1114     -- get values back from user hook call
1115     l_sccv_rec		:= g_sccv_rec;
1116     l_sccv_rec.id	:= p_sccv_rec.id;
1117     l_sccv_rec.object_version_number	:= p_sccv_rec.object_version_number;
1118 
1119     -- call procedure in complex API
1120     OKC_SECTIONS_PVT.create_section_content(
1121 	 p_api_version		=> p_api_version,
1122 	 p_init_msg_list	=> p_init_msg_list,
1123       x_return_status 	=> x_return_status,
1124       x_msg_count     	=> x_msg_count,
1125       x_msg_data      	=> x_msg_data,
1126       p_sccv_rec		=> l_sccv_rec,
1127       x_sccv_rec		=> x_sccv_rec);
1128 
1129     -- check return status
1130     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1131   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1132     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1133   	  raise OKC_API.G_EXCEPTION_ERROR;
1134     End If;
1135 
1136     -- call AFTER user hook
1137     g_sccv_rec := x_sccv_rec;
1138 
1139     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1140   					 p_package_name	=> g_pkg_name,
1141   					 p_procedure_name	=> l_api_name,
1142   					 p_before_after	=> 'A');
1143 
1144     -- check return status of the user hook call
1145     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1146   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1147     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1148   	  raise OKC_API.G_EXCEPTION_ERROR;
1149     End If;
1150 
1151     -- end activity
1152     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1153   						x_msg_data		=> x_msg_data);
1154   EXCEPTION
1155     when OKC_API.G_EXCEPTION_ERROR then
1156       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1157 						p_api_name  => l_api_name,
1158 						p_pkg_name  => g_pkg_name,
1159 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1160 						x_msg_count => x_msg_count,
1161 						x_msg_data  => x_msg_data,
1162 						p_api_type  => g_api_type);
1163 
1164     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1165       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1166 						p_api_name  => l_api_name,
1167 						p_pkg_name  => g_pkg_name,
1168 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1169 						x_msg_count => x_msg_count,
1170 						x_msg_data  => x_msg_data,
1171 						p_api_type  => g_api_type);
1172 
1173     when OTHERS then
1174       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1175 						p_api_name  => l_api_name,
1176 						p_pkg_name  => g_pkg_name,
1177 						p_exc_name  => 'OTHERS',
1178 						x_msg_count => x_msg_count,
1179 						x_msg_data  => x_msg_data,
1180 						p_api_type  => g_api_type);
1181 
1182   END create_section_content;
1183 
1184   PROCEDURE create_section_content(
1185     p_api_version                  IN NUMBER,
1186     p_init_msg_list                IN VARCHAR2 ,
1187     x_return_status                OUT NOCOPY VARCHAR2,
1188     x_msg_count                    OUT NOCOPY NUMBER,
1189     x_msg_data                     OUT NOCOPY VARCHAR2,
1190     p_sccv_tbl                     IN  sccv_tbl_type,
1191     x_sccv_tbl                     OUT NOCOPY  sccv_tbl_type) IS
1192 
1193     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_SECTION_CONTENT';
1194     l_api_version	CONSTANT NUMBER	  := 1.0;
1195     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1196     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1197     i			NUMBER;
1198   BEGIN
1199     -- call START_ACTIVITY to create savepoint, check compatibility
1200     -- and initialize message list
1201     l_return_status := OKC_API.START_ACTIVITY(
1202   					p_api_name      => l_api_name,
1203   					p_pkg_name      => g_pkg_name,
1204   					p_init_msg_list => p_init_msg_list,
1205   					l_api_version   => l_api_version,
1206   					p_api_version   => p_api_version,
1207   					p_api_type      => g_api_type,
1208   					x_return_status => x_return_status);
1209 
1210     -- check if activity started successfully
1211     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1212        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1213     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1214        raise OKC_API.G_EXCEPTION_ERROR;
1215     End If;
1216 
1217     If (p_sccv_tbl.COUNT > 0) Then
1218 	   i := p_sccv_tbl.FIRST;
1219 	   LOOP
1220 		-- call procedure in public API for a record
1221 		OKC_SECTIONS_PUB.create_section_content(
1222 			p_api_version		=> p_api_version,
1223 			p_init_msg_list	=> p_init_msg_list,
1224 			x_return_status 	=> x_return_status,
1225 			x_msg_count     	=> x_msg_count,
1226 			x_msg_data      	=> x_msg_data,
1227 			p_sccv_rec		=> p_sccv_tbl(i),
1228 			x_sccv_rec		=> x_sccv_tbl(i));
1229 
1230 		-- store the highest degree of error
1231 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1232 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
1233 			 l_overall_status := x_return_status;
1234 		   End If;
1235 		End If;
1236         EXIT WHEN (i = p_sccv_tbl.LAST);
1237 		i := p_sccv_tbl.NEXT(i);
1238 	   END LOOP;
1239 	   -- return overall status
1240 	   x_return_status := l_overall_status;
1241     End If;
1242 
1243     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1244   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1245     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1246   	  raise OKC_API.G_EXCEPTION_ERROR;
1247     End If;
1248 
1249     -- end activity
1250     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1251   						x_msg_data		=> x_msg_data);
1252   EXCEPTION
1253     when OKC_API.G_EXCEPTION_ERROR then
1254       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1255 						p_api_name  => l_api_name,
1256 						p_pkg_name  => g_pkg_name,
1257 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1258 						x_msg_count => x_msg_count,
1259 						x_msg_data  => x_msg_data,
1260 						p_api_type  => g_api_type);
1261 
1262     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1263       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1264 						p_api_name  => l_api_name,
1265 						p_pkg_name  => g_pkg_name,
1266 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1267 						x_msg_count => x_msg_count,
1268 						x_msg_data  => x_msg_data,
1269 						p_api_type  => g_api_type);
1270 
1271     when OTHERS then
1272       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1273 						p_api_name  => l_api_name,
1274 						p_pkg_name  => g_pkg_name,
1275 						p_exc_name  => 'OTHERS',
1276 						x_msg_count => x_msg_count,
1277 						x_msg_data  => x_msg_data,
1278 						p_api_type  => g_api_type);
1279 
1280   END create_section_content;
1281 
1282   PROCEDURE update_section_content(
1283     p_api_version                  IN NUMBER,
1284     p_init_msg_list                IN VARCHAR2 ,
1285     x_return_status                OUT NOCOPY VARCHAR2,
1286     x_msg_count                    OUT NOCOPY NUMBER,
1287     x_msg_data                     OUT NOCOPY VARCHAR2,
1288     p_sccv_rec                     IN sccv_rec_type,
1289     x_sccv_rec                     OUT NOCOPY sccv_rec_type) IS
1290 
1291     l_sccv_rec		sccv_rec_type;
1292     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_SECTION_CONTENT';
1293     l_api_version	CONSTANT NUMBER	  := 1.0;
1294     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1295   BEGIN
1296     -- call START_ACTIVITY to create savepoint, check compatibility
1297     -- and initialize message list
1298     l_return_status := OKC_API.START_ACTIVITY(
1299   					p_api_name      => l_api_name,
1300   					p_pkg_name      => g_pkg_name,
1301   					p_init_msg_list => p_init_msg_list,
1302   					l_api_version   => l_api_version,
1303   					p_api_version   => p_api_version,
1304   					p_api_type      => g_api_type,
1305   					x_return_status => x_return_status);
1306 
1307     -- check if activity started successfully
1308     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1309        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1310     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1311        raise OKC_API.G_EXCEPTION_ERROR;
1312     End If;
1313 
1314     -- call BEFORE user hook
1315     l_sccv_rec := p_sccv_rec;
1316     g_sccv_rec := l_sccv_rec;
1317 
1318     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1319   					 p_package_name	=> g_pkg_name,
1320   					 p_procedure_name	=> l_api_name,
1321   					 p_before_after	=> 'B');
1322 
1323     -- check return status of user hook call
1324     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1325   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1326     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1327   	  raise OKC_API.G_EXCEPTION_ERROR;
1328     End If;
1329 
1330     -- get values back from user hook call
1331     l_sccv_rec		:= g_sccv_rec;
1332     l_sccv_rec.id	:= p_sccv_rec.id;
1333     l_sccv_rec.object_version_number	:= p_sccv_rec.object_version_number;
1334 
1335     -- call procedure in complex API
1336     OKC_SECTIONS_PVT.update_section_content(
1337 	 p_api_version			=> p_api_version,
1338 	 p_init_msg_list		=> p_init_msg_list,
1339       x_return_status 		=> x_return_status,
1340       x_msg_count     		=> x_msg_count,
1341       x_msg_data      		=> x_msg_data,
1342       p_sccv_rec			=> l_sccv_rec,
1343       x_sccv_rec			=> x_sccv_rec);
1344 
1345     -- check return status
1346     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1347   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1348     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1349   	  raise OKC_API.G_EXCEPTION_ERROR;
1350     End If;
1351 
1352     -- call AFTER user hook
1353     g_sccv_rec := x_sccv_rec;
1354 
1355     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1356   					   p_package_name	=> g_pkg_name,
1357   					   p_procedure_name	=> l_api_name,
1358   					   p_before_after	=> 'A');
1359 
1360     -- check return status of the user hook call
1361     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1362   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1363     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1364   	  raise OKC_API.G_EXCEPTION_ERROR;
1365     End If;
1366 
1367     -- end activity
1368     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1369   						x_msg_data		=> x_msg_data);
1370   EXCEPTION
1371     when OKC_API.G_EXCEPTION_ERROR then
1372       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1373 						p_api_name  => l_api_name,
1374 						p_pkg_name  => g_pkg_name,
1375 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1376 						x_msg_count => x_msg_count,
1377 						x_msg_data  => x_msg_data,
1378 						p_api_type  => g_api_type);
1379 
1380     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1381       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1382 						p_api_name  => l_api_name,
1383 						p_pkg_name  => g_pkg_name,
1384 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1385 						x_msg_count => x_msg_count,
1386 						x_msg_data  => x_msg_data,
1387 						p_api_type  => g_api_type);
1388 
1389     when OTHERS then
1390       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1391 						p_api_name  => l_api_name,
1392 						p_pkg_name  => g_pkg_name,
1393 						p_exc_name  => 'OTHERS',
1394 						x_msg_count => x_msg_count,
1395 						x_msg_data  => x_msg_data,
1396 						p_api_type  => g_api_type);
1397 
1398   END update_section_content;
1399 
1400   PROCEDURE update_section_content(
1401     p_api_version                  IN NUMBER,
1402     p_init_msg_list                IN VARCHAR2 ,
1403     x_return_status                OUT NOCOPY VARCHAR2,
1404     x_msg_count                    OUT NOCOPY NUMBER,
1405     x_msg_data                     OUT NOCOPY VARCHAR2,
1406     p_sccv_tbl                     IN sccv_tbl_type,
1407     x_sccv_tbl                     OUT NOCOPY sccv_tbl_type) IS
1408 
1409     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_SECTION_CONTENT';
1410     l_api_version	CONSTANT NUMBER	  := 1.0;
1411     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1412     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1413     i			NUMBER;
1414   BEGIN
1415     -- call START_ACTIVITY to create savepoint, check compatibility
1416     -- and initialize message list
1417     l_return_status := OKC_API.START_ACTIVITY(
1418   					p_api_name      => l_api_name,
1419   					p_pkg_name      => g_pkg_name,
1420   					p_init_msg_list => p_init_msg_list,
1421   					l_api_version   => l_api_version,
1422   					p_api_version   => p_api_version,
1423   					p_api_type      => g_api_type,
1424   					x_return_status => x_return_status);
1425 
1426     -- check if activity started successfully
1427     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1428        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1429     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1430        raise OKC_API.G_EXCEPTION_ERROR;
1431     End If;
1432 
1433     If (p_sccv_tbl.COUNT > 0) Then
1434 	   i := p_sccv_tbl.FIRST;
1435 	   LOOP
1436 		-- call procedure in complex API
1437 		OKC_SECTIONS_PUB.update_section_content(
1438 			p_api_version		=> p_api_version,
1439 			p_init_msg_list	=> p_init_msg_list,
1440 			x_return_status 	=> x_return_status,
1441 			x_msg_count     	=> x_msg_count,
1442 			x_msg_data      	=> x_msg_data,
1443 			p_sccv_rec		=> p_sccv_tbl(i),
1444 			x_sccv_rec		=> x_sccv_tbl(i));
1445 
1446 		-- store the highest degree of error
1447 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1448 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
1449 			 l_overall_status := x_return_status;
1450 		   End If;
1451 		End If;
1452         EXIT WHEN (i = p_sccv_tbl.LAST);
1453 		i := p_sccv_tbl.NEXT(i);
1454 	   END LOOP;
1455 	   -- return overall status
1456 	   x_return_status := l_overall_status;
1457     End If;
1458 
1459     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1460   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1461     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1462   	  raise OKC_API.G_EXCEPTION_ERROR;
1463     End If;
1464 
1465     -- end activity
1466     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1467   						x_msg_data		=> x_msg_data);
1468   EXCEPTION
1469     when OKC_API.G_EXCEPTION_ERROR then
1470       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1471 						p_api_name  => l_api_name,
1472 						p_pkg_name  => g_pkg_name,
1473 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1474 						x_msg_count => x_msg_count,
1475 						x_msg_data  => x_msg_data,
1476 						p_api_type  => g_api_type);
1477 
1478     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1479       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1480 						p_api_name  => l_api_name,
1481 						p_pkg_name  => g_pkg_name,
1482 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1483 						x_msg_count => x_msg_count,
1484 						x_msg_data  => x_msg_data,
1485 						p_api_type  => g_api_type);
1486 
1487     when OTHERS then
1488       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1489 						p_api_name  => l_api_name,
1490 						p_pkg_name  => g_pkg_name,
1491 						p_exc_name  => 'OTHERS',
1492 						x_msg_count => x_msg_count,
1493 						x_msg_data  => x_msg_data,
1494 						p_api_type  => g_api_type);
1495 
1496   END update_section_content;
1497 
1498   PROCEDURE delete_section_content(
1499     p_api_version                  IN NUMBER,
1500     p_init_msg_list                IN VARCHAR2 ,
1501     x_return_status                OUT NOCOPY VARCHAR2,
1502     x_msg_count                    OUT NOCOPY NUMBER,
1503     x_msg_data                     OUT NOCOPY VARCHAR2,
1504     p_sccv_rec                     IN sccv_rec_type) IS
1505 
1506     l_sccv_rec		sccv_rec_type;
1507     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_SECTION_CONTENT';
1508     l_api_version	CONSTANT NUMBER	  := 1.0;
1509     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1510   BEGIN
1511     -- call START_ACTIVITY to create savepoint, check compatibility
1512     -- and initialize message list
1513     l_return_status := OKC_API.START_ACTIVITY(
1514   					p_api_name      => l_api_name,
1515   					p_pkg_name      => g_pkg_name,
1516   					p_init_msg_list => p_init_msg_list,
1517   					l_api_version   => l_api_version,
1518   					p_api_version   => p_api_version,
1519   					p_api_type      => g_api_type,
1520   					x_return_status => x_return_status);
1521 
1522     -- check if activity started successfully
1523     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1524        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1525     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1526        raise OKC_API.G_EXCEPTION_ERROR;
1527     End If;
1528 
1529     -- call BEFORE user hook
1530     l_sccv_rec := p_sccv_rec;
1531     g_sccv_rec := l_sccv_rec;
1532 
1533     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1534   					   p_package_name	=> g_pkg_name,
1535   					   p_procedure_name	=> l_api_name,
1536   					   p_before_after	=> 'B');
1537 
1538     -- check return status of user hook call
1539     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1540   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1541     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1542   	  raise OKC_API.G_EXCEPTION_ERROR;
1543     End If;
1544 
1545     -- get values back from user hook call
1546     l_sccv_rec		:= g_sccv_rec;
1547     l_sccv_rec.id	:= p_sccv_rec.id;
1548     l_sccv_rec.object_version_number	:= p_sccv_rec.object_version_number;
1549 
1550     -- call procedure in complex API
1551     OKC_SECTIONS_PVT.delete_section_content(
1552 	 p_api_version		=> p_api_version,
1553 	 p_init_msg_list	=> p_init_msg_list,
1554       x_return_status 	=> x_return_status,
1555       x_msg_count     	=> x_msg_count,
1556       x_msg_data      	=> x_msg_data,
1557       p_sccv_rec		=> l_sccv_rec);
1558 
1559     -- check return status
1560     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1561   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1562     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1563   	  raise OKC_API.G_EXCEPTION_ERROR;
1564     End If;
1565 
1566     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1567   					   p_package_name	=> g_pkg_name,
1568   					   p_procedure_name	=> l_api_name,
1569   					   p_before_after	=> 'A');
1570 
1571     -- check return status of the user hook call
1572     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1573   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1574     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1575   	  raise OKC_API.G_EXCEPTION_ERROR;
1576     End If;
1577 
1578     -- end activity
1579     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1580   						x_msg_data		=> x_msg_data);
1581   EXCEPTION
1582     when OKC_API.G_EXCEPTION_ERROR then
1583       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1584 						p_api_name  => l_api_name,
1585 						p_pkg_name  => g_pkg_name,
1586 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1587 						x_msg_count => x_msg_count,
1588 						x_msg_data  => x_msg_data,
1589 						p_api_type  => g_api_type);
1590 
1591     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1592       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1593 						p_api_name  => l_api_name,
1594 						p_pkg_name  => g_pkg_name,
1595 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1596 						x_msg_count => x_msg_count,
1597 						x_msg_data  => x_msg_data,
1598 						p_api_type  => g_api_type);
1599 
1600     when OTHERS then
1601       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1602 						p_api_name  => l_api_name,
1603 						p_pkg_name  => g_pkg_name,
1604 						p_exc_name  => 'OTHERS',
1605 						x_msg_count => x_msg_count,
1606 						x_msg_data  => x_msg_data,
1607 						p_api_type  => g_api_type);
1608 
1609   END delete_section_content;
1610 
1611   PROCEDURE delete_section_content(
1612     p_api_version                  IN NUMBER,
1613     p_init_msg_list                IN VARCHAR2 ,
1614     x_return_status                OUT NOCOPY VARCHAR2,
1615     x_msg_count                    OUT NOCOPY NUMBER,
1616     x_msg_data                     OUT NOCOPY VARCHAR2,
1617     p_sccv_tbl                     IN sccv_tbl_type) IS
1618 
1619     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_SECTION_CONTENT';
1620     l_api_version	CONSTANT NUMBER	  := 1.0;
1621     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1622     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1623     i			NUMBER;
1624   BEGIN
1625     -- call START_ACTIVITY to create savepoint, check compatibility
1626     -- and initialize message list
1627     l_return_status := OKC_API.START_ACTIVITY(
1628   					p_api_name      => l_api_name,
1629   					p_pkg_name      => g_pkg_name,
1630   					p_init_msg_list => p_init_msg_list,
1631   					l_api_version   => l_api_version,
1632   					p_api_version   => p_api_version,
1633   					p_api_type      => g_api_type,
1634   					x_return_status => x_return_status);
1635 
1636     -- check if activity started successfully
1637     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1638        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1639     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1640        raise OKC_API.G_EXCEPTION_ERROR;
1641     End If;
1642 
1643     If (p_sccv_tbl.COUNT > 0) Then
1644 	   i := p_sccv_tbl.FIRST;
1645 	   LOOP
1646 		-- call procedure in complex API
1647 		OKC_SECTIONS_PUB.delete_section_content(
1648 			p_api_version		=> p_api_version,
1649 			p_init_msg_list	=> p_init_msg_list,
1650 			x_return_status 	=> x_return_status,
1651 			x_msg_count     	=> x_msg_count,
1652 			x_msg_data      	=> x_msg_data,
1653 			p_sccv_rec		=> p_sccv_tbl(i));
1654 
1655 		-- store the highest degree of error
1656 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1657 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
1658 			 l_overall_status := x_return_status;
1659 		   End If;
1660 		End If;
1661         EXIT WHEN (i = p_sccv_tbl.LAST);
1662 		i := p_sccv_tbl.NEXT(i);
1663 	   END LOOP;
1664 	   -- return overall status
1665 	   x_return_status := l_overall_status;
1666     End If;
1667 
1668     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1669   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1670     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1671   	  raise OKC_API.G_EXCEPTION_ERROR;
1672     End If;
1673 
1674     -- end activity
1675     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1676   						x_msg_data		=> x_msg_data);
1677   EXCEPTION
1678     when OKC_API.G_EXCEPTION_ERROR then
1679       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1680 						p_api_name  => l_api_name,
1681 						p_pkg_name  => g_pkg_name,
1682 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1683 						x_msg_count => x_msg_count,
1684 						x_msg_data  => x_msg_data,
1685 						p_api_type  => g_api_type);
1686 
1687     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1688       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1689 						p_api_name  => l_api_name,
1690 						p_pkg_name  => g_pkg_name,
1691 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1692 						x_msg_count => x_msg_count,
1693 						x_msg_data  => x_msg_data,
1694 						p_api_type  => g_api_type);
1695 
1696     when OTHERS then
1697       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1698 						p_api_name  => l_api_name,
1699 						p_pkg_name  => g_pkg_name,
1700 						p_exc_name  => 'OTHERS',
1701 						x_msg_count => x_msg_count,
1702 						x_msg_data  => x_msg_data,
1703 						p_api_type  => g_api_type);
1704 
1705   END delete_section_content;
1706 
1707   PROCEDURE lock_section_content(
1708     p_api_version                  IN NUMBER,
1709     p_init_msg_list                IN VARCHAR2 ,
1710     x_return_status                OUT NOCOPY VARCHAR2,
1711     x_msg_count                    OUT NOCOPY NUMBER,
1712     x_msg_data                     OUT NOCOPY VARCHAR2,
1713     p_sccv_rec                     IN sccv_rec_type) IS
1714 
1715     l_sccv_rec		sccv_rec_type;
1716     l_api_name		CONSTANT VARCHAR2(30) := 'LOCK_SECTION_CONTENT';
1717     l_api_version	CONSTANT NUMBER	  := 1.0;
1718     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1719   BEGIN
1720     -- call START_ACTIVITY to create savepoint, check compatibility
1721     -- and initialize message list
1722     l_return_status := OKC_API.START_ACTIVITY(
1723   					p_api_name      => l_api_name,
1724   					p_pkg_name      => g_pkg_name,
1725   					p_init_msg_list => p_init_msg_list,
1726   					l_api_version   => l_api_version,
1727   					p_api_version   => p_api_version,
1728   					p_api_type      => g_api_type,
1729   					x_return_status => x_return_status);
1730 
1731     -- check if activity started successfully
1732     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1733        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1734     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1735        raise OKC_API.G_EXCEPTION_ERROR;
1736     End If;
1737 
1738     -- call BEFORE user hook
1739     l_sccv_rec := p_sccv_rec;
1740     g_sccv_rec := l_sccv_rec;
1741 
1742     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1743   					   p_package_name	=> g_pkg_name,
1744   					   p_procedure_name	=> l_api_name,
1745   					   p_before_after	=> 'B');
1746 
1747     -- check return status of user hook call
1748     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1749   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1750     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1751   	  raise OKC_API.G_EXCEPTION_ERROR;
1752     End If;
1753 
1754     -- get values back from user hook call
1755     l_sccv_rec		:= g_sccv_rec;
1756     l_sccv_rec.id	:= p_sccv_rec.id;
1757     l_sccv_rec.object_version_number	:= p_sccv_rec.object_version_number;
1758 
1759     -- call procedure in complex API
1760     OKC_SECTIONS_PVT.lock_section_content(
1761 	 p_api_version		=> p_api_version,
1762 	 p_init_msg_list	=> p_init_msg_list,
1763       x_return_status 	=> x_return_status,
1764       x_msg_count     	=> x_msg_count,
1765       x_msg_data      	=> x_msg_data,
1766       p_sccv_rec		=> l_sccv_rec);
1767 
1768     -- check return status
1769     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1770   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1771     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1772   	  raise OKC_API.G_EXCEPTION_ERROR;
1773     End If;
1774 
1775     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1776   					   p_package_name	=> g_pkg_name,
1777   					   p_procedure_name	=> l_api_name,
1778   					   p_before_after	=> 'A');
1779 
1780     -- check return status of the user hook call
1781     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1782   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1783     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1784   	  raise OKC_API.G_EXCEPTION_ERROR;
1785     End If;
1786 
1787     -- end activity
1788     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1789   						x_msg_data		=> x_msg_data);
1790   EXCEPTION
1791     when OKC_API.G_EXCEPTION_ERROR then
1792       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1793 						p_api_name  => l_api_name,
1794 						p_pkg_name  => g_pkg_name,
1795 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1796 						x_msg_count => x_msg_count,
1797 						x_msg_data  => x_msg_data,
1798 						p_api_type  => g_api_type);
1799 
1800     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1801       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1802 						p_api_name  => l_api_name,
1803 						p_pkg_name  => g_pkg_name,
1804 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1805 						x_msg_count => x_msg_count,
1806 						x_msg_data  => x_msg_data,
1807 						p_api_type  => g_api_type);
1808 
1809     when OTHERS then
1810       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1811 						p_api_name  => l_api_name,
1812 						p_pkg_name  => g_pkg_name,
1813 						p_exc_name  => 'OTHERS',
1814 						x_msg_count => x_msg_count,
1815 						x_msg_data  => x_msg_data,
1816 						p_api_type  => g_api_type);
1817 
1818   END lock_section_content;
1819 
1820   PROCEDURE lock_section_content(
1821     p_api_version                  IN NUMBER,
1822     p_init_msg_list                IN VARCHAR2 ,
1823     x_return_status                OUT NOCOPY VARCHAR2,
1824     x_msg_count                    OUT NOCOPY NUMBER,
1825     x_msg_data                     OUT NOCOPY VARCHAR2,
1826     p_sccv_tbl                     IN sccv_tbl_type) IS
1827 
1828     l_api_name		CONSTANT VARCHAR2(30) := 'LOCK_SECTION_CONTENT';
1829     l_api_version	CONSTANT NUMBER	  := 1.0;
1830     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1831     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1832     i			NUMBER;
1833   BEGIN
1834     -- call START_ACTIVITY to create savepoint, check compatibility
1835     -- and initialize message list
1836     l_return_status := OKC_API.START_ACTIVITY(
1837   					p_api_name      => l_api_name,
1838   					p_pkg_name      => g_pkg_name,
1839   					p_init_msg_list => p_init_msg_list,
1840   					l_api_version   => l_api_version,
1841   					p_api_version   => p_api_version,
1842   					p_api_type      => g_api_type,
1843   					x_return_status => x_return_status);
1844 
1845     -- check if activity started successfully
1846     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1847        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1848     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1849        raise OKC_API.G_EXCEPTION_ERROR;
1850     End If;
1851 
1852     If (p_sccv_tbl.COUNT > 0) Then
1853 	   i := p_sccv_tbl.FIRST;
1854 	   LOOP
1855     		-- call procedure in complex API
1856     		OKC_SECTIONS_PUB.lock_section_content(
1857 			p_api_version		=> p_api_version,
1858 			p_init_msg_list	=> p_init_msg_list,
1859 			x_return_status 	=> x_return_status,
1860 			x_msg_count     	=> x_msg_count,
1861 			x_msg_data      	=> x_msg_data,
1862 			p_sccv_rec		=> p_sccv_tbl(i));
1863 
1864 		-- store the highest degree of error
1865 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
1866 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
1867 			 l_overall_status := x_return_status;
1868 		   End If;
1869 		End If;
1870         EXIT WHEN (i = p_sccv_tbl.LAST);
1871 		i := p_sccv_tbl.NEXT(i);
1872 	   END LOOP;
1873 	   -- return overall status
1874 	   x_return_status := l_overall_status;
1875     End If;
1876 
1877     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1878   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1879     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1880   	  raise OKC_API.G_EXCEPTION_ERROR;
1881     End If;
1882 
1883     -- end activity
1884     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1885   						x_msg_data		=> x_msg_data);
1886   EXCEPTION
1887     when OKC_API.G_EXCEPTION_ERROR then
1888       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1889 						p_api_name  => l_api_name,
1890 						p_pkg_name  => g_pkg_name,
1891 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
1892 						x_msg_count => x_msg_count,
1893 						x_msg_data  => x_msg_data,
1894 						p_api_type  => g_api_type);
1895 
1896     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
1897       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1898 						p_api_name  => l_api_name,
1899 						p_pkg_name  => g_pkg_name,
1900 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
1901 						x_msg_count => x_msg_count,
1902 						x_msg_data  => x_msg_data,
1903 						p_api_type  => g_api_type);
1904 
1905     when OTHERS then
1906       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1907 						p_api_name  => l_api_name,
1908 						p_pkg_name  => g_pkg_name,
1909 						p_exc_name  => 'OTHERS',
1910 						x_msg_count => x_msg_count,
1911 						x_msg_data  => x_msg_data,
1912 						p_api_type  => g_api_type);
1913 
1914   END lock_section_content;
1915 
1916   PROCEDURE validate_section_content(
1917     p_api_version                  IN NUMBER,
1918     p_init_msg_list                IN VARCHAR2 ,
1919     x_return_status                OUT NOCOPY VARCHAR2,
1920     x_msg_count                    OUT NOCOPY NUMBER,
1921     x_msg_data                     OUT NOCOPY VARCHAR2,
1922     p_sccv_rec                     IN sccv_rec_type) IS
1923 
1924     l_sccv_rec		sccv_rec_type;
1925     l_api_name		CONSTANT VARCHAR2(30) := 'VALIDATE_SECTION_CONTENT';
1926     l_api_version	CONSTANT NUMBER	  := 1.0;
1927     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
1928   BEGIN
1929     -- call START_ACTIVITY to create savepoint, check compatibility
1930     -- and initialize message list
1931     l_return_status := OKC_API.START_ACTIVITY(
1932   					p_api_name      => l_api_name,
1933   					p_pkg_name      => g_pkg_name,
1934   					p_init_msg_list => p_init_msg_list,
1935   					l_api_version   => l_api_version,
1936   					p_api_version   => p_api_version,
1937   					p_api_type      => g_api_type,
1938   					x_return_status => x_return_status);
1939 
1940     -- check if activity started successfully
1941     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1942        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1943     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1944        raise OKC_API.G_EXCEPTION_ERROR;
1945     End If;
1946 
1947     -- call BEFORE user hook
1948     l_sccv_rec := p_sccv_rec;
1949     g_sccv_rec := l_sccv_rec;
1950 
1951     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1952   					   p_package_name	=> g_pkg_name,
1953   					   p_procedure_name	=> l_api_name,
1954   					   p_before_after	=> 'B');
1955 
1956     -- check return status of user hook call
1957     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1958   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1959     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1960   	  raise OKC_API.G_EXCEPTION_ERROR;
1961     End If;
1962 
1963     -- get values back from user hook call
1964     l_sccv_rec		:= g_sccv_rec;
1965     l_sccv_rec.id	:= p_sccv_rec.id;
1966     l_sccv_rec.object_version_number	:= p_sccv_rec.object_version_number;
1967 
1968     -- call procedure in complex API
1969     OKC_SECTIONS_PVT.validate_section_content(
1970 	 p_api_version		=> p_api_version,
1971 	 p_init_msg_list	=> p_init_msg_list,
1972       x_return_status 	=> x_return_status,
1973       x_msg_count     	=> x_msg_count,
1974       x_msg_data      	=> x_msg_data,
1975       p_sccv_rec		=> l_sccv_rec);
1976 
1977     -- check return status
1978     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1979   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1980     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1981   	  raise OKC_API.G_EXCEPTION_ERROR;
1982     End If;
1983 
1984     OKC_UTIL.call_user_hook(x_return_status	=> x_return_status,
1985   					   p_package_name	=> g_pkg_name,
1986   					   p_procedure_name	=> l_api_name,
1987   					   p_before_after	=> 'A');
1988 
1989     -- check return status of the user hook call
1990     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
1991   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1992     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
1993   	  raise OKC_API.G_EXCEPTION_ERROR;
1994     End If;
1995 
1996     -- end activity
1997     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
1998   						x_msg_data		=> x_msg_data);
1999   EXCEPTION
2000     when OKC_API.G_EXCEPTION_ERROR then
2001       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2002 						p_api_name  => l_api_name,
2003 						p_pkg_name  => g_pkg_name,
2004 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2005 						x_msg_count => x_msg_count,
2006 						x_msg_data  => x_msg_data,
2007 						p_api_type  => g_api_type);
2008 
2009     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
2010       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2011 						p_api_name  => l_api_name,
2012 						p_pkg_name  => g_pkg_name,
2013 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2014 						x_msg_count => x_msg_count,
2015 						x_msg_data  => x_msg_data,
2016 						p_api_type  => g_api_type);
2017 
2018     when OTHERS then
2019       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2020 						p_api_name  => l_api_name,
2021 						p_pkg_name  => g_pkg_name,
2022 						p_exc_name  => 'OTHERS',
2023 						x_msg_count => x_msg_count,
2024 						x_msg_data  => x_msg_data,
2025 						p_api_type  => g_api_type);
2026 
2027   END validate_section_content;
2028 
2029   PROCEDURE validate_section_content(
2030     p_api_version                  IN NUMBER,
2031     p_init_msg_list                IN VARCHAR2 ,
2032     x_return_status                OUT NOCOPY VARCHAR2,
2033     x_msg_count                    OUT NOCOPY NUMBER,
2034     x_msg_data                     OUT NOCOPY VARCHAR2,
2035     p_sccv_tbl                     IN sccv_tbl_type) IS
2036 
2037     l_api_name		CONSTANT VARCHAR2(30) := 'VALIDATE_SECTION_CONTENT';
2038     l_api_version	CONSTANT NUMBER	  := 1.0;
2039     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
2040     l_overall_status VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
2041     i			NUMBER;
2042   BEGIN
2043     -- call START_ACTIVITY to create savepoint, check compatibility
2044     -- and initialize message list
2045     l_return_status := OKC_API.START_ACTIVITY(
2046   					p_api_name      => l_api_name,
2047   					p_pkg_name      => g_pkg_name,
2048   					p_init_msg_list => p_init_msg_list,
2049   					l_api_version   => l_api_version,
2050   					p_api_version   => p_api_version,
2051   					p_api_type      => g_api_type,
2052   					x_return_status => x_return_status);
2053 
2054     -- check if activity started successfully
2055     If (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
2056        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2057     Elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
2058        raise OKC_API.G_EXCEPTION_ERROR;
2059     End If;
2060 
2061     If (p_sccv_tbl.COUNT > 0) Then
2062 	   i := p_sccv_tbl.FIRST;
2063 	   LOOP
2064 		-- call procedure in complex API
2065 		OKC_SECTIONS_PUB.validate_section_content(
2066 			p_api_version		=> p_api_version,
2067 			p_init_msg_list	=> p_init_msg_list,
2068 			x_return_status 	=> x_return_status,
2069 			x_msg_count     	=> x_msg_count,
2070 			x_msg_data      	=> x_msg_data,
2071 			p_sccv_rec		=> p_sccv_tbl(i));
2072 
2073 		-- store the highest degree of error
2074 		If x_return_status <> OKC_API.G_RET_STS_SUCCESS Then
2075 		   If l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR Then
2076 			 l_overall_status := x_return_status;
2077 		   End If;
2078 		End If;
2079         EXIT WHEN (i = p_sccv_tbl.LAST);
2080 		i := p_sccv_tbl.NEXT(i);
2081 	   END LOOP;
2082 	   -- return overall status
2083 	   x_return_status := l_overall_status;
2084     End If;
2085 
2086     If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
2087   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2088     Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
2089   	  raise OKC_API.G_EXCEPTION_ERROR;
2090     End If;
2091 
2092     -- end activity
2093     OKC_API.END_ACTIVITY(	x_msg_count		=> x_msg_count,
2094   						x_msg_data		=> x_msg_data);
2095   EXCEPTION
2096     when OKC_API.G_EXCEPTION_ERROR then
2097       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2098 						p_api_name  => l_api_name,
2099 						p_pkg_name  => g_pkg_name,
2100 						p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2101 						x_msg_count => x_msg_count,
2102 						x_msg_data  => x_msg_data,
2103 						p_api_type  => g_api_type);
2104 
2105     when OKC_API.G_EXCEPTION_UNEXPECTED_ERROR then
2106       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2107 						p_api_name  => l_api_name,
2108 						p_pkg_name  => g_pkg_name,
2109 						p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2110 						x_msg_count => x_msg_count,
2111 						x_msg_data  => x_msg_data,
2112 						p_api_type  => g_api_type);
2113 
2114     when OTHERS then
2115       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2116 						p_api_name  => l_api_name,
2117 						p_pkg_name  => g_pkg_name,
2118 						p_exc_name  => 'OTHERS',
2119 						x_msg_count => x_msg_count,
2120 						x_msg_data  => x_msg_data,
2121 						p_api_type  => g_api_type);
2122 
2123   END validate_section_content;
2124 
2125   PROCEDURE add_language IS
2126     l_api_name		CONSTANT VARCHAR2(30) := 'ADD_LANGUAGE';
2127     l_api_version	CONSTANT NUMBER	  := 1.0;
2128     l_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
2129     x_return_status	VARCHAR2(1)		  := OKC_API.G_RET_STS_SUCCESS;
2130   BEGIN
2131 
2132     -- call procedure in complex API
2133     OKC_SECTIONS_PVT.add_language;
2134 
2135   END add_language;
2136 
2137 END OKC_SECTIONS_PUB;