DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AGB_PVT

Source


1 PACKAGE BODY Okl_agb_Pvt AS
2 /* $Header: OKLSAGBB.pls 115.3 2002/02/18 20:13:14 pkm ship       $ */
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_BAL
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_agb_rec                      IN agb_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN agb_rec_type IS
42     CURSOR OKL_ACC_GROUP_BAL_pk_csr (p_id                 IN NUMBER) IS
43     SELECT
44             ID,
45             KHR_ID,
46             OBJECT_VERSION_NUMBER,
47             DATE_BALANCE,
48             ACC_GROUP_ID,
49             AMOUNT,
50             CREATED_BY,
51             CREATION_DATE,
52             LAST_UPDATED_BY,
53             LAST_UPDATE_DATE,
54             LAST_UPDATE_LOGIN
55       FROM OKL_ACC_GROUP_BAL
56      WHERE OKL_ACC_GROUP_BAL.id  = p_id;
57     l_OKL_ACC_GROUP_BAL_pk          OKL_ACC_GROUP_BAL_pk_csr%ROWTYPE;
58     l_agb_rec                      agb_rec_type;
59   BEGIN
60     x_no_data_found := TRUE;
61     -- Get current database values
62     OPEN OKL_ACC_GROUP_BAL_pk_csr (p_agb_rec.id);
63     FETCH OKL_ACC_GROUP_BAL_pk_csr INTO
64               l_agb_rec.ID,
65               l_agb_rec.KHR_ID,
66               l_agb_rec.OBJECT_VERSION_NUMBER,
67               l_agb_rec.DATE_BALANCE,
68               l_agb_rec.ACC_GROUP_ID,
69               l_agb_rec.AMOUNT,
70               l_agb_rec.CREATED_BY,
71               l_agb_rec.CREATION_DATE,
72               l_agb_rec.LAST_UPDATED_BY,
73               l_agb_rec.LAST_UPDATE_DATE,
74               l_agb_rec.LAST_UPDATE_LOGIN;
75     x_no_data_found := OKL_ACC_GROUP_BAL_pk_csr%NOTFOUND;
76     CLOSE OKL_ACC_GROUP_BAL_pk_csr;
77     RETURN(l_agb_rec);
78   END get_rec;
79 
80   FUNCTION get_rec (
81     p_agb_rec                      IN agb_rec_type
82   ) RETURN agb_rec_type IS
83     l_row_notfound                 BOOLEAN := TRUE;
84   BEGIN
85     RETURN(get_rec(p_agb_rec, l_row_notfound));
86   END get_rec;
87   ---------------------------------------------------------------------------
88   -- FUNCTION get_rec for: OKL_ACC_GROUP_BAL_V
89   ---------------------------------------------------------------------------
90   FUNCTION get_rec (
91     p_agbv_rec                     IN agbv_rec_type,
92     x_no_data_found                OUT NOCOPY BOOLEAN
93   ) RETURN agbv_rec_type IS
94     CURSOR okl_agbv_pk_csr (p_id                 IN NUMBER) IS
95     SELECT
96             ID,
97             OBJECT_VERSION_NUMBER,
98             ACC_GROUP_ID,
99             KHR_ID,
100             DATE_BALANCE,
101             AMOUNT,
102             CREATED_BY,
103             CREATION_DATE,
104             LAST_UPDATED_BY,
105             LAST_UPDATE_DATE,
106             LAST_UPDATE_LOGIN
107       FROM OKL_ACC_GROUP_BAL_V
108      WHERE OKL_ACC_GROUP_BAL_v.id = p_id;
109     l_okl_agbv_pk                  okl_agbv_pk_csr%ROWTYPE;
110     l_agbv_rec                     agbv_rec_type;
111   BEGIN
112     x_no_data_found := TRUE;
113     -- Get current database values
114     OPEN okl_agbv_pk_csr (p_agbv_rec.id);
115     FETCH okl_agbv_pk_csr INTO
116               l_agbv_rec.ID,
117               l_agbv_rec.OBJECT_VERSION_NUMBER,
118               l_agbv_rec.ACC_GROUP_ID,
119               l_agbv_rec.KHR_ID,
120               l_agbv_rec.DATE_BALANCE,
121               l_agbv_rec.AMOUNT,
122               l_agbv_rec.CREATED_BY,
123               l_agbv_rec.CREATION_DATE,
124               l_agbv_rec.LAST_UPDATED_BY,
125               l_agbv_rec.LAST_UPDATE_DATE,
126               l_agbv_rec.LAST_UPDATE_LOGIN;
127     x_no_data_found := okl_agbv_pk_csr%NOTFOUND;
128     CLOSE okl_agbv_pk_csr;
129     RETURN(l_agbv_rec);
130   END get_rec;
131 
132   FUNCTION get_rec (
133     p_agbv_rec                     IN agbv_rec_type
134   ) RETURN agbv_rec_type IS
135     l_row_notfound                 BOOLEAN := TRUE;
136   BEGIN
137     RETURN(get_rec(p_agbv_rec, l_row_notfound));
138   END get_rec;
139 
140   --------------------------------------------------------
141   -- FUNCTION null_out_defaults for: OKL_ACC_GROUP_BAL_V --
142   --------------------------------------------------------
143   FUNCTION null_out_defaults (
144     p_agbv_rec	IN agbv_rec_type
145   ) RETURN agbv_rec_type IS
146     l_agbv_rec	agbv_rec_type := p_agbv_rec;
147   BEGIN
148     IF (l_agbv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
149       l_agbv_rec.object_version_number := NULL;
150     END IF;
151     IF (l_agbv_rec.acc_group_id = Okc_Api.G_MISS_NUM) THEN
152       l_agbv_rec.acc_group_id := NULL;
153     END IF;
154     IF (l_agbv_rec.khr_id = Okc_Api.G_MISS_NUM) THEN
155       l_agbv_rec.khr_id := NULL;
156     END IF;
157     IF (l_agbv_rec.date_balance = Okc_Api.G_MISS_DATE) THEN
158       l_agbv_rec.date_balance := NULL;
159     END IF;
160     IF (l_agbv_rec.amount = Okc_Api.G_MISS_NUM) THEN
161       l_agbv_rec.amount := NULL;
162     END IF;
163     IF (l_agbv_rec.created_by = Okc_Api.G_MISS_NUM) THEN
164       l_agbv_rec.created_by := NULL;
165     END IF;
166     IF (l_agbv_rec.creation_date = Okc_Api.G_MISS_DATE) THEN
167       l_agbv_rec.creation_date := NULL;
168     END IF;
169     IF (l_agbv_rec.last_updated_by = Okc_Api.G_MISS_NUM) THEN
170       l_agbv_rec.last_updated_by := NULL;
171     END IF;
172     IF (l_agbv_rec.last_update_date = Okc_Api.G_MISS_DATE) THEN
173       l_agbv_rec.last_update_date := NULL;
174     END IF;
175     IF (l_agbv_rec.last_update_login = Okc_Api.G_MISS_NUM) THEN
176       l_agbv_rec.last_update_login := NULL;
177     END IF;
178     RETURN(l_agbv_rec);
179   END null_out_defaults;
180 
181   ------------------------------------------------
182   -- Validate_Attributes for:OKL_ACC_GROUP_BAL_V --
183   ------------------------------------------------
184   FUNCTION Validate_Attributes (
185     p_agbv_rec IN  agbv_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_agbv_rec.id = Okc_Api.G_MISS_NUM OR
195        p_agbv_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_agbv_rec.object_version_number = Okc_Api.G_MISS_NUM OR
202           p_agbv_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_agbv_rec.khr_id = Okc_Api.G_MISS_NUM OR
209           p_agbv_rec.khr_id IS NULL
210     THEN
211       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'khr_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   ---------------------------------------------------------------------------
232   -- PROCEDURE Validate_Record
233   ---------------------------------------------------------------------------
234   --------------------------------------------
235   -- Validate_Record for:OKL_ACC_GROUP_BAL_V --
236   --------------------------------------------
237   FUNCTION Validate_Record (
238     p_agbv_rec IN  agbv_rec_type
239   ) RETURN VARCHAR2 IS
240     l_return_status   VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
241 
242     BEGIN
243     NULL;
244     RETURN (l_return_status);
245     END Validate_Record;
246 
247 
248   ---------------------------------------------------------------------------
249 
250 
251   ---------------------------------------------------------------------------
252   -- PROCEDURE Migrate
253   ---------------------------------------------------------------------------
254   PROCEDURE migrate (
255     p_from	IN agbv_rec_type,
256     p_to	OUT NOCOPY agb_rec_type
257   ) IS
258   BEGIN
259     p_to.id := p_from.id;
260     p_to.khr_id := p_from.khr_id;
261     p_to.object_version_number := p_from.object_version_number;
262     p_to.date_balance := p_from.date_balance;
263     p_to.acc_group_id := p_from.acc_group_id;
264     p_to.amount := p_from.amount;
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 agb_rec_type,
273     p_to	OUT NOCOPY agbv_rec_type
274   ) IS
275   BEGIN
276     p_to.id := p_from.id;
277     p_to.khr_id := p_from.khr_id;
278     p_to.object_version_number := p_from.object_version_number;
279     p_to.date_balance := p_from.date_balance;
280     p_to.acc_group_id := p_from.acc_group_id;
281     p_to.amount := p_from.amount;
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_BAL_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_agbv_rec                     IN agbv_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_agbv_rec                     agbv_rec_type := p_agbv_rec;
307     l_agb_rec                      agb_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_agbv_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_agbv_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',
366       );
363         x_msg_count,
364         x_msg_data,
365         '_PVT'
367   END validate_row;
368   ------------------------------------------
369   -- PL/SQL TBL validate_row for:AGBV_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_agbv_tbl                     IN agbv_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_agbv_tbl.COUNT > 0) THEN
387       i := p_agbv_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_agbv_rec                     => p_agbv_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_agbv_tbl.LAST);
404         i := p_agbv_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_BAL --
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_agb_rec                      IN agb_rec_type,
456     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_insert_row';
453     x_agb_rec                      OUT NOCOPY agb_rec_type) IS
454 
455     l_api_version                 CONSTANT NUMBER := 1;
457     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
458     l_agb_rec                      agb_rec_type := p_agb_rec;
459     l_def_agb_rec                  agb_rec_type;
460     -----------------------------------------
461     -- Set_Attributes for:OKL_ACC_GROUP_BAL --
462     -----------------------------------------
463     FUNCTION Set_Attributes (
464       p_agb_rec IN  agb_rec_type,
465       x_agb_rec OUT NOCOPY agb_rec_type
466     ) RETURN VARCHAR2 IS
467       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
468     BEGIN
469       x_agb_rec := p_agb_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_agb_rec,                         -- IN
485       l_agb_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_BAL(
493         id,
494         khr_id,
495         object_version_number,
496         date_balance,
497         acc_group_id,
498         amount,
499         created_by,
500         creation_date,
501         last_updated_by,
502         last_update_date,
503         last_update_login)
504       VALUES (
505         l_agb_rec.id,
506         l_agb_rec.khr_id,
507         l_agb_rec.object_version_number,
508         l_agb_rec.date_balance,
509         l_agb_rec.acc_group_id,
510         l_agb_rec.amount,
511         l_agb_rec.created_by,
512         l_agb_rec.creation_date,
513         l_agb_rec.last_updated_by,
514         l_agb_rec.last_update_date,
515         l_agb_rec.last_update_login);
516     -- Set OUT values
517     x_agb_rec := l_agb_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_BAL_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_agbv_rec                     IN agbv_rec_type,
561     x_agbv_rec                     OUT NOCOPY agbv_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_agbv_rec                     agbv_rec_type;
567     l_def_agbv_rec                 agbv_rec_type;
568     l_agb_rec                      agb_rec_type;
569     lx_agb_rec                     agb_rec_type;
573     FUNCTION fill_who_columns (
570     -------------------------------
571     -- FUNCTION fill_who_columns --
572     -------------------------------
574       p_agbv_rec	IN agbv_rec_type
575     ) RETURN agbv_rec_type IS
576       l_agbv_rec	agbv_rec_type := p_agbv_rec;
577     BEGIN
578       l_agbv_rec.CREATION_DATE := SYSDATE;
579       l_agbv_rec.CREATED_BY := Fnd_Global.USER_ID;
580       l_agbv_rec.LAST_UPDATE_DATE := SYSDATE;
581       l_agbv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
582       l_agbv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
583       RETURN(l_agbv_rec);
584     END fill_who_columns;
585     -------------------------------------------
586     -- Set_Attributes for:OKL_ACC_GROUP_BAL_V --
587     -------------------------------------------
588     FUNCTION Set_Attributes (
589       p_agbv_rec IN  agbv_rec_type,
590       x_agbv_rec OUT NOCOPY agbv_rec_type
591     ) RETURN VARCHAR2 IS
592       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
593     BEGIN
594       x_agbv_rec := p_agbv_rec;
595       x_agbv_rec.OBJECT_VERSION_NUMBER := 1;
596       RETURN(l_return_status);
597     END Set_Attributes;
598   BEGIN
599     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
600                                               G_PKG_NAME,
601                                               p_init_msg_list,
602                                               l_api_version,
603                                               p_api_version,
604                                               '_PVT',
605                                               x_return_status);
606     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
607       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
608     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
609       RAISE Okc_Api.G_EXCEPTION_ERROR;
610     END IF;
611     l_agbv_rec := null_out_defaults(p_agbv_rec);
612     -- Set primary key value
613     l_agbv_rec.ID := get_seq_id;
614     --- Setting item attributes
615     l_return_status := Set_Attributes(
616       l_agbv_rec,                        -- IN
617       l_def_agbv_rec);                   -- OUT
618     --- If any errors happen abort API
619     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
620       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
621     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
622       RAISE Okc_Api.G_EXCEPTION_ERROR;
623     END IF;
624     l_def_agbv_rec := fill_who_columns(l_def_agbv_rec);
625     --- Validate all non-missing attributes (Item Level Validation)
626     l_return_status := Validate_Attributes(l_def_agbv_rec);
627     --- If any errors happen abort API
628     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
629       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
630     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
631       RAISE Okc_Api.G_EXCEPTION_ERROR;
632     END IF;
633     l_return_status := Validate_Record(l_def_agbv_rec);
634     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
635       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
636     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
637       RAISE Okc_Api.G_EXCEPTION_ERROR;
638     END IF;
639     --------------------------------------
640     -- Move VIEW record to "Child" records
641     --------------------------------------
642     migrate(l_def_agbv_rec, l_agb_rec);
643     --------------------------------------------
644     -- Call the INSERT_ROW for each child record
645     --------------------------------------------
646     insert_row(
647       p_init_msg_list,
648       x_return_status,
649       x_msg_count,
650       x_msg_data,
651       l_agb_rec,
652       lx_agb_rec
653     );
654     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
655       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
656     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
657       RAISE Okc_Api.G_EXCEPTION_ERROR;
658     END IF;
659     migrate(lx_agb_rec, l_def_agbv_rec);
660     -- Set OUT values
661     x_agbv_rec := l_def_agbv_rec;
662     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
663   EXCEPTION
664     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
665       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
666       (
667         l_api_name,
668         G_PKG_NAME,
669         'OKC_API.G_RET_STS_ERROR',
670         x_msg_count,
671         x_msg_data,
672         '_PVT'
673       );
674     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
675       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
676       (
677         l_api_name,
678         G_PKG_NAME,
679         'OKC_API.G_RET_STS_UNEXP_ERROR',
680         x_msg_count,
681         x_msg_data,
682         '_PVT'
683       );
684     WHEN OTHERS THEN
685       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
686       (
687         l_api_name,
688         G_PKG_NAME,
689         'OTHERS',
693       );
690         x_msg_count,
691         x_msg_data,
692         '_PVT'
694   END insert_row;
695   ----------------------------------------
696   -- PL/SQL TBL insert_row for:AGBV_TBL --
697   ----------------------------------------
698   PROCEDURE insert_row(
699     p_api_version                  IN NUMBER,
700     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
701     x_return_status                OUT NOCOPY VARCHAR2,
702     x_msg_count                    OUT NOCOPY NUMBER,
703     x_msg_data                     OUT NOCOPY VARCHAR2,
704     p_agbv_tbl                     IN agbv_tbl_type,
705     x_agbv_tbl                     OUT NOCOPY agbv_tbl_type) IS
706 
707     l_api_version                 CONSTANT NUMBER := 1;
708     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
709     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
710     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
711     i                              NUMBER := 0;
712   BEGIN
713     Okc_Api.init_msg_list(p_init_msg_list);
714     -- Make sure PL/SQL table has records in it before passing
715     IF (p_agbv_tbl.COUNT > 0) THEN
716       i := p_agbv_tbl.FIRST;
717       LOOP
718         insert_row (
719           p_api_version                  => p_api_version,
720           p_init_msg_list                => Okc_Api.G_FALSE,
721           x_return_status                => x_return_status,
722           x_msg_count                    => x_msg_count,
723           x_msg_data                     => x_msg_data,
724           p_agbv_rec                     => p_agbv_tbl(i),
725           x_agbv_rec                     => x_agbv_tbl(i));
726 
727           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
728              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
729                  l_overall_status := x_return_status;
730              END IF;
731           END IF;
732         EXIT WHEN (i = p_agbv_tbl.LAST);
733         i := p_agbv_tbl.NEXT(i);
734       END LOOP;
735     END IF;
736     x_return_status := l_overall_status;
737 
738   EXCEPTION
739     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
740       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
741       (
742         l_api_name,
743         G_PKG_NAME,
744         'OKC_API.G_RET_STS_ERROR',
745         x_msg_count,
746         x_msg_data,
747         '_PVT'
748       );
749     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
750       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
751       (
752         l_api_name,
753         G_PKG_NAME,
754         'OKC_API.G_RET_STS_UNEXP_ERROR',
755         x_msg_count,
756         x_msg_data,
757         '_PVT'
758       );
759     WHEN OTHERS THEN
760       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
761       (
762         l_api_name,
763         G_PKG_NAME,
764         'OTHERS',
765         x_msg_count,
766         x_msg_data,
767         '_PVT'
768       );
769   END insert_row;
770 
771   ---------------------------------------------------------------------------
772   -- PROCEDURE lock_row
773   ---------------------------------------------------------------------------
774   -----------------------------------
775   -- lock_row for:OKL_ACC_GROUP_BAL --
776   -----------------------------------
777   PROCEDURE lock_row(
778     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
779     x_return_status                OUT NOCOPY VARCHAR2,
780     x_msg_count                    OUT NOCOPY NUMBER,
781     x_msg_data                     OUT NOCOPY VARCHAR2,
782     p_agb_rec                      IN agb_rec_type) IS
783 
784     E_Resource_Busy               EXCEPTION;
785     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
786     CURSOR lock_csr (p_agb_rec IN agb_rec_type) IS
787     SELECT OBJECT_VERSION_NUMBER
788       FROM OKL_ACC_GROUP_BAL
789      WHERE ID = p_agb_rec.id
790        AND OBJECT_VERSION_NUMBER = p_agb_rec.object_version_number
791     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
792 
793     CURSOR  lchk_csr (p_agb_rec IN agb_rec_type) IS
794     SELECT OBJECT_VERSION_NUMBER
795       FROM OKL_ACC_GROUP_BAL
796     WHERE ID = p_agb_rec.id;
797     l_api_version                 CONSTANT NUMBER := 1;
798     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_lock_row';
799     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
800     l_object_version_number       OKL_ACC_GROUP_BAL.OBJECT_VERSION_NUMBER%TYPE;
801     lc_object_version_number      OKL_ACC_GROUP_BAL.OBJECT_VERSION_NUMBER%TYPE;
802     l_row_notfound                BOOLEAN := FALSE;
803     lc_row_notfound               BOOLEAN := FALSE;
804   BEGIN
805     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
806                                               p_init_msg_list,
807                                               '_PVT',
808                                               x_return_status);
809     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
810       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
811     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
812       RAISE Okc_Api.G_EXCEPTION_ERROR;
813     END IF;
814     BEGIN
815       OPEN lock_csr(p_agb_rec);
816       FETCH lock_csr INTO l_object_version_number;
817       l_row_notfound := lock_csr%NOTFOUND;
818       CLOSE lock_csr;
819     EXCEPTION
820       WHEN E_Resource_Busy THEN
821         IF (lock_csr%ISOPEN) THEN
822           CLOSE lock_csr;
823         END IF;
824         Okc_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
825         RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
826     END;
827 
828     IF ( l_row_notfound ) THEN
829       OPEN lchk_csr(p_agb_rec);
830       FETCH lchk_csr INTO lc_object_version_number;
831       lc_row_notfound := lchk_csr%NOTFOUND;
832       CLOSE lchk_csr;
833     END IF;
834     IF (lc_row_notfound) THEN
835       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
836       RAISE Okc_Api.G_EXCEPTION_ERROR;
837     ELSIF lc_object_version_number > p_agb_rec.object_version_number THEN
838       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
839       RAISE Okc_Api.G_EXCEPTION_ERROR;
840     ELSIF lc_object_version_number <> p_agb_rec.object_version_number THEN
841       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
842       RAISE Okc_Api.G_EXCEPTION_ERROR;
843     ELSIF lc_object_version_number = -1 THEN
844       Okc_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
845       RAISE Okc_Api.G_EXCEPTION_ERROR;
846     END IF;
847     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
848   EXCEPTION
849     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
850       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
851       (
852         l_api_name,
853         G_PKG_NAME,
854         'OKC_API.G_RET_STS_ERROR',
855         x_msg_count,
856         x_msg_data,
857         '_PVT'
858       );
859     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
860       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
861       (
862         l_api_name,
863         G_PKG_NAME,
864         'OKC_API.G_RET_STS_UNEXP_ERROR',
865         x_msg_count,
866         x_msg_data,
867         '_PVT'
868       );
869     WHEN OTHERS THEN
870       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
871       (
872         l_api_name,
873         G_PKG_NAME,
874         'OTHERS',
875         x_msg_count,
876         x_msg_data,
877         '_PVT'
878       );
879   END lock_row;
880   -------------------------------------
881   -- lock_row for:OKL_ACC_GROUP_BAL_V --
882   -------------------------------------
883   PROCEDURE lock_row(
884     p_api_version                  IN NUMBER,
885     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
886     x_return_status                OUT NOCOPY VARCHAR2,
887     x_msg_count                    OUT NOCOPY NUMBER,
888     x_msg_data                     OUT NOCOPY VARCHAR2,
889     p_agbv_rec                     IN agbv_rec_type) IS
890 
891     l_api_version                 CONSTANT NUMBER := 1;
892     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
893     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
894     l_agb_rec                      agb_rec_type;
895   BEGIN
896     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
897                                               G_PKG_NAME,
898                                               p_init_msg_list,
899                                               l_api_version,
900                                               p_api_version,
901                                               '_PVT',
902                                               x_return_status);
903     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
904       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
905     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
906       RAISE Okc_Api.G_EXCEPTION_ERROR;
907     END IF;
908     --------------------------------------
909     -- Move VIEW record to "Child" records
910     --------------------------------------
911     migrate(p_agbv_rec, l_agb_rec);
912     --------------------------------------------
913     -- Call the LOCK_ROW for each child record
914     --------------------------------------------
915     lock_row(
916       p_init_msg_list,
917       x_return_status,
918       x_msg_count,
919       x_msg_data,
920       l_agb_rec
921     );
922     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
923       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
924     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
925       RAISE Okc_Api.G_EXCEPTION_ERROR;
926     END IF;
927     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
928   EXCEPTION
929     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
930       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
931       (
932         l_api_name,
933         G_PKG_NAME,
934         'OKC_API.G_RET_STS_ERROR',
935         x_msg_count,
936         x_msg_data,
937         '_PVT'
938       );
939     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
940       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
941       (
942         l_api_name,
943         G_PKG_NAME,
944         'OKC_API.G_RET_STS_UNEXP_ERROR',
945         x_msg_count,
946         x_msg_data,
947         '_PVT'
948       );
949     WHEN OTHERS THEN
953         G_PKG_NAME,
950       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
951       (
952         l_api_name,
954         'OTHERS',
955         x_msg_count,
956         x_msg_data,
957         '_PVT'
958       );
959   END lock_row;
960   --------------------------------------
961   -- PL/SQL TBL lock_row for:AGBV_TBL --
962   --------------------------------------
963   PROCEDURE lock_row(
964     p_api_version                  IN NUMBER,
965     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
966     x_return_status                OUT NOCOPY VARCHAR2,
967     x_msg_count                    OUT NOCOPY NUMBER,
968     x_msg_data                     OUT NOCOPY VARCHAR2,
969     p_agbv_tbl                     IN agbv_tbl_type) IS
970 
971     l_api_version                 CONSTANT NUMBER := 1;
972     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
973     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
974     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
978     -- Make sure PL/SQL table has records in it before passing
975     i                              NUMBER := 0;
976   BEGIN
977     Okc_Api.init_msg_list(p_init_msg_list);
979     IF (p_agbv_tbl.COUNT > 0) THEN
980       i := p_agbv_tbl.FIRST;
981       LOOP
982         lock_row (
983           p_api_version                  => p_api_version,
984           p_init_msg_list                => Okc_Api.G_FALSE,
985           x_return_status                => x_return_status,
986           x_msg_count                    => x_msg_count,
987           x_msg_data                     => x_msg_data,
988           p_agbv_rec                     => p_agbv_tbl(i));
989 
990           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
991              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
992                  l_overall_status := x_return_status;
993              END IF;
994           END IF;
995         EXIT WHEN (i = p_agbv_tbl.LAST);
996         i := p_agbv_tbl.NEXT(i);
997       END LOOP;
998     END IF;
999         x_return_status := l_overall_status;
1000 
1001   EXCEPTION
1002     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1003       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1004       (
1005         l_api_name,
1006         G_PKG_NAME,
1007         'OKC_API.G_RET_STS_ERROR',
1008         x_msg_count,
1009         x_msg_data,
1010         '_PVT'
1011       );
1012     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1013       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1014       (
1015         l_api_name,
1016         G_PKG_NAME,
1017         'OKC_API.G_RET_STS_UNEXP_ERROR',
1018         x_msg_count,
1019         x_msg_data,
1020         '_PVT'
1021       );
1022     WHEN OTHERS THEN
1023       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1024       (
1025         l_api_name,
1026         G_PKG_NAME,
1027         'OTHERS',
1028         x_msg_count,
1029         x_msg_data,
1030         '_PVT'
1031       );
1032   END lock_row;
1033 
1034   ---------------------------------------------------------------------------
1035   -- PROCEDURE update_row
1036   ---------------------------------------------------------------------------
1037   -------------------------------------
1038   -- update_row for:OKL_ACC_GROUP_BAL --
1039   -------------------------------------
1040   PROCEDURE update_row(
1041     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1042     x_return_status                OUT NOCOPY VARCHAR2,
1043     x_msg_count                    OUT NOCOPY NUMBER,
1044     x_msg_data                     OUT NOCOPY VARCHAR2,
1045     p_agb_rec                      IN agb_rec_type,
1046     x_agb_rec                      OUT NOCOPY agb_rec_type) IS
1047 
1048     l_api_version                 CONSTANT NUMBER := 1;
1049     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_update_row';
1050     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1051     l_agb_rec                      agb_rec_type := p_agb_rec;
1052     l_def_agb_rec                  agb_rec_type;
1053     l_row_notfound                 BOOLEAN := TRUE;
1054     ----------------------------------
1055     -- FUNCTION populate_new_record --
1056     ----------------------------------
1057     FUNCTION populate_new_record (
1058       p_agb_rec	IN agb_rec_type,
1059       x_agb_rec	OUT NOCOPY agb_rec_type
1060     ) RETURN VARCHAR2 IS
1061       l_agb_rec                      agb_rec_type;
1062       l_row_notfound                 BOOLEAN := TRUE;
1063       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1064     BEGIN
1065       x_agb_rec := p_agb_rec;
1066       -- Get current database values
1067       l_agb_rec := get_rec(p_agb_rec, l_row_notfound);
1068       IF (l_row_notfound) THEN
1069         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1070       END IF;
1071       IF (x_agb_rec.id = Okc_Api.G_MISS_NUM)
1072       THEN
1073         x_agb_rec.id := l_agb_rec.id;
1074       END IF;
1075       IF (x_agb_rec.khr_id = Okc_Api.G_MISS_NUM)
1076       THEN
1080       THEN
1077         x_agb_rec.khr_id := l_agb_rec.khr_id;
1078       END IF;
1079       IF (x_agb_rec.object_version_number = Okc_Api.G_MISS_NUM)
1081         x_agb_rec.object_version_number := l_agb_rec.object_version_number;
1082       END IF;
1083       IF (x_agb_rec.date_balance = Okc_Api.G_MISS_DATE)
1084       THEN
1085         x_agb_rec.date_balance := l_agb_rec.date_balance;
1086       END IF;
1087       IF (x_agb_rec.acc_group_id = Okc_Api.G_MISS_NUM)
1088       THEN
1089         x_agb_rec.acc_group_id := l_agb_rec.acc_group_id;
1090       END IF;
1091       IF (x_agb_rec.amount = Okc_Api.G_MISS_NUM)
1092       THEN
1093         x_agb_rec.amount := l_agb_rec.amount;
1094       END IF;
1095       IF (x_agb_rec.created_by = Okc_Api.G_MISS_NUM)
1096       THEN
1097         x_agb_rec.created_by := l_agb_rec.created_by;
1098       END IF;
1099       IF (x_agb_rec.creation_date = Okc_Api.G_MISS_DATE)
1100       THEN
1101         x_agb_rec.creation_date := l_agb_rec.creation_date;
1102       END IF;
1103       IF (x_agb_rec.last_updated_by = Okc_Api.G_MISS_NUM)
1104       THEN
1105         x_agb_rec.last_updated_by := l_agb_rec.last_updated_by;
1106       END IF;
1107       IF (x_agb_rec.last_update_date = Okc_Api.G_MISS_DATE)
1108       THEN
1109         x_agb_rec.last_update_date := l_agb_rec.last_update_date;
1110       END IF;
1111       IF (x_agb_rec.last_update_login = Okc_Api.G_MISS_NUM)
1112       THEN
1113         x_agb_rec.last_update_login := l_agb_rec.last_update_login;
1114       END IF;
1115       RETURN(l_return_status);
1116     END populate_new_record;
1117     -----------------------------------------
1118     -- Set_Attributes for:OKL_ACC_GROUP_BAL --
1119     -----------------------------------------
1120     FUNCTION Set_Attributes (
1121       p_agb_rec IN  agb_rec_type,
1122       x_agb_rec OUT NOCOPY agb_rec_type
1123     ) RETURN VARCHAR2 IS
1124       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1125     BEGIN
1126       x_agb_rec := p_agb_rec;
1127       RETURN(l_return_status);
1128     END Set_Attributes;
1129   BEGIN
1130     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1131                                               p_init_msg_list,
1132                                               '_PVT',
1133                                               x_return_status);
1134     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1135       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1136     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1137       RAISE Okc_Api.G_EXCEPTION_ERROR;
1138     END IF;
1139     --- Setting item attributes
1140     l_return_status := Set_Attributes(
1141       p_agb_rec,                         -- IN
1142       l_agb_rec);                        -- OUT
1143     --- If any errors happen abort API
1144     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1145       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1146     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1147       RAISE Okc_Api.G_EXCEPTION_ERROR;
1148     END IF;
1149     l_return_status := populate_new_record(l_agb_rec, l_def_agb_rec);
1150     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1151       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1152     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1153       RAISE Okc_Api.G_EXCEPTION_ERROR;
1154     END IF;
1155     UPDATE  OKL_ACC_GROUP_BAL
1156     SET khr_id = l_def_agb_rec.khr_id,
1157         OBJECT_VERSION_NUMBER = l_def_agb_rec.object_version_number,
1158         DATE_BALANCE = l_def_agb_rec.date_balance,
1159         ACC_GROUP_ID = l_def_agb_rec.acc_group_id,
1160         AMOUNT = l_def_agb_rec.amount,
1161         CREATED_BY = l_def_agb_rec.created_by,
1162         CREATION_DATE = l_def_agb_rec.creation_date,
1163         LAST_UPDATED_BY = l_def_agb_rec.last_updated_by,
1164         LAST_UPDATE_DATE = l_def_agb_rec.last_update_date,
1165         LAST_UPDATE_LOGIN = l_def_agb_rec.last_update_login
1166     WHERE ID = l_def_agb_rec.id;
1167 
1168     x_agb_rec := l_def_agb_rec;
1169     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1170   EXCEPTION
1171     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1172       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1173       (
1174         l_api_name,
1175         G_PKG_NAME,
1176         'OKC_API.G_RET_STS_ERROR',
1177         x_msg_count,
1178         x_msg_data,
1179         '_PVT'
1180       );
1181     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1182       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1183       (
1184         l_api_name,
1185         G_PKG_NAME,
1186         'OKC_API.G_RET_STS_UNEXP_ERROR',
1187         x_msg_count,
1188         x_msg_data,
1189         '_PVT'
1190       );
1191     WHEN OTHERS THEN
1192       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1193       (
1194         l_api_name,
1195         G_PKG_NAME,
1196         'OTHERS',
1197         x_msg_count,
1198         x_msg_data,
1199         '_PVT'
1200       );
1201   END update_row;
1202   ---------------------------------------
1203   -- update_row for:OKL_ACC_GROUP_BAL_V --
1204   ---------------------------------------
1205   PROCEDURE update_row(
1206     p_api_version                  IN NUMBER,
1207     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1208     x_return_status                OUT NOCOPY VARCHAR2,
1209     x_msg_count                    OUT NOCOPY NUMBER,
1210     x_msg_data                     OUT NOCOPY VARCHAR2,
1214     l_api_version                 CONSTANT NUMBER := 1;
1211     p_agbv_rec                     IN agbv_rec_type,
1212     x_agbv_rec                     OUT NOCOPY agbv_rec_type) IS
1213 
1215     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
1216     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1217     l_agbv_rec                     agbv_rec_type := p_agbv_rec;
1218     l_def_agbv_rec                 agbv_rec_type;
1219     l_agb_rec                      agb_rec_type;
1220     lx_agb_rec                     agb_rec_type;
1221     -------------------------------
1222     -- FUNCTION fill_who_columns --
1223     -------------------------------
1224     FUNCTION fill_who_columns (
1225       p_agbv_rec	IN agbv_rec_type
1226     ) RETURN agbv_rec_type IS
1227       l_agbv_rec	agbv_rec_type := p_agbv_rec;
1228     BEGIN
1229       l_agbv_rec.LAST_UPDATE_DATE := SYSDATE;
1230       l_agbv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1231       l_agbv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1232       RETURN(l_agbv_rec);
1233     END fill_who_columns;
1234     ----------------------------------
1235     -- FUNCTION populate_new_record --
1236     ----------------------------------
1237     FUNCTION populate_new_record (
1238       p_agbv_rec	IN agbv_rec_type,
1239       x_agbv_rec	OUT NOCOPY agbv_rec_type
1240     ) RETURN VARCHAR2 IS
1241       l_agbv_rec                     agbv_rec_type;
1242       l_row_notfound                 BOOLEAN := TRUE;
1243       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1244     BEGIN
1245       x_agbv_rec := p_agbv_rec;
1246       -- Get current database values
1247       l_agbv_rec := get_rec(p_agbv_rec, l_row_notfound);
1248       IF (l_row_notfound) THEN
1249         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1250       END IF;
1251       IF (x_agbv_rec.id = Okc_Api.G_MISS_NUM)
1252       THEN
1253         x_agbv_rec.id := l_agbv_rec.id;
1254       END IF;
1255       IF (x_agbv_rec.object_version_number = Okc_Api.G_MISS_NUM)
1256       THEN
1257         x_agbv_rec.object_version_number := l_agbv_rec.object_version_number;
1258       END IF;
1259       IF (x_agbv_rec.acc_group_id = Okc_Api.G_MISS_NUM)
1260       THEN
1261         x_agbv_rec.acc_group_id := l_agbv_rec.acc_group_id;
1262       END IF;
1263       IF (x_agbv_rec.khr_id = Okc_Api.G_MISS_NUM)
1264       THEN
1265         x_agbv_rec.khr_id := l_agbv_rec.khr_id;
1266       END IF;
1267       IF (x_agbv_rec.date_balance = Okc_Api.G_MISS_DATE)
1268       THEN
1269         x_agbv_rec.date_balance := l_agbv_rec.date_balance;
1270       END IF;
1271       IF (x_agbv_rec.amount = Okc_Api.G_MISS_NUM)
1272       THEN
1273         x_agbv_rec.amount := l_agbv_rec.amount;
1274       END IF;
1275       IF (x_agbv_rec.created_by = Okc_Api.G_MISS_NUM)
1276       THEN
1277         x_agbv_rec.created_by := l_agbv_rec.created_by;
1278       END IF;
1279       IF (x_agbv_rec.creation_date = Okc_Api.G_MISS_DATE)
1280       THEN
1281         x_agbv_rec.creation_date := l_agbv_rec.creation_date;
1282       END IF;
1283       IF (x_agbv_rec.last_updated_by = Okc_Api.G_MISS_NUM)
1284       THEN
1285         x_agbv_rec.last_updated_by := l_agbv_rec.last_updated_by;
1286       END IF;
1287       IF (x_agbv_rec.last_update_date = Okc_Api.G_MISS_DATE)
1288       THEN
1289         x_agbv_rec.last_update_date := l_agbv_rec.last_update_date;
1290       END IF;
1291       IF (x_agbv_rec.last_update_login = Okc_Api.G_MISS_NUM)
1292       THEN
1293         x_agbv_rec.last_update_login := l_agbv_rec.last_update_login;
1294       END IF;
1295       RETURN(l_return_status);
1296     END populate_new_record;
1297     -------------------------------------------
1298     -- Set_Attributes for:OKL_ACC_GROUP_BAL_V --
1299     -------------------------------------------
1300     FUNCTION Set_Attributes (
1301       p_agbv_rec IN  agbv_rec_type,
1302       x_agbv_rec OUT NOCOPY agbv_rec_type
1303     ) RETURN VARCHAR2 IS
1304       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1305     BEGIN
1306       x_agbv_rec := p_agbv_rec;
1307       x_agbv_rec.OBJECT_VERSION_NUMBER := NVL(x_agbv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
1308       RETURN(l_return_status);
1309     END Set_Attributes;
1310   BEGIN
1311     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1312                                               G_PKG_NAME,
1313                                               p_init_msg_list,
1314                                               l_api_version,
1315                                               p_api_version,
1316                                               '_PVT',
1317                                               x_return_status);
1318     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1319       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1320     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1321       RAISE Okc_Api.G_EXCEPTION_ERROR;
1322     END IF;
1323     --- Setting item attributes
1324     l_return_status := Set_Attributes(
1325       p_agbv_rec,                        -- IN
1326       l_agbv_rec);                       -- OUT
1327     --- If any errors happen abort API
1328     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1329       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1330     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1331       RAISE Okc_Api.G_EXCEPTION_ERROR;
1332     END IF;
1333     l_return_status := populate_new_record(l_agbv_rec, l_def_agbv_rec);
1334     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1335       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1336     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1337       RAISE Okc_Api.G_EXCEPTION_ERROR;
1338     END IF;
1339     l_def_agbv_rec := fill_who_columns(l_def_agbv_rec);
1340     --- Validate all non-missing attributes (Item Level Validation)
1341     l_return_status := Validate_Attributes(l_def_agbv_rec);
1342     --- If any errors happen abort API
1343     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1344       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1345     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1346       RAISE Okc_Api.G_EXCEPTION_ERROR;
1347     END IF;
1348     l_return_status := Validate_Record(l_def_agbv_rec);
1349     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1350       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1351     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1352       RAISE Okc_Api.G_EXCEPTION_ERROR;
1353     END IF;
1354 
1355     --------------------------------------
1356     -- Move VIEW record to "Child" records
1357     --------------------------------------
1358     migrate(l_def_agbv_rec, l_agb_rec);
1359     --------------------------------------------
1360     -- Call the UPDATE_ROW for each child record
1361     --------------------------------------------
1362     update_row(
1363       p_init_msg_list,
1364       x_return_status,
1365       x_msg_count,
1366       x_msg_data,
1367       l_agb_rec,
1368       lx_agb_rec
1369     );
1370     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1371       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1372     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1373       RAISE Okc_Api.G_EXCEPTION_ERROR;
1374     END IF;
1375     migrate(lx_agb_rec, l_def_agbv_rec);
1376     x_agbv_rec := l_def_agbv_rec;
1380       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1377     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1378   EXCEPTION
1379     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1381       (
1382         l_api_name,
1383         G_PKG_NAME,
1384         'OKC_API.G_RET_STS_ERROR',
1385         x_msg_count,
1386         x_msg_data,
1387         '_PVT'
1388       );
1389     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1390       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1391       (
1392         l_api_name,
1393         G_PKG_NAME,
1394         'OKC_API.G_RET_STS_UNEXP_ERROR',
1395         x_msg_count,
1396         x_msg_data,
1397         '_PVT'
1398       );
1399     WHEN OTHERS THEN
1400       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1401       (
1402         l_api_name,
1403         G_PKG_NAME,
1404         'OTHERS',
1405         x_msg_count,
1406         x_msg_data,
1407         '_PVT'
1408       );
1409   END update_row;
1410   ----------------------------------------
1411   -- PL/SQL TBL update_row for:AGBV_TBL --
1412   ----------------------------------------
1413   PROCEDURE update_row(
1414     p_api_version                  IN NUMBER,
1415     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1416     x_return_status                OUT NOCOPY VARCHAR2,
1417     x_msg_count                    OUT NOCOPY NUMBER,
1418     x_msg_data                     OUT NOCOPY VARCHAR2,
1419     p_agbv_tbl                     IN agbv_tbl_type,
1420     x_agbv_tbl                     OUT NOCOPY agbv_tbl_type) IS
1421 
1422     l_api_version                 CONSTANT NUMBER := 1;
1423     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
1424     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1425     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1426     i                              NUMBER := 0;
1427   BEGIN
1428     Okc_Api.init_msg_list(p_init_msg_list);
1429     -- Make sure PL/SQL table has records in it before passing
1430     IF (p_agbv_tbl.COUNT > 0) THEN
1431       i := p_agbv_tbl.FIRST;
1432       LOOP
1433         update_row (
1434           p_api_version                  => p_api_version,
1435           p_init_msg_list                => Okc_Api.G_FALSE,
1436           x_return_status                => x_return_status,
1437           x_msg_count                    => x_msg_count,
1438           x_msg_data                     => x_msg_data,
1439           p_agbv_rec                     => p_agbv_tbl(i),
1440           x_agbv_rec                     => x_agbv_tbl(i));
1441 
1442           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1443              IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1444                  l_overall_status := x_return_status;
1445              END IF;
1446           END IF;
1447 
1448         EXIT WHEN (i = p_agbv_tbl.LAST);
1449         i := p_agbv_tbl.NEXT(i);
1450       END LOOP;
1451     END IF;
1452 
1453     x_return_status := l_overall_status;
1454 
1455   EXCEPTION
1456     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1457       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1458       (
1459         l_api_name,
1460         G_PKG_NAME,
1461         'OKC_API.G_RET_STS_ERROR',
1462         x_msg_count,
1463         x_msg_data,
1464         '_PVT'
1465       );
1466     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1467       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1468       (
1469         l_api_name,
1470         G_PKG_NAME,
1471         'OKC_API.G_RET_STS_UNEXP_ERROR',
1472         x_msg_count,
1473         x_msg_data,
1474         '_PVT'
1475       );
1476     WHEN OTHERS THEN
1477       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1478       (
1479         l_api_name,
1480         G_PKG_NAME,
1481         'OTHERS',
1482         x_msg_count,
1483         x_msg_data,
1484         '_PVT'
1485       );
1486   END update_row;
1487 
1488   ---------------------------------------------------------------------------
1489   -- PROCEDURE delete_row
1490   ---------------------------------------------------------------------------
1491   -------------------------------------
1492   -- delete_row for:OKL_ACC_GROUP_BAL --
1493   -------------------------------------
1494   PROCEDURE delete_row(
1495     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1496     x_return_status                OUT NOCOPY VARCHAR2,
1497     x_msg_count                    OUT NOCOPY NUMBER,
1498     x_msg_data                     OUT NOCOPY VARCHAR2,
1499     p_agb_rec                      IN agb_rec_type) IS
1500 
1501     l_api_version                 CONSTANT NUMBER := 1;
1502     l_api_name                     CONSTANT VARCHAR2(30) := 'SETS_delete_row';
1503     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1504     l_agb_rec                      agb_rec_type:= p_agb_rec;
1505     l_row_notfound                 BOOLEAN := TRUE;
1506   BEGIN
1507     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1508                                               p_init_msg_list,
1509                                               '_PVT',
1510                                               x_return_status);
1511     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1512       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1513     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1514       RAISE Okc_Api.G_EXCEPTION_ERROR;
1515     END IF;
1516 
1517     DELETE FROM OKL_ACC_GROUP_BAL
1518      WHERE ID = l_agb_rec.id;
1519 
1520     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1521 
1522   EXCEPTION
1523     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1524       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1525       (
1529         x_msg_count,
1526         l_api_name,
1527         G_PKG_NAME,
1528         'OKC_API.G_RET_STS_ERROR',
1530         x_msg_data,
1531         '_PVT'
1532       );
1533     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1534       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1535       (
1536         l_api_name,
1537         G_PKG_NAME,
1538         'OKC_API.G_RET_STS_UNEXP_ERROR',
1539         x_msg_count,
1540         x_msg_data,
1541         '_PVT'
1542       );
1543     WHEN OTHERS THEN
1544       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1545       (
1546         l_api_name,
1547         G_PKG_NAME,
1548         'OTHERS',
1549         x_msg_count,
1550         x_msg_data,
1551         '_PVT'
1552       );
1553   END delete_row;
1554   ---------------------------------------
1555   -- delete_row for:OKL_ACC_GROUP_BAL_V --
1556   ---------------------------------------
1557   PROCEDURE delete_row(
1558     p_api_version                  IN NUMBER,
1559     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1560     x_return_status                OUT NOCOPY VARCHAR2,
1561     x_msg_count                    OUT NOCOPY NUMBER,
1562     x_msg_data                     OUT NOCOPY VARCHAR2,
1563     p_agbv_rec                     IN agbv_rec_type) IS
1564 
1565     l_api_version                 CONSTANT NUMBER := 1;
1566     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
1567     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1568     l_agbv_rec                     agbv_rec_type := p_agbv_rec;
1569     l_agb_rec                      agb_rec_type;
1570   BEGIN
1571     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1572                                               G_PKG_NAME,
1573                                               p_init_msg_list,
1574                                               l_api_version,
1575                                               p_api_version,
1576                                               '_PVT',
1577                                               x_return_status);
1578     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1579       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1580     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1581       RAISE Okc_Api.G_EXCEPTION_ERROR;
1582     END IF;
1583     --------------------------------------
1584     -- Move VIEW record to "Child" records
1585     --------------------------------------
1586     migrate(l_agbv_rec, l_agb_rec);
1587     --------------------------------------------
1588     -- Call the DELETE_ROW for each child record
1589     --------------------------------------------
1590     delete_row(
1591       p_init_msg_list,
1592       x_return_status,
1593       x_msg_count,
1594       x_msg_data,
1595       l_agb_rec
1596     );
1597     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1598       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1599     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1600       RAISE Okc_Api.G_EXCEPTION_ERROR;
1601     END IF;
1602     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1603   EXCEPTION
1604     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1605       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1606       (
1607         l_api_name,
1608         G_PKG_NAME,
1609         'OKC_API.G_RET_STS_ERROR',
1610         x_msg_count,
1611         x_msg_data,
1612         '_PVT'
1613       );
1614     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1615       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1616       (
1617         l_api_name,
1618         G_PKG_NAME,
1619         'OKC_API.G_RET_STS_UNEXP_ERROR',
1620         x_msg_count,
1621         x_msg_data,
1622         '_PVT'
1623       );
1624     WHEN OTHERS THEN
1625       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1626       (
1627         l_api_name,
1628         G_PKG_NAME,
1629         'OTHERS',
1630         x_msg_count,
1631         x_msg_data,
1632         '_PVT'
1633       );
1634   END delete_row;
1635   ----------------------------------------
1636   -- PL/SQL TBL delete_row for:AGBV_TBL --
1637   ----------------------------------------
1638   PROCEDURE delete_row(
1639     p_api_version                  IN NUMBER,
1640     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1641     x_return_status                OUT NOCOPY VARCHAR2,
1642     x_msg_count                    OUT NOCOPY NUMBER,
1643     x_msg_data                     OUT NOCOPY VARCHAR2,
1644     p_agbv_tbl                     IN agbv_tbl_type) IS
1645 
1646     l_api_version                 CONSTANT NUMBER := 1;
1647     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
1648     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1649     l_overall_status               VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1650     i                              NUMBER := 0;
1651   BEGIN
1652     Okc_Api.init_msg_list(p_init_msg_list);
1653     -- Make sure PL/SQL table has records in it before passing
1654     IF (p_agbv_tbl.COUNT > 0) THEN
1655       i := p_agbv_tbl.FIRST;
1656       LOOP
1657         delete_row (
1658           p_api_version                  => p_api_version,
1659           p_init_msg_list                => Okc_Api.G_FALSE,
1660           x_return_status                => x_return_status,
1661           x_msg_count                    => x_msg_count,
1662           x_msg_data                     => x_msg_data,
1663           p_agbv_rec                     => p_agbv_tbl(i));
1664 
1665           IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1666             IF (l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1667                 l_overall_status := x_return_status;
1668             END IF;
1669           END IF;
1670 
1671         EXIT WHEN (i = p_agbv_tbl.LAST);
1672         i := p_agbv_tbl.NEXT(i);
1673       END LOOP;
1674     END IF;
1675     x_return_status := l_overall_status;
1676   EXCEPTION
1677     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1678       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1679       (
1680         l_api_name,
1681         G_PKG_NAME,
1682         'OKC_API.G_RET_STS_ERROR',
1683         x_msg_count,
1684         x_msg_data,
1685         '_PVT'
1686       );
1687     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1688       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1689       (
1690         l_api_name,
1691         G_PKG_NAME,
1692         'OKC_API.G_RET_STS_UNEXP_ERROR',
1693         x_msg_count,
1694         x_msg_data,
1695         '_PVT'
1696       );
1697     WHEN OTHERS THEN
1698       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1699       (
1700         l_api_name,
1701         G_PKG_NAME,
1702         'OTHERS',
1703         x_msg_count,
1704         x_msg_data,
1705         '_PVT'
1706       );
1707   END delete_row;
1708 END Okl_agb_Pvt;