DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AGC_PVT

Source


1 PACKAGE BODY OKL_AGC_PVT AS
2 /* $Header: OKLSAGCB.pls 120.3 2006/07/13 12:50:57 adagur noship $ */
3   ---------------------------------------------------------------------------
4   -- FUNCTION get_seq_id
5   ---------------------------------------------------------------------------
6   FUNCTION get_seq_id RETURN NUMBER IS
7   BEGIN
8       RETURN(okc_p_util.raw_to_number(sys_guid()));
9   END get_seq_id;
10 
11   ---------------------------------------------------------------------------
12   -- PROCEDURE qc
13   ---------------------------------------------------------------------------
14   PROCEDURE qc IS
15   BEGIN
16     NULL;
17   END qc;
18 
19   ---------------------------------------------------------------------------
20   -- PROCEDURE change_version
21   ---------------------------------------------------------------------------
22   PROCEDURE change_version IS
23   BEGIN
24     NULL;
25   END change_version;
26 
27   ---------------------------------------------------------------------------
28   -- PROCEDURE api_copy
29   ---------------------------------------------------------------------------
30   PROCEDURE api_copy IS
31   BEGIN
32     NULL;
33   END api_copy;
34 
35   ---------------------------------------------------------------------------
36   -- FUNCTION get_rec for: OKL_ACC_GROUP_CCID
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_agc_rec                      IN agc_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN agc_rec_type IS
42     CURSOR OKL_ACC_GROUP_CCID_pk_csr (p_id                 IN NUMBER) IS
43     SELECT
44             ID,
45             CODE_COMBINATION_ID,
46             OBJECT_VERSION_NUMBER,
47             SET_OF_BOOKS_ID,
48             ACC_GROUP_CODE,
49             ORG_ID,
50             CREATED_BY,
51             CREATION_DATE,
52             LAST_UPDATED_BY,
53             LAST_UPDATE_DATE,
54             LAST_UPDATE_LOGIN
55       FROM OKL_ACC_GROUP_CCID
56      WHERE OKL_ACC_GROUP_CCID.id  = p_id;
57     l_OKL_ACC_GROUP_CCID_pk          okl_acc_group_ccid_pk_csr%ROWTYPE;
58     l_agc_rec                      agc_rec_type;
59   BEGIN
60     x_no_data_found := TRUE;
61     -- Get current database values
62     OPEN OKL_ACC_GROUP_CCID_pk_csr (p_agc_rec.id);
63     FETCH OKL_ACC_GROUP_CCID_pk_csr INTO
64               l_agc_rec.ID,
65               l_agc_rec.CODE_COMBINATION_ID,
66               l_agc_rec.OBJECT_VERSION_NUMBER,
67               l_agc_rec.SET_OF_BOOKS_ID,
68               l_agc_rec.ACC_GROUP_CODE,
69               l_agc_rec.ORG_ID,
70               l_agc_rec.CREATED_BY,
71               l_agc_rec.CREATION_DATE,
72               l_agc_rec.LAST_UPDATED_BY,
73               l_agc_rec.LAST_UPDATE_DATE,
74               l_agc_rec.LAST_UPDATE_LOGIN;
75     x_no_data_found := OKL_ACC_GROUP_CCID_pk_csr%NOTFOUND;
76     CLOSE OKL_ACC_GROUP_CCID_pk_csr;
77     RETURN(l_agc_rec);
78   END get_rec;
79 
80   FUNCTION get_rec (
81     p_agc_rec                      IN agc_rec_type
82   ) RETURN agc_rec_type IS
83     l_row_notfound                 BOOLEAN := TRUE;
84   BEGIN
85     RETURN(get_rec(p_agc_rec, l_row_notfound));
86   END get_rec;
87   ---------------------------------------------------------------------------
88   -- FUNCTION get_rec for: OKL_ACC_GROUP_CCID_V
89   ---------------------------------------------------------------------------
90   FUNCTION get_rec (
91     p_agcv_rec                     IN agcv_rec_type,
92     x_no_data_found                OUT NOCOPY BOOLEAN
93   ) RETURN agcv_rec_type IS
94     CURSOR okl_agcv_pk_csr (p_id                 IN NUMBER) IS
95     SELECT
96             ID,
97             OBJECT_VERSION_NUMBER,
98             ACC_GROUP_CODE,
99             CODE_COMBINATION_ID,
100             SET_OF_BOOKS_ID,
101             ORG_ID,
102             CREATED_BY,
103             CREATION_DATE,
104             LAST_UPDATED_BY,
105             LAST_UPDATE_DATE,
106             LAST_UPDATE_LOGIN
107       FROM OKL_ACC_GROUP_CCID
108      WHERE OKL_ACC_GROUP_CCID.id = p_id;
109     l_okl_agcv_pk                  okl_agcv_pk_csr%ROWTYPE;
110     l_agcv_rec                     agcv_rec_type;
111   BEGIN
112     x_no_data_found := TRUE;
113     -- Get current database values
114     OPEN okl_agcv_pk_csr (p_agcv_rec.id);
115     FETCH okl_agcv_pk_csr INTO
116               l_agcv_rec.ID,
117               l_agcv_rec.OBJECT_VERSION_NUMBER,
118               l_agcv_rec.ACC_GROUP_CODE,
119               l_agcv_rec.CODE_COMBINATION_ID,
120               l_agcv_rec.SET_OF_BOOKS_ID,
121               l_agcv_rec.ORG_ID,
122               l_agcv_rec.CREATED_BY,
123               l_agcv_rec.CREATION_DATE,
124               l_agcv_rec.LAST_UPDATED_BY,
125               l_agcv_rec.LAST_UPDATE_DATE,
126               l_agcv_rec.LAST_UPDATE_LOGIN;
127     x_no_data_found := okl_agcv_pk_csr%NOTFOUND;
128     CLOSE okl_agcv_pk_csr;
129     RETURN(l_agcv_rec);
130   END get_rec;
131 
132   FUNCTION get_rec (
133     p_agcv_rec                     IN agcv_rec_type
134   ) RETURN agcv_rec_type IS
135     l_row_notfound                 BOOLEAN := TRUE;
136   BEGIN
137     RETURN(get_rec(p_agcv_rec, l_row_notfound));
138   END get_rec;
139 
140   --------------------------------------------------------
141   -- FUNCTION null_out_defaults for: OKL_ACC_GROUP_CCID_V --
142   --------------------------------------------------------
143   FUNCTION null_out_defaults (
144     p_agcv_rec	IN agcv_rec_type
145   ) RETURN agcv_rec_type IS
146     l_agcv_rec	agcv_rec_type := p_agcv_rec;
147   BEGIN
148     IF (l_agcv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
149       l_agcv_rec.object_version_number := NULL;
150     END IF;
151     IF (l_agcv_rec.acc_group_code = Okc_Api.G_MISS_CHAR) THEN
152       l_agcv_rec.acc_group_code := NULL;
153     END IF;
154     IF (l_agcv_rec.code_combination_id = Okc_Api.G_MISS_NUM) THEN
155       l_agcv_rec.code_combination_id := NULL;
156     END IF;
157     IF (l_agcv_rec.set_of_books_id = Okc_Api.G_MISS_NUM) THEN
158       l_agcv_rec.set_of_books_id := NULL;
159     END IF;
160     IF (l_agcv_rec.org_id = Okc_Api.G_MISS_NUM) THEN
161       l_agcv_rec.org_id := NULL;
162     END IF;
163     IF (l_agcv_rec.created_by = Okc_Api.G_MISS_NUM) THEN
164       l_agcv_rec.created_by := NULL;
165     END IF;
166     IF (l_agcv_rec.creation_date = Okc_Api.G_MISS_DATE) THEN
167       l_agcv_rec.creation_date := NULL;
168     END IF;
169     IF (l_agcv_rec.last_updated_by = Okc_Api.G_MISS_NUM) THEN
170       l_agcv_rec.last_updated_by := NULL;
171     END IF;
172     IF (l_agcv_rec.last_update_date = Okc_Api.G_MISS_DATE) THEN
173       l_agcv_rec.last_update_date := NULL;
174     END IF;
175     IF (l_agcv_rec.last_update_login = Okc_Api.G_MISS_NUM) THEN
176       l_agcv_rec.last_update_login := NULL;
177     END IF;
178     RETURN(l_agcv_rec);
179   END null_out_defaults;
180 
181   ------------------------------------------------
182   -- Validate_Attributes for:OKL_ACC_GROUP_CCID_V --
183   ------------------------------------------------
184   FUNCTION Validate_Attributes (
185     p_agcv_rec IN  agcv_rec_type
186   ) RETURN VARCHAR2 IS
187 
188     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
189     x_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
190 
191     l_enddate_status	VARCHAR2(1);
192 
193   BEGIN
194     IF p_agcv_rec.id = Okc_Api.G_MISS_NUM OR
195        p_agcv_rec.id IS NULL
196     THEN
197       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
198       l_return_status := Okc_Api.G_RET_STS_ERROR;
199     END IF;
200 
201     IF p_agcv_rec.object_version_number = Okc_Api.G_MISS_NUM OR
202           p_agcv_rec.object_version_number IS NULL
203     THEN
204       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
205       l_return_status := Okc_Api.G_RET_STS_ERROR;
206     END IF;
207 
208     IF p_agcv_rec.code_combination_id = Okc_Api.G_MISS_NUM OR
209           p_agcv_rec.code_combination_id IS NULL
210     THEN
211       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'code_combination_id');
212       l_return_status := Okc_Api.G_RET_STS_ERROR;
213 
214     END IF;
215 
216     RETURN(l_return_status);
217 
218     EXCEPTION
219     WHEN    G_EXCEPTION_HALT_VALIDATION THEN
220     NULL;
221     RETURN (l_return_status);
222     WHEN OTHERS THEN
223       Okc_Api.set_message(G_APP_NAME,G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
224       l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
225 	RETURN(l_return_status);
226 
227 
228   END Validate_Attributes;
229 
230   ---------------------------------------------------------------------------
231   -- PROCEDURE Validate_Record
232   ---------------------------------------------------------------------------
233   --------------------------------------------
234   -- Validate_Record for:OKL_ACC_GROUP_CCID_V --
235   --------------------------------------------
236   FUNCTION Validate_Record (
237     p_agcv_rec IN  agcv_rec_type
238   ) RETURN VARCHAR2 IS
239     l_return_status   VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
240 
241     BEGIN
242     NULL;
243     RETURN (l_return_status);
244     END Validate_Record;
245 
246 
247 
248   ---------------------------------------------------------------------------
249 
250 
251   ---------------------------------------------------------------------------
252   -- PROCEDURE Migrate
253   ---------------------------------------------------------------------------
254   PROCEDURE migrate (
255     p_from	IN agcv_rec_type,
256     p_to	OUT NOCOPY agc_rec_type
257   ) IS
258   BEGIN
259     p_to.id := p_from.id;
260     p_to.code_combination_id := p_from.code_combination_id;
261     p_to.object_version_number := p_from.object_version_number;
262     p_to.set_of_books_id := p_from.set_of_books_id;
263     p_to.acc_group_code := p_from.acc_group_code;
264     p_to.org_id := p_from.org_id;
265     p_to.created_by := p_from.created_by;
266     p_to.creation_date := p_from.creation_date;
267     p_to.last_updated_by := p_from.last_updated_by;
268     p_to.last_update_date := p_from.last_update_date;
269     p_to.last_update_login := p_from.last_update_login;
270   END migrate;
271   PROCEDURE migrate (
272     p_from	IN agc_rec_type,
273     p_to	OUT NOCOPY agcv_rec_type
274   ) IS
275   BEGIN
276     p_to.id := p_from.id;
277     p_to.code_combination_id := p_from.code_combination_id;
278     p_to.object_version_number := p_from.object_version_number;
279     p_to.set_of_books_id := p_from.set_of_books_id;
280     p_to.acc_group_code := p_from.acc_group_code;
281     p_to.org_id := p_from.org_id;
282     p_to.created_by := p_from.created_by;
283     p_to.creation_date := p_from.creation_date;
284     p_to.last_updated_by := p_from.last_updated_by;
285     p_to.last_update_date := p_from.last_update_date;
286     p_to.last_update_login := p_from.last_update_login;
287   END migrate;
288 
289   ---------------------------------------------------------------------------
290   -- PROCEDURE validate_row
291   ---------------------------------------------------------------------------
292   -----------------------------------------
293   -- validate_row for:OKL_ACC_GROUP_CCID_V --
294   -----------------------------------------
295   PROCEDURE validate_row(
296     p_api_version                  IN NUMBER,
297     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
298     x_return_status                OUT NOCOPY VARCHAR2,
299     x_msg_count                    OUT NOCOPY NUMBER,
300     x_msg_data                     OUT NOCOPY VARCHAR2,
301     p_agcv_rec                     IN agcv_rec_type) IS
302 
303     l_api_version                 CONSTANT NUMBER := 1;
304     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
305     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
306     l_agcv_rec                     agcv_rec_type := p_agcv_rec;
307     l_agc_rec                      agc_rec_type;
308   BEGIN
309     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
310                                               G_PKG_NAME,
311                                               p_init_msg_list,
312                                               l_api_version,
313                                               p_api_version,
314                                               '_PVT',
315                                               x_return_status);
316     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
317       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
318     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
319       RAISE Okc_Api.G_EXCEPTION_ERROR;
320     END IF;
321     --- Validate all non-missing attributes (Item Level Validation)
322     l_return_status := Validate_Attributes(l_agcv_rec);
323     --- If any errors happen abort API
324     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
325       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
326     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
327       RAISE Okc_Api.G_EXCEPTION_ERROR;
328     END IF;
329     l_return_status := Validate_Record(l_agcv_rec);
330     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
331       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
332     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
333       RAISE Okc_Api.G_EXCEPTION_ERROR;
334     END IF;
335     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
336   EXCEPTION
337     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
338       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
339       (
340         l_api_name,
341         G_PKG_NAME,
342         'OKC_API.G_RET_STS_ERROR',
343         x_msg_count,
344         x_msg_data,
345         '_PVT'
346       );
347     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
348       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
349       (
350         l_api_name,
351         G_PKG_NAME,
352         'OKC_API.G_RET_STS_UNEXP_ERROR',
353         x_msg_count,
354         x_msg_data,
355         '_PVT'
356       );
357     WHEN OTHERS THEN
358       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
359       (
360         l_api_name,
361         G_PKG_NAME,
362         'OTHERS',
363         x_msg_count,
364         x_msg_data,
365         '_PVT'
366       );
367   END validate_row;
368   ------------------------------------------
369   -- PL/SQL TBL validate_row for:AGCV_TBL --
370   ------------------------------------------
371   PROCEDURE validate_row(
372     p_api_version                  IN NUMBER,
373     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
374     x_return_status                OUT NOCOPY VARCHAR2,
375     x_msg_count                    OUT NOCOPY NUMBER,
376     x_msg_data                     OUT NOCOPY VARCHAR2,
377     p_agcv_tbl                     IN agcv_tbl_type) IS
378 
379     l_api_version                 CONSTANT NUMBER := 1;
380     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
381     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
382     i                              NUMBER := 0;
383   BEGIN
384     Okc_Api.init_msg_list(p_init_msg_list);
385     -- Make sure PL/SQL table has records in it before passing
386     IF (p_agcv_tbl.COUNT > 0) THEN
387       i := p_agcv_tbl.FIRST;
388       LOOP
389         validate_row (
390           p_api_version                  => p_api_version,
391           p_init_msg_list                => Okc_Api.G_FALSE,
392           x_return_status                => x_return_status,
393           x_msg_count                    => x_msg_count,
394           x_msg_data                     => x_msg_data,
395           p_agcv_rec                     => p_agcv_tbl(i));
396 
397           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
398              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
399                  l_overall_status := x_return_status;
400              END IF;
401           END IF;
402 
403         EXIT WHEN (i = p_agcv_tbl.LAST);
404         i := p_agcv_tbl.NEXT(i);
405       END LOOP;
406     END IF;
407     x_return_status := l_overall_status;
408   EXCEPTION
409     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
410       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
411       (
412         l_api_name,
413         G_PKG_NAME,
414         'OKC_API.G_RET_STS_ERROR',
415         x_msg_count,
416         x_msg_data,
417         '_PVT'
418       );
419     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
420       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
421       (
422         l_api_name,
423         G_PKG_NAME,
424         'OKC_API.G_RET_STS_UNEXP_ERROR',
425         x_msg_count,
426         x_msg_data,
427         '_PVT'
428       );
429     WHEN OTHERS THEN
430       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
431       (
432         l_api_name,
433         G_PKG_NAME,
434         'OTHERS',
435         x_msg_count,
436         x_msg_data,
437         '_PVT'
438       );
439   END validate_row;
440 
441   ---------------------------------------------------------------------------
442   -- PROCEDURE insert_row
443   ---------------------------------------------------------------------------
444   -------------------------------------
445   -- insert_row for:OKL_ACC_GROUP_CCID --
446   -------------------------------------
447   PROCEDURE insert_row(
448     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
449     x_return_status                OUT NOCOPY VARCHAR2,
450     x_msg_count                    OUT NOCOPY NUMBER,
451     x_msg_data                     OUT NOCOPY VARCHAR2,
452     p_agc_rec                      IN agc_rec_type,
453     x_agc_rec                      OUT NOCOPY agc_rec_type) IS
454 
455     l_api_version                 CONSTANT NUMBER := 1;
456     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_insert_row';
457     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
458     l_agc_rec                      agc_rec_type := p_agc_rec;
459     l_def_agc_rec                  agc_rec_type;
460     -----------------------------------------
461     -- Set_Attributes for:OKL_ACC_GROUP_CCID --
462     -----------------------------------------
463     FUNCTION Set_Attributes (
464       p_agc_rec IN  agc_rec_type,
465       x_agc_rec OUT NOCOPY agc_rec_type
466     ) RETURN VARCHAR2 IS
467       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
468     BEGIN
469       x_agc_rec := p_agc_rec;
470       RETURN(l_return_status);
471     END Set_Attributes;
472   BEGIN
473     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
474                                               p_init_msg_list,
475                                               '_PVT',
476                                               x_return_status);
477     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
478       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
479     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
480       RAISE Okc_Api.G_EXCEPTION_ERROR;
481     END IF;
482     --- Setting item attributes
483     l_return_status := Set_Attributes(
484       p_agc_rec,                         -- IN
485       l_agc_rec);                        -- OUT
486     --- If any errors happen abort API
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     INSERT INTO OKL_ACC_GROUP_CCID(
493         id,
494         code_combination_id,
495         object_version_number,
496         set_of_books_id,
497         acc_group_code,
498         org_id,
499         created_by,
500         creation_date,
501         last_updated_by,
502         last_update_date,
503         last_update_login)
504       VALUES (
505         l_agc_rec.id,
506         l_agc_rec.code_combination_id,
507         l_agc_rec.object_version_number,
508         l_agc_rec.set_of_books_id,
509         l_agc_rec.acc_group_code,
510         l_agc_rec.org_id,
511         l_agc_rec.created_by,
512         l_agc_rec.creation_date,
513         l_agc_rec.last_updated_by,
514         l_agc_rec.last_update_date,
515         l_agc_rec.last_update_login);
516     -- Set OUT values
517     x_agc_rec := l_agc_rec;
518     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
519   EXCEPTION
520     WHEN Okc_Api.G_EXCEPTION_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_ERROR',
526         x_msg_count,
527         x_msg_data,
528         '_PVT'
529       );
530     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
531       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
532       (
533         l_api_name,
534         G_PKG_NAME,
535         'OKC_API.G_RET_STS_UNEXP_ERROR',
536         x_msg_count,
537         x_msg_data,
538         '_PVT'
539       );
540     WHEN OTHERS THEN
541       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
542       (
543         l_api_name,
544         G_PKG_NAME,
545         'OTHERS',
546         x_msg_count,
547         x_msg_data,
548         '_PVT'
549       );
550   END insert_row;
551   ---------------------------------------
552   -- insert_row for:OKL_ACC_GROUP_CCID_V --
553   ---------------------------------------
554   PROCEDURE insert_row(
555     p_api_version                  IN NUMBER,
556     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
557     x_return_status                OUT NOCOPY VARCHAR2,
558     x_msg_count                    OUT NOCOPY NUMBER,
559     x_msg_data                     OUT NOCOPY VARCHAR2,
560     p_agcv_rec                     IN agcv_rec_type,
561     x_agcv_rec                     OUT NOCOPY agcv_rec_type) IS
562 
563     l_api_version                 CONSTANT NUMBER := 1;
564     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
565     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
566     l_agcv_rec                     agcv_rec_type;
567     l_def_agcv_rec                 agcv_rec_type;
568     l_agc_rec                      agc_rec_type;
569     lx_agc_rec                     agc_rec_type;
570     -------------------------------
571     -- FUNCTION fill_who_columns --
572     -------------------------------
573     FUNCTION fill_who_columns (
574       p_agcv_rec	IN agcv_rec_type
575     ) RETURN agcv_rec_type IS
576       l_agcv_rec	agcv_rec_type := p_agcv_rec;
577     BEGIN
578       l_agcv_rec.CREATION_DATE := SYSDATE;
579       l_agcv_rec.CREATED_BY := Fnd_Global.USER_ID;
580       l_agcv_rec.LAST_UPDATE_DATE := SYSDATE;
581       l_agcv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
582       l_agcv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
583       RETURN(l_agcv_rec);
584     END fill_who_columns;
585     -------------------------------------------
586     -- Set_Attributes for:OKL_ACC_GROUP_CCID_V --
587     -------------------------------------------
588     FUNCTION Set_Attributes (
589       p_agcv_rec IN  agcv_rec_type,
590       x_agcv_rec OUT NOCOPY agcv_rec_type
591     ) RETURN VARCHAR2 IS
592       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
593     BEGIN
594       x_agcv_rec := p_agcv_rec;
595       x_agcv_rec.OBJECT_VERSION_NUMBER := 1;
596       x_agcv_rec.ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID();
597       x_agcv_rec.SET_OF_BOOKS_ID := OKL_ACCOUNTING_UTIL.get_set_of_books_id;
598       RETURN(l_return_status);
599     END Set_Attributes;
600   BEGIN
601     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
602                                               G_PKG_NAME,
603                                               p_init_msg_list,
604                                               l_api_version,
605                                               p_api_version,
606                                               '_PVT',
607                                               x_return_status);
608     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
609       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
610     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
611       RAISE Okc_Api.G_EXCEPTION_ERROR;
612     END IF;
613     l_agcv_rec := null_out_defaults(p_agcv_rec);
614     -- Set primary key value
615     l_agcv_rec.ID := get_seq_id;
616     --- Setting item attributes
617     l_return_status := Set_Attributes(
618       l_agcv_rec,                        -- IN
619       l_def_agcv_rec);                   -- OUT
620     --- If any errors happen abort API
621     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
622       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
623     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
624       RAISE Okc_Api.G_EXCEPTION_ERROR;
625     END IF;
626     l_def_agcv_rec := fill_who_columns(l_def_agcv_rec);
627     --- Validate all non-missing attributes (Item Level Validation)
628     l_return_status := Validate_Attributes(l_def_agcv_rec);
629     --- If any errors happen abort API
630     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
631       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
632     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
633       RAISE Okc_Api.G_EXCEPTION_ERROR;
634     END IF;
635     l_return_status := Validate_Record(l_def_agcv_rec);
636     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
637       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
638     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
639       RAISE Okc_Api.G_EXCEPTION_ERROR;
640     END IF;
641     --------------------------------------
642     -- Move VIEW record to "Child" records
643     --------------------------------------
644     migrate(l_def_agcv_rec, l_agc_rec);
645     --------------------------------------------
646     -- Call the INSERT_ROW for each child record
647     --------------------------------------------
648     insert_row(
649       p_init_msg_list,
650       x_return_status,
651       x_msg_count,
652       x_msg_data,
653       l_agc_rec,
654       lx_agc_rec
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     migrate(lx_agc_rec, l_def_agcv_rec);
662     -- Set OUT values
663     x_agcv_rec := l_def_agcv_rec;
664     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
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         '_PVT'
675       );
676     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
677       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
678       (
679         l_api_name,
680         G_PKG_NAME,
681         'OKC_API.G_RET_STS_UNEXP_ERROR',
682         x_msg_count,
683         x_msg_data,
684         '_PVT'
685       );
686     WHEN OTHERS THEN
687       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
688       (
689         l_api_name,
690         G_PKG_NAME,
691         'OTHERS',
692         x_msg_count,
693         x_msg_data,
694         '_PVT'
695       );
696   END insert_row;
697   ----------------------------------------
698   -- PL/SQL TBL insert_row for:AGCV_TBL --
699   ----------------------------------------
700   PROCEDURE insert_row(
701     p_api_version                  IN NUMBER,
702     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
703     x_return_status                OUT NOCOPY VARCHAR2,
704     x_msg_count                    OUT NOCOPY NUMBER,
705     x_msg_data                     OUT NOCOPY VARCHAR2,
706     p_agcv_tbl                     IN agcv_tbl_type,
707     x_agcv_tbl                     OUT NOCOPY agcv_tbl_type) IS
708 
709     l_api_version                 CONSTANT NUMBER := 1;
710     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
711     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
712     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
713     i                              NUMBER := 0;
714   BEGIN
715     Okc_Api.init_msg_list(p_init_msg_list);
716     -- Make sure PL/SQL table has records in it before passing
717     IF (p_agcv_tbl.COUNT > 0) THEN
718       i := p_agcv_tbl.FIRST;
719       LOOP
720         insert_row (
721           p_api_version                  => p_api_version,
722           p_init_msg_list                => Okc_Api.G_FALSE,
723           x_return_status                => x_return_status,
724           x_msg_count                    => x_msg_count,
725           x_msg_data                     => x_msg_data,
726           p_agcv_rec                     => p_agcv_tbl(i),
727           x_agcv_rec                     => x_agcv_tbl(i));
728 
729           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
730              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
731                  l_overall_status := x_return_status;
732              END IF;
733           END IF;
734         EXIT WHEN (i = p_agcv_tbl.LAST);
735         i := p_agcv_tbl.NEXT(i);
736       END LOOP;
737     END IF;
738     x_return_status := l_overall_status;
739 
740   EXCEPTION
741     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
742       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
743       (
744         l_api_name,
745         G_PKG_NAME,
746         'OKC_API.G_RET_STS_ERROR',
747         x_msg_count,
748         x_msg_data,
749         '_PVT'
750       );
751     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
752       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
753       (
754         l_api_name,
755         G_PKG_NAME,
756         'OKC_API.G_RET_STS_UNEXP_ERROR',
757         x_msg_count,
758         x_msg_data,
759         '_PVT'
760       );
761     WHEN OTHERS THEN
762       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
763       (
764         l_api_name,
765         G_PKG_NAME,
766         'OTHERS',
767         x_msg_count,
768         x_msg_data,
769         '_PVT'
770       );
771   END insert_row;
772 
773   ---------------------------------------------------------------------------
774   -- PROCEDURE lock_row
775   ---------------------------------------------------------------------------
776   -----------------------------------
777   -- lock_row for:OKL_ACC_GROUP_CCID --
778   -----------------------------------
779   PROCEDURE lock_row(
780     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
781     x_return_status                OUT NOCOPY VARCHAR2,
782     x_msg_count                    OUT NOCOPY NUMBER,
783     x_msg_data                     OUT NOCOPY VARCHAR2,
784     p_agc_rec                      IN agc_rec_type) IS
785 
786     E_Resource_Busy               EXCEPTION;
787     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
788     CURSOR lock_csr (p_agc_rec IN agc_rec_type) IS
789     SELECT OBJECT_VERSION_NUMBER
790       FROM OKL_ACC_GROUP_CCID
791      WHERE ID = p_agc_rec.id
792        AND OBJECT_VERSION_NUMBER = p_agc_rec.object_version_number
793     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
794 
795     CURSOR  lchk_csr (p_agc_rec IN agc_rec_type) IS
796     SELECT OBJECT_VERSION_NUMBER
797       FROM OKL_ACC_GROUP_CCID
798     WHERE ID = p_agc_rec.id;
799     l_api_version                 CONSTANT NUMBER := 1;
800     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_lock_row';
801     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
802     l_object_version_number       OKL_ACC_GROUP_CCID.OBJECT_VERSION_NUMBER%TYPE;
803     lc_object_version_number      OKL_ACC_GROUP_CCID.OBJECT_VERSION_NUMBER%TYPE;
804     l_row_notfound                BOOLEAN := FALSE;
805     lc_row_notfound               BOOLEAN := FALSE;
806   BEGIN
807     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
808                                               p_init_msg_list,
809                                               '_PVT',
810                                               x_return_status);
811     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
812       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
813     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
814       RAISE Okc_Api.G_EXCEPTION_ERROR;
815     END IF;
816     BEGIN
817       OPEN lock_csr(p_agc_rec);
818       FETCH lock_csr INTO l_object_version_number;
819       l_row_notfound := lock_csr%NOTFOUND;
820       CLOSE lock_csr;
821     EXCEPTION
822       WHEN E_Resource_Busy THEN
823         IF (lock_csr%ISOPEN) THEN
824           CLOSE lock_csr;
825         END IF;
826         Okc_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
827         RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
828     END;
829 
830     IF ( l_row_notfound ) THEN
831       OPEN lchk_csr(p_agc_rec);
832       FETCH lchk_csr INTO lc_object_version_number;
833       lc_row_notfound := lchk_csr%NOTFOUND;
834       CLOSE lchk_csr;
835     END IF;
836     IF (lc_row_notfound) THEN
837       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
838       RAISE Okc_Api.G_EXCEPTION_ERROR;
839     ELSIF lc_object_version_number > p_agc_rec.object_version_number THEN
840       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
841       RAISE Okc_Api.G_EXCEPTION_ERROR;
842     ELSIF lc_object_version_number <> p_agc_rec.object_version_number THEN
843       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
844       RAISE Okc_Api.G_EXCEPTION_ERROR;
845     ELSIF lc_object_version_number = -1 THEN
846       Okc_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
847       RAISE Okc_Api.G_EXCEPTION_ERROR;
848     END IF;
849     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
850   EXCEPTION
851     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
852       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
853       (
854         l_api_name,
855         G_PKG_NAME,
856         'OKC_API.G_RET_STS_ERROR',
857         x_msg_count,
858         x_msg_data,
859         '_PVT'
860       );
861     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
862       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
863       (
864         l_api_name,
865         G_PKG_NAME,
866         'OKC_API.G_RET_STS_UNEXP_ERROR',
867         x_msg_count,
868         x_msg_data,
869         '_PVT'
870       );
871     WHEN OTHERS THEN
872       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
873       (
874         l_api_name,
875         G_PKG_NAME,
876         'OTHERS',
877         x_msg_count,
878         x_msg_data,
879         '_PVT'
880       );
881   END lock_row;
882   -------------------------------------
883   -- lock_row for:OKL_ACC_GROUP_CCID_V --
884   -------------------------------------
885   PROCEDURE lock_row(
886     p_api_version                  IN NUMBER,
887     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
888     x_return_status                OUT NOCOPY VARCHAR2,
889     x_msg_count                    OUT NOCOPY NUMBER,
890     x_msg_data                     OUT NOCOPY VARCHAR2,
891     p_agcv_rec                     IN agcv_rec_type) IS
892 
893     l_api_version                 CONSTANT NUMBER := 1;
894     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
895     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
896     l_agc_rec                      agc_rec_type;
897   BEGIN
898     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
899                                               G_PKG_NAME,
900                                               p_init_msg_list,
901                                               l_api_version,
902                                               p_api_version,
903                                               '_PVT',
904                                               x_return_status);
905     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
906       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
907     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
908       RAISE Okc_Api.G_EXCEPTION_ERROR;
909     END IF;
910     --------------------------------------
911     -- Move VIEW record to "Child" records
912     --------------------------------------
913     migrate(p_agcv_rec, l_agc_rec);
914     --------------------------------------------
915     -- Call the LOCK_ROW for each child record
916     --------------------------------------------
917     lock_row(
918       p_init_msg_list,
919       x_return_status,
920       x_msg_count,
921       x_msg_data,
922       l_agc_rec
923     );
924     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
925       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
926     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
927       RAISE Okc_Api.G_EXCEPTION_ERROR;
928     END IF;
929     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
930   EXCEPTION
931     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
932       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
933       (
934         l_api_name,
935         G_PKG_NAME,
936         'OKC_API.G_RET_STS_ERROR',
937         x_msg_count,
938         x_msg_data,
939         '_PVT'
940       );
941     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
942       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
943       (
944         l_api_name,
945         G_PKG_NAME,
946         'OKC_API.G_RET_STS_UNEXP_ERROR',
947         x_msg_count,
948         x_msg_data,
949         '_PVT'
950       );
951     WHEN OTHERS THEN
952       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
953       (
954         l_api_name,
955         G_PKG_NAME,
956         'OTHERS',
957         x_msg_count,
958         x_msg_data,
959         '_PVT'
960       );
961   END lock_row;
962   --------------------------------------
963   -- PL/SQL TBL lock_row for:AGCV_TBL --
964   --------------------------------------
965   PROCEDURE lock_row(
966     p_api_version                  IN NUMBER,
967     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
968     x_return_status                OUT NOCOPY VARCHAR2,
969     x_msg_count                    OUT NOCOPY NUMBER,
970     x_msg_data                     OUT NOCOPY VARCHAR2,
971     p_agcv_tbl                     IN agcv_tbl_type) IS
972 
973     l_api_version                 CONSTANT NUMBER := 1;
974     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
975     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
976     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
977     i                              NUMBER := 0;
978   BEGIN
979     Okc_Api.init_msg_list(p_init_msg_list);
980     -- Make sure PL/SQL table has records in it before passing
981     IF (p_agcv_tbl.COUNT > 0) THEN
982       i := p_agcv_tbl.FIRST;
983       LOOP
984         lock_row (
985           p_api_version                  => p_api_version,
986           p_init_msg_list                => Okc_Api.G_FALSE,
987           x_return_status                => x_return_status,
988           x_msg_count                    => x_msg_count,
989           x_msg_data                     => x_msg_data,
990           p_agcv_rec                     => p_agcv_tbl(i));
991 
992           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
993              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
994                  l_overall_status := x_return_status;
995              END IF;
996           END IF;
997         EXIT WHEN (i = p_agcv_tbl.LAST);
998         i := p_agcv_tbl.NEXT(i);
999       END LOOP;
1000     END IF;
1001         x_return_status := l_overall_status;
1002 
1003   EXCEPTION
1004     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1005       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1006       (
1007         l_api_name,
1008         G_PKG_NAME,
1009         'OKC_API.G_RET_STS_ERROR',
1010         x_msg_count,
1011         x_msg_data,
1012         '_PVT'
1013       );
1014     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1015       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1016       (
1017         l_api_name,
1018         G_PKG_NAME,
1019         'OKC_API.G_RET_STS_UNEXP_ERROR',
1020         x_msg_count,
1021         x_msg_data,
1022         '_PVT'
1023       );
1024     WHEN OTHERS THEN
1025       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1026       (
1027         l_api_name,
1028         G_PKG_NAME,
1029         'OTHERS',
1030         x_msg_count,
1031         x_msg_data,
1032         '_PVT'
1033       );
1034   END lock_row;
1035 
1036   ---------------------------------------------------------------------------
1037   -- PROCEDURE update_row
1038   ---------------------------------------------------------------------------
1039   -------------------------------------
1040   -- update_row for:OKL_ACC_GROUP_CCID --
1041   -------------------------------------
1042   PROCEDURE update_row(
1043     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1044     x_return_status                OUT NOCOPY VARCHAR2,
1045     x_msg_count                    OUT NOCOPY NUMBER,
1046     x_msg_data                     OUT NOCOPY VARCHAR2,
1047     p_agc_rec                      IN agc_rec_type,
1048     x_agc_rec                      OUT NOCOPY agc_rec_type) IS
1049 
1050     l_api_version                 CONSTANT NUMBER := 1;
1051     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_update_row';
1052     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1053     l_agc_rec                      agc_rec_type := p_agc_rec;
1054     l_def_agc_rec                  agc_rec_type;
1055     l_row_notfound                 BOOLEAN := TRUE;
1056     ----------------------------------
1057     -- FUNCTION populate_new_record --
1058     ----------------------------------
1059     FUNCTION populate_new_record (
1060       p_agc_rec	IN agc_rec_type,
1061       x_agc_rec	OUT NOCOPY agc_rec_type
1062     ) RETURN VARCHAR2 IS
1063       l_agc_rec                      agc_rec_type;
1064       l_row_notfound                 BOOLEAN := TRUE;
1065       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1066     BEGIN
1067       x_agc_rec := p_agc_rec;
1068       -- Get current database values
1069       l_agc_rec := get_rec(p_agc_rec, l_row_notfound);
1070       IF (l_row_notfound) THEN
1071         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1072       END IF;
1073       IF (x_agc_rec.id = Okc_Api.G_MISS_NUM)
1074       THEN
1075         x_agc_rec.id := l_agc_rec.id;
1076       END IF;
1077       IF (x_agc_rec.code_combination_id = Okc_Api.G_MISS_NUM)
1078       THEN
1079         x_agc_rec.code_combination_id := l_agc_rec.code_combination_id;
1080       END IF;
1081       IF (x_agc_rec.object_version_number = Okc_Api.G_MISS_NUM)
1082       THEN
1083         x_agc_rec.object_version_number := l_agc_rec.object_version_number;
1084       END IF;
1085       IF (x_agc_rec.set_of_books_id = Okc_Api.G_MISS_NUM)
1086       THEN
1087         x_agc_rec.set_of_books_id := l_agc_rec.set_of_books_id;
1088       END IF;
1089       IF (x_agc_rec.acc_group_code = Okc_Api.G_MISS_CHAR)
1090       THEN
1091         x_agc_rec.acc_group_code := l_agc_rec.acc_group_code;
1092       END IF;
1093       IF (x_agc_rec.org_id = Okc_Api.G_MISS_NUM)
1094       THEN
1095         x_agc_rec.org_id := l_agc_rec.org_id;
1096       END IF;
1097       IF (x_agc_rec.created_by = Okc_Api.G_MISS_NUM)
1098       THEN
1099         x_agc_rec.created_by := l_agc_rec.created_by;
1100       END IF;
1101       IF (x_agc_rec.creation_date = Okc_Api.G_MISS_DATE)
1102       THEN
1103         x_agc_rec.creation_date := l_agc_rec.creation_date;
1104       END IF;
1105       IF (x_agc_rec.last_updated_by = Okc_Api.G_MISS_NUM)
1106       THEN
1107         x_agc_rec.last_updated_by := l_agc_rec.last_updated_by;
1108       END IF;
1109       IF (x_agc_rec.last_update_date = Okc_Api.G_MISS_DATE)
1110       THEN
1111         x_agc_rec.last_update_date := l_agc_rec.last_update_date;
1112       END IF;
1113       IF (x_agc_rec.last_update_login = Okc_Api.G_MISS_NUM)
1114       THEN
1115         x_agc_rec.last_update_login := l_agc_rec.last_update_login;
1116       END IF;
1117       RETURN(l_return_status);
1118     END populate_new_record;
1119     -----------------------------------------
1120     -- Set_Attributes for:OKL_ACC_GROUP_CCID --
1121     -----------------------------------------
1122     FUNCTION Set_Attributes (
1123       p_agc_rec IN  agc_rec_type,
1124       x_agc_rec OUT NOCOPY agc_rec_type
1125     ) RETURN VARCHAR2 IS
1126       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1127     BEGIN
1128       x_agc_rec := p_agc_rec;
1129       RETURN(l_return_status);
1130     END Set_Attributes;
1131   BEGIN
1132     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1133                                               p_init_msg_list,
1134                                               '_PVT',
1135                                               x_return_status);
1136     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1137       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1138     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1139       RAISE Okc_Api.G_EXCEPTION_ERROR;
1140     END IF;
1141     --- Setting item attributes
1142     l_return_status := Set_Attributes(
1143       p_agc_rec,                         -- IN
1144       l_agc_rec);                        -- OUT
1145     --- If any errors happen abort API
1146     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1147       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1148     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1149       RAISE Okc_Api.G_EXCEPTION_ERROR;
1150     END IF;
1151     l_return_status := populate_new_record(l_agc_rec, l_def_agc_rec);
1152     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1153       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1154     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1155       RAISE Okc_Api.G_EXCEPTION_ERROR;
1156     END IF;
1157     UPDATE  OKL_ACC_GROUP_CCID
1158     SET CODE_COMBINATION_ID = l_def_agc_rec.code_combination_id,
1159         OBJECT_VERSION_NUMBER = l_def_agc_rec.object_version_number,
1160         SET_OF_BOOKS_ID = l_def_agc_rec.set_of_books_id,
1161         ACC_GROUP_CODE = l_def_agc_rec.acc_group_code,
1162         ORG_ID = l_def_agc_rec.org_id,
1163         CREATED_BY = l_def_agc_rec.created_by,
1164         CREATION_DATE = l_def_agc_rec.creation_date,
1165         LAST_UPDATED_BY = l_def_agc_rec.last_updated_by,
1166         LAST_UPDATE_DATE = l_def_agc_rec.last_update_date,
1167         LAST_UPDATE_LOGIN = l_def_agc_rec.last_update_login
1168     WHERE ID = l_def_agc_rec.id;
1169 
1170     x_agc_rec := l_def_agc_rec;
1171     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1172   EXCEPTION
1173     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1174       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1175       (
1176         l_api_name,
1177         G_PKG_NAME,
1178         'OKC_API.G_RET_STS_ERROR',
1179         x_msg_count,
1180         x_msg_data,
1181         '_PVT'
1182       );
1183     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1184       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1185       (
1186         l_api_name,
1187         G_PKG_NAME,
1188         'OKC_API.G_RET_STS_UNEXP_ERROR',
1189         x_msg_count,
1190         x_msg_data,
1191         '_PVT'
1192       );
1193     WHEN OTHERS THEN
1194       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1195       (
1196         l_api_name,
1197         G_PKG_NAME,
1198         'OTHERS',
1199         x_msg_count,
1200         x_msg_data,
1201         '_PVT'
1202       );
1203   END update_row;
1204   ---------------------------------------
1205   -- update_row for:OKL_ACC_GROUP_CCID_V --
1206   ---------------------------------------
1207   PROCEDURE update_row(
1208     p_api_version                  IN NUMBER,
1209     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1210     x_return_status                OUT NOCOPY VARCHAR2,
1211     x_msg_count                    OUT NOCOPY NUMBER,
1212     x_msg_data                     OUT NOCOPY VARCHAR2,
1213     p_agcv_rec                     IN agcv_rec_type,
1214     x_agcv_rec                     OUT NOCOPY agcv_rec_type) IS
1215 
1216     l_api_version                 CONSTANT NUMBER := 1;
1217     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
1218     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1219     l_agcv_rec                     agcv_rec_type := p_agcv_rec;
1220     l_def_agcv_rec                 agcv_rec_type;
1221     l_agc_rec                      agc_rec_type;
1222     lx_agc_rec                     agc_rec_type;
1223     -------------------------------
1224     -- FUNCTION fill_who_columns --
1225     -------------------------------
1226     FUNCTION fill_who_columns (
1227       p_agcv_rec	IN agcv_rec_type
1228     ) RETURN agcv_rec_type IS
1229       l_agcv_rec	agcv_rec_type := p_agcv_rec;
1230     BEGIN
1231       l_agcv_rec.LAST_UPDATE_DATE := SYSDATE;
1232       l_agcv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1233       l_agcv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1234       RETURN(l_agcv_rec);
1235     END fill_who_columns;
1236     ----------------------------------
1237     -- FUNCTION populate_new_record --
1238     ----------------------------------
1239     FUNCTION populate_new_record (
1240       p_agcv_rec	IN agcv_rec_type,
1241       x_agcv_rec	OUT NOCOPY agcv_rec_type
1242     ) RETURN VARCHAR2 IS
1243       l_agcv_rec                     agcv_rec_type;
1244       l_row_notfound                 BOOLEAN := TRUE;
1245       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1246     BEGIN
1247       x_agcv_rec := p_agcv_rec;
1248       -- Get current database values
1249       l_agcv_rec := get_rec(p_agcv_rec, l_row_notfound);
1250       IF (l_row_notfound) THEN
1251         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1252       END IF;
1253       IF (x_agcv_rec.id = Okc_Api.G_MISS_NUM)
1254       THEN
1255         x_agcv_rec.id := l_agcv_rec.id;
1256       END IF;
1257       IF (x_agcv_rec.object_version_number = Okc_Api.G_MISS_NUM)
1258       THEN
1259         x_agcv_rec.object_version_number := l_agcv_rec.object_version_number;
1260       END IF;
1261       IF (x_agcv_rec.acc_group_code = Okc_Api.G_MISS_CHAR)
1262       THEN
1263         x_agcv_rec.acc_group_code := l_agcv_rec.acc_group_code;
1264       END IF;
1265       IF (x_agcv_rec.code_combination_id = Okc_Api.G_MISS_NUM)
1266       THEN
1267         x_agcv_rec.code_combination_id := l_agcv_rec.code_combination_id;
1268       END IF;
1269       IF (x_agcv_rec.set_of_books_id = Okc_Api.G_MISS_NUM)
1270       THEN
1271         x_agcv_rec.set_of_books_id := l_agcv_rec.set_of_books_id;
1272       END IF;
1273       IF (x_agcv_rec.org_id = Okc_Api.G_MISS_NUM)
1274       THEN
1275         x_agcv_rec.org_id := l_agcv_rec.org_id;
1276       END IF;
1277       IF (x_agcv_rec.created_by = Okc_Api.G_MISS_NUM)
1278       THEN
1279         x_agcv_rec.created_by := l_agcv_rec.created_by;
1280       END IF;
1281       IF (x_agcv_rec.creation_date = Okc_Api.G_MISS_DATE)
1282       THEN
1283         x_agcv_rec.creation_date := l_agcv_rec.creation_date;
1284       END IF;
1285       IF (x_agcv_rec.last_updated_by = Okc_Api.G_MISS_NUM)
1286       THEN
1287         x_agcv_rec.last_updated_by := l_agcv_rec.last_updated_by;
1288       END IF;
1289       IF (x_agcv_rec.last_update_date = Okc_Api.G_MISS_DATE)
1290       THEN
1291         x_agcv_rec.last_update_date := l_agcv_rec.last_update_date;
1292       END IF;
1293       IF (x_agcv_rec.last_update_login = Okc_Api.G_MISS_NUM)
1294       THEN
1295         x_agcv_rec.last_update_login := l_agcv_rec.last_update_login;
1296       END IF;
1297       RETURN(l_return_status);
1298     END populate_new_record;
1299     -------------------------------------------
1300     -- Set_Attributes for:OKL_ACC_GROUP_CCID_V --
1301     -------------------------------------------
1302     FUNCTION Set_Attributes (
1303       p_agcv_rec IN  agcv_rec_type,
1304       x_agcv_rec OUT NOCOPY agcv_rec_type
1305     ) RETURN VARCHAR2 IS
1306       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1307     BEGIN
1308       x_agcv_rec := p_agcv_rec;
1309       x_agcv_rec.OBJECT_VERSION_NUMBER := NVL(x_agcv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
1310       RETURN(l_return_status);
1311     END Set_Attributes;
1312   BEGIN
1313     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1314                                               G_PKG_NAME,
1315                                               p_init_msg_list,
1316                                               l_api_version,
1317                                               p_api_version,
1318                                               '_PVT',
1319                                               x_return_status);
1320     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1321       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1322     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1323       RAISE Okc_Api.G_EXCEPTION_ERROR;
1324     END IF;
1325     --- Setting item attributes
1326     l_return_status := Set_Attributes(
1327       p_agcv_rec,                        -- IN
1328       l_agcv_rec);                       -- OUT
1329     --- If any errors happen abort API
1330     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1331       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1332     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1333       RAISE Okc_Api.G_EXCEPTION_ERROR;
1334     END IF;
1335     l_return_status := populate_new_record(l_agcv_rec, l_def_agcv_rec);
1336     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1337       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1338     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1339       RAISE Okc_Api.G_EXCEPTION_ERROR;
1340     END IF;
1341     l_def_agcv_rec := fill_who_columns(l_def_agcv_rec);
1342     --- Validate all non-missing attributes (Item Level Validation)
1343     l_return_status := Validate_Attributes(l_def_agcv_rec);
1344     --- If any errors happen abort API
1345     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1346       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1347     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1348       RAISE Okc_Api.G_EXCEPTION_ERROR;
1349     END IF;
1350     l_return_status := Validate_Record(l_def_agcv_rec);
1351     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1352       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1353     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1354       RAISE Okc_Api.G_EXCEPTION_ERROR;
1355     END IF;
1356 
1357     --------------------------------------
1358     -- Move VIEW record to "Child" records
1359     --------------------------------------
1360     migrate(l_def_agcv_rec, l_agc_rec);
1361     --------------------------------------------
1362     -- Call the UPDATE_ROW for each child record
1363     --------------------------------------------
1364     update_row(
1365       p_init_msg_list,
1366       x_return_status,
1367       x_msg_count,
1368       x_msg_data,
1369       l_agc_rec,
1370       lx_agc_rec
1371     );
1372     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1373       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1374     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1375       RAISE Okc_Api.G_EXCEPTION_ERROR;
1376     END IF;
1377     migrate(lx_agc_rec, l_def_agcv_rec);
1378     x_agcv_rec := l_def_agcv_rec;
1379     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1380   EXCEPTION
1381     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1382       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1383       (
1384         l_api_name,
1385         G_PKG_NAME,
1386         'OKC_API.G_RET_STS_ERROR',
1387         x_msg_count,
1388         x_msg_data,
1389         '_PVT'
1390       );
1391     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1392       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1393       (
1394         l_api_name,
1395         G_PKG_NAME,
1396         'OKC_API.G_RET_STS_UNEXP_ERROR',
1397         x_msg_count,
1398         x_msg_data,
1399         '_PVT'
1400       );
1401     WHEN OTHERS THEN
1402       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1403       (
1404         l_api_name,
1405         G_PKG_NAME,
1406         'OTHERS',
1407         x_msg_count,
1408         x_msg_data,
1409         '_PVT'
1410       );
1411   END update_row;
1412   ----------------------------------------
1413   -- PL/SQL TBL update_row for:AGCV_TBL --
1414   ----------------------------------------
1415   PROCEDURE update_row(
1416     p_api_version                  IN NUMBER,
1417     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1418     x_return_status                OUT NOCOPY VARCHAR2,
1419     x_msg_count                    OUT NOCOPY NUMBER,
1420     x_msg_data                     OUT NOCOPY VARCHAR2,
1421     p_agcv_tbl                     IN agcv_tbl_type,
1422     x_agcv_tbl                     OUT NOCOPY agcv_tbl_type) IS
1423 
1424     l_api_version                 CONSTANT NUMBER := 1;
1425     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
1426     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1427     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1428     i                              NUMBER := 0;
1429   BEGIN
1430     Okc_Api.init_msg_list(p_init_msg_list);
1431     -- Make sure PL/SQL table has records in it before passing
1432     IF (p_agcv_tbl.COUNT > 0) THEN
1433       i := p_agcv_tbl.FIRST;
1434       LOOP
1435         update_row (
1436           p_api_version                  => p_api_version,
1437           p_init_msg_list                => Okc_Api.G_FALSE,
1438           x_return_status                => x_return_status,
1439           x_msg_count                    => x_msg_count,
1440           x_msg_data                     => x_msg_data,
1441           p_agcv_rec                     => p_agcv_tbl(i),
1442           x_agcv_rec                     => x_agcv_tbl(i));
1443 
1444           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1445              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1446                  l_overall_status := x_return_status;
1447              END IF;
1448           END IF;
1449 
1450         EXIT WHEN (i = p_agcv_tbl.LAST);
1451         i := p_agcv_tbl.NEXT(i);
1452       END LOOP;
1453     END IF;
1454 
1455     x_return_status := l_overall_status;
1456 
1457   EXCEPTION
1458     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1459       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1460       (
1461         l_api_name,
1462         G_PKG_NAME,
1463         'OKC_API.G_RET_STS_ERROR',
1464         x_msg_count,
1465         x_msg_data,
1466         '_PVT'
1467       );
1468     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1469       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1470       (
1471         l_api_name,
1472         G_PKG_NAME,
1473         'OKC_API.G_RET_STS_UNEXP_ERROR',
1474         x_msg_count,
1475         x_msg_data,
1476         '_PVT'
1477       );
1478     WHEN OTHERS THEN
1479       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1480       (
1481         l_api_name,
1482         G_PKG_NAME,
1483         'OTHERS',
1484         x_msg_count,
1485         x_msg_data,
1486         '_PVT'
1487       );
1488   END update_row;
1489 
1490   ---------------------------------------------------------------------------
1491   -- PROCEDURE delete_row
1492   ---------------------------------------------------------------------------
1493   -------------------------------------
1494   -- delete_row for:OKL_ACC_GROUP_CCID --
1495   -------------------------------------
1496   PROCEDURE delete_row(
1497     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1498     x_return_status                OUT NOCOPY VARCHAR2,
1499     x_msg_count                    OUT NOCOPY NUMBER,
1500     x_msg_data                     OUT NOCOPY VARCHAR2,
1501     p_agc_rec                      IN agc_rec_type) IS
1502 
1503     l_api_version                 CONSTANT NUMBER := 1;
1504     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_delete_row';
1505     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1506     l_agc_rec                      agc_rec_type:= p_agc_rec;
1507     l_row_notfound                 BOOLEAN := TRUE;
1508   BEGIN
1509     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1510                                               p_init_msg_list,
1511                                               '_PVT',
1512                                               x_return_status);
1513     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1514       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1515     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1516       RAISE Okc_Api.G_EXCEPTION_ERROR;
1517     END IF;
1518 
1519     DELETE FROM OKL_ACC_GROUP_CCID
1520      WHERE ID = l_agc_rec.id;
1521 
1522     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1523 
1524   EXCEPTION
1525     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1526       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1527       (
1528         l_api_name,
1529         G_PKG_NAME,
1530         'OKC_API.G_RET_STS_ERROR',
1531         x_msg_count,
1532         x_msg_data,
1533         '_PVT'
1534       );
1535     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1536       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1537       (
1538         l_api_name,
1539         G_PKG_NAME,
1540         'OKC_API.G_RET_STS_UNEXP_ERROR',
1541         x_msg_count,
1542         x_msg_data,
1543         '_PVT'
1544       );
1545     WHEN OTHERS THEN
1546       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1547       (
1548         l_api_name,
1549         G_PKG_NAME,
1550         'OTHERS',
1551         x_msg_count,
1552         x_msg_data,
1553         '_PVT'
1554       );
1555   END delete_row;
1556   ---------------------------------------
1557   -- delete_row for:OKL_ACC_GROUP_CCID_V --
1558   ---------------------------------------
1559   PROCEDURE delete_row(
1560     p_api_version                  IN NUMBER,
1561     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1562     x_return_status                OUT NOCOPY VARCHAR2,
1563     x_msg_count                    OUT NOCOPY NUMBER,
1564     x_msg_data                     OUT NOCOPY VARCHAR2,
1565     p_agcv_rec                     IN agcv_rec_type) IS
1566 
1567     l_api_version                 CONSTANT NUMBER := 1;
1568     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
1569     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1570     l_agcv_rec                     agcv_rec_type := p_agcv_rec;
1571     l_agc_rec                      agc_rec_type;
1572   BEGIN
1573     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1574                                               G_PKG_NAME,
1575                                               p_init_msg_list,
1576                                               l_api_version,
1577                                               p_api_version,
1578                                               '_PVT',
1579                                               x_return_status);
1580     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1581       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1582     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1583       RAISE Okc_Api.G_EXCEPTION_ERROR;
1584     END IF;
1585     --------------------------------------
1586     -- Move VIEW record to "Child" records
1587     --------------------------------------
1588     migrate(l_agcv_rec, l_agc_rec);
1589     --------------------------------------------
1590     -- Call the DELETE_ROW for each child record
1591     --------------------------------------------
1592     delete_row(
1593       p_init_msg_list,
1594       x_return_status,
1595       x_msg_count,
1596       x_msg_data,
1597       l_agc_rec
1598     );
1599     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1600       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1601     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1602       RAISE Okc_Api.G_EXCEPTION_ERROR;
1603     END IF;
1604     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1605   EXCEPTION
1606     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1607       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1608       (
1609         l_api_name,
1610         G_PKG_NAME,
1611         'OKC_API.G_RET_STS_ERROR',
1612         x_msg_count,
1613         x_msg_data,
1614         '_PVT'
1615       );
1616     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1617       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1618       (
1619         l_api_name,
1620         G_PKG_NAME,
1621         'OKC_API.G_RET_STS_UNEXP_ERROR',
1622         x_msg_count,
1623         x_msg_data,
1624         '_PVT'
1625       );
1626     WHEN OTHERS THEN
1627       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1628       (
1629         l_api_name,
1630         G_PKG_NAME,
1631         'OTHERS',
1632         x_msg_count,
1633         x_msg_data,
1634         '_PVT'
1635       );
1636   END delete_row;
1637   ----------------------------------------
1638   -- PL/SQL TBL delete_row for:AGCV_TBL --
1639   ----------------------------------------
1640   PROCEDURE delete_row(
1641     p_api_version                  IN NUMBER,
1642     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1643     x_return_status                OUT NOCOPY VARCHAR2,
1644     x_msg_count                    OUT NOCOPY NUMBER,
1645     x_msg_data                     OUT NOCOPY VARCHAR2,
1646     p_agcv_tbl                     IN agcv_tbl_type) IS
1647 
1648     l_api_version                 CONSTANT NUMBER := 1;
1649     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
1650     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1651     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1652     i                              NUMBER := 0;
1653   BEGIN
1654     Okc_Api.init_msg_list(p_init_msg_list);
1655     -- Make sure PL/SQL table has records in it before passing
1656     IF (p_agcv_tbl.COUNT > 0) THEN
1657       i := p_agcv_tbl.FIRST;
1658       LOOP
1659         delete_row (
1660           p_api_version                  => p_api_version,
1661           p_init_msg_list                => Okc_Api.G_FALSE,
1662           x_return_status                => x_return_status,
1663           x_msg_count                    => x_msg_count,
1664           x_msg_data                     => x_msg_data,
1665           p_agcv_rec                     => p_agcv_tbl(i));
1666 
1667           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1668             IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1669                 l_overall_status := x_return_status;
1670             END IF;
1671           END IF;
1672 
1673         EXIT WHEN (i = p_agcv_tbl.LAST);
1674         i := p_agcv_tbl.NEXT(i);
1675       END LOOP;
1676     END IF;
1677     x_return_status := l_overall_status;
1678   EXCEPTION
1679     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1680       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1681       (
1682         l_api_name,
1683         G_PKG_NAME,
1684         'OKC_API.G_RET_STS_ERROR',
1685         x_msg_count,
1686         x_msg_data,
1687         '_PVT'
1688       );
1689     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1690       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1691       (
1692         l_api_name,
1693         G_PKG_NAME,
1694         'OKC_API.G_RET_STS_UNEXP_ERROR',
1695         x_msg_count,
1696         x_msg_data,
1697         '_PVT'
1698       );
1699     WHEN OTHERS THEN
1700       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1701       (
1702         l_api_name,
1703         G_PKG_NAME,
1704         'OTHERS',
1705         x_msg_count,
1706         x_msg_data,
1707         '_PVT'
1708       );
1709   END delete_row;
1710 END OKL_AGC_PVT;