DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKE_TERMS_PUB

Source


1 PACKAGE BODY OKE_TERMS_PUB AS
2 /* $Header: OKEPTRMB.pls 115.7 2002/11/20 20:46:43 who ship $ */
3     g_api_type		CONSTANT VARCHAR2(4) := '_PUB';
4 
5   PROCEDURE create_term(
6     p_api_version       IN NUMBER,
7     p_init_msg_list     IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
8     x_return_status     OUT NOCOPY VARCHAR2,
9     x_msg_count         OUT NOCOPY NUMBER,
10     x_msg_data          OUT NOCOPY VARCHAR2,
11     p_term_rec		IN  oke_term_pvt.term_rec_type,
12     x_term_rec		OUT NOCOPY  oke_term_pvt.term_rec_type) IS
13 
14 
15     l_term_rec		oke_term_pvt.term_rec_type;
16 
17     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_TERM';
18     l_api_version	CONSTANT NUMBER	  := 1.0;
19     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
20 
21   BEGIN
22 
23     -- call START_ACTIVITY to create savepoint, check compatibility
24     -- and initialize message list
25     l_return_status := OKE_API.START_ACTIVITY(
26 			p_api_name      => l_api_name,
27 			p_pkg_name      => g_pkg_name,
28 			p_init_msg_list => p_init_msg_list,
29 			l_api_version   => l_api_version,
30 			p_api_version   => p_api_version,
31 			p_api_type      => g_api_type,
32 			x_return_status => x_return_status);
33 
34     -- check if activity started successfully
35     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
36        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
37     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
38        raise OKE_API.G_EXCEPTION_ERROR;
39     End If;
40 
41     l_term_rec := p_term_rec;
42 
43     -- call procedure in complex API
44 
45 	OKE_TERM_PVT.Insert_Row(
46 	    p_api_version	=> p_api_version,
47 	    p_init_msg_list	=> p_init_msg_list,
48             x_return_status 	=> x_return_status,
49             x_msg_count     	=> x_msg_count,
50             x_msg_data      	=> x_msg_data,
51             p_term_rec		=> l_term_rec,
52             x_term_rec		=> x_term_rec);
53 
54 
55     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
56 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
57     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
58 	  raise OKE_API.G_EXCEPTION_ERROR;
59     End If;
60 
61 
62     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
63 				x_msg_data	=> x_msg_data);
64   EXCEPTION
65     when OKE_API.G_EXCEPTION_ERROR then
66       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
67 			p_api_name  => l_api_name,
68 			p_pkg_name  => g_pkg_name,
69 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
70 			x_msg_count => x_msg_count,
71 			x_msg_data  => x_msg_data,
72 			p_api_type  => g_api_type);
73 
74     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
75       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
76 			p_api_name  => l_api_name,
77 			p_pkg_name  => g_pkg_name,
78 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
79 			x_msg_count => x_msg_count,
80 			x_msg_data  => x_msg_data,
81 			p_api_type  => g_api_type);
82 
83     when OTHERS then
84       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
85 			p_api_name  => l_api_name,
86 			p_pkg_name  => g_pkg_name,
87 			p_exc_name  => 'OTHERS',
88 			x_msg_count => x_msg_count,
89 			x_msg_data  => x_msg_data,
90 			p_api_type  => g_api_type);
91 
92   END create_term;
93 
94 
95 
96   PROCEDURE create_term(
97     p_api_version       IN NUMBER,
98     p_init_msg_list     IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
99     x_return_status     OUT NOCOPY VARCHAR2,
100     x_msg_count         OUT NOCOPY NUMBER,
101     x_msg_data          OUT NOCOPY VARCHAR2,
102     p_term_tbl		IN  oke_term_pvt.term_tbl_type,
103     x_term_tbl		OUT NOCOPY  oke_term_pvt.term_tbl_type) IS
104 
105     l_api_name		CONSTANT VARCHAR2(30) := 'CREATE_TERM';
106     l_api_version	CONSTANT NUMBER	  := 1.0;
107     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
108     l_overall_status VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
109     i			NUMBER;
110     l_term_tbl           oke_term_pvt.term_tbl_type;
111   BEGIN
112 
113     -- call START_ACTIVITY to create savepoint, check compatibility
114     -- and initialize message list
115     l_return_status := OKE_API.START_ACTIVITY(
116 			p_api_name      => l_api_name,
117 			p_pkg_name      => g_pkg_name,
118 			p_init_msg_list => p_init_msg_list,
119 			l_api_version   => l_api_version,
120 			p_api_version   => p_api_version,
121 			p_api_type      => g_api_type,
122 			x_return_status => x_return_status);
123 
124     -- check if activity started successfully
125     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
126        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
127     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
128        raise OKE_API.G_EXCEPTION_ERROR;
129     End If;
130 
131     OKE_TERM_PVT.Insert_Row(
132       p_api_version	=> p_api_version,
133       p_init_msg_list	=> p_init_msg_list,
134       x_return_status 	=> x_return_status,
135       x_msg_count     	=> x_msg_count,
136       x_msg_data      	=> x_msg_data,
137       p_term_tbl	=> p_term_tbl,
138       x_term_tbl	=> x_term_tbl);
139 
140 
141     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
142 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
143     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
144 	  raise OKE_API.G_EXCEPTION_ERROR;
145     End If;
146 
147     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
148 				x_msg_data	=> x_msg_data);
149   EXCEPTION
150     when OKE_API.G_EXCEPTION_ERROR then
151       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
152 			p_api_name  => l_api_name,
153 			p_pkg_name  => g_pkg_name,
154 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
155 			x_msg_count => x_msg_count,
156 			x_msg_data  => x_msg_data,
157 			p_api_type  => g_api_type);
158 
159     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
160       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
161 			p_api_name  => l_api_name,
162 			p_pkg_name  => g_pkg_name,
163 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
164 			x_msg_count => x_msg_count,
165 			x_msg_data  => x_msg_data,
166 			p_api_type  => g_api_type);
167 
168     when OTHERS then
169       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
170 			p_api_name  => l_api_name,
171 			p_pkg_name  => g_pkg_name,
172 			p_exc_name  => 'OTHERS',
173 			x_msg_count => x_msg_count,
174 			x_msg_data  => x_msg_data,
175 			p_api_type  => g_api_type);
176 
177   END create_term;
178 
179 /* not supported
180 
181 
182   PROCEDURE update_term(
183     p_api_version       IN NUMBER,
184     p_init_msg_list     IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
185     x_return_status     OUT NOCOPY VARCHAR2,
186     x_msg_count         OUT NOCOPY NUMBER,
187     x_msg_data          OUT NOCOPY VARCHAR2,
188     p_term_rec		IN oke_term_pvt.term_rec_type,
189     x_term_rec		OUT NOCOPY oke_term_pvt.term_rec_type) IS
190 
191     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_TERM';
192     l_api_version	CONSTANT NUMBER	  := 1.0;
193     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
194   BEGIN
195     -- call START_ACTIVITY to create savepoint, check compatibility
196     -- and initialize message list
197 
198 
199     l_return_status := OKE_API.START_ACTIVITY(
200 			p_api_name      => l_api_name,
201 			p_pkg_name      => g_pkg_name,
202 			p_init_msg_list => p_init_msg_list,
203 			l_api_version   => l_api_version,
204 			p_api_version   => p_api_version,
205 			p_api_type      => g_api_type,
206 			x_return_status => x_return_status);
207 
208     -- check if activity started successfully
209     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
210        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
211     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
212        raise OKE_API.G_EXCEPTION_ERROR;
213     End If;
214 
215     -- call complex api
216 
217     OKE_TERM_PVT.Update_Row(
218       p_api_version		=> p_api_version,
219       p_init_msg_list		=> p_init_msg_list,
220       x_return_status 		=> x_return_status,
221       x_msg_count     		=> x_msg_count,
222       x_msg_data      		=> x_msg_data,
223       p_term_rec			=> p_term_rec,
224       x_term_rec			=> x_term_rec);
225 
226 
227     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
228 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
229     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
230 	  raise OKE_API.G_EXCEPTION_ERROR;
231     End If;
232 
233     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
234 				x_msg_data	=> x_msg_data);
235 
236   EXCEPTION
237     when OKE_API.G_EXCEPTION_ERROR then
238       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
239 			p_api_name  => l_api_name,
240 			p_pkg_name  => g_pkg_name,
241 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
242 			x_msg_count => x_msg_count,
243 			x_msg_data  => x_msg_data,
244 			p_api_type  => g_api_type);
245 
246     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
247       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
248 			p_api_name  => l_api_name,
249 			p_pkg_name  => g_pkg_name,
250 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
251 			x_msg_count => x_msg_count,
252 			x_msg_data  => x_msg_data,
253 			p_api_type  => g_api_type);
254 
255     when OTHERS then
256       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
257 			p_api_name  => l_api_name,
258 			p_pkg_name  => g_pkg_name,
259 			p_exc_name  => 'OTHERS',
260 			x_msg_count => x_msg_count,
261 			x_msg_data  => x_msg_data,
262 			p_api_type  => g_api_type);
263 
264   END update_term;
265 
266 
267  PROCEDURE update_term(
268     p_api_version                  IN NUMBER,
269     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
270     x_return_status                OUT NOCOPY VARCHAR2,
271     x_msg_count                    OUT NOCOPY NUMBER,
272     x_msg_data                     OUT NOCOPY VARCHAR2,
273     p_term_tbl			   IN  oke_term_pvt.term_tbl_type,
274     x_term_tbl			   OUT NOCOPY  oke_term_pvt.term_tbl_type) IS
275 
276     l_api_name		CONSTANT VARCHAR2(30) := 'UPDATE_TERM';
277     l_api_version	CONSTANT NUMBER	  := 1.0;
278     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
279     l_overall_status VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
280     i			NUMBER;
281   BEGIN
282     -- call START_ACTIVITY to create savepoint, check compatibility
283     -- and initialize message list
284 
285     l_return_status := OKE_API.START_ACTIVITY(
286 			p_api_name      => l_api_name,
287 			p_pkg_name      => g_pkg_name,
288 			p_init_msg_list => p_init_msg_list,
289 			l_api_version   => l_api_version,
290 			p_api_version   => p_api_version,
291 			p_api_type      => g_api_type,
292 			x_return_status => x_return_status);
293 
294     -- check if activity started successfully
295     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
296        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
297     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
298        raise OKE_API.G_EXCEPTION_ERROR;
299 
300     End If;
301 
302     OKE_TERM_PVT.Update_Row(
303 	 p_api_version			=> p_api_version,
304 	 p_init_msg_list		=> p_init_msg_list,
305       x_return_status 		=> x_return_status,
306       x_msg_count     		=> x_msg_count,
307       x_msg_data      		=> x_msg_data,
308       p_term_tbl			=> p_term_tbl,
309       x_term_tbl			=> x_term_tbl);
310 
311 
312 
313     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
314 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
315     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
316 	  raise OKE_API.G_EXCEPTION_ERROR;
317     End If;
318 
319     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
320 				x_msg_data	=> x_msg_data);
321 
322   EXCEPTION
323     when OKE_API.G_EXCEPTION_ERROR then
324       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
325 			p_api_name  => l_api_name,
326 			p_pkg_name  => g_pkg_name,
327 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
328 			x_msg_count => x_msg_count,
329 			x_msg_data  => x_msg_data,
330 			p_api_type  => g_api_type);
331 
332     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
333       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
334 			p_api_name  => l_api_name,
335 			p_pkg_name  => g_pkg_name,
336 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
337 			x_msg_count => x_msg_count,
338 			x_msg_data  => x_msg_data,
339 			p_api_type  => g_api_type);
340 
341     when OTHERS then
342       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
343 			p_api_name  => l_api_name,
344 			p_pkg_name  => g_pkg_name,
345 			p_exc_name  => 'OTHERS',
346 			x_msg_count => x_msg_count,
347 			x_msg_data  => x_msg_data,
348 			p_api_type  => g_api_type);
349 
350   END update_term;
351 
352 
353 
354   PROCEDURE validate_term(
355     p_api_version                  IN NUMBER,
356     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
357     x_return_status                OUT NOCOPY VARCHAR2,
358     x_msg_count                    OUT NOCOPY NUMBER,
359     x_msg_data                     OUT NOCOPY VARCHAR2,
360     p_term_rec			   IN oke_term_pvt.term_rec_type) IS
361 
362     l_term_rec		oke_term_pvt.term_rec_type;
363     l_api_name		CONSTANT VARCHAR2(30) := 'VALIDATE_TERM';
364     l_api_version	CONSTANT NUMBER	  := 1.0;
365     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
366 
367   BEGIN
368     -- call START_ACTIVITY to create savepoint, check compatibility
369     -- and initialize message list
370     l_return_status := OKE_API.START_ACTIVITY(
371 			p_api_name      => l_api_name,
372 			p_pkg_name      => g_pkg_name,
373 			p_init_msg_list => p_init_msg_list,
374 			l_api_version   => l_api_version,
375 			p_api_version   => p_api_version,
376 			p_api_type      => g_api_type,
377 			x_return_status => x_return_status);
378 
379     -- check if activity started successfully
380     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
381        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
382     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
383        raise OKE_API.G_EXCEPTION_ERROR;
384     End If;
385 
386     -- call BEFORE user hook
387     l_term_rec := p_term_rec;
388 
389     -- call complex API
390 
391     OKE_TERM_PVT.Validate_Row(
392 	p_api_version		=> p_api_version,
393 	p_init_msg_list	=> p_init_msg_list,
394      	x_return_status 	=> x_return_status,
395       	x_msg_count     	=> x_msg_count,
396       	x_msg_data      	=> x_msg_data,
397       	p_term_rec		=> p_term_rec);
398 
399 
400     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
401 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
402     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
403 	  raise OKE_API.G_EXCEPTION_ERROR;
404     End If;
405 
406     -- end activity
407     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
408 				x_msg_data	=> x_msg_data);
409   EXCEPTION
410     when OKE_API.G_EXCEPTION_ERROR then
411       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
412 			p_api_name  => l_api_name,
413 			p_pkg_name  => g_pkg_name,
414 			p_exc_name  => 'OKE_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 OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
420       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
421 			p_api_name  => l_api_name,
422 			p_pkg_name  => g_pkg_name,
423 			p_exc_name  => 'OKE_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 := OKE_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 validate_term;
438 
439   PROCEDURE validate_term(
440     p_api_version                  IN NUMBER,
441     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
442     x_return_status                OUT NOCOPY VARCHAR2,
443     x_msg_count                    OUT NOCOPY NUMBER,
444     x_msg_data                     OUT NOCOPY VARCHAR2,
445     p_term_tbl			   IN oke_term_pvt.term_tbl_type) IS
446 
447     l_api_name		CONSTANT VARCHAR2(30) := 'VALIDATE_TERM';
448 
449     l_api_version	CONSTANT NUMBER	  := 1.0;
450     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
451     l_overall_status VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
452     i			NUMBER;
453     l_term_tbl       oke_term_pvt.term_tbl_type := p_term_tbl;
454   BEGIN
455     -- call START_ACTIVITY to create savepoint, check compatibility
456     -- and initialize message list
457     l_return_status := OKE_API.START_ACTIVITY(
458 			p_api_name      => l_api_name,
459 			p_pkg_name      => g_pkg_name,
460 			p_init_msg_list => p_init_msg_list,
461 			l_api_version   => l_api_version,
462 			p_api_version   => p_api_version,
463 			p_api_type      => g_api_type,
464 			x_return_status => x_return_status);
465 
466     -- check if activity started successfully
467     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
468        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
469     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
470        raise OKE_API.G_EXCEPTION_ERROR;
471     End If;
472 
473 
474     OKE_TERM_PVT.Validate_Row(
475 	 p_api_version		=> p_api_version,
476 	 p_init_msg_list	=> p_init_msg_list,
477       x_return_status 	=> x_return_status,
478       x_msg_count     	=> x_msg_count,
479       x_msg_data      	=> x_msg_data,
480       p_term_tbl		=> p_term_tbl);
481 
482 
483     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
484 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
485     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
486 	  raise OKE_API.G_EXCEPTION_ERROR;
487     End If;
488 
489     -- end activity
490     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
491 				x_msg_data	=> x_msg_data);
492   EXCEPTION
493     when OKE_API.G_EXCEPTION_ERROR then
494       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
495 			p_api_name  => l_api_name,
496 			p_pkg_name  => g_pkg_name,
497 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
498 			x_msg_count => x_msg_count,
499 			x_msg_data  => x_msg_data,
500 			p_api_type  => g_api_type);
501 
502     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
503       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
504 			p_api_name  => l_api_name,
505 			p_pkg_name  => g_pkg_name,
506 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
507 			x_msg_count => x_msg_count,
508 			x_msg_data  => x_msg_data,
509 			p_api_type  => g_api_type);
510 
511     when OTHERS then
512       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
513 			p_api_name  => l_api_name,
514 			p_pkg_name  => g_pkg_name,
515 			p_exc_name  => 'OTHERS',
516 			x_msg_count => x_msg_count,
517 			x_msg_data  => x_msg_data,
518 			p_api_type  => g_api_type);
519 
520   END validate_term;
521 
522 */
523 
524 
525   PROCEDURE delete_term(
526 
527     p_api_version                  IN NUMBER,
528     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
529     x_return_status                OUT NOCOPY VARCHAR2,
530     x_msg_count                    OUT NOCOPY NUMBER,
531     x_msg_data                     OUT NOCOPY VARCHAR2,
532     p_term_rec			   IN oke_term_pvt.term_rec_type) IS
533 
534     l_term_rec		oke_term_pvt.term_rec_type;
535     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_TERM';
536     l_api_version	CONSTANT NUMBER	  := 1.0;
537     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
538   BEGIN
539 
540     -- call START_ACTIVITY to create savepoint, check compatibility
541     -- and initialize message list
542     l_return_status := OKE_API.START_ACTIVITY(
543 			p_api_name      => l_api_name,
544 			p_pkg_name      => g_pkg_name,
545 			p_init_msg_list => p_init_msg_list,
546 			l_api_version   => l_api_version,
547 			p_api_version   => p_api_version,
548 			p_api_type      => g_api_type,
549 			x_return_status => x_return_status);
550 
551     -- check if activity started successfully
552     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
553        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
554     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
555        raise OKE_API.G_EXCEPTION_ERROR;
556     End If;
557 
558     l_term_rec := p_term_rec;
559 
560     -- call complex api
561 
562     	OKE_TERM_PVT.delete_row(
563 	 	p_api_version		=> p_api_version,
564 	 	p_init_msg_list	=> p_init_msg_list,
565       		x_return_status 	=> x_return_status,
566       		x_msg_count     	=> x_msg_count,
567       		x_msg_data      	=> x_msg_data,
568       		p_term_rec		=> p_term_rec);
569 
570 
571     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
572 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
573     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
574 	  raise OKE_API.G_EXCEPTION_ERROR;
575     End If;
576 
577     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
578 				x_msg_data	=> x_msg_data);
579   EXCEPTION
580     when OKE_API.G_EXCEPTION_ERROR then
581       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
582 			p_api_name  => l_api_name,
583 			p_pkg_name  => g_pkg_name,
584 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
585 			x_msg_count => x_msg_count,
586 			x_msg_data  => x_msg_data,
587 			p_api_type  => g_api_type);
588 
589     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
590       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
591 			p_api_name  => l_api_name,
592 			p_pkg_name  => g_pkg_name,
593 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
594 			x_msg_count => x_msg_count,
595 			x_msg_data  => x_msg_data,
596 			p_api_type  => g_api_type);
597 
598     when OTHERS then
599       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
600 			p_api_name  => l_api_name,
601 			p_pkg_name  => g_pkg_name,
602 			p_exc_name  => 'OTHERS',
603 			x_msg_count => x_msg_count,
604 			x_msg_data  => x_msg_data,
605 			p_api_type  => g_api_type);
606 
607   END delete_term;
608 
609   PROCEDURE delete_term(
610     p_api_version                  IN NUMBER,
611     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
612     x_return_status                OUT NOCOPY VARCHAR2,
613     x_msg_count                    OUT NOCOPY NUMBER,
614     x_msg_data                     OUT NOCOPY VARCHAR2,
615     p_term_tbl			   IN  oke_term_pvt.term_tbl_type) IS
616 
617     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_TERM';
618     l_api_version	CONSTANT NUMBER	  := 1.0;
619     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
620     l_overall_status VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
621     i			NUMBER;
622   BEGIN
623 
624     -- call START_ACTIVITY to create savepoint, check compatibility
625     -- and initialize message list
626     l_return_status := OKE_API.START_ACTIVITY(
627 			p_api_name      => l_api_name,
628 			p_pkg_name      => g_pkg_name,
629 			p_init_msg_list => p_init_msg_list,
630 			l_api_version   => l_api_version,
631 			p_api_version   => p_api_version,
632 			p_api_type      => g_api_type,
633 			x_return_status => x_return_status);
634 
635     -- check if activity started successfully
636     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
637        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
638     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
639        raise OKE_API.G_EXCEPTION_ERROR;
640     End If;
641 
642 
643     OKE_TERM_PVT.Delete_Row(
644       p_api_version	=> p_api_version,
645       p_init_msg_list	=> p_init_msg_list,
646       x_return_status 	=> x_return_status,
647       x_msg_count     	=> x_msg_count,
648       x_msg_data      	=> x_msg_data,
649       p_term_tbl	=> p_term_tbl);
650 
651 
652 
653     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
654 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
655     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
656 	  raise OKE_API.G_EXCEPTION_ERROR;
657     End If;
658 
659     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
660 				x_msg_data	=> x_msg_data);
661   EXCEPTION
662     when OKE_API.G_EXCEPTION_ERROR then
663       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
664 			p_api_name  => l_api_name,
665 			p_pkg_name  => g_pkg_name,
666 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
667 			x_msg_count => x_msg_count,
668 			x_msg_data  => x_msg_data,
669 			p_api_type  => g_api_type);
670 
671     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
672       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
673 			p_api_name  => l_api_name,
674 			p_pkg_name  => g_pkg_name,
675 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
676 			x_msg_count => x_msg_count,
677 			x_msg_data  => x_msg_data,
678 			p_api_type  => g_api_type);
679 
680     when OTHERS then
681       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
682 			p_api_name  => l_api_name,
683 			p_pkg_name  => g_pkg_name,
684 			p_exc_name  => 'OTHERS',
685 			x_msg_count => x_msg_count,
686 			x_msg_data  => x_msg_data,
687 			p_api_type  => g_api_type);
688 
689   END delete_term;
690 
691 
692   PROCEDURE delete_term(
693 
694     p_api_version                  IN NUMBER,
695     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
696     x_return_status                OUT NOCOPY VARCHAR2,
697     x_msg_count                    OUT NOCOPY NUMBER,
698     x_msg_data                     OUT NOCOPY VARCHAR2,
699     p_chr_id		IN NUMBER,
700     p_cle_id		IN NUMBER,
701     p_trm_cd		IN OKE_K_TERMS.TERM_CODE%TYPE,
702     p_trm_val_pk1	IN OKE_K_TERMS.TERM_VALUE_PK1%TYPE,
703     p_trm_val_pk2	IN OKE_K_TERMS.TERM_VALUE_PK2%TYPE) IS
704 
705     l_term_rec		oke_term_pvt.term_rec_type;
706     l_api_name		CONSTANT VARCHAR2(30) := 'DELETE_TERM';
707     l_api_version	CONSTANT NUMBER	  := 1.0;
708     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
709     l_check_num1	NUMBER;
710     l_check_num2	NUMBER;
711 
712   BEGIN
713 
714     -- call START_ACTIVITY to create savepoint, check compatibility
715     -- and initialize message list
716     l_return_status := OKE_API.START_ACTIVITY(
717 			p_api_name      => l_api_name,
718 			p_pkg_name      => g_pkg_name,
719 			p_init_msg_list => p_init_msg_list,
720 			l_api_version   => l_api_version,
721 			p_api_version   => p_api_version,
722 			p_api_type      => g_api_type,
723 			x_return_status => x_return_status);
724 
725     -- check if activity started successfully
726     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
727        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
728     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
729        raise OKE_API.G_EXCEPTION_ERROR;
730     End If;
731 
732 	If (p_cle_id IS NOT NULL) Then
733 		OKE_TERM_PVT.delete_row(
734 	 	p_api_version		=> p_api_version,
735 	 	p_init_msg_list		=> p_init_msg_list,
736       		x_return_status 	=> x_return_status,
737       		x_msg_count     	=> x_msg_count,
738       		x_msg_data      	=> x_msg_data,
739       		p_cle_id		=> p_cle_id,
740 		p_trm_cd		=> p_trm_cd,
741 		p_trm_val_pk1		=> p_trm_val_pk1,
742 		p_trm_val_pk2		=> p_trm_val_pk2);
743 
744 
745 	Else
746 		OKE_TERM_PVT.delete_row(
747 	 	p_api_version		=> p_api_version,
748 	 	p_init_msg_list		=> p_init_msg_list,
749       		x_return_status 	=> x_return_status,
750       		x_msg_count     	=> x_msg_count,
751       		x_msg_data      	=> x_msg_data,
752       		p_chr_id		=> p_chr_id,
753 		p_trm_cd		=> p_trm_cd,
754 		p_trm_val_pk1		=> p_trm_val_pk1,
755 		p_trm_val_pk2		=> p_trm_val_pk2);
756 
757 	End If;
758 
759 
760 
761     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
762 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
763     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
764 	  raise OKE_API.G_EXCEPTION_ERROR;
765     End If;
766 
767 
768     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
769 				x_msg_data	=> x_msg_data);
770   EXCEPTION
771     when OKE_API.G_EXCEPTION_ERROR then
772       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
773 			p_api_name  => l_api_name,
774 			p_pkg_name  => g_pkg_name,
775 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
776 			x_msg_count => x_msg_count,
777 			x_msg_data  => x_msg_data,
778 			p_api_type  => g_api_type);
779 
780     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
781       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
782 			p_api_name  => l_api_name,
783 			p_pkg_name  => g_pkg_name,
784 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
785 			x_msg_count => x_msg_count,
786 			x_msg_data  => x_msg_data,
787 			p_api_type  => g_api_type);
788 
789     when OTHERS then
790       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
791 			p_api_name  => l_api_name,
792 			p_pkg_name  => g_pkg_name,
793 			p_exc_name  => 'OTHERS',
794 			x_msg_count => x_msg_count,
795 			x_msg_data  => x_msg_data,
796 			p_api_type  => g_api_type);
797 
798   END delete_term;
799 
800 
801    PROCEDURE copy_term(
802     p_api_version                  IN NUMBER,
803     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_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_from_level		IN VARCHAR2,
808     p_to_level			IN VARCHAR2,
809     p_from_chr_id		IN NUMBER,
810     p_to_chr_id			IN NUMBER,
811     p_from_cle_id		IN NUMBER,
812     p_to_cle_id			IN NUMBER
813 ) IS
814 
815 
816     l_term_tbl		oke_term_pvt.term_tbl_type;
817     l_term_rec		oke_term_pvt.term_rec_type;
818     l_api_name		CONSTANT VARCHAR2(30) := 'COPY_TERM';
819     l_api_version	CONSTANT NUMBER	  := 1.0;
820     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
821     l_rec_num		NUMBER:=0;
822 
823     x_term_tbl		oke_term_pvt.term_tbl_type;
824 
825     CURSOR term_cle_csr (p_id  IN NUMBER) IS
826     SELECT
827 		b.K_HEADER_ID			,
828 		b.K_LINE_ID			,
829 		b.TERM_CODE			,
830 		b.TERM_VALUE_PK1		,
831 		b.TERM_VALUE_PK2		,
832 		b.CREATION_DATE			,
833 		b.CREATED_BY			,
834 		b.LAST_UPDATE_DATE		,
835 		b.LAST_UPDATED_BY		,
836 		b.LAST_UPDATE_LOGIN		,
837 		b.ATTRIBUTE_CATEGORY		,
838 		b.ATTRIBUTE1			,
839 		b.ATTRIBUTE2			,
840 		b.ATTRIBUTE3			,
841 		b.ATTRIBUTE4			,
842 		b.ATTRIBUTE5			,
843 		b.ATTRIBUTE6			,
844 		b.ATTRIBUTE7			,
845 		b.ATTRIBUTE8			,
846 		b.ATTRIBUTE9			,
847 		b.ATTRIBUTE10			,
848 		b.ATTRIBUTE11			,
849 		b.ATTRIBUTE12			,
850 		b.ATTRIBUTE13			,
851 		b.ATTRIBUTE14			,
852 		b.ATTRIBUTE15
853     FROM OKE_K_TERMS b
854     WHERE b.K_LINE_ID = p_id;
855 
856     CURSOR term_chr_csr (p_id IN NUMBER) IS
857     SELECT
858 		b.K_HEADER_ID			,
859 		b.K_LINE_ID			,
860 		b.TERM_CODE			,
861 		b.TERM_VALUE_PK1		,
862 		b.TERM_VALUE_PK2		,
863 		b.CREATION_DATE			,
864 		b.CREATED_BY			,
865 		b.LAST_UPDATE_DATE		,
866 		b.LAST_UPDATED_BY		,
867 		b.LAST_UPDATE_LOGIN		,
868 		b.ATTRIBUTE_CATEGORY		,
869 		b.ATTRIBUTE1			,
870 		b.ATTRIBUTE2			,
871 		b.ATTRIBUTE3			,
872 		b.ATTRIBUTE4			,
873 		b.ATTRIBUTE5			,
874 		b.ATTRIBUTE6			,
875 		b.ATTRIBUTE7			,
876 		b.ATTRIBUTE8			,
877 		b.ATTRIBUTE9			,
878 		b.ATTRIBUTE10			,
879 		b.ATTRIBUTE11			,
880 		b.ATTRIBUTE12			,
881 		b.ATTRIBUTE13			,
882 		b.ATTRIBUTE14			,
883 		b.ATTRIBUTE15
884     FROM OKE_K_TERMS b
885     WHERE (b.K_HEADER_ID = p_id) AND (b.K_LINE_ID IS NULL);
886 
887 
888   BEGIN
889 
890 
891     -- call START_ACTIVITY to create savepoint, check compatibility
892     -- and initialize message list
893     l_return_status := OKE_API.START_ACTIVITY(
894 			p_api_name      => l_api_name,
895 			p_pkg_name      => g_pkg_name,
896 			p_init_msg_list => p_init_msg_list,
897 			l_api_version   => l_api_version,
898 			p_api_version   => p_api_version,
899 			p_api_type      => g_api_type,
900 			x_return_status => x_return_status);
901 
902     -- check if activity started successfully
903     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
904        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
905     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
906        raise OKE_API.G_EXCEPTION_ERROR;
907     End If;
908 
909 
910 
911     IF( p_from_level='H' ) THEN
912 
913 	OPEN term_chr_csr (p_from_chr_id);
914 	LOOP
915 	FETCH term_chr_csr INTO
916 		l_term_rec.K_HEADER_ID			,
917 		l_term_rec.K_LINE_ID			,
918 		l_term_rec.TERM_CODE			,
919 		l_term_rec.TERM_VALUE_PK1		,
920 		l_term_rec.TERM_VALUE_PK2		,
921 		l_term_rec.CREATION_DATE		,
922 		l_term_rec.CREATED_BY			,
923 		l_term_rec.LAST_UPDATE_DATE		,
924 		l_term_rec.LAST_UPDATED_BY		,
925 		l_term_rec.LAST_UPDATE_LOGIN		,
926 		l_term_rec.ATTRIBUTE_CATEGORY		,
927 		l_term_rec.ATTRIBUTE1			,
928 		l_term_rec.ATTRIBUTE2			,
929 		l_term_rec.ATTRIBUTE3			,
930 		l_term_rec.ATTRIBUTE4			,
931 		l_term_rec.ATTRIBUTE5			,
932 		l_term_rec.ATTRIBUTE6			,
933 		l_term_rec.ATTRIBUTE7			,
934 		l_term_rec.ATTRIBUTE8			,
935 		l_term_rec.ATTRIBUTE9			,
936 		l_term_rec.ATTRIBUTE10			,
937 		l_term_rec.ATTRIBUTE11			,
938 		l_term_rec.ATTRIBUTE12			,
939 		l_term_rec.ATTRIBUTE13			,
940 		l_term_rec.ATTRIBUTE14			,
941 		l_term_rec.ATTRIBUTE15			;
942 	EXIT WHEN term_chr_csr%NOTFOUND;
943 
944 	l_rec_num := l_rec_num+1;
945 
946 	IF(p_to_chr_id IS NULL)AND(p_to_cle_id IS NULL) THEN
947 		raise OKE_API.G_EXCEPTION_ERROR;
948 	END IF;
949 
950 	IF(p_to_chr_id IS NULL) THEN
951 		l_term_rec.K_HEADER_ID := l_term_rec.K_HEADER_ID ;
952 		l_term_rec.K_LINE_ID := p_to_cle_id;
953 	ELSE
954 		IF(p_to_cle_id IS NULL) THEN
955 			l_term_rec.K_HEADER_ID := p_to_chr_id;
956 			l_term_rec.K_LINE_ID := NULL;
957 		ELSE
958 			l_term_rec.K_HEADER_ID := p_to_chr_id;
959 			l_term_rec.K_LINE_ID := p_to_cle_id;
960 		END IF;
961 	END IF;
962 
963 	l_term_tbl(l_rec_num) := l_term_rec;
964 
965 
966 	END LOOP;
967 	CLOSE term_chr_csr;
968 
969     	OKE_TERM_PVT.Insert_Row(
970       		p_api_version	=> p_api_version,
971       		p_init_msg_list	=> p_init_msg_list,
972       		x_return_status 	=> x_return_status,
973       		x_msg_count     	=> x_msg_count,
974       		x_msg_data      	=> x_msg_data,
975       		p_term_tbl		=> l_term_tbl,
976       		x_term_tbl		=> x_term_tbl);
977 
978     	If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
979 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
980     	Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
981 	  raise OKE_API.G_EXCEPTION_ERROR;
982     	End If;
983 
984 
985     ELSIF( p_from_level='L' ) THEN
986 
987 	OPEN term_cle_csr (p_from_cle_id);
988 	LOOP
989 	FETCH term_cle_csr INTO
990 		l_term_rec.K_HEADER_ID			,
991 		l_term_rec.K_LINE_ID			,
992 		l_term_rec.TERM_CODE		,
993 		l_term_rec.TERM_VALUE_PK1	,
994 		l_term_rec.TERM_VALUE_PK2	,
995 		l_term_rec.CREATION_DATE		,
996 		l_term_rec.CREATED_BY			,
997 		l_term_rec.LAST_UPDATE_DATE		,
998 		l_term_rec.LAST_UPDATED_BY		,
999 		l_term_rec.LAST_UPDATE_LOGIN		,
1000 		l_term_rec.ATTRIBUTE_CATEGORY		,
1001 		l_term_rec.ATTRIBUTE1			,
1002 		l_term_rec.ATTRIBUTE2			,
1003 		l_term_rec.ATTRIBUTE3			,
1004 		l_term_rec.ATTRIBUTE4			,
1005 		l_term_rec.ATTRIBUTE5			,
1006 		l_term_rec.ATTRIBUTE6			,
1007 		l_term_rec.ATTRIBUTE7			,
1008 		l_term_rec.ATTRIBUTE8			,
1009 		l_term_rec.ATTRIBUTE9			,
1010 		l_term_rec.ATTRIBUTE10			,
1011 		l_term_rec.ATTRIBUTE11			,
1012 		l_term_rec.ATTRIBUTE12			,
1013 		l_term_rec.ATTRIBUTE13			,
1014 		l_term_rec.ATTRIBUTE14			,
1015 		l_term_rec.ATTRIBUTE15			;
1016 	EXIT WHEN term_cle_csr%NOTFOUND;
1017 
1018 	l_rec_num := l_rec_num+1;
1019 
1020 	IF(p_to_chr_id IS NULL)AND(p_to_cle_id IS NULL) THEN
1021 		raise OKE_API.G_EXCEPTION_ERROR;
1022 	END IF;
1023 
1024 	IF(p_to_chr_id IS NULL) THEN
1025 		l_term_rec.K_HEADER_ID := l_term_rec.K_HEADER_ID ;
1026 		l_term_rec.K_LINE_ID := p_to_cle_id;
1027 	ELSE
1028 		IF(p_to_cle_id IS NULL) THEN
1029 			l_term_rec.K_HEADER_ID := p_to_chr_id;
1030 			l_term_rec.K_LINE_ID := NULL;
1031 		ELSE
1032 			l_term_rec.K_HEADER_ID := p_to_chr_id;
1033 			l_term_rec.K_LINE_ID := p_to_cle_id;
1034 		END IF;
1035 	END IF;
1036 
1037 	l_term_tbl(l_rec_num) := l_term_rec;
1038 
1039 
1040 	END LOOP;
1041 	CLOSE term_cle_csr;
1042 
1043 
1044     	OKE_TERM_PVT.Insert_Row(
1045       		p_api_version	=> p_api_version,
1046       		p_init_msg_list	=> p_init_msg_list,
1047       		x_return_status 	=> x_return_status,
1048       		x_msg_count     	=> x_msg_count,
1049       		x_msg_data      	=> x_msg_data,
1050       		p_term_tbl		=> l_term_tbl,
1051       		x_term_tbl		=> x_term_tbl);
1052 
1053     	If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1054 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1055     	Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1056 	  raise OKE_API.G_EXCEPTION_ERROR;
1057     	End If;
1058 
1059   ELSE
1060 	raise OKE_API.G_EXCEPTION_ERROR;
1061   END IF;
1062 
1063     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
1064 				x_msg_data	=> x_msg_data);
1065   EXCEPTION
1066     when OKE_API.G_EXCEPTION_ERROR then
1067       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1068 			p_api_name  => l_api_name,
1069 			p_pkg_name  => g_pkg_name,
1070 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
1071 			x_msg_count => x_msg_count,
1072 			x_msg_data  => x_msg_data,
1073 			p_api_type  => g_api_type);
1074 
1075     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1076       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1077 			p_api_name  => l_api_name,
1078 			p_pkg_name  => g_pkg_name,
1079 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_ERROR',
1080 			x_msg_count => x_msg_count,
1081 			x_msg_data  => x_msg_data,
1082 			p_api_type  => g_api_type);
1083 
1084     when OTHERS then
1085       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1086 			p_api_name  => l_api_name,
1087 			p_pkg_name  => g_pkg_name,
1088 			p_exc_name  => 'OTHERS',
1089 			x_msg_count => x_msg_count,
1090 			x_msg_data  => x_msg_data,
1091 			p_api_type  => g_api_type);
1092 
1093   END copy_term;
1094 
1095 
1096 
1097   PROCEDURE lock_term(
1098     p_api_version       IN NUMBER,
1099     p_init_msg_list     IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1100     x_return_status     OUT NOCOPY VARCHAR2,
1101     x_msg_count         OUT NOCOPY NUMBER,
1102     x_msg_data          OUT NOCOPY VARCHAR2,
1103     p_term_rec           IN OKE_TERM_PVT.term_rec_type) IS
1104 
1105 
1106     l_del_rec		oke_deliverable_pvt.del_rec_type;
1107     l_api_name		CONSTANT VARCHAR2(30) := 'LOCK_TERM';
1108     l_api_version	CONSTANT NUMBER	  := 1.0;
1109     l_return_status	VARCHAR2(1)	  := OKE_API.G_RET_STS_SUCCESS;
1110 
1111   BEGIN
1112     l_return_status := OKE_API.START_ACTIVITY(
1113 			p_api_name      => l_api_name,
1114 			p_pkg_name      => g_pkg_name,
1115 			p_init_msg_list => p_init_msg_list,
1116 			l_api_version   => l_api_version,
1117 			p_api_version   => p_api_version,
1118 			p_api_type      => g_api_type,
1119 			x_return_status => x_return_status);
1120 
1121     -- check if activity started successfully
1122     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1123        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1124     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1125        raise OKE_API.G_EXCEPTION_ERROR;
1126     End If;
1127 
1128     OKE_TERM_PVT.Lock_Row(
1129 	 p_api_version		=> p_api_version,
1130 	 p_init_msg_list	=> p_init_msg_list,
1131       x_return_status 	=> x_return_status,
1132       x_msg_count     	=> x_msg_count,
1133       x_msg_data      	=> x_msg_data,
1134       p_term_rec		=> p_term_rec);
1135 
1136     -- check return status
1137     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1138 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1139     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1140 	  raise OKE_API.G_EXCEPTION_ERROR;
1141     End If;
1142 
1143     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
1144 				x_msg_data	=> x_msg_data);
1145   EXCEPTION
1146     when OKE_API.G_EXCEPTION_ERROR then
1147       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1148 			p_api_name  => l_api_name,
1149 			p_pkg_name  => g_pkg_name,
1150 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
1151 			x_msg_count => x_msg_count,
1152 			x_msg_data  => x_msg_data,
1153 			p_api_type  => g_api_type);
1154 
1155     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1156       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1157 			p_api_name  => l_api_name,
1158 			p_pkg_name  => g_pkg_name,
1159 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_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 OTHERS then
1165       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1166 			p_api_name  => l_api_name,
1167 			p_pkg_name  => g_pkg_name,
1168 			p_exc_name  => 'OTHERS',
1169 			x_msg_count => x_msg_count,
1170 			x_msg_data  => x_msg_data,
1171 			p_api_type  => g_api_type);
1172 
1173   END lock_term;
1174 
1175   PROCEDURE lock_term(
1176     p_api_version                  IN NUMBER,
1177     p_init_msg_list                IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1178     x_return_status                OUT NOCOPY VARCHAR2,
1179     x_msg_count                    OUT NOCOPY NUMBER,
1180     x_msg_data                     OUT NOCOPY VARCHAR2,
1181     p_term_tbl                     IN oke_term_pvt.term_tbl_type) IS
1182 
1183     l_api_name		CONSTANT VARCHAR2(30) := 'LOCK_TERM';
1184     l_api_version	CONSTANT NUMBER	  := 1.0;
1185     l_return_status	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
1186     l_overall_status 	VARCHAR2(1)		  := OKE_API.G_RET_STS_SUCCESS;
1187     i			NUMBER;
1188   BEGIN
1189 
1190     -- call START_ACTIVITY to create savepoint, check compatibility
1191     -- and initialize message list
1192     l_return_status := OKE_API.START_ACTIVITY(
1193 			p_api_name      => l_api_name,
1194 			p_pkg_name      => g_pkg_name,
1195 			p_init_msg_list => p_init_msg_list,
1196 			l_api_version   => l_api_version,
1197 			p_api_version   => p_api_version,
1198 			p_api_type      => g_api_type,
1199 			x_return_status => x_return_status);
1200 
1201     -- check if activity started successfully
1202     If (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) then
1203        raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1204     Elsif (l_return_status = OKE_API.G_RET_STS_ERROR) then
1205        raise OKE_API.G_EXCEPTION_ERROR;
1206     End If;
1207 
1208     If (p_term_tbl.COUNT > 0) Then
1209 	   i := p_term_tbl.FIRST;
1210 	   LOOP
1211 		-- call procedure in complex API
1212 		OKE_TERM_PVT.lock_row(
1213 			p_api_version		=> p_api_version,
1214 			p_init_msg_list	=> p_init_msg_list,
1215 			x_return_status 	=> x_return_status,
1216 			x_msg_count     	=> x_msg_count,
1217 			x_msg_data      	=> x_msg_data,
1218 			p_term_rec		=> p_term_tbl(i));
1219 
1220 		-- store the highest degree of error
1221 		If x_return_status <> OKE_API.G_RET_STS_SUCCESS Then
1222 		   If l_overall_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
1223 			 l_overall_status := x_return_status;
1224 		   End If;
1225 		End If;
1226        		EXIT WHEN (i = p_term_tbl.LAST);
1227 		i := p_term_tbl.NEXT(i);
1228 	   END LOOP;
1229 	   -- return overall status
1230 	   x_return_status := l_overall_status;
1231     End If;
1232 
1233     If x_return_status = OKE_API.G_RET_STS_UNEXP_ERROR Then
1234 	  raise OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1235     Elsif x_return_status = OKE_API.G_RET_STS_ERROR Then
1236 	  raise OKE_API.G_EXCEPTION_ERROR;
1237     End If;
1238 
1239     -- end activity
1240 
1241     OKE_API.END_ACTIVITY(	x_msg_count	=> x_msg_count,
1242 				x_msg_data	=> x_msg_data);
1243   EXCEPTION
1244     when OKE_API.G_EXCEPTION_ERROR then
1245       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1246 			p_api_name  => l_api_name,
1247 			p_pkg_name  => g_pkg_name,
1248 			p_exc_name  => 'OKE_API.G_RET_STS_ERROR',
1249 			x_msg_count => x_msg_count,
1250 			x_msg_data  => x_msg_data,
1251 			p_api_type  => g_api_type);
1252 
1253     when OKE_API.G_EXCEPTION_UNEXPECTED_ERROR then
1254       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1255 			p_api_name  => l_api_name,
1256 			p_pkg_name  => g_pkg_name,
1257 			p_exc_name  => 'OKE_API.G_RET_STS_UNEXP_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 OTHERS then
1263       x_return_status := OKE_API.HANDLE_EXCEPTIONS(
1264 			p_api_name  => l_api_name,
1265 			p_pkg_name  => g_pkg_name,
1266 			p_exc_name  => 'OTHERS',
1267 			x_msg_count => x_msg_count,
1268 			x_msg_data  => x_msg_data,
1269 			p_api_type  => g_api_type);
1270 
1271   END lock_term;
1272 
1273 END OKE_TERMS_PUB;
1274