DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_AQERRMSG_PUB

Source


4 
1 package body okc_aqerrmsg_pub as
2 /* $Header: OKCPAQEB.pls 120.0 2005/05/26 09:43:31 appldev noship $ */
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5   FUNCTION migrate_aqev(p_aqev_rec1 IN aqev_rec_type,
6                         p_aqev_rec2 IN aqev_rec_type)
7     RETURN aqev_rec_type IS
8     l_aqev_rec aqev_rec_type;
9   BEGIN
10     l_aqev_rec.id                    := p_aqev_rec1.id;
11     l_aqev_rec.source_name 	     := p_aqev_rec1.source_name;
12     l_aqev_rec.datetime              := p_aqev_rec1.datetime;
13     l_aqev_rec.q_name                := p_aqev_rec1.q_name;
14     l_aqev_rec.msgid                 := p_aqev_rec1.msgid;
15     l_aqev_rec.retry_count           := p_aqev_rec1.retry_count;
16     l_aqev_rec.queue_contents        := p_aqev_rec1.queue_contents;
17     l_aqev_rec.created_by            := p_aqev_rec1.created_by;
18     l_aqev_rec.creation_date         := p_aqev_rec1.creation_date;
19     l_aqev_rec.last_updated_by       := p_aqev_rec1.last_updated_by;
20     l_aqev_rec.last_update_date      := p_aqev_rec1.last_update_date;
21     l_aqev_rec.last_update_login     := p_aqev_rec1.last_update_login;
22      RETURN (l_aqev_rec);
23   END migrate_aqev;
24 
25   FUNCTION migrate_aqmv(p_aqmv_rec1 IN aqmv_rec_type,
26                         p_aqmv_rec2 IN aqmv_rec_type)
27     RETURN aqmv_rec_type IS
28     l_aqmv_rec aqmv_rec_type;
29   BEGIN
30     l_aqmv_rec.aqe_id                 := p_aqmv_rec1.aqe_id;
31     l_aqmv_rec.msg_seq_no            := p_aqmv_rec1.msg_seq_no;
32     l_aqmv_rec.message_name          := p_aqmv_rec1.message_name;
33     l_aqmv_rec.message_number        := p_aqmv_rec1.message_number;
34     l_aqmv_rec.message_text          := p_aqmv_rec1.message_text;
35     l_aqmv_rec.created_by            := p_aqmv_rec1.created_by;
36     l_aqmv_rec.creation_date         := p_aqmv_rec1.creation_date;
37     l_aqmv_rec.last_updated_by       := p_aqmv_rec1.last_updated_by;
38     l_aqmv_rec.last_update_date      := p_aqmv_rec1.last_update_date;
39     l_aqmv_rec.last_update_login     := p_aqmv_rec1.last_update_login;
40     RETURN (l_aqmv_rec);
41   END migrate_aqmv;
42 
43   --Object type procedure for insert
44   PROCEDURE create_err_msg(
45     p_api_version	    IN NUMBER,
46     p_init_msg_list         IN VARCHAR2 ,
47     x_return_status         OUT NOCOPY VARCHAR2,
48     x_msg_count             OUT NOCOPY NUMBER,
49     x_msg_data              OUT NOCOPY VARCHAR2,
50     p_aqev_rec		    IN aqev_rec_type,
51     p_aqmv_tbl              IN aqmv_tbl_type,
52     x_aqev_rec              OUT NOCOPY aqev_rec_type,
53     x_aqmv_tbl              OUT NOCOPY aqmv_tbl_type) IS
54 
55     l_api_name              CONSTANT VARCHAR2(30) := 'create_err_msg';
56     l_return_status	    VARCHAR2(1);
57     l_aqev_rec              aqev_rec_type;
58     l_aqmv_tbl              aqmv_tbl_type := p_aqmv_tbl;
59     i			    NUMBER;
60   BEGIN
61     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
62 					      p_init_msg_list,
63 					      '_PUB',
64                                               x_return_status);
65     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
66       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
67     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
68       raise OKC_API.G_EXCEPTION_ERROR;
69     END IF;
70 
71     --Call to simple API
72     okc_aqe_pvt.insert_row(
73     	p_api_version,
74     	p_init_msg_list,
75     	x_return_status,
76     	x_msg_count,
77     	x_msg_data,
78     	p_aqev_rec,
79     	x_aqev_rec);
80     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
81       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
82     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
83       		RAISE OKC_API.G_EXCEPTION_ERROR;
84     	END IF;
85 
86     -- Populate the foreign key for the detail
87     IF (l_aqmv_tbl.COUNT > 0) THEN
88        i := l_aqmv_tbl.FIRST;
89        LOOP
90           l_aqmv_tbl(i).aqe_id := x_aqev_rec.id;
91           EXIT WHEN (i = l_aqmv_tbl.LAST);
92           i := l_aqmv_tbl.NEXT(i);
93        END LOOP;
94     END IF;
95 
96     --Populate the detail
97     okc_aqm_pvt.insert_row(
98     	p_api_version,
99     	p_init_msg_list,
100     	x_return_status,
101    	x_msg_count,
102     	x_msg_data,
103     	l_aqmv_tbl,
104     	x_aqmv_tbl);
105 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
106       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
107     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
108       		RAISE OKC_API.G_EXCEPTION_ERROR;
109     	END IF;
110 
111     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
112   EXCEPTION
113     WHEN OKC_API.G_EXCEPTION_ERROR THEN
114       x_return_status := OKC_API.HANDLE_EXCEPTIONS
115       (l_api_name,
116        G_PKG_NAME,
117        'OKC_API.G_RET_STS_ERROR',
118        x_msg_count,
119        x_msg_data,
120        '_PUB');
121     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
122       x_return_status := OKC_API.HANDLE_EXCEPTIONS
123       (l_api_name,
124        G_PKG_NAME,
125        'OKC_API.G_RET_STS_UNEXP_ERROR',
126        x_msg_count,
127        x_msg_data,
128        '_PUB');
129     WHEN OTHERS THEN
133        'OTHERS',
130       x_return_status := OKC_API.HANDLE_EXCEPTIONS
131       (l_api_name,
132        G_PKG_NAME,
134        x_msg_count,
135        x_msg_data,
136        '_PUB');
137   END create_err_msg;
138 
139   --Object type procedure for update
140   PROCEDURE update_err_msg(
141     p_api_version	    IN NUMBER,
142     p_init_msg_list         IN VARCHAR2 ,
143     x_return_status         OUT NOCOPY VARCHAR2,
144     x_msg_count             OUT NOCOPY NUMBER,
145     x_msg_data              OUT NOCOPY VARCHAR2,
146     p_aqev_rec		    IN aqev_rec_type,
147     p_aqmv_tbl              IN aqmv_tbl_type,
148     x_aqev_rec              OUT NOCOPY aqev_rec_type,
149     x_aqmv_tbl              OUT NOCOPY aqmv_tbl_type) IS
150 
151     l_api_version           CONSTANT NUMBER := 1;
152     l_api_name              CONSTANT VARCHAR2(30) := 'update_err_msg';
153     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
154 
155   BEGIN
156     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
157 					      p_init_msg_list,
158 					      '_PUB',
159                                               x_return_status);
160     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
161       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
162     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
163       raise OKC_API.G_EXCEPTION_ERROR;
164     END IF;
165 
166    --Update the Master
167     okc_aqe_pvt.update_row(
168     	p_api_version,
169     	p_init_msg_list,
170     	x_return_status,
171     	x_msg_count,
172     	x_msg_data,
173     	p_aqev_rec,
174     	x_aqev_rec);
175   	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
176       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
177     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
178       		RAISE OKC_API.G_EXCEPTION_ERROR;
179     	END IF;
180 
181     --Update the detail
182     okc_aqm_pvt.update_row(
183     p_api_version,
184     p_init_msg_list,
185     x_return_status,
186     x_msg_count,
187     x_msg_data,
188     p_aqmv_tbl,
189     x_aqmv_tbl);
190     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
191       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
192     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
193       		RAISE OKC_API.G_EXCEPTION_ERROR;
194     	END IF;
195 
196     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
197   EXCEPTION
198     WHEN OKC_API.G_EXCEPTION_ERROR THEN
199       x_return_status := OKC_API.HANDLE_EXCEPTIONS
200       (l_api_name,
201        G_PKG_NAME,
202        'OKC_API.G_RET_STS_ERROR',
203        x_msg_count,
204        x_msg_data,
205        '_PUB');
206     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
207       x_return_status := OKC_API.HANDLE_EXCEPTIONS
208       (l_api_name,
209        G_PKG_NAME,
210        'OKC_API.G_RET_STS_UNEXP_ERROR',
211        x_msg_count,
212        x_msg_data,
213        '_PUB');
214     WHEN OTHERS THEN
215       x_return_status := OKC_API.HANDLE_EXCEPTIONS
216       (l_api_name,
217        G_PKG_NAME,
218        'OTHERS',
219        x_msg_count,
220        x_msg_data,
221        '_PUB');
222   END update_err_msg;
223 
224   --Object type procedure for validate
225   PROCEDURE validate_err_msg(
226     p_api_version	    IN NUMBER,
227     p_init_msg_list         IN VARCHAR2 ,
228     x_return_status         OUT NOCOPY VARCHAR2,
229     x_msg_count             OUT NOCOPY NUMBER,
230     x_msg_data              OUT NOCOPY VARCHAR2,
231     p_aqev_rec		    IN aqev_rec_type,
232     p_aqmv_tbl              IN aqmv_tbl_type) IS
233 
234     l_api_version           CONSTANT NUMBER := 1;
235     l_api_name              CONSTANT VARCHAR2(30) := 'validate_err_msg';
236     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
237 
238   BEGIN
239     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
240 					      p_init_msg_list,
241 					      '_PUB',
242                                               x_return_status);
243     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
244       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
245     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
246       raise OKC_API.G_EXCEPTION_ERROR;
247     END IF;
248 
249      --Validate the Master
250     okc_aqe_pvt.validate_row(
251     p_api_version,
252     p_init_msg_list,
253     x_return_status,
254     x_msg_count,
255     x_msg_data,
256     p_aqev_rec);
257     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
258       		raise G_EXCEPTION_HALT_VALIDATION;
259         ELSE
260       		IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
261          		l_return_status := x_return_status;
262         	END IF;
263     	END IF;
264 
265     --Validate the Detail
266     okc_aqm_pvt.validate_row(
267     p_api_version,
268     p_init_msg_list,
269     x_return_status,
270     x_msg_count,
271     x_msg_data,
272     p_aqmv_tbl);
273     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
274       		raise G_EXCEPTION_HALT_VALIDATION;
275         ELSE
276       		IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
277          		l_return_status := x_return_status;
278         	END IF;
279     	END IF;
280 
281     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
282   EXCEPTION
283     WHEN OKC_API.G_EXCEPTION_ERROR THEN
284       x_return_status := OKC_API.HANDLE_EXCEPTIONS
285       (l_api_name,
286        G_PKG_NAME,
287        'OKC_API.G_RET_STS_ERROR',
288        x_msg_count,
289        x_msg_data,
293       (l_api_name,
290        '_PUB');
291     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
292       x_return_status := OKC_API.HANDLE_EXCEPTIONS
294        G_PKG_NAME,
295        'OKC_API.G_RET_STS_UNEXP_ERROR',
296        x_msg_count,
297        x_msg_data,
298        '_PUB');
299     WHEN OTHERS THEN
300       x_return_status := OKC_API.HANDLE_EXCEPTIONS
301       (l_api_name,
302        G_PKG_NAME,
303        'OTHERS',
304        x_msg_count,
305        x_msg_data,
306        '_PUB');
307   END validate_err_msg;
308 
309   --Procedures for Errors
310   PROCEDURE create_err(p_api_version	    IN NUMBER,
311     		       p_init_msg_list      IN VARCHAR2 ,
312     		       x_return_status      OUT NOCOPY VARCHAR2,
313     		       x_msg_count          OUT NOCOPY NUMBER,
314     		       x_msg_data           OUT NOCOPY VARCHAR2,
315     		       p_aqev_rec	    IN aqev_rec_type,
316     		       x_aqev_rec           OUT NOCOPY aqev_rec_type) IS
317 
318  	 l_api_name	 CONSTANT VARCHAR2(30) := 'create_err';
319 	 l_api_version   CONSTANT NUMBER := 1.0;
320     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
321 	 l_aqev_rec      aqev_rec_type := p_aqev_rec;
322   BEGIN
323 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
324 						   g_pkg_name,
325 						   p_init_msg_list,
326 					           l_api_version,
327 						   p_api_version,
328 						   '_PUB',
329                                                    x_return_status);
330 
331     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
332       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
333     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
334       		RAISE OKC_API.G_EXCEPTION_ERROR;
335     	END IF;
336 
337 	-- USER HOOK CALL FOR BEFORE, STARTS
338     	g_aqev_rec := l_aqev_rec;
339 
340     	okc_util.call_user_hook(x_return_status  => x_return_status,
341      				p_package_name   => g_pkg_name,
342      				p_procedure_name => l_api_name,
343      				p_before_after   => 'B');
344     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
345       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
346     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
347       		RAISE OKC_API.G_EXCEPTION_ERROR;
348     	END IF;
349 
350 	--get values back from hook call
351 	 l_aqev_rec := migrate_aqev(l_aqev_rec, g_aqev_rec);
352 
353         -- Call to procedure of Simple API
354 	okc_aqe_pvt.insert_row(p_api_version   => p_api_version,
355     			       p_init_msg_list => p_init_msg_list,
356     			       x_return_status => x_return_status,
357     			       x_msg_count     => x_msg_count,
358     			       x_msg_data      => x_msg_data,
359     			       p_aqev_rec      => l_aqev_rec,
360     			       x_aqev_rec      => x_aqev_rec);
361 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
362        		raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
363      	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
364        		raise OKC_API.G_EXCEPTION_ERROR;
365      	END IF;
366 
367 	--USER HOOK CALL FOR AFTER, STARTS
368 	g_aqev_rec := x_aqev_rec;
369 
370     	okc_util.call_user_hook(x_return_status  => x_return_status,
371      				p_package_name   => g_pkg_name,
372      				p_procedure_name => l_api_name,
373      				p_before_after   => 'A');
374 
375     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
376       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
377     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
378       		RAISE OKC_API.G_EXCEPTION_ERROR;
379     	END IF;
380 	--USER HOOK CALL FOR AFTER, ENDS
381 
382     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
383 
384   EXCEPTION
385     WHEN OKC_API.G_EXCEPTION_ERROR THEN
386       x_return_status := OKC_API.HANDLE_EXCEPTIONS
387       (
388         l_api_name,
389         G_PKG_NAME,
390         'OKC_API.G_RET_STS_ERROR',
391         x_msg_count,
392         x_msg_data,
393         '_PUB'
394       );
395 
396     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
397       x_return_status := OKC_API.HANDLE_EXCEPTIONS
398       (
399         l_api_name,
400         G_PKG_NAME,
401         'OKC_API.G_RET_STS_UNEXP_ERROR',
402         x_msg_count,
403         x_msg_data,
404         '_PUB'
405       );
406 
407     WHEN OTHERS THEN
408       x_return_status := OKC_API.HANDLE_EXCEPTIONS
409       (
410         l_api_name,
411         G_PKG_NAME,
412         'OTHERS',
413         x_msg_count,
414         x_msg_data,
415         '_PUB'
416       );
417   END create_err;
418 
419  PROCEDURE create_err(p_api_version	    IN NUMBER,
420     		       p_init_msg_list      IN VARCHAR2 ,
421     		       x_return_status      OUT NOCOPY VARCHAR2,
422     		       x_msg_count          OUT NOCOPY NUMBER,
423     		       x_msg_data           OUT NOCOPY VARCHAR2,
424     		       p_aqev_tbl	    IN aqev_tbl_type,
425     		       x_aqev_tbl           OUT NOCOPY aqev_tbl_type) IS
426 
427     	l_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
428 	i		 NUMBER := 0;
429   BEGIN
430     --Initialize the return status
431 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
432 
433     IF p_aqev_tbl.COUNT > 0 THEN
434       i := p_aqev_tbl.FIRST;
435       LOOP
436         create_err(
437 	    p_api_version,
438 	    p_init_msg_list,
439 	    l_return_status,
440 	    x_msg_count,
441 	    x_msg_data,
442 	    p_aqev_tbl(i),
443 	    x_aqev_tbl(i));
444         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
445           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
449             x_return_status := l_return_status;
446             x_return_status := l_return_status;
447             raise G_EXCEPTION_HALT_VALIDATION;
448           ELSE
450           END IF;
451         END IF;
452         EXIT WHEN (i = p_aqev_tbl.LAST);
453         i := p_aqev_tbl.NEXT(i);
454       END LOOP;
455     END IF;
456   EXCEPTION
457     WHEN G_EXCEPTION_HALT_VALIDATION THEN
458       NULL;
459 
460     WHEN OTHERS THEN
461       OKC_API.set_message(p_app_name      => g_app_name,
462                           p_msg_name      => g_unexpected_error,
463                           p_token1        => g_sqlcode_token,
464                           p_token1_value  => sqlcode,
465                           p_token2        => g_sqlerrm_token,
466                           p_token2_value  => sqlerrm);
467       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
468   END create_err;
469 
470  PROCEDURE lock_err(p_api_version    IN NUMBER,
471     		     p_init_msg_list  IN VARCHAR2 ,
472     		     x_return_status  OUT NOCOPY VARCHAR2,
473     		     x_msg_count      OUT NOCOPY NUMBER,
474     		     x_msg_data       OUT NOCOPY VARCHAR2,
475     		     p_aqev_rec       IN aqev_rec_type) IS
476     	 l_api_name	 CONSTANT VARCHAR2(30) := 'lock_err';
477 	 l_api_version   CONSTANT NUMBER := 1.0;
478     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
479   BEGIN
480 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
481 						   g_pkg_name,
482 						   p_init_msg_list,
483 					           l_api_version,
484 						   p_api_version,
485 						   '_PUB',
486                                                    x_return_status);
487     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
488       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
489     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
490       		RAISE OKC_API.G_EXCEPTION_ERROR;
491     	END IF;
492 
493     	-- Call to procedure of Simple API
494 	okc_aqe_pvt.lock_row(p_api_version   => p_api_version,
495     			     p_init_msg_list => p_init_msg_list,
496     			     x_return_status => x_return_status,
497     			     x_msg_count     => x_msg_count,
498     			     x_msg_data      => x_msg_data,
499 			     p_aqev_rec      => p_aqev_rec);
500 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
501       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
502     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
503       		RAISE OKC_API.G_EXCEPTION_ERROR;
504     	END IF;
505 
506       	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
507 
508   EXCEPTION
509     WHEN OKC_API.G_EXCEPTION_ERROR THEN
510       x_return_status := OKC_API.HANDLE_EXCEPTIONS
511       (
512         l_api_name,
513         G_PKG_NAME,
514         'OKC_API.G_RET_STS_ERROR',
515         x_msg_count,
516         x_msg_data,
517         '_PUB'
518       );
519 
520     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
521       x_return_status := OKC_API.HANDLE_EXCEPTIONS
522       (
523         l_api_name,
524         G_PKG_NAME,
525         'OKC_API.G_RET_STS_UNEXP_ERROR',
526         x_msg_count,
527         x_msg_data,
528         '_PUB'
529       );
530 
531     WHEN OTHERS THEN
532       x_return_status := OKC_API.HANDLE_EXCEPTIONS
533       (
534         l_api_name,
535         G_PKG_NAME,
536         'OTHERS',
537         x_msg_count,
538         x_msg_data,
539         '_PUB'
540       );
541   end lock_err;
542 
543   PROCEDURE lock_err(p_api_version    IN NUMBER,
544     		     p_init_msg_list  IN VARCHAR2 ,
545     		     x_return_status  OUT NOCOPY VARCHAR2,
546     		     x_msg_count      OUT NOCOPY NUMBER,
547     		     x_msg_data       OUT NOCOPY VARCHAR2,
548     		     p_aqev_tbl       IN aqev_tbl_type) IS
549 
550     	    l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
551 	    i				   NUMBER := 0;
552   BEGIN
553     x_return_status := OKC_API.G_RET_STS_SUCCESS;
554     IF p_aqev_tbl.COUNT > 0 THEN
555       i := p_aqev_tbl.FIRST;
556       LOOP
557         lock_err(
558 	    p_api_version,
559 	    p_init_msg_list,
560 	    l_return_status,
561 	    x_msg_count,
562 	    x_msg_data,
563 	    p_aqev_tbl(i));
564         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
565           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
566             x_return_status := l_return_status;
567             raise G_EXCEPTION_HALT_VALIDATION;
568           ELSE
569             x_return_status := l_return_status;
570           END IF;
571         END IF;
572         EXIT WHEN (i = p_aqev_tbl.LAST);
573         i := p_aqev_tbl.NEXT(i);
574       END LOOP;
575     END IF;
576   EXCEPTION
577     WHEN G_EXCEPTION_HALT_VALIDATION THEN
578       NULL;
579 
580     WHEN OTHERS THEN
581       OKC_API.set_message(p_app_name      => g_app_name,
582                           p_msg_name      => g_unexpected_error,
583                           p_token1        => g_sqlcode_token,
584                           p_token1_value  => sqlcode,
585                           p_token2        => g_sqlerrm_token,
586                           p_token2_value  => sqlerrm);
587       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
588   END lock_err;
589 
590   PROCEDURE update_err(p_api_version	       IN NUMBER,
591     		       p_init_msg_list         IN VARCHAR2 ,
592     		       x_return_status         OUT NOCOPY VARCHAR2,
593     		       x_msg_count             OUT NOCOPY NUMBER,
594     		       x_msg_data              OUT NOCOPY VARCHAR2,
595     		       p_aqev_rec	       IN aqev_rec_type,
599 	 l_api_version   CONSTANT NUMBER := 1.0;
596     		       x_aqev_rec              OUT NOCOPY aqev_rec_type) IS
597 
598 	 l_api_name	 CONSTANT VARCHAR2(30) := 'update_err';
600     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
601 	 l_aqev_rec      aqev_rec_type := p_aqev_rec;
602   BEGIN
603 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
604 						   g_pkg_name,
605 						   p_init_msg_list,
606 					           l_api_version,
607 						   p_api_version,
608 						   '_PUB',
609                                                    x_return_status);
610 
611     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
612       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
613     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
614       		RAISE OKC_API.G_EXCEPTION_ERROR;
615     	END IF;
616 
617 	-- USER HOOK CALL FOR BEFORE, STARTS
618 	g_aqev_rec := l_aqev_rec;
619 
620     	okc_util.call_user_hook(x_return_status  => x_return_status,
621      				p_package_name   => g_pkg_name,
622      				p_procedure_name => l_api_name,
623      				p_before_after   => 'B');
624 
625     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
626       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
627     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
628       		RAISE OKC_API.G_EXCEPTION_ERROR;
629     	END IF;
630 
631 	--get values back from hook call
632 	l_aqev_rec := migrate_aqev(l_aqev_rec, g_aqev_rec);
633 
634     	-- Call to procedure of Simple API
635 	okc_aqe_pvt.update_row(p_api_version   => p_api_version,
636     			       p_init_msg_list => p_init_msg_list,
637     			       x_return_status => x_return_status,
638     		               x_msg_count     => x_msg_count,
639     			       x_msg_data      => x_msg_data,
640     			       p_aqev_rec      => l_aqev_rec,
641     			       x_aqev_rec      => x_aqev_rec);
642 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
643       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
644     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
645       		RAISE OKC_API.G_EXCEPTION_ERROR;
646     	END IF;
647 
648   	--USER HOOK CALL FOR AFTER, STARTS
649 	g_aqev_rec := x_aqev_rec;
650 
651     	okc_util.call_user_hook(x_return_status  => x_return_status,
652      				p_package_name   => g_pkg_name,
653      				p_procedure_name => l_api_name,
654      				p_before_after   => 'A');
655 
656     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
657       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
658     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
659       		RAISE OKC_API.G_EXCEPTION_ERROR;
660     	END IF;
661 	--USER HOOK CALL FOR AFTER, ENDS
662 
663     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
664 
665   EXCEPTION
666     WHEN OKC_API.G_EXCEPTION_ERROR THEN
667       x_return_status := OKC_API.HANDLE_EXCEPTIONS
668       (
669         l_api_name,
670         G_PKG_NAME,
671         'OKC_API.G_RET_STS_ERROR',
672         x_msg_count,
673         x_msg_data,
674         '_PUB'
675       );
676 
677     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
678       x_return_status := OKC_API.HANDLE_EXCEPTIONS
679       (
680         l_api_name,
681         G_PKG_NAME,
682         'OKC_API.G_RET_STS_UNEXP_ERROR',
683         x_msg_count,
684         x_msg_data,
685         '_PUB'
686       );
687 
688     WHEN OTHERS THEN
689       x_return_status := OKC_API.HANDLE_EXCEPTIONS
690       (
691         l_api_name,
692         G_PKG_NAME,
693         'OTHERS',
694         x_msg_count,
695         x_msg_data,
696         '_PUB'
697       );
698   end update_err;
699 
700  PROCEDURE update_err(p_api_version	       IN NUMBER,
701     		       p_init_msg_list         IN VARCHAR2 ,
702     		       x_return_status         OUT NOCOPY VARCHAR2,
703     		       x_msg_count             OUT NOCOPY NUMBER,
704     		       x_msg_data              OUT NOCOPY VARCHAR2,
705     		       p_aqev_tbl	       IN aqev_tbl_type,
706     		       x_aqev_tbl              OUT NOCOPY aqev_tbl_type) IS
707 
708         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
709 	i			       NUMBER := 0;
710   BEGIN
711     x_return_status := OKC_API.G_RET_STS_SUCCESS;
712     IF p_aqev_tbl.COUNT > 0 THEN
713       i := p_aqev_tbl.FIRST;
714       LOOP
715         update_err(
716 	    p_api_version,
717 	    p_init_msg_list,
718 	    l_return_status,
719 	    x_msg_count,
720 	    x_msg_data,
721 	    p_aqev_tbl(i),
722 	    x_aqev_tbl(i));
723         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
724           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
725             x_return_status := l_return_status;
726             raise G_EXCEPTION_HALT_VALIDATION;
727           ELSE
728             x_return_status := l_return_status;
729           END IF;
730         END IF;
731         EXIT WHEN (i = p_aqev_tbl.LAST);
732         i := p_aqev_tbl.NEXT(i);
733       END LOOP;
734     END IF;
735   EXCEPTION
736     WHEN G_EXCEPTION_HALT_VALIDATION THEN
737       NULL;
738 
739     WHEN OTHERS THEN
740       OKC_API.set_message(p_app_name      => g_app_name,
741                           p_msg_name      => g_unexpected_error,
742                           p_token1        => g_sqlcode_token,
743                           p_token1_value  => sqlcode,
744                           p_token2        => g_sqlerrm_token,
748 
745                           p_token2_value  => sqlerrm);
746       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
747   END update_err;
749   PROCEDURE delete_err(p_api_version	    IN NUMBER,
750     		       p_init_msg_list      IN VARCHAR2 ,
751     		       x_return_status      OUT NOCOPY VARCHAR2,
752     		       x_msg_count          OUT NOCOPY NUMBER,
753     		       x_msg_data           OUT NOCOPY VARCHAR2,
754     		       p_aqev_rec	    IN aqev_rec_type) IS
755 
756 	 l_api_name	 CONSTANT VARCHAR2(30) := 'delete_err';
757 	 l_api_version   CONSTANT NUMBER := 1.0;
758     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
759 	 l_aqev_rec      aqev_rec_type := p_aqev_rec;
760   BEGIN
761 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
762 						   g_pkg_name,
763 						   p_init_msg_list,
764 					           l_api_version,
765 						   p_api_version,
766 						   '_PUB',
767                                                    x_return_status);
768 
769     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
770       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
771     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
772       		RAISE OKC_API.G_EXCEPTION_ERROR;
773     	END IF;
774 
775 	-- USER HOOK CALL FOR BEFORE, STARTS
776     	g_aqev_rec := l_aqev_rec;
777 
778     	okc_util.call_user_hook(x_return_status  => x_return_status,
779      				p_package_name   => g_pkg_name,
780      				p_procedure_name => l_api_name,
781      				p_before_after   => 'B');
782     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
783       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
784     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
785       		RAISE OKC_API.G_EXCEPTION_ERROR;
786     	END IF;
787 
788 	--get values back from hook call
789 	l_aqev_rec := migrate_aqev(l_aqev_rec, g_aqev_rec);
790 
791     	-- Call to procedure of Simple API
792 	okc_aqe_pvt.delete_row(p_api_version   => p_api_version,
793     			       p_init_msg_list => p_init_msg_list,
794     			       x_return_status => x_return_status,
795     			       x_msg_count     => x_msg_count,
796     			       x_msg_data      => x_msg_data,
797     			       p_aqev_rec      => l_aqev_rec);
798       	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
799       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
800     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
801       		RAISE OKC_API.G_EXCEPTION_ERROR;
802     	END IF;
803 
804       	--USER HOOK CALL FOR AFTER, STARTS
805     	okc_util.call_user_hook(x_return_status  => x_return_status,
806      				p_package_name   => g_pkg_name,
807      				p_procedure_name => l_api_name,
808      				p_before_after   => 'A');
809 
810     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
811       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
812     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
813       		RAISE OKC_API.G_EXCEPTION_ERROR;
814     	END IF;
815 	--USER HOOK CALL FOR AFTER, ENDS
816 
817     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
818 
819   EXCEPTION
820     WHEN OKC_API.G_EXCEPTION_ERROR THEN
821       x_return_status := OKC_API.HANDLE_EXCEPTIONS
822       (
823         l_api_name,
824         G_PKG_NAME,
825         'OKC_API.G_RET_STS_ERROR',
826         x_msg_count,
827         x_msg_data,
828         '_PUB'
829       );
830 
831     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
832       x_return_status := OKC_API.HANDLE_EXCEPTIONS
833       (
834         l_api_name,
835         G_PKG_NAME,
836         'OKC_API.G_RET_STS_UNEXP_ERROR',
837         x_msg_count,
838         x_msg_data,
839         '_PUB'
840       );
841 
842     WHEN OTHERS THEN
843       x_return_status := OKC_API.HANDLE_EXCEPTIONS
844       (
845         l_api_name,
846         G_PKG_NAME,
847         'OTHERS',
848         x_msg_count,
849         x_msg_data,
850         '_PUB'
851       );
852   end delete_err;
853 
854    PROCEDURE delete_err(p_api_version	    IN NUMBER,
855     		       p_init_msg_list      IN VARCHAR2 ,
856     		       x_return_status      OUT NOCOPY VARCHAR2,
857     		       x_msg_count          OUT NOCOPY NUMBER,
858     		       x_msg_data           OUT NOCOPY VARCHAR2,
859     		       p_aqev_tbl	    IN aqev_tbl_type) IS
860 
861         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
862 	i			       NUMBER := 0;
863   BEGIN
864     x_return_status := OKC_API.G_RET_STS_SUCCESS;
865     IF p_aqev_tbl.COUNT > 0 THEN
866       i := p_aqev_tbl.FIRST;
867       LOOP
868         delete_err(
869 	    p_api_version,
870 	    p_init_msg_list,
871 	    l_return_status,
872 	    x_msg_count,
873 	    x_msg_data,
874 	    p_aqev_tbl(i));
875         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
876           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
877             x_return_status := l_return_status;
878             raise G_EXCEPTION_HALT_VALIDATION;
879           ELSE
880             x_return_status := l_return_status;
881           END IF;
882         END IF;
883         EXIT WHEN (i = p_aqev_tbl.LAST);
884         i := p_aqev_tbl.NEXT(i);
885       END LOOP;
886     END IF;
887   EXCEPTION
888     WHEN G_EXCEPTION_HALT_VALIDATION THEN
889       NULL;
890 
891     WHEN OTHERS THEN
892       OKC_API.set_message(p_app_name      => g_app_name,
896                           p_token2        => g_sqlerrm_token,
893                           p_msg_name      => g_unexpected_error,
894                           p_token1        => g_sqlcode_token,
895                           p_token1_value  => sqlcode,
897                           p_token2_value  => sqlerrm);
898       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
899   END delete_err;
900 
901   PROCEDURE validate_err(p_api_version	      IN NUMBER,
902     			  p_init_msg_list     IN VARCHAR2 ,
903     			  x_return_status     OUT NOCOPY VARCHAR2,
904     			  x_msg_count         OUT NOCOPY NUMBER,
905     			  x_msg_data          OUT NOCOPY VARCHAR2,
906     			  p_aqev_rec	      IN aqev_rec_type) IS
907 
908 	 l_api_name	 CONSTANT VARCHAR2(30) := 'validate_err';
909 	 l_api_version   CONSTANT NUMBER := 1.0;
910     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
911 	 l_aqev_rec      aqev_rec_type := p_aqev_rec;
912   BEGIN
913 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
914 						   g_pkg_name,
915 						   p_init_msg_list,
916 					           l_api_version,
917 						   p_api_version,
918 						   '_PUB',
919                                                    x_return_status);
920 
921     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
922       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
923     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
924       		RAISE OKC_API.G_EXCEPTION_ERROR;
925     	END IF;
926 
927 	-- USER HOOK CALL FOR BEFORE, STARTS
928     	g_aqev_rec := l_aqev_rec;
929 
930     	okc_util.call_user_hook(x_return_status  => x_return_status,
931      				p_package_name   => g_pkg_name,
932      				p_procedure_name => l_api_name,
933      				p_before_after   => 'B');
934 
935     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
936       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
937     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
938       		RAISE OKC_API.G_EXCEPTION_ERROR;
939     	END IF;
940 
941 	--get values back from hook call
942 	l_aqev_rec := migrate_aqev(l_aqev_rec, g_aqev_rec);
943 
944     	-- Call to procedure of Simple API
945 	okc_aqe_pvt.validate_row(p_api_version   => p_api_version,
946     				 p_init_msg_list => p_init_msg_list,
947     				 x_return_status => x_return_status,
948     				 x_msg_count     => x_msg_count,
949     				 x_msg_data      => x_msg_data,
950     				 p_aqev_rec      => l_aqev_rec);
951 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
952       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
953     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
954       		RAISE OKC_API.G_EXCEPTION_ERROR;
955     	END IF;
956 
957 	--USER HOOK CALL FOR AFTER, STARTS
958 
959     	okc_util.call_user_hook(x_return_status  => x_return_status,
960      				p_package_name   => g_pkg_name,
961      				p_procedure_name => l_api_name,
962      				p_before_after   => 'A');
963 
964     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
965       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
966     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
967       		RAISE OKC_API.G_EXCEPTION_ERROR;
968     	END IF;
969 	--USER HOOK CALL FOR AFTER, ENDS
970 
971     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
972   EXCEPTION
973     WHEN OKC_API.G_EXCEPTION_ERROR THEN
974       x_return_status := OKC_API.HANDLE_EXCEPTIONS
975       (
976         l_api_name,
977         G_PKG_NAME,
978         'OKC_API.G_RET_STS_ERROR',
979         x_msg_count,
980         x_msg_data,
981         '_PUB'
982       );
983 
984     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
985       x_return_status := OKC_API.HANDLE_EXCEPTIONS
986       (
987         l_api_name,
988         G_PKG_NAME,
989         'OKC_API.G_RET_STS_UNEXP_ERROR',
990         x_msg_count,
991         x_msg_data,
992         '_PUB'
993       );
994 
995     WHEN OTHERS THEN
996       x_return_status := OKC_API.HANDLE_EXCEPTIONS
997       (
998         l_api_name,
999         G_PKG_NAME,
1000         'OTHERS',
1001         x_msg_count,
1002         x_msg_data,
1003         '_PUB'
1004       );
1005   END validate_err;
1006 
1007    PROCEDURE validate_err(p_api_version	    IN NUMBER,
1008     		       p_init_msg_list      IN VARCHAR2 ,
1009     		       x_return_status      OUT NOCOPY VARCHAR2,
1010     		       x_msg_count          OUT NOCOPY NUMBER,
1011     		       x_msg_data           OUT NOCOPY VARCHAR2,
1012     		       p_aqev_tbl	    IN aqev_tbl_type) IS
1013     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1014     i				   NUMBER := 0;
1015   BEGIN
1016     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1017     IF p_aqev_tbl.COUNT > 0 THEN
1018       i := p_aqev_tbl.FIRST;
1019       LOOP
1020         validate_err(
1021 	    p_api_version,
1022 	    p_init_msg_list,
1023 	    l_return_status,
1024 	    x_msg_count,
1025 	    x_msg_data,
1026 	    p_aqev_tbl(i));
1027         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1028           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1029             x_return_status := l_return_status;
1030             raise G_EXCEPTION_HALT_VALIDATION;
1031           ELSE
1032             x_return_status := l_return_status;
1033           END IF;
1034         END IF;
1035         EXIT WHEN (i = p_aqev_tbl.LAST);
1036         i := p_aqev_tbl.NEXT(i);
1037       END LOOP;
1038     END IF;
1039   EXCEPTION
1043     WHEN OTHERS THEN
1040     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1041       NULL;
1042 
1044       OKC_API.set_message(p_app_name      => g_app_name,
1045                           p_msg_name      => g_unexpected_error,
1046                           p_token1        => g_sqlcode_token,
1047                           p_token1_value  => sqlcode,
1048                           p_token2        => g_sqlerrm_token,
1049                           p_token2_value  => sqlerrm);
1050       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1051   END validate_err;
1052 
1053   --Procedures for Messages
1054   PROCEDURE create_msg(p_api_version	 IN  NUMBER,
1055    		       p_init_msg_list   IN  VARCHAR2 ,
1056     		       x_return_status   OUT NOCOPY VARCHAR2,
1057     		       x_msg_count       OUT NOCOPY NUMBER,
1058     		       x_msg_data        OUT NOCOPY VARCHAR2,
1059    		       p_aqmv_rec        IN  aqmv_rec_type,
1060     		       x_aqmv_rec        OUT NOCOPY aqmv_rec_type) IS
1061 
1062 	 l_api_name	 CONSTANT VARCHAR2(30) := 'create_msg';
1063 	 l_api_version   CONSTANT NUMBER := 1.0;
1064     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1065 	 l_aqmv_rec      aqmv_rec_type := p_aqmv_rec;
1066   BEGIN
1067 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1068 						   g_pkg_name,
1069 						   p_init_msg_list,
1070 					           l_api_version,
1071 						   p_api_version,
1072 						   '_PUB',
1073                                                    x_return_status);
1074 
1075     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1076       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1077     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1078       		RAISE OKC_API.G_EXCEPTION_ERROR;
1079     	END IF;
1080 
1081 	-- USER HOOK CALL FOR BEFORE, STARTS
1082     	g_aqmv_rec := l_aqmv_rec;
1083 
1084     	okc_util.call_user_hook(x_return_status  => x_return_status,
1085      				p_package_name   => g_pkg_name,
1086      				p_procedure_name => l_api_name,
1087      				p_before_after   => 'B');
1088 
1089     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1090       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1091     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1092       		RAISE OKC_API.G_EXCEPTION_ERROR;
1093     	END IF;
1094 
1095 	--get values back from hook call
1096 	l_aqmv_rec := migrate_aqmv(l_aqmv_rec, g_aqmv_rec);
1097 
1098     	-- Call to procedure of Simple API
1099 	okc_aqm_pvt.insert_row(p_api_version   => p_api_version,
1100     			       p_init_msg_list => p_init_msg_list,
1101     			       x_return_status => x_return_status,
1102     			       x_msg_count     => x_msg_count,
1103     			       x_msg_data      => x_msg_data,
1104     			       p_aqmv_rec      => l_aqmv_rec,
1105     			       x_aqmv_rec      => x_aqmv_rec);
1106 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1107       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1108     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1109       		RAISE OKC_API.G_EXCEPTION_ERROR;
1110     	END IF;
1111 
1112 	--USER HOOK CALL FOR AFTER, STARTS
1113 	g_aqmv_rec := x_aqmv_rec;
1114 
1115     	okc_util.call_user_hook(x_return_status  => x_return_status,
1116      				p_package_name   => g_pkg_name,
1117      				p_procedure_name => l_api_name,
1118      				p_before_after   => 'A');
1119 
1120     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1121       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1122     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1123       		RAISE OKC_API.G_EXCEPTION_ERROR;
1124     	END IF;
1125 	--USER HOOK CALL FOR AFTER, ENDS
1126 
1127     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1128 
1129   EXCEPTION
1130     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1131       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1132       (
1133         l_api_name,
1134         G_PKG_NAME,
1135         'OKC_API.G_RET_STS_ERROR',
1136         x_msg_count,
1137         x_msg_data,
1138         '_PUB'
1139       );
1140 
1141     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1142       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1143       (
1144         l_api_name,
1145         G_PKG_NAME,
1146         'OKC_API.G_RET_STS_UNEXP_ERROR',
1147         x_msg_count,
1148         x_msg_data,
1149         '_PUB'
1150       );
1151 
1152     WHEN OTHERS THEN
1153       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1154       (
1155         l_api_name,
1156         G_PKG_NAME,
1157         'OTHERS',
1158         x_msg_count,
1159         x_msg_data,
1160         '_PUB'
1161       );
1162   end create_msg;
1163 
1164    PROCEDURE create_msg(p_api_version	 IN  NUMBER,
1165    		       p_init_msg_list   IN  VARCHAR2 ,
1166     		       x_return_status   OUT NOCOPY VARCHAR2,
1167     		       x_msg_count       OUT NOCOPY NUMBER,
1168     		       x_msg_data        OUT NOCOPY VARCHAR2,
1169    		       p_aqmv_tbl        IN  aqmv_tbl_type,
1170     		       x_aqmv_tbl        OUT NOCOPY aqmv_tbl_type) IS
1171 	l_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1172 	i		 NUMBER := 0;
1173   BEGIN
1174     --Initialize the return status
1175 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
1176 
1177     IF p_aqmv_tbl.COUNT > 0 THEN
1178       i := p_aqmv_tbl.FIRST;
1179       LOOP
1180         create_msg(
1181 	    p_api_version,
1182 	    p_init_msg_list,
1183 	    l_return_status,
1184 	    x_msg_count,
1185 	    x_msg_data,
1186 	    p_aqmv_tbl(i),
1187 	    x_aqmv_tbl(i));
1188         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1189           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1190             x_return_status := l_return_status;
1194           END IF;
1191             raise G_EXCEPTION_HALT_VALIDATION;
1192           ELSE
1193             x_return_status := l_return_status;
1195         END IF;
1196         EXIT WHEN (i = p_aqmv_tbl.LAST);
1197         i := p_aqmv_tbl.NEXT(i);
1198       END LOOP;
1199     END IF;
1200   EXCEPTION
1201     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1202       NULL;
1203 
1204     WHEN OTHERS THEN
1205       OKC_API.set_message(p_app_name      => g_app_name,
1206                           p_msg_name      => g_unexpected_error,
1207                           p_token1        => g_sqlcode_token,
1208                           p_token1_value  => sqlcode,
1209                           p_token2        => g_sqlerrm_token,
1210                           p_token2_value  => sqlerrm);
1211       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1212   END create_msg;
1213 
1214   PROCEDURE lock_msg(p_api_version	 IN  NUMBER,
1215     		     p_init_msg_list     IN  VARCHAR2 ,
1216     		     x_return_status     OUT NOCOPY VARCHAR2,
1217     		     x_msg_count         OUT NOCOPY NUMBER,
1218     		     x_msg_data          OUT NOCOPY VARCHAR2,
1219     		     p_aqmv_rec	    	 IN  aqmv_rec_type) IS
1220   	 l_api_name	 CONSTANT VARCHAR2(30) := 'lock_msg';
1221 	 l_api_version   CONSTANT NUMBER := 1.0;
1222     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1223 	 l_aqmv_rec      aqmv_rec_type := p_aqmv_rec;
1224   BEGIN
1225 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1226 						   g_pkg_name,
1227 						   p_init_msg_list,
1228 					           l_api_version,
1229 						   p_api_version,
1230 						   '_PUB',
1231                                                    x_return_status);
1232 
1233     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1234       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1235     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1236       		RAISE OKC_API.G_EXCEPTION_ERROR;
1237     	END IF;
1238 
1239     	-- Call to procedure of Simple API
1240 	okc_aqm_pvt.lock_row(p_api_version   => p_api_version,
1241     			     p_init_msg_list => p_init_msg_list,
1242     			     x_return_status => x_return_status,
1243     			     x_msg_count     => x_msg_count,
1244     			     x_msg_data      => x_msg_data,
1245     			     p_aqmv_rec      => l_aqmv_rec);
1246 
1247 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1248       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1249     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1250       		RAISE OKC_API.G_EXCEPTION_ERROR;
1251     	END IF;
1252 
1253     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1254 
1255   EXCEPTION
1256     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1257       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1258       (
1259         l_api_name,
1260         G_PKG_NAME,
1261         'OKC_API.G_RET_STS_ERROR',
1262         x_msg_count,
1263         x_msg_data,
1264         '_PUB'
1265       );
1266 
1267     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1268       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1269       (
1270         l_api_name,
1271         G_PKG_NAME,
1272         'OKC_API.G_RET_STS_UNEXP_ERROR',
1273         x_msg_count,
1274         x_msg_data,
1275         '_PUB'
1276       );
1277 
1278     WHEN OTHERS THEN
1279       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1280       (
1281         l_api_name,
1282         G_PKG_NAME,
1283         'OTHERS',
1284         x_msg_count,
1285         x_msg_data,
1286         '_PUB'
1287       );
1288   end lock_msg;
1289 
1290    PROCEDURE lock_msg(p_api_version	 IN  NUMBER,
1291     		     p_init_msg_list     IN  VARCHAR2 ,
1292     		     x_return_status     OUT NOCOPY VARCHAR2,
1293     		     x_msg_count         OUT NOCOPY NUMBER,
1294     		     x_msg_data          OUT NOCOPY VARCHAR2,
1295     		     p_aqmv_tbl	    	 IN  aqmv_tbl_type) IS
1296         l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1297 	i			NUMBER := 0;
1298   BEGIN
1299     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1300     IF p_aqmv_tbl.COUNT > 0 THEN
1301       i := p_aqmv_tbl.FIRST;
1302       LOOP
1303         lock_msg(
1304 	    p_api_version,
1305 	    p_init_msg_list,
1306 	    l_return_status,
1307 	    x_msg_count,
1308 	    x_msg_data,
1309 	    p_aqmv_tbl(i));
1310         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1311           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1312             x_return_status := l_return_status;
1313             raise G_EXCEPTION_HALT_VALIDATION;
1314           ELSE
1315             x_return_status := l_return_status;
1316           END IF;
1317         END IF;
1318         EXIT WHEN (i = p_aqmv_tbl.LAST);
1319         i := p_aqmv_tbl.NEXT(i);
1320       END LOOP;
1321     END IF;
1322   EXCEPTION
1323     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1324       NULL;
1325 
1326     WHEN OTHERS THEN
1327       OKC_API.set_message(p_app_name      => g_app_name,
1328                           p_msg_name      => g_unexpected_error,
1329                           p_token1        => g_sqlcode_token,
1330                           p_token1_value  => sqlcode,
1331                           p_token2        => g_sqlerrm_token,
1332                           p_token2_value  => sqlerrm);
1333       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1334   End lock_msg;
1335 
1336   PROCEDURE update_msg(p_api_version	 IN NUMBER,
1337     		       p_init_msg_list   IN VARCHAR2 ,
1338     		       x_return_status   OUT NOCOPY VARCHAR2,
1339     		       x_msg_count       OUT NOCOPY NUMBER,
1340     		       x_msg_data        OUT NOCOPY VARCHAR2,
1341     		       p_aqmv_rec        IN aqmv_rec_type,
1345 	 l_api_version   CONSTANT NUMBER := 1.0;
1342     		       x_aqmv_rec        OUT NOCOPY aqmv_rec_type) IS
1343 
1344 	 l_api_name	 CONSTANT VARCHAR2(30) := 'update_msg';
1346     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1347 	 l_aqmv_rec      aqmv_rec_type := p_aqmv_rec;
1348   BEGIN
1349 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1350 						   g_pkg_name,
1351 						   p_init_msg_list,
1352 					           l_api_version,
1353 						   p_api_version,
1354 						   '_PUB',
1355                                                    x_return_status);
1356     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1357       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1358     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1359       		RAISE OKC_API.G_EXCEPTION_ERROR;
1360     	END IF;
1361 
1362 	-- USER HOOK CALL FOR BEFORE, STARTS
1363     	g_aqmv_rec := l_aqmv_rec;
1364 
1365     	okc_util.call_user_hook(x_return_status  => x_return_status,
1366      				p_package_name   => g_pkg_name,
1367      				p_procedure_name => l_api_name,
1368 				p_before_after   => 'B');
1369     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1370       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1371     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1372       		RAISE OKC_API.G_EXCEPTION_ERROR;
1373     	END IF;
1374 
1375 	--get values back from hook call
1376 	l_aqmv_rec := migrate_aqmv(l_aqmv_rec, g_aqmv_rec);
1377 
1378     	-- Call to procedure of Simple API
1379 	okc_aqm_pvt.update_row(p_api_version   => p_api_version,
1380     			        p_init_msg_list => p_init_msg_list,
1381     			        x_return_status => x_return_status,
1382     				x_msg_count     => x_msg_count,
1383     				x_msg_data      => x_msg_data,
1384     				p_aqmv_rec      => l_aqmv_rec,
1385     				x_aqmv_rec      => x_aqmv_rec);
1386 
1387 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1388       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1389     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1390       		RAISE OKC_API.G_EXCEPTION_ERROR;
1391     	END IF;
1392 
1393 	--USER HOOK CALL FOR AFTER, STARTS
1394 	g_aqmv_rec := x_aqmv_rec;
1395 
1396     	okc_util.call_user_hook(x_return_status  => x_return_status,
1397      				p_package_name   => g_pkg_name,
1398      				p_procedure_name => l_api_name,
1399      				p_before_after   => 'A');
1400     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1401       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1402     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1403       		RAISE OKC_API.G_EXCEPTION_ERROR;
1404     	END IF;
1405 	--USER HOOK CALL FOR AFTER, ENDS
1406 
1407     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1408 
1409   EXCEPTION
1410     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1411       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1412       (
1413         l_api_name,
1414         G_PKG_NAME,
1415         'OKC_API.G_RET_STS_ERROR',
1416         x_msg_count,
1417         x_msg_data,
1418         '_PUB'
1419       );
1420 
1421     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1422       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1423       (
1424         l_api_name,
1425         G_PKG_NAME,
1426         'OKC_API.G_RET_STS_UNEXP_ERROR',
1427         x_msg_count,
1428         x_msg_data,
1429         '_PUB'
1430       );
1431 
1432     WHEN OTHERS THEN
1433       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1434       (
1435         l_api_name,
1436         G_PKG_NAME,
1437         'OTHERS',
1438         x_msg_count,
1439         x_msg_data,
1440         '_PUB'
1441       );
1442   END update_msg;
1443 
1444   PROCEDURE update_msg(p_api_version	 IN NUMBER,
1445     		       p_init_msg_list   IN VARCHAR2 ,
1446     		       x_return_status   OUT NOCOPY VARCHAR2,
1447     		       x_msg_count       OUT NOCOPY NUMBER,
1448     		       x_msg_data        OUT NOCOPY VARCHAR2,
1449     		       p_aqmv_tbl        IN aqmv_tbl_type,
1450     		       x_aqmv_tbl        OUT NOCOPY aqmv_tbl_type) IS
1451 
1452 	l_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1453 	i		 NUMBER := 0;
1454   BEGIN
1455     --Initialize the return status
1456 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
1457 
1458     IF p_aqmv_tbl.COUNT > 0 THEN
1459       i := p_aqmv_tbl.FIRST;
1460       LOOP
1461         update_msg(
1462 	    p_api_version,
1463 	    p_init_msg_list,
1464 	    l_return_status,
1465 	    x_msg_count,
1466 	    x_msg_data,
1467 	    p_aqmv_tbl(i),
1468 	    x_aqmv_tbl(i));
1469         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1470           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1471             x_return_status := l_return_status;
1472             raise G_EXCEPTION_HALT_VALIDATION;
1473           ELSE
1474             x_return_status := l_return_status;
1475           END IF;
1476         END IF;
1477         EXIT WHEN (i = p_aqmv_tbl.LAST);
1478         i := p_aqmv_tbl.NEXT(i);
1479       END LOOP;
1480     END IF;
1481   EXCEPTION
1482     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1483       NULL;
1484 
1485     WHEN OTHERS THEN
1486       OKC_API.set_message(p_app_name      => g_app_name,
1487                           p_msg_name      => g_unexpected_error,
1488                           p_token1        => g_sqlcode_token,
1489                           p_token1_value  => sqlcode,
1490                           p_token2        => g_sqlerrm_token,
1491                           p_token2_value  => sqlerrm);
1492       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1493   END update_msg;
1494 
1495   PROCEDURE delete_msg(p_api_version	 IN  NUMBER,
1499     		       x_msg_data        OUT NOCOPY VARCHAR2,
1496     		       p_init_msg_list   IN  VARCHAR2 ,
1497     		       x_return_status   OUT NOCOPY VARCHAR2,
1498     		       x_msg_count       OUT NOCOPY NUMBER,
1500     		       p_aqmv_rec	 IN  aqmv_rec_type) IS
1501 
1502 	 l_api_name	 CONSTANT VARCHAR2(30) := 'delete_msg';
1503 	 l_api_version   CONSTANT NUMBER := 1.0;
1504     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1505 	 l_aqmv_rec      aqmv_rec_type := p_aqmv_rec;
1506   BEGIN
1507 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1508 						   g_pkg_name,
1509 						   p_init_msg_list,
1510 					           l_api_version,
1511 						   p_api_version,
1512 						   '_PUB',
1513                                                    x_return_status);
1514 
1515     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1516       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1517     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1518       		RAISE OKC_API.G_EXCEPTION_ERROR;
1519     	END IF;
1520 
1521 	-- USER HOOK CALL FOR BEFORE, STARTS
1522     	g_aqmv_rec := l_aqmv_rec;
1523 
1524     	okc_util.call_user_hook(x_return_status  => x_return_status,
1525      				p_package_name   => g_pkg_name,
1526      				p_procedure_name => l_api_name,
1527      				p_before_after   => 'B');
1528     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1529       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1530     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1531       		RAISE OKC_API.G_EXCEPTION_ERROR;
1532     	END IF;
1533 
1534 	--get values back from hook call
1535 	l_aqmv_rec := migrate_aqmv(l_aqmv_rec, g_aqmv_rec);
1536 
1537     	-- Call to procedure of Simple API
1538 	okc_aqm_pvt.delete_row(p_api_version   => p_api_version,
1539     			       p_init_msg_list => p_init_msg_list,
1540     			       x_return_status => x_return_status,
1541     			       x_msg_count     => x_msg_count,
1542     			       x_msg_data      => x_msg_data,
1543     			       p_aqmv_rec      => l_aqmv_rec);
1544 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1545       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1546     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1547       		RAISE OKC_API.G_EXCEPTION_ERROR;
1548     	END IF;
1549 
1550         --USER HOOK CALL FOR AFTER, STARTS
1551     	okc_util.call_user_hook(x_return_status  => x_return_status,
1552      				p_package_name   => g_pkg_name,
1553      				p_procedure_name => l_api_name,
1554      				p_before_after   => 'A');
1555 
1556     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1557       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1558     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1559       		RAISE OKC_API.G_EXCEPTION_ERROR;
1560     	END IF;
1561 	--USER HOOK CALL FOR AFTER, ENDS
1562 
1563     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1564   EXCEPTION
1565     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1566       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1567       (
1568         l_api_name,
1569         G_PKG_NAME,
1570         'OKC_API.G_RET_STS_ERROR',
1571         x_msg_count,
1572         x_msg_data,
1573         '_PUB'
1574       );
1575 
1576     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1577       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1578       (
1579         l_api_name,
1580         G_PKG_NAME,
1581         'OKC_API.G_RET_STS_UNEXP_ERROR',
1582         x_msg_count,
1583         x_msg_data,
1584         '_PUB'
1585       );
1586 
1587     WHEN OTHERS THEN
1588       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1589       (
1590         l_api_name,
1591         G_PKG_NAME,
1592         'OTHERS',
1593         x_msg_count,
1594         x_msg_data,
1595         '_PUB'
1596       );
1597   END delete_msg;
1598 
1599   PROCEDURE delete_msg(p_api_version	 IN  NUMBER,
1600     		       p_init_msg_list   IN  VARCHAR2 ,
1601     		       x_return_status   OUT NOCOPY VARCHAR2,
1602     		       x_msg_count       OUT NOCOPY NUMBER,
1603     		       x_msg_data        OUT NOCOPY VARCHAR2,
1604     		       p_aqmv_tbl	 IN  aqmv_tbl_type) IS
1605 
1606 	l_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1607 	i		 NUMBER := 0;
1608   BEGIN
1609     --Initialize the return status
1610 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
1611 
1612     IF p_aqmv_tbl.COUNT > 0 THEN
1613        i := p_aqmv_tbl.FIRST;
1614       LOOP
1615         delete_msg(
1616 	    p_api_version,
1617 	    p_init_msg_list,
1618 	    x_return_status,
1619 	    x_msg_count,
1620 	    x_msg_data,
1621 	    p_aqmv_tbl(i));
1622         IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1623       		IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1624         		l_return_status := x_return_status;
1625         		RAISE G_EXCEPTION_HALT_VALIDATION;
1626 	      	ELSE
1627         		l_return_status := x_return_status;   -- record that there was an error
1628       		END IF;
1629 	END IF;
1630         EXIT WHEN (i = p_aqmv_tbl.LAST);
1631         i := p_aqmv_tbl.NEXT(i);
1632       END LOOP;
1633     END IF;
1634   EXCEPTION
1635     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1636       NULL;
1637 
1638     WHEN OTHERS THEN
1642                           p_token1_value  => sqlcode,
1639       OKC_API.set_message(p_app_name      => g_app_name,
1640                           p_msg_name      => g_unexpected_error,
1641                           p_token1        => g_sqlcode_token,
1643                           p_token2        => g_sqlerrm_token,
1644                           p_token2_value  => sqlerrm);
1645       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1646   END delete_msg;
1647 
1648   PROCEDURE validate_msg(p_api_version	 IN  NUMBER,
1649     		         p_init_msg_list IN  VARCHAR2 ,
1650     		         x_return_status OUT NOCOPY VARCHAR2,
1651     		         x_msg_count     OUT NOCOPY NUMBER,
1652     		         x_msg_data      OUT NOCOPY VARCHAR2,
1653    			 p_aqmv_rec      IN  aqmv_rec_type) IS
1654 
1655 	 l_api_name	 CONSTANT VARCHAR2(30) := 'validate_msg';
1656 	 l_api_version   CONSTANT NUMBER := 1.0;
1657     	 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1658 	 l_aqmv_rec      aqmv_rec_type := p_aqmv_rec;
1659   BEGIN
1660 	 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1661 						   g_pkg_name,
1662 						   p_init_msg_list,
1663 					           l_api_version,
1664 						   p_api_version,
1665 						   '_PUB',
1666                                                    x_return_status);
1667 
1668     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1669       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1670     	ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1671       		RAISE OKC_API.G_EXCEPTION_ERROR;
1672     	END IF;
1673 
1674 	-- USER HOOK CALL FOR BEFORE, STARTS
1675     	g_aqmv_rec := l_aqmv_rec;
1676 
1677     	okc_util.call_user_hook(x_return_status  => x_return_status,
1678      				p_package_name   => g_pkg_name,
1679      				p_procedure_name => l_api_name,
1680      				p_before_after   => 'B');
1681     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1682       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1683     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1684       		RAISE OKC_API.G_EXCEPTION_ERROR;
1685     	END IF;
1686 
1687 	--get values back from hook call
1688 	l_aqmv_rec := migrate_aqmv(l_aqmv_rec, g_aqmv_rec);
1689 
1690     	-- Call to procedure of complex API
1691 	okc_aqm_pvt.validate_row(p_api_version   => p_api_version,
1692     			   	 p_init_msg_list => p_init_msg_list,
1693     				 x_return_status => x_return_status,
1694     				 x_msg_count     => x_msg_count,
1695     				 x_msg_data      => x_msg_data,
1696     				 p_aqmv_rec      => l_aqmv_rec);
1697 
1698 	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1699       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1700     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1701       		RAISE OKC_API.G_EXCEPTION_ERROR;
1702     	END IF;
1703 
1704 	--USER HOOK CALL FOR AFTER, STARTS
1705     	okc_util.call_user_hook(x_return_status  => x_return_status,
1706      				p_package_name   => g_pkg_name,
1707      				p_procedure_name => l_api_name,
1708      				p_before_after   => 'A');
1709     	IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1710       		RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1711     	ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1712       		RAISE OKC_API.G_EXCEPTION_ERROR;
1713     	END IF;
1714 	--USER HOOK CALL FOR AFTER, ENDS
1715 
1716     	OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1717 
1718   EXCEPTION
1719     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1720       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1721       (
1722         l_api_name,
1723         G_PKG_NAME,
1724         'OKC_API.G_RET_STS_ERROR',
1725         x_msg_count,
1726         x_msg_data,
1727         '_PUB'
1728       );
1729 
1730     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1731       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1732       (
1733         l_api_name,
1734         G_PKG_NAME,
1735         'OKC_API.G_RET_STS_UNEXP_ERROR',
1736         x_msg_count,
1737         x_msg_data,
1738         '_PUB'
1739       );
1740 
1741     WHEN OTHERS THEN
1742       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1743       (
1744         l_api_name,
1745         G_PKG_NAME,
1746         'OTHERS',
1747         x_msg_count,
1748         x_msg_data,
1749         '_PUB'
1750       );
1751   END validate_msg;
1752 
1753  PROCEDURE validate_msg(p_api_version	 IN  NUMBER,
1754     		         p_init_msg_list IN  VARCHAR2 ,
1755     		         x_return_status OUT NOCOPY VARCHAR2,
1756     		         x_msg_count     OUT NOCOPY NUMBER,
1757     		         x_msg_data      OUT NOCOPY VARCHAR2,
1758    			 p_aqmv_tbl      IN  aqmv_tbl_type) IS
1759 
1760 	l_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1761 	i		 NUMBER := 0;
1762   BEGIN
1763     --Initialize the return status
1764 	x_return_status := OKC_API.G_RET_STS_SUCCESS;
1765 
1766     IF p_aqmv_tbl.COUNT > 0 THEN
1767       i := p_aqmv_tbl.FIRST;
1768       LOOP
1769         validate_msg(
1770 	    p_api_version,
1771 	    p_init_msg_list,
1772 	    l_return_status,
1773 	    x_msg_count,
1774 	    x_msg_data,
1775 	    p_aqmv_tbl(i));
1776         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1777           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1778             x_return_status := l_return_status;
1779             raise G_EXCEPTION_HALT_VALIDATION;
1780           ELSE
1781             x_return_status := l_return_status;
1782           END IF;
1783         END IF;
1784         EXIT WHEN (i = p_aqmv_tbl.LAST);
1785         i := p_aqmv_tbl.NEXT(i);
1786       END LOOP;
1787     END IF;
1788   EXCEPTION
1789     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1790       NULL;
1791 
1792     WHEN OTHERS THEN
1793       OKC_API.set_message(p_app_name      => g_app_name,
1794                           p_msg_name      => g_unexpected_error,
1795                           p_token1        => g_sqlcode_token,
1796                           p_token1_value  => sqlcode,
1797                           p_token2        => g_sqlerrm_token,
1798                           p_token2_value  => sqlerrm);
1799       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1800   END validate_msg;
1801 
1802 END okc_aqerrmsg_pub;