DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_ACTIONS_PVT

Source


1 PACKAGE BODY OKC_ACTIONS_PVT AS
2 /* $Header: OKCCACNB.pls 120.0 2005/05/25 22:57:10 appldev noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6 /***********************  HAND-CODED  ***************************************/
7 
8   PROCEDURE ADD_LANGUAGE IS
9   BEGIN
10    okc_acn_pvt.add_language;
11    okc_aae_pvt.add_language;
12   END;
13 
14   -- Object type procedure for create
15   PROCEDURE CREATE_ACTIONS(
16     p_api_version      	    IN NUMBER,
17     p_init_msg_list         IN VARCHAR2 ,
18     x_return_status         OUT NOCOPY VARCHAR2,
19     x_msg_count             OUT NOCOPY NUMBER,
20     x_msg_data              OUT NOCOPY VARCHAR2,
21     p_acnv_rec	            IN acnv_rec_type,
22     p_aaev_tbl	            IN aaev_tbl_type,
23     x_acnv_rec              OUT NOCOPY acnv_rec_type,
24     x_aaev_tbl              OUT NOCOPY aaev_tbl_type) IS
25 
26     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
27     l_acnv_rec              acnv_rec_type;
28     l_aaev_tbl              aaev_tbl_type := p_aaev_tbl;
29     i                       NUMBER;
30   BEGIN
31 
32     -- populate the master
33     create_actions(
34     p_api_version,
35     p_init_msg_list,
36     x_return_status,
37     x_msg_count,
38     x_msg_data,
39     p_acnv_rec,
40     x_acnv_rec);
41 
42     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
43        RAISE G_EXCEPTION_HALT_VALIDATION;
44     ELSE
45        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
46           l_return_status := x_return_status;
47        END IF;
48     END IF;
49 
50     -- populate the foreign key for the detail
51     IF (l_aaev_tbl.COUNT > 0) THEN
52        i:= l_aaev_tbl.FIRST;
53        LOOP
54         l_aaev_tbl(i).acn_id := x_acnv_rec.id;
55         EXIT WHEN(i = l_aaev_tbl.LAST);
56         i := l_aaev_tbl.NEXT(i);
57        END LOOP;
58     END IF;
59 
60     -- populate the detail
61     create_act_atts(
62     p_api_version,
63     p_init_msg_list,
64     x_return_status,
65     x_msg_count,
66     x_msg_data,
67     p_aaev_tbl,
68     x_aaev_tbl);
69 
70     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
71        RAISE G_EXCEPTION_HALT_VALIDATION;
72     ELSE
73        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
74           l_return_status := x_return_status;
75        END IF;
76     END IF;
77 
78   EXCEPTION
79     WHEN G_EXCEPTION_HALT_VALIDATION THEN
80     NULL;
81 
82     WHEN OTHERS THEN
83     OKC_API.SET_MESSAGE(p_app_name          => g_app_name
84                        ,p_msg_name          => g_unexpected_error
85                        ,p_token1            => g_sqlcode_token
86                        ,p_token1_value      => sqlcode
87                        ,p_token2            => g_sqlerrm_token
88                        ,p_token2_value      => sqlerrm);
89     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
90 
91   END CREATE_ACTIONS;
92 
93   PROCEDURE CREATE_ACTIONS(
94     p_api_version      	    IN NUMBER,
95     p_init_msg_list         IN VARCHAR2 ,
96     x_return_status         OUT NOCOPY VARCHAR2,
97     x_msg_count             OUT NOCOPY NUMBER,
98     x_msg_data              OUT NOCOPY VARCHAR2,
99     p_acnv_tbl	            IN acnv_tbl_type,
100     p_aaev_tbl	            IN aaev_tbl_type,
101     x_acnv_tbl              OUT NOCOPY acnv_tbl_type,
102     x_aaev_tbl              OUT NOCOPY aaev_tbl_type) IS
103 
104     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
105     l_acnv_tbl              acnv_tbl_type;
106     l_aaev_tbl              aaev_tbl_type := p_aaev_tbl;
107     i                       NUMBER;
108   BEGIN
109 
110     -- populate the master
111     create_actions(
112     p_api_version,
113     p_init_msg_list,
114     x_return_status,
115     x_msg_count,
116     x_msg_data,
117     p_acnv_tbl,
118     x_acnv_tbl);
119 
120     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
121        RAISE G_EXCEPTION_HALT_VALIDATION;
122     ELSE
123        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
124           l_return_status := x_return_status;
125        END IF;
126     END IF;
127 
128     -- populate the foreign key for the detail
129     IF (l_aaev_tbl.COUNT > 0) THEN
130        i:= l_aaev_tbl.FIRST;
131        LOOP
132         l_aaev_tbl(i).acn_id := x_acnv_tbl(i).id;
133         EXIT WHEN(i = l_aaev_tbl.LAST);
134         i := l_aaev_tbl.NEXT(i);
135        END LOOP;
136     END IF;
137 
138     -- populate the detail
139     create_act_atts(
140     p_api_version,
141     p_init_msg_list,
142     x_return_status,
143     x_msg_count,
144     x_msg_data,
145     p_aaev_tbl,
146     x_aaev_tbl);
147 
148     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
149        RAISE G_EXCEPTION_HALT_VALIDATION;
150     ELSE
151        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
152           l_return_status := x_return_status;
153        END IF;
154     END IF;
155 
156   EXCEPTION
157     WHEN G_EXCEPTION_HALT_VALIDATION THEN
158     NULL;
159 
160     WHEN OTHERS THEN
161     OKC_API.SET_MESSAGE(p_app_name          => g_app_name
162                        ,p_msg_name          => g_unexpected_error
163                        ,p_token1            => g_sqlcode_token
164                        ,p_token1_value      => sqlcode
165                        ,p_token2            => g_sqlerrm_token
166                        ,p_token2_value      => sqlerrm);
167     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
168 
169   END CREATE_ACTIONS;
170 
171   -- Object type procedure for update
172   PROCEDURE UPDATE_ACTIONS(
173     p_api_version           IN NUMBER,
174     p_init_msg_list         IN VARCHAR2 ,
175     x_return_status         OUT NOCOPY VARCHAR2,
176     x_msg_count             OUT NOCOPY NUMBER,
177     x_msg_data              OUT NOCOPY VARCHAR2,
178     p_acnv_rec	            IN acnv_rec_type,
179     p_aaev_tbl	            IN aaev_tbl_type,
180     x_acnv_rec              OUT NOCOPY acnv_rec_type,
181     x_aaev_tbl              OUT NOCOPY aaev_tbl_type) IS
182 
183     --l_api_vsersion          CONSTANT NUMBER := 1;
184     --l_api_name              CONSTANT VARCHAR2(30) := 'V_update_pub_event';
185     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
186   BEGIN
187     -- Update the master
188     update_actions(
189     p_api_version,
190     p_init_msg_list,
191     x_return_status,
192     x_msg_count,
193     x_msg_data,
194     p_acnv_rec,
195     x_acnv_rec);
196 
197     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
198        RAISE G_EXCEPTION_HALT_VALIDATION;
199     ELSE
200        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
201           l_return_status := x_return_status;
202        END IF;
203     END IF;
204 
205     -- Update the detail
206     update_act_atts(
207     p_api_version,
208     p_init_msg_list,
209     x_return_status,
210     x_msg_count,
211     x_msg_data,
212     p_aaev_tbl,
213     x_aaev_tbl);
214 
215     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
216        RAISE G_EXCEPTION_HALT_VALIDATION;
217     ELSE
218        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
219           l_return_status := x_return_status;
220        END IF;
221     END IF;
222 
223   EXCEPTION
224     WHEN G_EXCEPTION_HALT_VALIDATION THEN
225     NULL;
226 
227     WHEN OTHERS THEN
228     OKC_API.SET_MESSAGE(p_app_name          => g_app_name
229                        ,p_msg_name          => g_unexpected_error
230                        ,p_token1            => g_sqlcode_token
231                        ,p_token1_value      => sqlcode
232                        ,p_token2            => g_sqlerrm_token
233                        ,p_token2_value      => sqlerrm);
234     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
235 
236   END UPDATE_ACTIONS;
237 
238   -- Object type procedure for validate
239   PROCEDURE VALIDATE_ACTIONS(
240     p_api_version           IN NUMBER,
241     p_init_msg_list         IN VARCHAR2 ,
242     x_return_status         OUT NOCOPY VARCHAR2,
243     x_msg_count             OUT NOCOPY NUMBER,
244     x_msg_data              OUT NOCOPY VARCHAR2,
245     p_acnv_rec	            IN acnv_rec_type,
246     p_aaev_tbl	            IN aaev_tbl_type) IS
247 
248     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
249   BEGIN
250     -- Validate the master
251     validate_actions(
252     p_api_version,
253     p_init_msg_list,
254     x_return_status,
255     x_msg_count,
256     x_msg_data,
257     p_acnv_rec);
258 
259     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
260        RAISE G_EXCEPTION_HALT_VALIDATION;
261     ELSE
262        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
263           l_return_status := x_return_status;
264        END IF;
265     END IF;
266 
267     -- Validate the detail
268     validate_act_atts(
269     p_api_version,
270     p_init_msg_list,
271     x_return_status,
272     x_msg_count,
273     x_msg_data,
274     p_aaev_tbl);
275 
276     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
277        RAISE G_EXCEPTION_HALT_VALIDATION;
278     ELSE
279        IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
280           l_return_status := x_return_status;
281        END IF;
282     END IF;
283 
284   EXCEPTION
285     WHEN G_EXCEPTION_HALT_VALIDATION THEN
286     NULL;
287 
288     WHEN OTHERS THEN
289     OKC_API.SET_MESSAGE(p_app_name          => g_app_name
290                        ,p_msg_name          => g_unexpected_error
291                        ,p_token1            => g_sqlcode_token
292                        ,p_token1_value      => sqlcode
293                        ,p_token2            => g_sqlerrm_token
294                        ,p_token2_value      => sqlerrm);
295     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
296 
297   END VALIDATE_ACTIONS;
298 
299   -- Procedures for Actions
300   PROCEDURE CREATE_ACTIONS(
301     p_api_version	    IN NUMBER,
302     p_init_msg_list         IN VARCHAR2 ,
303     x_return_status         OUT NOCOPY VARCHAR2,
304     x_msg_count             OUT NOCOPY NUMBER,
305     x_msg_data              OUT NOCOPY VARCHAR2,
306     p_acnv_rec		    IN acnv_rec_type,
307     x_acnv_rec              OUT NOCOPY acnv_rec_type) IS
308 
309   BEGIN
310     okc_acn_pvt.insert_row(
311     p_api_version,
312     p_init_msg_list,
313     x_return_status,
314     x_msg_count,
315     x_msg_data,
316     p_acnv_rec,
317     x_acnv_rec);
318 
319   END CREATE_ACTIONS;
320 
321   PROCEDURE CREATE_ACTIONS(
322     p_api_version		   IN NUMBER,
323     p_init_msg_list         IN VARCHAR2 ,
324     x_return_status         OUT NOCOPY VARCHAR2,
325     x_msg_count             OUT NOCOPY NUMBER,
326     x_msg_data              OUT NOCOPY VARCHAR2,
327     p_acnv_tbl		    IN acnv_tbl_type,
328     x_acnv_tbl              OUT NOCOPY acnv_tbl_type) IS
329 
330   BEGIN
331 
332     okc_acn_pvt.insert_row(
333     p_api_version,
334     p_init_msg_list,
335     x_return_status,
336     x_msg_count,
337     x_msg_data,
338     p_acnv_tbl,
339     x_acnv_tbl);
340 
341   END CREATE_ACTIONS;
342 
343   PROCEDURE LOCK_ACTIONS(
344     p_api_version		   IN NUMBER,
345     p_init_msg_list         IN VARCHAR2 ,
346     x_return_status         OUT NOCOPY VARCHAR2,
347     x_msg_count             OUT NOCOPY NUMBER,
348     x_msg_data              OUT NOCOPY VARCHAR2,
349     p_acnv_rec		    IN acnv_rec_type) IS
350 
351   BEGIN
352     okc_acn_pvt.lock_row(
353     p_api_version,
354     p_init_msg_list,
355     x_return_status,
356     x_msg_count,
357     x_msg_data,
358     p_acnv_rec);
359 
360   END LOCK_ACTIONS;
361 
362   PROCEDURE LOCK_ACTIONS(
363     p_api_version		   IN NUMBER,
364     p_init_msg_list         IN VARCHAR2 ,
365     x_return_status         OUT NOCOPY VARCHAR2,
366     x_msg_count             OUT NOCOPY NUMBER,
367     x_msg_data              OUT NOCOPY VARCHAR2,
368     p_acnv_tbl		    IN acnv_tbl_type) IS
369 
370   BEGIN
371     okc_acn_pvt.lock_row(
372     p_api_version,
373     p_init_msg_list,
374     x_return_status,
375     x_msg_count,
376     x_msg_data,
377     p_acnv_tbl);
378 
379   END LOCK_ACTIONS;
380 
381   PROCEDURE UPDATE_ACTIONS(
382     p_api_version	    IN NUMBER,
383     p_init_msg_list         IN VARCHAR2 ,
384     x_return_status         OUT NOCOPY VARCHAR2,
385     x_msg_count             OUT NOCOPY NUMBER,
386     x_msg_data              OUT NOCOPY VARCHAR2,
387     p_acnv_rec		    IN acnv_rec_type,
388     x_acnv_rec              OUT NOCOPY acnv_rec_type) IS
389     l_aaev_tbl              OKC_ACTIONS_PUB.aaev_tbl_type;
390     v_aaev_tbl              OKC_ACTIONS_PUB.aaev_tbl_type;
391     l_api_version      NUMBER := 1;
392     l_init_msg_list    VARCHAR2(1) := 'T';
393     l_return_status    varchar2(1):= OKC_API.G_RET_STS_SUCCESS;
394     l_msg_count        number;
395     l_msg_data         varchar2(200);
396     l_app_id1          NUMBER;
397     l_cnt              NUMBER := 0;
398    CURSOR l_id_cur is
399    SELECT *
400    FROM okc_action_attributes_V
401    WHERE acn_id = p_acnv_rec.id;
402   BEGIN
403 
404     SELECT application_id INTO l_app_id1
405     FROM OKC_ACTIONS_B
406     WHERE id = p_acnv_rec.id;
407 
408     okc_acn_pvt.update_row(
409     p_api_version,
410     p_init_msg_list,
411     x_return_status,
412     x_msg_count,
413     x_msg_data,
414     p_acnv_rec,
415     x_acnv_rec);
416 IF x_return_status = 'S' THEN
417 
418     IF nvl(p_acnv_rec.application_id,-99) <> nvl(l_app_id1,-99) THEN
419        l_aaev_tbl.delete;
420        v_aaev_tbl.delete;
421        FOR l_aaev_rec in l_id_cur
422        LOOP
423         l_cnt := l_cnt + 1;
424         l_aaev_tbl(l_cnt).id := l_aaev_rec.id;
425         l_aaev_tbl(l_cnt).application_id := p_acnv_rec.application_id;
426         l_aaev_tbl(l_cnt).object_Version_number := l_aaev_rec.object_Version_number;
427         l_aaev_tbl(l_cnt).aal_id := l_aaev_rec.aal_id;
428         l_aaev_tbl(l_cnt).ACN_ID := l_aaev_rec.ACN_ID;
429         l_aaev_tbl(l_cnt).ELEMENT_NAME := l_aaev_rec.ELEMENT_NAME;
430         l_aaev_tbl(l_cnt).NAME := l_aaev_rec.NAME;
431         l_aaev_tbl(l_cnt).SFWT_FLAG := l_aaev_rec.SFWT_FLAG;
432         l_aaev_tbl(l_cnt).DESCRIPTION := l_aaev_rec.DESCRIPTION;
433         l_aaev_tbl(l_cnt).DATA_TYPE := l_aaev_rec.DATA_TYPE;
434         l_aaev_tbl(l_cnt).LIST_YN := l_aaev_rec.LIST_YN;
435         l_aaev_tbl(l_cnt).VISIBLE_YN := l_aaev_rec.VISIBLE_YN;
436         l_aaev_tbl(l_cnt).DATE_OF_INTEREST_YN := l_aaev_rec.DATE_OF_INTEREST_YN;
437         l_aaev_tbl(l_cnt).FORMAT_MASK := l_aaev_rec.FORMAT_MASK;
438         l_aaev_tbl(l_cnt).MINIMUM_VALUE := l_aaev_rec.MINIMUM_VALUE;
439         l_aaev_tbl(l_cnt).MAXIMUM_VALUE := l_aaev_rec.MAXIMUM_VALUE;
440         l_aaev_tbl(l_cnt).SEEDED_FLAG := l_aaev_rec.SEEDED_FLAG;
441         l_aaev_tbl(l_cnt).ATTRIBUTE_CATEGORY := l_aaev_rec.ATTRIBUTE_CATEGORY;
442         l_aaev_tbl(l_cnt).ATTRIBUTE1 := l_aaev_rec.ATTRIBUTE1;
443         l_aaev_tbl(l_cnt).ATTRIBUTE2 := l_aaev_rec.ATTRIBUTE2;
444         l_aaev_tbl(l_cnt).ATTRIBUTE3 := l_aaev_rec.ATTRIBUTE3;
445         l_aaev_tbl(l_cnt).ATTRIBUTE4 := l_aaev_rec.ATTRIBUTE4;
446         l_aaev_tbl(l_cnt).ATTRIBUTE5 := l_aaev_rec.ATTRIBUTE5;
447         l_aaev_tbl(l_cnt).ATTRIBUTE6 := l_aaev_rec.ATTRIBUTE6;
448         l_aaev_tbl(l_cnt).ATTRIBUTE7 := l_aaev_rec.ATTRIBUTE7;
449         l_aaev_tbl(l_cnt).ATTRIBUTE8 := l_aaev_rec.ATTRIBUTE8;
450         l_aaev_tbl(l_cnt).ATTRIBUTE9 := l_aaev_rec.ATTRIBUTE9;
451         l_aaev_tbl(l_cnt).ATTRIBUTE10 := l_aaev_rec.ATTRIBUTE10;
452         l_aaev_tbl(l_cnt).ATTRIBUTE11 := l_aaev_rec.ATTRIBUTE11;
453         l_aaev_tbl(l_cnt).ATTRIBUTE12 := l_aaev_rec.ATTRIBUTE12;
454         l_aaev_tbl(l_cnt).ATTRIBUTE13 := l_aaev_rec.ATTRIBUTE13;
455         l_aaev_tbl(l_cnt).ATTRIBUTE14 := l_aaev_rec.ATTRIBUTE14;
456         l_aaev_tbl(l_cnt).ATTRIBUTE15 := l_aaev_rec.ATTRIBUTE15;
457         l_aaev_tbl(l_cnt).JTOT_OBJECT_CODE := l_aaev_rec.JTOT_OBJECT_CODE;
458         l_aaev_tbl(l_cnt).NAME_COLUMN := l_aaev_rec.NAME_COLUMN;
459         l_aaev_tbl(l_cnt).DESCRIPTION_COLUMN := l_aaev_rec.DESCRIPTION_COLUMN;
460         l_aaev_tbl(l_cnt).SOURCE_DOC_NUMBER_YN := l_aaev_rec.SOURCE_DOC_NUMBER_YN;
461         l_aaev_tbl(l_cnt).LAST_UPDATED_BY := l_aaev_rec.LAST_UPDATED_BY;
462         l_aaev_tbl(l_cnt).CREATED_BY := l_aaev_rec.CREATED_BY;
463         l_aaev_tbl(l_cnt).CREATION_DATE := l_aaev_rec.CREATION_DATE;
464         l_aaev_tbl(l_cnt).LAST_UPDATE_DATE := l_aaev_rec.LAST_UPDATE_DATE;
465         l_aaev_tbl(l_cnt).LAST_UPDATE_LOGIN := l_aaev_rec.LAST_UPDATE_LOGIN;
466 
467        END LOOP;
468       -- CLOSE l_id_cur;
469    -- v_aaev_tbl := l_aaev_tbl;
470   okc_actions_pub.update_act_atts (
471      p_api_version      => l_api_version
472     ,p_init_msg_list    => l_init_msg_list
473     ,x_return_status    => l_return_status
474     ,x_msg_count        => l_msg_count
475     ,x_msg_data         => l_msg_data
476     ,p_aaev_tbl         => l_aaev_tbl
477     ,x_aaev_tbl         => v_aaev_tbl
478     );
479    END IF;
480 END IF;
481 
482   END UPDATE_ACTIONS;
483 
484 
485 
486   PROCEDURE UPDATE_ACTIONS(
487     p_api_version		   IN NUMBER,
488     p_init_msg_list         IN VARCHAR2 ,
489     x_return_status         OUT NOCOPY VARCHAR2,
490     x_msg_count             OUT NOCOPY NUMBER,
491     x_msg_data              OUT NOCOPY VARCHAR2,
492     p_acnv_tbl		    IN acnv_tbl_type,
493     x_acnv_tbl              OUT NOCOPY acnv_tbl_type) IS
494 BEGIN
495     okc_acn_pvt.update_row(
496     p_api_version,
497     p_init_msg_list,
498     x_return_status,
499     x_msg_count,
500     x_msg_data,
501     p_acnv_tbl,
502     x_acnv_tbl);
503   END UPDATE_ACTIONS;
504 
505   -- Procedure for Cascade Delete
506   PROCEDURE DELETE_ACTIONS(
507     p_api_version           IN NUMBER,
508     p_init_msg_list         IN VARCHAR2 ,
509     x_return_status         OUT NOCOPY VARCHAR2,
510     x_msg_count             OUT NOCOPY NUMBER,
511     x_msg_data              OUT NOCOPY VARCHAR2,
512     p_acnv_rec		    IN acnv_rec_type) IS
513 
514     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
515     i                       NUMBER      := 0;
516     l_aaev_tbl              aaev_tbl_type;
517 
518     CURSOR aae_csr IS
519     SELECT aae.id
520     FROM   okc_action_attributes_v aae
521     WHERE  aae.acn_id = p_acnv_rec.id;
522 
523   BEGIN
524       -- populate the foreign key of the detail
525       FOR aae_rec IN aae_csr LOOP
526           i := i + 1;
527           l_aaev_tbl(i).acn_id := aae_rec.id;
528       END LOOP;
529 
530       -- Delete the details
531       -- call delete procedure
532 	 IF l_aaev_tbl.COUNT > 0 THEN
533       okc_actions_pvt.delete_act_atts(
534       p_api_version,
535       p_init_msg_list,
536       x_return_status,
537       x_msg_count,
538       x_msg_data,
539       l_aaev_tbl);
540 
541         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
542         RAISE G_EXCEPTION_HALT_VALIDATION;
543         ELSE
544           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
545              l_return_status := x_return_status;
546           END IF;
547         END IF;
548       END IF;
549     -- Delete the Master
550     okc_acn_pvt.delete_row(
551     p_api_version,
552     p_init_msg_list,
553     x_return_status,
554     x_msg_count,
555     x_msg_data,
556     p_acnv_rec);
557 
558         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
559         RAISE G_EXCEPTION_HALT_VALIDATION;
560         ELSE
561           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
562              l_return_status := x_return_status;
563           END IF;
564         END IF;
565 
566   EXCEPTION
567     WHEN G_EXCEPTION_HALT_VALIDATION THEN
568     NULL;
569 
570     WHEN OTHERS THEN
571     OKC_API.SET_MESSAGE(p_app_name         => g_app_name
572                        ,p_msg_name         => g_unexpected_error
573                        ,p_token1           => g_sqlcode_token
574                        ,p_token1_value     => sqlcode
575                        ,p_token2           => g_sqlerrm_token
576                        ,p_token2_value     => sqlerrm);
577     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
578 
579   END DELETE_ACTIONS;
580 
581   PROCEDURE DELETE_ACTIONS(
582     p_api_version	    IN NUMBER,
583     p_init_msg_list         IN VARCHAR2 ,
584     x_return_status         OUT NOCOPY VARCHAR2,
585     x_msg_count             OUT NOCOPY NUMBER,
586     x_msg_data              OUT NOCOPY VARCHAR2,
587     p_acnv_tbl		    IN acnv_tbl_type) IS
588     i                       NUMBER := 0;
589     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
590 
591   BEGIN
592     -- Initialize the return status
593     x_return_status := OKC_API.G_RET_STS_SUCCESS;
594 
595     IF (p_acnv_tbl.COUNT > 0) THEN
596         i := p_acnv_tbl.FIRST;
597         LOOP
598            delete_actions(
599                           p_api_version
600                          ,p_init_msg_list
601                          ,x_return_status
602                          ,x_msg_count
603                          ,x_msg_data
604                          ,p_acnv_tbl(i));
605                              EXIT WHEN (i=p_acnv_tbl.LAST);
606            i := p_acnv_tbl.NEXT(i);
607          END LOOP;
608      END IF;
609 
610         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
611         RAISE G_EXCEPTION_HALT_VALIDATION;
612         ELSE
613           IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
614              l_return_status := x_return_status;
615           END IF;
616         END IF;
617 
618   EXCEPTION
619     WHEN G_EXCEPTION_HALT_VALIDATION THEN
620     NULL;
621 
622     WHEN OTHERS THEN
623     OKC_API.SET_MESSAGE(p_app_name         => g_app_name
624                        ,p_msg_name         => g_unexpected_error
625                        ,p_token1           => g_sqlcode_token
626                        ,p_token1_value     => sqlcode
627                        ,p_token2           => g_sqlerrm_token
628                        ,p_token2_value     => sqlerrm);
629     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
630 
631   END DELETE_ACTIONS;
632 
633   PROCEDURE VALIDATE_ACTIONS(
634     p_api_version           IN NUMBER,
635     p_init_msg_list         IN VARCHAR2 ,
636     x_return_status         OUT NOCOPY VARCHAR2,
637     x_msg_count             OUT NOCOPY NUMBER,
638     x_msg_data              OUT NOCOPY VARCHAR2,
639     p_acnv_rec		    IN acnv_rec_type) IS
640 
641   BEGIN
642 
643     okc_acn_pvt.validate_row(
644     p_api_version,
645     p_init_msg_list,
646     x_return_status,
647     x_msg_count,
648     x_msg_data,
649     p_acnv_rec);
650 
651   END VALIDATE_ACTIONS;
652   PROCEDURE VALIDATE_ACTIONS(
653     p_api_version		   IN NUMBER,
654     p_init_msg_list         IN VARCHAR2 ,
655     x_return_status         OUT NOCOPY VARCHAR2,
656     x_msg_count             OUT NOCOPY NUMBER,
657     x_msg_data              OUT NOCOPY VARCHAR2,
658     p_acnv_tbl		    IN acnv_tbl_type) IS
659 
660   BEGIN
661 
662     okc_acn_pvt.validate_row(
663     p_api_version,
664     p_init_msg_list,
665     x_return_status,
666     x_msg_count,
667     x_msg_data,
668     p_acnv_tbl);
669 
670   END VALIDATE_ACTIONS;
671   -- Procedures for Action Attributes
672   PROCEDURE CREATE_ACT_ATTS(
673     p_api_version           IN NUMBER,
674     p_init_msg_list         IN VARCHAR2 ,
675     x_return_status         OUT NOCOPY VARCHAR2,
676     x_msg_count             OUT NOCOPY NUMBER,
677     x_msg_data              OUT NOCOPY VARCHAR2,
678     p_aaev_rec		    IN aaev_rec_type,
679     x_aaev_rec              OUT NOCOPY aaev_rec_type) IS
680     l_app_id                NUMBER;
681     l_aaev_rec		    aaev_rec_type := p_aaev_rec;
682 
683   BEGIN
684    SELECT application_id into l_app_id
685    FROM OKC_ACTIONS_B
686    WHERE ID = l_aaev_rec.acn_id;
687     l_aaev_rec.application_id := l_app_id;
688     okc_aae_pvt.insert_row(
689     p_api_version,
690     p_init_msg_list,
691     x_return_status,
692     x_msg_count,
693     x_msg_data,
694     l_aaev_rec,
695     x_aaev_rec);
696 
697   END CREATE_ACT_ATTS;
698 
699   PROCEDURE CREATE_ACT_ATTS(
700     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_aaev_tbl		    IN aaev_tbl_type,
706     x_aaev_tbl              OUT NOCOPY aaev_tbl_type) IS
707   BEGIN
708     okc_aae_pvt.insert_row(
709     p_api_version,
710     p_init_msg_list,
711     x_return_status,
712     x_msg_count,
713     x_msg_data,
714     p_aaev_tbl,
715     x_aaev_tbl);
716 
717   END CREATE_ACT_ATTS;
718 
719   PROCEDURE LOCK_ACT_ATTS(
720     p_api_version		   IN NUMBER,
721     p_init_msg_list         IN VARCHAR2 ,
722     x_return_status         OUT NOCOPY VARCHAR2,
723     x_msg_count             OUT NOCOPY NUMBER,
724     x_msg_data              OUT NOCOPY VARCHAR2,
725     p_aaev_rec		    IN aaev_rec_type) IS
726 
727   BEGIN
728     okc_aae_pvt.lock_row(
729     p_api_version,
730     p_init_msg_list,
731     x_return_status,
732     x_msg_count,
733     x_msg_data,
734     p_aaev_rec);
735 
736   END LOCK_ACT_ATTS;
737 
738   PROCEDURE LOCK_ACT_ATTS(
739     p_api_version		   IN NUMBER,
740     p_init_msg_list         IN VARCHAR2 ,
741     x_return_status         OUT NOCOPY VARCHAR2,
742     x_msg_count             OUT NOCOPY NUMBER,
743     x_msg_data              OUT NOCOPY VARCHAR2,
744     p_aaev_tbl		    IN aaev_tbl_type) IS
745 
746   BEGIN
747     okc_aae_pvt.lock_row(
748     p_api_version,
749     p_init_msg_list,
750     x_return_status,
751     x_msg_count,
752     x_msg_data,
753     p_aaev_tbl);
754 
755   END LOCK_ACT_ATTS;
756 
757   PROCEDURE UPDATE_ACT_ATTS(
758     p_api_version           IN NUMBER,
759     p_init_msg_list         IN VARCHAR2 ,
760     x_return_status         OUT NOCOPY VARCHAR2,
761     x_msg_count             OUT NOCOPY NUMBER,
762     x_msg_data              OUT NOCOPY VARCHAR2,
763     p_aaev_rec		    IN aaev_rec_type,
764     x_aaev_rec              OUT NOCOPY aaev_rec_type) IS
765   BEGIN
766     okc_aae_pvt.update_row(
767     p_api_version,
768     p_init_msg_list,
769     x_return_status,
770     x_msg_count,
771     x_msg_data,
772     p_aaev_rec,
773     x_aaev_rec);
774 
775   END UPDATE_ACT_ATTS;
776 
777   PROCEDURE UPDATE_ACT_ATTS(
778     p_api_version           IN NUMBER,
779     p_init_msg_list         IN VARCHAR2 ,
780     x_return_status         OUT NOCOPY VARCHAR2,
781     x_msg_count             OUT NOCOPY NUMBER,
782     x_msg_data              OUT NOCOPY VARCHAR2,
783     p_aaev_tbl		    IN aaev_tbl_type,
784     x_aaev_tbl              OUT NOCOPY aaev_tbl_type) IS
785 
786   BEGIN
787     okc_aae_pvt.update_row(
788     p_api_version,
789     p_init_msg_list,
790     x_return_status,
791     x_msg_count,
792     x_msg_data,
793     p_aaev_tbl,
794     x_aaev_tbl);
795 
796   END UPDATE_ACT_ATTS;
797 
798   PROCEDURE DELETE_ACT_ATTS(
799     p_api_version           IN NUMBER,
800     p_init_msg_list         IN VARCHAR2 ,
801     x_return_status         OUT NOCOPY VARCHAR2,
802     x_msg_count             OUT NOCOPY NUMBER,
803     x_msg_data              OUT NOCOPY VARCHAR2,
804     p_aaev_rec		    IN aaev_rec_type) IS
805 
806   BEGIN
807     okc_aae_pvt.delete_row(
808     p_api_version,
809     p_init_msg_list,
810     x_return_status,
811     x_msg_count,
812     x_msg_data,
813     p_aaev_rec);
814 
815   END DELETE_ACT_ATTS;
816 
817   PROCEDURE DELETE_ACT_ATTS(
818     p_api_version	    IN NUMBER,
819     p_init_msg_list         IN VARCHAR2 ,
820     x_return_status         OUT NOCOPY VARCHAR2,
821     x_msg_count             OUT NOCOPY NUMBER,
822     x_msg_data              OUT NOCOPY VARCHAR2,
823     p_aaev_tbl		    IN aaev_tbl_type) IS
824 
825   BEGIN
826     okc_aae_pvt.delete_row(
827     p_api_version,
828     p_init_msg_list,
829     x_return_status,
830     x_msg_count,
831     x_msg_data,
832     p_aaev_tbl);
833 
834   END DELETE_ACT_ATTS;
835 
836   PROCEDURE VALIDATE_ACT_ATTS(
837     p_api_version           IN NUMBER,
838     p_init_msg_list         IN VARCHAR2 ,
839     x_return_status         OUT NOCOPY VARCHAR2,
840     x_msg_count             OUT NOCOPY NUMBER,
841     x_msg_data              OUT NOCOPY VARCHAR2,
842     p_aaev_rec		    IN aaev_rec_type) IS
843 
844   BEGIN
845     okc_aae_pvt.validate_row(
846     p_api_version,
847     p_init_msg_list,
848     x_return_status,
849     x_msg_count,
850     x_msg_data,
851     p_aaev_rec);
852 
853   END VALIDATE_ACT_ATTS;
854 
855   PROCEDURE VALIDATE_ACT_ATTS(
856     p_api_version           IN NUMBER,
857     p_init_msg_list         IN VARCHAR2 ,
858     x_return_status         OUT NOCOPY VARCHAR2,
859     x_msg_count             OUT NOCOPY NUMBER,
860     x_msg_data              OUT NOCOPY VARCHAR2,
861     p_aaev_tbl		    IN aaev_tbl_type) IS
862 
863   BEGIN
864     okc_aae_pvt.validate_row(
865     p_api_version,
866     p_init_msg_list,
867     x_return_status,
868     x_msg_count,
869     x_msg_data,
870     p_aaev_tbl);
871 
872   END VALIDATE_ACT_ATTS;
873 
874   END OKC_ACTIONS_PVT;