DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AEH_PVT

Source


1 PACKAGE BODY Okl_Aeh_Pvt AS
2 /* $Header: OKLSAEHB.pls 120.3 2006/07/13 12:49:24 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_AE_HEADERS
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_aeh_rec                      IN aeh_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN aeh_rec_type IS
42     CURSOR okl_ae_headers_pk_csr (p_AE_HEADER_ID            IN NUMBER) IS
43     SELECT
44             AE_HEADER_ID ,
45             POST_TO_GL_FLAG,
46             SET_OF_BOOKS_ID,
47             ORG_ID,
48             ACCOUNTING_EVENT_ID,
49             AE_CATEGORY,
50             PERIOD_NAME,
51             ACCOUNTING_DATE,
52             CROSS_CURRENCY_FLAG,
53             GL_TRANSFER_FLAG,
54             GL_TRANSFER_RUN_ID,
55             OBJECT_VERSION_NUMBER,
56             SEQUENCE_ID,
57             SEQUENCE_VALUE,
58             DESCRIPTION,
59             ACCOUNTING_ERROR_CODE,
60             GL_TRANSFER_ERROR_CODE,
61             GL_REVERSAL_FLAG,
62             PROGRAM_ID,
63             PROGRAM_APPLICATION_ID,
64             PROGRAM_UPDATE_DATE,
65             REQUEST_ID,
66             CREATED_BY,
67             CREATION_DATE,
68             LAST_UPDATED_BY,
69             LAST_UPDATE_DATE,
70             LAST_UPDATE_LOGIN
71       FROM Okl_Ae_Headers
72      WHERE okl_ae_headers.AE_HEADER_ID     = p_AE_HEADER_ID ;
73     l_okl_ae_headers_pk            okl_ae_headers_pk_csr%ROWTYPE;
74     l_aeh_rec                      aeh_rec_type;
75   BEGIN
76     x_no_data_found := TRUE;
77     -- Get current database values
78     OPEN okl_ae_headers_pk_csr (p_aeh_rec.AE_HEADER_ID );
79     FETCH okl_ae_headers_pk_csr INTO
80               l_aeh_rec.AE_HEADER_ID ,
81               l_aeh_rec.POST_TO_GL_FLAG,
82               l_aeh_rec.SET_OF_BOOKS_ID,
83               l_aeh_rec.ORG_ID,
84               l_aeh_rec.ACCOUNTING_EVENT_ID,
85               l_aeh_rec.AE_CATEGORY,
86               l_aeh_rec.PERIOD_NAME,
87               l_aeh_rec.ACCOUNTING_DATE,
88               l_aeh_rec.CROSS_CURRENCY_FLAG,
89               l_aeh_rec.GL_TRANSFER_FLAG,
90               l_aeh_rec.GL_TRANSFER_RUN_ID,
91               l_aeh_rec.OBJECT_VERSION_NUMBER,
92               l_aeh_rec.SEQUENCE_ID,
93               l_aeh_rec.SEQUENCE_VALUE,
94               l_aeh_rec.DESCRIPTION,
95               l_aeh_rec.ACCOUNTING_ERROR_CODE,
96               l_aeh_rec.GL_TRANSFER_ERROR_CODE,
97               l_aeh_rec.GL_REVERSAL_FLAG,
98               l_aeh_rec.PROGRAM_ID,
99               l_aeh_rec.PROGRAM_APPLICATION_ID,
100               l_aeh_rec.PROGRAM_UPDATE_DATE,
101               l_aeh_rec.REQUEST_ID,
102               l_aeh_rec.CREATED_BY,
103               l_aeh_rec.CREATION_DATE,
104               l_aeh_rec.LAST_UPDATED_BY,
105               l_aeh_rec.LAST_UPDATE_DATE,
106               l_aeh_rec.LAST_UPDATE_LOGIN;
107     x_no_data_found := okl_ae_headers_pk_csr%NOTFOUND;
108     CLOSE okl_ae_headers_pk_csr;
109     RETURN(l_aeh_rec);
110   END get_rec;
111 
112   FUNCTION get_rec (
113     p_aeh_rec                      IN aeh_rec_type
114   ) RETURN aeh_rec_type IS
115     l_row_notfound                 BOOLEAN := TRUE;
116   BEGIN
117     RETURN(get_rec(p_aeh_rec, l_row_notfound));
118   END get_rec;
119   ---------------------------------------------------------------------------
120   -- FUNCTION get_rec for: OKL_AE_HEADERS_V
121   ---------------------------------------------------------------------------
122   FUNCTION get_rec (
123     p_aehv_rec                     IN aehv_rec_type,
124     x_no_data_found                OUT NOCOPY BOOLEAN
125   ) RETURN aehv_rec_type IS
126     CURSOR okl_aehv_pk_csr (p_AE_HEADER_ID                  IN NUMBER) IS
127     SELECT
128             POST_TO_GL_FLAG,
129             AE_HEADER_ID,
130             OBJECT_VERSION_NUMBER,
131             ACCOUNTING_EVENT_ID,
132             SET_OF_BOOKS_ID,
133             ORG_ID,
134             AE_CATEGORY,
135             SEQUENCE_ID,
136             SEQUENCE_VALUE,
137             PERIOD_NAME,
138             ACCOUNTING_DATE,
139             DESCRIPTION,
140             ACCOUNTING_ERROR_CODE,
141             CROSS_CURRENCY_FLAG,
142             GL_TRANSFER_FLAG,
143             GL_TRANSFER_ERROR_CODE,
144             GL_TRANSFER_RUN_ID,
145             GL_REVERSAL_FLAG,
146             PROGRAM_ID,
147             PROGRAM_APPLICATION_ID,
148             PROGRAM_UPDATE_DATE,
149             REQUEST_ID,
150             CREATED_BY,
151             CREATION_DATE,
152             LAST_UPDATED_BY,
153             LAST_UPDATE_DATE,
154             LAST_UPDATE_LOGIN
155       FROM OKL_AE_HEADERS
156      WHERE OKL_AE_HEADERS.AE_HEADER_ID   = p_AE_HEADER_ID ;
157     l_okl_aehv_pk                  okl_aehv_pk_csr%ROWTYPE;
158     l_aehv_rec                     aehv_rec_type;
159   BEGIN
160     x_no_data_found := TRUE;
161     -- Get current database values
162     OPEN okl_aehv_pk_csr (p_aehv_rec.AE_HEADER_ID);
163     FETCH okl_aehv_pk_csr INTO
164               l_aehv_rec.POST_TO_GL_FLAG,
165               l_aehv_rec.AE_HEADER_ID ,
166               l_aehv_rec.OBJECT_VERSION_NUMBER,
167               l_aehv_rec.ACCOUNTING_EVENT_ID,
168               l_aehv_rec.SET_OF_BOOKS_ID,
169               l_aehv_rec.ORG_ID,
170               l_aehv_rec.AE_CATEGORY,
171               l_aehv_rec.SEQUENCE_ID,
172               l_aehv_rec.SEQUENCE_VALUE,
173               l_aehv_rec.PERIOD_NAME,
174               l_aehv_rec.ACCOUNTING_DATE,
175               l_aehv_rec.DESCRIPTION,
176               l_aehv_rec.ACCOUNTING_ERROR_CODE,
177               l_aehv_rec.CROSS_CURRENCY_FLAG,
178               l_aehv_rec.GL_TRANSFER_FLAG,
179               l_aehv_rec.GL_TRANSFER_ERROR_CODE,
180               l_aehv_rec.GL_TRANSFER_RUN_ID,
181               l_aehv_rec.GL_REVERSAL_FLAG,
182               l_aehv_rec.PROGRAM_ID,
183               l_aehv_rec.PROGRAM_APPLICATION_ID,
184               l_aehv_rec.PROGRAM_UPDATE_DATE,
185               l_aehv_rec.REQUEST_ID,
186               l_aehv_rec.CREATED_BY,
187               l_aehv_rec.CREATION_DATE,
188               l_aehv_rec.LAST_UPDATED_BY,
189               l_aehv_rec.LAST_UPDATE_DATE,
190               l_aehv_rec.LAST_UPDATE_LOGIN;
191     x_no_data_found := okl_aehv_pk_csr%NOTFOUND;
192     CLOSE okl_aehv_pk_csr;
193     RETURN(l_aehv_rec);
194   END get_rec;
195 
196   FUNCTION get_rec (
197     p_aehv_rec                     IN aehv_rec_type
198   ) RETURN aehv_rec_type IS
199     l_row_notfound                 BOOLEAN := TRUE;
200   BEGIN
201     RETURN(get_rec(p_aehv_rec, l_row_notfound));
202   END get_rec;
203 
204   ------------------------------------------------------
205   -- FUNCTION null_out_defaults for: OKL_AE_HEADERS_V --
206   ------------------------------------------------------
207   FUNCTION null_out_defaults (
208     p_aehv_rec	IN aehv_rec_type
209   ) RETURN aehv_rec_type IS
210     l_aehv_rec	aehv_rec_type := p_aehv_rec;
211   BEGIN
212     IF (l_aehv_rec.post_to_gl_flag = Okc_Api.G_MISS_CHAR) THEN
213       l_aehv_rec.post_to_gl_flag := NULL;
214     END IF;
215     IF (l_aehv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
216       l_aehv_rec.object_version_number := NULL;
217     END IF;
218     IF (l_aehv_rec.ACCOUNTING_EVENT_ID = Okc_Api.G_MISS_NUM) THEN
219       l_aehv_rec.ACCOUNTING_EVENT_ID  := NULL;
220     END IF;
221     IF (l_aehv_rec.set_of_books_id = Okc_Api.G_MISS_NUM) THEN
222       l_aehv_rec.set_of_books_id := NULL;
223     END IF;
224     IF (l_aehv_rec.org_id = Okc_Api.G_MISS_NUM) THEN
225       l_aehv_rec.org_id := NULL;
226     END IF;
227     IF (l_aehv_rec.AE_CATEGORY = Okc_Api.G_MISS_CHAR) THEN
228       l_aehv_rec.AE_CATEGORY := NULL;
229     END IF;
230     IF (l_aehv_rec.sequence_id = Okc_Api.G_MISS_NUM) THEN
231       l_aehv_rec.sequence_id := NULL;
232     END IF;
233     IF (l_aehv_rec.sequence_value = Okc_Api.G_MISS_NUM) THEN
234       l_aehv_rec.sequence_value := NULL;
235     END IF;
236     IF (l_aehv_rec.period_name = Okc_Api.G_MISS_CHAR) THEN
237       l_aehv_rec.period_name := NULL;
238     END IF;
239     IF (l_aehv_rec.accounting_date = Okc_Api.G_MISS_DATE) THEN
240       l_aehv_rec.accounting_date := NULL;
241     END IF;
242     IF (l_aehv_rec.description = Okc_Api.G_MISS_CHAR) THEN
243       l_aehv_rec.description := NULL;
244     END IF;
245     IF (l_aehv_rec.accounting_error_code = Okc_Api.G_MISS_CHAR) THEN
246       l_aehv_rec.accounting_error_code := NULL;
247     END IF;
248     IF (l_aehv_rec.cross_currency_flag = Okc_Api.G_MISS_CHAR) THEN
249       l_aehv_rec.cross_currency_flag := NULL;
250     END IF;
251     IF (l_aehv_rec.gl_transfer_flag = Okc_Api.G_MISS_CHAR) THEN
252       l_aehv_rec.gl_transfer_flag := NULL;
253     END IF;
254     IF (l_aehv_rec.gl_transfer_error_code = Okc_Api.G_MISS_CHAR) THEN
255       l_aehv_rec.gl_transfer_error_code := NULL;
256     END IF;
257     IF (l_aehv_rec.gl_transfer_run_id = Okc_Api.G_MISS_NUM) THEN
258       l_aehv_rec.gl_transfer_run_id := NULL;
259     END IF;
260     IF (l_aehv_rec.gl_reversal_flag = Okc_Api.G_MISS_CHAR) THEN
261       l_aehv_rec.gl_reversal_flag := NULL;
262     END IF;
263 
264     IF (l_aehv_rec.program_id = Okc_Api.G_MISS_NUM) THEN
265       l_aehv_rec.program_id := NULL;
266     END IF;
267     IF (l_aehv_rec.program_application_id = Okc_Api.G_MISS_NUM) THEN
268       l_aehv_rec.program_application_id := NULL;
269     END IF;
270     IF (l_aehv_rec.program_update_date = Okc_Api.G_MISS_DATE) THEN
271       l_aehv_rec.program_update_date := NULL;
272     END IF;
273     IF (l_aehv_rec.request_id = Okc_Api.G_MISS_NUM) THEN
274       l_aehv_rec.request_id := NULL;
275     END IF;
276 
277     IF (l_aehv_rec.created_by = Okc_Api.G_MISS_NUM) THEN
278       l_aehv_rec.created_by := NULL;
279     END IF;
280     IF (l_aehv_rec.creation_date = Okc_Api.G_MISS_DATE) THEN
281       l_aehv_rec.creation_date := NULL;
282     END IF;
283     IF (l_aehv_rec.last_updated_by = Okc_Api.G_MISS_NUM) THEN
284       l_aehv_rec.last_updated_by := NULL;
285     END IF;
286 
287     IF (l_aehv_rec.last_update_date = Okc_Api.G_MISS_DATE) THEN
288       l_aehv_rec.last_update_date := NULL;
289     END IF;
290 
291     IF (l_aehv_rec.last_update_login = Okc_Api.G_MISS_NUM) THEN
292       l_aehv_rec.last_update_login := NULL;
293     END IF;
294     RETURN(l_aehv_rec);
295 
296   END null_out_defaults;
297 
298  /*--- Renu Gurudev 4/26/2001 - Commented OUT generated code IN favor OF manually written code
299   ---------------------------------------------------------------------------
300   -- PROCEDURE Validate_Attributes
301   ---------------------------------------------------------------------------
302   ----------------------------------------------
303   -- Validate_Attributes for:OKL_AE_HEADERS_V --
304   ----------------------------------------------
305 
306   Function Validate_Attributes (
307     p_aehv_rec IN  aehv_rec_type
308   ) RETURN VARCHAR2 IS
309     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
310   BEGIN
311     IF p_aehv_rec.AE_HEADER_ID  = Okc_Api.G_MISS_NUM OR
312        p_aehv_rec.AE_HEADER_ID  IS NULL
313     THEN
314       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
315       l_return_status := Okc_Api.G_RET_STS_ERROR;
316     ELSIF p_aehv_rec.object_version_number = Okc_Api.G_MISS_NUM OR
317           p_aehv_rec.object_version_number IS NULL
318     THEN
319       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
320       l_return_status := Okc_Api.G_RET_STS_ERROR;
321     ELSIF p_aehv_rec.ACCOUNTING_EVENT_ID  = Okc_Api.G_MISS_NUM OR
322           p_aehv_rec.ACCOUNTING_EVENT_ID  IS NULL
323     THEN
324       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'accounting_event_id');
325       l_return_status := Okc_Api.G_RET_STS_ERROR;
326     ELSIF p_aehv_rec.set_of_books_id = Okc_Api.G_MISS_NUM OR
327           p_aehv_rec.set_of_books_id IS NULL
328     THEN
329       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'set_of_books_id');
330       l_return_status := Okc_Api.G_RET_STS_ERROR;
331     ELSIF p_aehv_rec.AE_CATEGORY = Okc_Api.G_MISS_CHAR OR
332           p_aehv_rec.AE_CATEGORY IS NULL
333     THEN
334       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'journal_category');
335       l_return_status := Okc_Api.G_RET_STS_ERROR;
336     ELSIF p_aehv_rec.period_name = Okc_Api.G_MISS_CHAR OR
337           p_aehv_rec.period_name IS NULL
338     THEN
339       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'period_name');
340       l_return_status := Okc_Api.G_RET_STS_ERROR;
341     ELSIF p_aehv_rec.accounting_date = Okc_Api.G_MISS_DATE OR
342           p_aehv_rec.accounting_date IS NULL
343     THEN
344       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'accounting_date');
345       l_return_status := Okc_Api.G_RET_STS_ERROR;
346     ELSIF p_aehv_rec.cross_currency_flag = Okc_Api.G_MISS_CHAR OR
347           p_aehv_rec.cross_currency_flag IS NULL
348     THEN
349       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'cross_currency_flag');
350       l_return_status := Okc_Api.G_RET_STS_ERROR;
351     ELSIF p_aehv_rec.gl_transfer_flag = Okc_Api.G_MISS_CHAR OR
352           p_aehv_rec.gl_transfer_flag IS NULL
353     THEN
354       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'gl_transfer_flag');
355       l_return_status := Okc_Api.G_RET_STS_ERROR;
356     ELSIF p_aehv_rec.gl_transfer_run_id = Okc_Api.G_MISS_NUM OR
357           p_aehv_rec.gl_transfer_run_id IS NULL
358     THEN
359       Okc_Api.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'gl_transfer_run_id');
360       l_return_status := Okc_Api.G_RET_STS_ERROR;
361     END IF;
362     RETURN(l_return_status);
363   END Validate_Attributes;
364 
365   ---------------------------------------------------------------------------
366   -- PROCEDURE Validate_Record
367   ---------------------------------------------------------------------------
368   ------------------------------------------
369   -- Validate_Record for:OKL_AE_HEADERS_V --
370   ------------------------------------------
371   Function Validate_Record (
372     p_aehv_rec IN aehv_rec_type
373   ) RETURN VARCHAR2 IS
374     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
375   BEGIN
376     RETURN (l_return_status);
377   END Validate_Record;
378 
379 
380 */
381   /*********** begin manual coding *****************/
382   ---------------------------------------------------------------------------
383   -- PROCEDURE Validate_AE_HEADER_ID
384   ---------------------------------------------------------------------------
385   -- Start of comments
386   --
387   -- Procedure Name   : Validate_AE_HEADER_ID
388   -- Description      :
389   -- Business Rules   :
390   -- Parameters       :
391   -- Version          : 1.0
392   -- End of comments
393   ---------------------------------------------------------------------------
394   PROCEDURE Validate_AE_HEADER_ID (p_aehv_rec      IN  aehv_rec_type
395 				 ,x_return_status OUT NOCOPY VARCHAR2)
396   IS
397   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
398 
399   BEGIN
400     -- initialize return status
401     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
402 
403     -- check for data before processing
404     IF (p_aehv_rec.AE_HEADER_ID  IS NULL) OR
405        (p_aehv_rec.AE_HEADER_ID  = Okc_Api.G_MISS_NUM) THEN
406        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
407                            ,p_msg_name      => g_required_value
408                            ,p_token1        => g_col_name_token
409                            ,p_token1_value  => 'id');
410        x_return_status     := Okc_Api.G_RET_STS_ERROR;
411        RAISE G_EXCEPTION_HALT_VALIDATION;
412     END IF;
413 
414   EXCEPTION
415     WHEN G_EXCEPTION_HALT_VALIDATION THEN
416     -- no processing necessary; validation can continue
417     -- with the next column
418     NULL;
419 
420     WHEN OTHERS THEN
421       -- store SQL error message on message stack for caller
422       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
423                           ,p_msg_name      => g_unexpected_error
424                           ,p_token1        => g_sqlcode_token
425                           ,p_token1_value  => SQLCODE
426                           ,p_token2        => g_sqlerrm_token
427                           ,p_token2_value  => SQLERRM);
428 
429        -- notify caller of an UNEXPECTED error
430        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
431 
432   END Validate_AE_HEADER_ID ;
433 
434   ---------------------------------------------------------------------------
435   -- PROCEDURE Validate_Object_Version_Number
436   ---------------------------------------------------------------------------
437   -- Start of comments
438   --
439   -- Procedure Name   : Validate_Object_Version_Number
440   -- Description      :
441   -- Business Rules   :
442   -- Parameters       :
443   -- Version          : 1.0
444   -- End of comments
445   ---------------------------------------------------------------------------
446 
447   PROCEDURE Validate_Object_Version_Number (p_aehv_rec      IN  aehv_rec_type
448                                             ,x_return_status OUT NOCOPY VARCHAR2)
449   IS
450   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
451 
452   BEGIN
453     -- initialize return status
454     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
455 
456     -- check for data before processing
457     IF (p_aehv_rec.object_version_number IS NULL) OR
458        (p_aehv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
459        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
460                            ,p_msg_name      => g_required_value
461                            ,p_token1        => g_col_name_token
462                            ,p_token1_value  => 'object_version_number');
463        x_return_status     := Okc_Api.G_RET_STS_ERROR;
464        RAISE G_EXCEPTION_HALT_VALIDATION;
465     END IF;
466 
467   EXCEPTION
468     WHEN G_EXCEPTION_HALT_VALIDATION THEN
469     -- no processing necessary; validation can continue
470     -- with the next column
471     NULL;
472     WHEN OTHERS THEN
473       -- store SQL error message on message stack for caller
474       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
475                           ,p_msg_name      => g_unexpected_error
476                           ,p_token1        => g_sqlcode_token
477                           ,p_token1_value  => SQLCODE
478                           ,p_token2        => g_sqlerrm_token
479                           ,p_token2_value  => SQLERRM);
480 
481        -- notify caller of an UNEXPECTED error
482        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
483   END Validate_Object_Version_Number;
484 
485 
486   ---------------------------------------------------------------------------
487   -- PROCEDURE Validate_ACCOUNTING_EVENT_ID
488   ---------------------------------------------------------------------------
489   -- Start of comments
490   --
491   -- Procedure Name   : Validate_ACCOUNTING_EVENT_ID
492   -- Description      :
493   -- Business Rules   :
494   -- Parameters       :
495   -- Version          : 1.0
496   -- End of comments
497   ---------------------------------------------------------------------------
498   PROCEDURE Validate_ACCOUNTING_EVENT_ID  (p_aehv_rec      IN  aehv_rec_type
499 				 ,x_return_status OUT NOCOPY VARCHAR2)
500   IS
501   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
502   item_not_found_error              EXCEPTION;
503   l_dummy_var                       VARCHAR2(1);
504   l_row_notfound                    BOOLEAN := TRUE;
505 
506   CURSOR okl_aehv_fk_csr (p_accounting_event_id IN NUMBER) IS
507   SELECT  '1'
508   FROM OKL_ACCOUNTING_EVENTS
509   WHERE OKL_ACCOUNTING_EVENTS.accounting_event_id = p_accounting_event_id;
510 
511   BEGIN
512     -- initialize return status
513     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
514 
515     -- check for data before processing
516     IF (p_aehv_rec.ACCOUNTING_EVENT_ID  IS NULL) OR
517        (p_aehv_rec.ACCOUNTING_EVENT_ID  = Okc_Api.G_MISS_NUM) THEN
518        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
519                            ,p_msg_name      => g_required_value
520                            ,p_token1        => g_col_name_token
521                            ,p_token1_value  => 'accounting_event_id');
522        x_return_status     := Okc_Api.G_RET_STS_ERROR;
523        RAISE G_EXCEPTION_HALT_VALIDATION;
524     END IF;
525 
526     OPEN okl_aehv_fk_csr(p_aehv_rec.ACCOUNTING_EVENT_ID );
527     FETCH okl_aehv_fk_csr INTO l_dummy_var;
528     l_row_notfound := okl_aehv_fk_csr%NOTFOUND;
529     CLOSE okl_aehv_fk_csr;
530     IF (l_row_notfound) THEN
531           Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'accounting_event_id');
532           RAISE item_not_found_error;
533     END IF;
534 
535   EXCEPTION
536     WHEN G_EXCEPTION_HALT_VALIDATION THEN
537     -- no processing necessary; validation can continue
538     -- with the next column
539     NULL;
540 
541     WHEN item_not_found_error THEN
542        x_return_status := Okc_Api.G_RET_STS_ERROR;
543 
544     WHEN OTHERS THEN
545       -- store SQL error message on message stack for caller
546       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
547                           ,p_msg_name      => g_unexpected_error
548                           ,p_token1        => g_sqlcode_token
549                           ,p_token1_value  => SQLCODE
550                           ,p_token2        => g_sqlerrm_token
551                           ,p_token2_value  => SQLERRM);
552 
553        -- notify caller of an UNEXPECTED error
554        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
555 
556   END Validate_ACCOUNTING_EVENT_ID ;
557 
558 
559   ---------------------------------------------------------------------------
560   -- PROCEDURE Validate_Set_Of_Books_Id
561   ---------------------------------------------------------------------------
562   -- Start of comments
563   --
564   -- Procedure Name   : Validate_Set_Of_Books_Id
565   -- Description      :
566   -- Business Rules   :
567   -- Parameters       :
568   -- Version          : 1.0
569   -- End of comments
570   ---------------------------------------------------------------------------
571   PROCEDURE Validate_Set_Of_Books_Id (p_aehv_rec      IN  aehv_rec_type
572 				      ,x_return_status OUT NOCOPY VARCHAR2)
573   IS
574   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
575   l_dummy_var                       VARCHAR2(1);
576   item_not_found_error	 		EXCEPTION;
577   l_row_notfound                    BOOLEAN := TRUE;
578 
579   BEGIN
580     -- initialize return status
581     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
582 
583     -- check for data before processing
584     IF (p_aehv_rec.set_of_books_id IS NULL) OR
585        (p_aehv_rec.set_of_books_id = Okc_Api.G_MISS_NUM) THEN
586        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
587                            ,p_msg_name      => g_required_value
588                            ,p_token1        => g_col_name_token
589                            ,p_token1_value  => 'set_of_books_id');
590        x_return_status     := Okc_Api.G_RET_STS_ERROR;
591        RAISE G_EXCEPTION_HALT_VALIDATION;
592   END IF;
593 
594 
595   EXCEPTION
596     WHEN G_EXCEPTION_HALT_VALIDATION THEN
597     -- no processing necessary; validation can continue
598     -- with the next column
599     NULL;
600     WHEN OTHERS THEN
601       -- store SQL error message on message stack for caller
602       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
603                           ,p_msg_name      => g_unexpected_error
604                           ,p_token1        => g_sqlcode_token
605                           ,p_token1_value  => SQLCODE
606                           ,p_token2        => g_sqlerrm_token
607                           ,p_token2_value  => SQLERRM);
608        -- notify caller of an UNEXPECTED error
609        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
610 
611   END Validate_Set_Of_Books_Id;
612 
613   ---------------------------------------------------------------------------
614   -- PROCEDURE Validate_AE_CATEGORY
615   ---------------------------------------------------------------------------
616   -- Start of comments
617   --
618   -- Procedure Name   : Validate_AE_CATEGORY
619   -- Description      :
620   -- Business Rules   :
621   -- Parameters       :
622   -- Version          : 1.0
623   -- End of comments
624   ---------------------------------------------------------------------------
625 
626   PROCEDURE Validate_AE_CATEGORY (p_aehv_rec      IN  aehv_rec_type
627 				 ,x_return_status OUT NOCOPY VARCHAR2)
628   IS
629   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
630   l_dummy                           VARCHAR2(1) := OKC_API.G_FALSE;
631 
632   BEGIN
633     -- initialize return status
634     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
635 
636     -- check for data before processing
637   IF (p_aehv_rec.AE_CATEGORY IS NULL) OR
638        (p_aehv_rec.AE_CATEGORY = Okc_Api.G_MISS_CHAR) THEN
639        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
640                            ,p_msg_name      => g_required_value
641                            ,p_token1        => g_col_name_token
642                            ,p_token1_value  => 'journal_category');
643        x_return_status     := Okc_Api.G_RET_STS_ERROR;
644        RAISE G_EXCEPTION_HALT_VALIDATION;
645   END IF;
646   l_dummy := OKL_ACCOUNTING_UTIL.validate_journal_CATEGORY(p_aehv_rec.AE_CATEGORY);
647 
648   IF (l_dummy = OKC_API.G_FALSE) THEN
649        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
650                            ,p_msg_name      => g_invalid_value
651                            ,p_token1        => g_col_name_token
652                            ,p_token1_value  => 'journal_category');
653        x_return_status     := Okc_Api.G_RET_STS_ERROR;
654        RAISE G_EXCEPTION_HALT_VALIDATION;
655   END IF;
656 
657 
658   EXCEPTION
659     WHEN G_EXCEPTION_HALT_VALIDATION THEN
660     -- no processing necessary; validation can continue
661     -- with the next column
662     NULL;
663 
664     WHEN OTHERS THEN
665       -- store SQL error message on message stack for caller
666       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
667                           ,p_msg_name      => g_unexpected_error
668                           ,p_token1        => g_sqlcode_token
669                           ,p_token1_value  => SQLCODE
670                           ,p_token2        => g_sqlerrm_token
671                           ,p_token2_value  => SQLERRM);
672 
673        -- notify caller of an UNEXPECTED error
674        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
675 
676   END Validate_AE_CATEGORY;
677 
678   ---------------------------------------------------------------------------
679   -- PROCEDURE Validate_Period_Name
680   ---------------------------------------------------------------------------
681   -- Start of comments
682   --
683   -- Procedure Name   : Validate_Period_Name
684   -- Description      :
685   -- Business Rules   :
686   -- Parameters       :
687   -- Version          : 1.0
688   -- End of comments
689   ---------------------------------------------------------------------------
690   PROCEDURE Validate_Period_Name (p_aehv_rec      IN  aehv_rec_type
691 				 ,x_return_status OUT NOCOPY VARCHAR2)
692   IS
693   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
694 
695   BEGIN
696     -- initialize return status
697     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
698 
699     -- check for data before processing
700     IF (p_aehv_rec.period_name IS NULL) OR
701        (p_aehv_rec.period_name = Okc_Api.G_MISS_CHAR) THEN
702        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
703                            ,p_msg_name      => g_required_value
704                            ,p_token1        => g_col_name_token
705                            ,p_token1_value  => 'period_name');
706        x_return_status     := Okc_Api.G_RET_STS_ERROR;
707        RAISE G_EXCEPTION_HALT_VALIDATION;
708     END IF;
709 
710   EXCEPTION
711     WHEN G_EXCEPTION_HALT_VALIDATION THEN
712     -- no processing necessary; validation can continue
713     -- with the next column
714     NULL;
715 
716     WHEN OTHERS THEN
717       -- store SQL error message on message stack for caller
718       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
719                           ,p_msg_name      => g_unexpected_error
720                           ,p_token1        => g_sqlcode_token
721                           ,p_token1_value  => SQLCODE
722                           ,p_token2        => g_sqlerrm_token
723                           ,p_token2_value  => SQLERRM);
724 
725        -- notify caller of an UNEXPECTED error
726        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
727 
728   END Validate_Period_Name;
729 
730   ---------------------------------------------------------------------------
731   -- PROCEDURE Validate_Accounting_Date
732   ---------------------------------------------------------------------------
733   -- Start of comments
734   --
735   -- Procedure Name  : Validate_Accounting_Date
736   -- Description     :
737   -- Business Rules  :
738   -- Parameters      :
739   -- Version         : 1.0
740   -- End of comments
741   ---------------------------------------------------------------------------
742   PROCEDURE Validate_Accounting_Date(p_aehv_rec      IN   aehv_rec_type
743                                      ,x_return_status OUT NOCOPY  VARCHAR2)
744   IS
745 
746   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
747 
748   BEGIN
749     -- initialize return status
750     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
751 
752     -- check for data before processing
753     IF (p_aehv_rec.accounting_date IS NULL) OR
754        (p_aehv_rec.accounting_date = Okc_Api.G_MISS_DATE) THEN
755        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
756                           ,p_msg_name       => g_required_value
757                           ,p_token1         => g_col_name_token
758                           ,p_token1_value   => 'accounting_date');
759        x_return_status    := Okc_Api.G_RET_STS_ERROR;
760        RAISE G_EXCEPTION_HALT_VALIDATION;
761     END IF;
762 
763   EXCEPTION
764     WHEN G_EXCEPTION_HALT_VALIDATION THEN
765     -- no processing necessary; validation can continue
766     -- with the next column
767     NULL;
768 
769     WHEN OTHERS THEN
770       -- store SQL error message on message stack for caller
771       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
772                           p_msg_name     => g_unexpected_error,
773                           p_token1       => g_sqlcode_token,
774                           p_token1_value => SQLCODE,
775                           p_token2       => g_sqlerrm_token,
776                           p_token2_value => SQLERRM);
777 
778       -- notify caller of an UNEXPECTED error
779       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
780 
781   END Validate_Accounting_Date;
782 
783   ---------------------------------------------------------------------------
784   -- PROCEDURE Validate_Cross_Currency_Flag
785   ---------------------------------------------------------------------------
786   -- Start of comments
787   --
788   -- Procedure Name  : Validate_Cross_Currency_Flag
789   -- Description     :
790   -- Business Rules  :
791   -- Parameters      :
792   -- Version         : 1.0
793   -- End of comments
794   ---------------------------------------------------------------------------
795   PROCEDURE Validate_Cross_Currency_Flag(p_aehv_rec      IN      aehv_rec_type
796 						  ,x_return_status OUT NOCOPY     VARCHAR2)
797   IS
798 
799   l_dummy         VARCHAR2(1)  := Okc_Api.G_FALSE;
800 
801   BEGIN
802     -- initialize return status
803     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
804 
805     -- check for data before processing
806     IF (p_aehv_rec.cross_currency_flag IS NULL) OR
807        (p_aehv_rec.cross_currency_flag = Okc_Api.G_MISS_CHAR) THEN
808        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
809                           ,p_msg_name       => g_required_value
810                           ,p_token1         => g_col_name_token
811                           ,p_token1_value   => 'cross_currency_flag');
812        x_return_status    := Okc_Api.G_RET_STS_ERROR;
813        RAISE G_EXCEPTION_HALT_VALIDATION;
814     END IF;
815 
816     -- check in fnd_lookups for validity
817 
818     l_dummy
819        := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(p_lookup_type => 'YES_NO',
820                                                    p_lookup_code => p_aehv_rec.cross_currency_flag,
821                                                    p_app_id => 0,
822                                                    p_view_app_id => 0);
823 
824     IF (l_dummy = Okc_Api.G_FALSE) THEN
825        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
826                           ,p_msg_name       => g_invalid_value
827                           ,p_token1         => g_col_name_token
828                           ,p_token1_value   => 'CROSS_CURRENCY_FLAG');
829        x_return_status    := Okc_Api.G_RET_STS_ERROR;
830        RAISE G_EXCEPTION_HALT_VALIDATION;
831     END IF;
832   EXCEPTION
833     WHEN G_EXCEPTION_HALT_VALIDATION THEN
834     -- no processing neccessary; validation can continue
835     -- with the next column
836     NULL;
837 
838     WHEN OTHERS THEN
839       -- store SQL error message on message stack for caller
840       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
841                           p_msg_name     => g_unexpected_error,
842                           p_token1       => g_sqlcode_token,
843                           p_token1_value => SQLCODE,
844                           p_token2       => g_sqlerrm_token,
845                           p_token2_value => SQLERRM);
846 
847       -- notify caller of an UNEXPECTED error
848       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
849 
850   END Validate_Cross_Currency_Flag;
851 
852   ---------------------------------------------------------------------------
853   -- PROCEDURE Validate_GL_Transfer_Flag
854   ---------------------------------------------------------------------------
855   -- Start of comments
856   --
857   -- Procedure Name  : Validate_GL_Transfer_Flag
858   -- Description     :
859   -- Business Rules  :
860   -- Parameters      :
861   -- Version         : 1.0
862   -- End of comments
863   ---------------------------------------------------------------------------
864   PROCEDURE Validate_GL_Transfer_Flag(p_aehv_rec      IN      aehv_rec_type
865 						  ,x_return_status OUT NOCOPY     VARCHAR2)
866   IS
867 
868   l_DUMMY         VARCHAR2(1)  := Okc_Api.G_FALSE;
869 
870   BEGIN
871     -- initialize return status
872     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
873 
874     -- check for data before processing
875     IF (p_aehv_rec.gl_transfer_flag IS NULL) OR
876        (p_aehv_rec.gl_transfer_flag = Okc_Api.G_MISS_CHAR) THEN
877        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
878                           ,p_msg_name       => g_required_value
879                           ,p_token1         => g_col_name_token
880                           ,p_token1_value   => 'gl_transfer_flag');
881        x_return_status    := Okc_Api.G_RET_STS_ERROR;
882        RAISE G_EXCEPTION_HALT_VALIDATION;
883     END IF;
884 
885     -- check in fnd_lookups for validity
886     l_dummy
887        := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(p_lookup_type => 'YES_NO',
888                                                    p_lookup_code => p_aehv_rec.gl_transfer_flag,
889                                                    p_app_id => 0,
890                                                    p_view_app_id => 0);
891 
892     IF (l_dummy = Okc_Api.G_FALSE) THEN
893        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
894                           ,p_msg_name       => g_invalid_value
895                           ,p_token1         => g_col_name_token
896                           ,p_token1_value   => 'GL_TRANSFER_FLAG');
897        x_return_status    := Okc_Api.G_RET_STS_ERROR;
898        RAISE G_EXCEPTION_HALT_VALIDATION;
899     END IF;
900 
901   EXCEPTION
902     WHEN G_EXCEPTION_HALT_VALIDATION THEN
903     -- no processing neccessary; validation can continue
904     -- with the next column
905     NULL;
906 
907     WHEN OTHERS THEN
908       -- store SQL error message on message stack for caller
909       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
910                           p_msg_name     => g_unexpected_error,
911                           p_token1       => g_sqlcode_token,
912                           p_token1_value => SQLCODE,
913                           p_token2       => g_sqlerrm_token,
914                           p_token2_value => SQLERRM);
915 
916       -- notify caller of an UNEXPECTED error
917       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
918 
919   END Validate_GL_Transfer_Flag;
920 
921   ---------------------------------------------------------------------------
922   -- PROCEDURE Validate_GL_Reversal_Flag
923   ---------------------------------------------------------------------------
924   -- Start of comments
925   --
926   -- Procedure Name  : Validate_GL_Reversal_Flag
927   -- Description     :
928   -- Business Rules  :
929   -- Parameters      :
930   -- Version         : 1.0
931   -- End of comments
932   ---------------------------------------------------------------------------
933   PROCEDURE Validate_GL_Reversal_Flag(p_aehv_rec      IN      aehv_rec_type
934 						  ,x_return_status OUT NOCOPY     VARCHAR2)
935   IS
936 
937   l_dummy         VARCHAR2(1)  := Okc_Api.G_FALSE;
938 
939   BEGIN
940     -- initialize return status
941 
942     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
943 
944     -- check in fnd_lookups for validity
945     IF (p_aehv_rec.gl_reversal_flag IS NOT NULL) AND
946        (p_aehv_rec.gl_reversal_flag <> Okc_Api.G_MISS_CHAR) THEN
947         l_dummy
948           := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(p_lookup_type => 'YES_NO',
949                                                       p_lookup_code => p_aehv_rec.gl_reversal_flag,
950                                                       p_app_id => 0,
951                                                       p_view_app_id => 0);
952 
953        IF (l_dummy = Okc_Api.G_FALSE) THEN
954           Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
955                              ,p_msg_name       => g_invalid_value
956                              ,p_token1         => g_col_name_token
957                              ,p_token1_value   => 'GL_REVERSAL_FLAG');
958           x_return_status    := Okc_Api.G_RET_STS_ERROR;
959           RAISE G_EXCEPTION_HALT_VALIDATION;
960        END IF;
961 
962     END IF;
963 
964   EXCEPTION
965     WHEN G_EXCEPTION_HALT_VALIDATION THEN
966     -- no processing neccessary; validation can continue
967     -- with the next column
968     NULL;
969 
970     WHEN OTHERS THEN
971       -- store SQL error message on message stack for caller
972       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
973                           p_msg_name     => g_unexpected_error,
974                           p_token1       => g_sqlcode_token,
975                           p_token1_value => SQLCODE,
976                           p_token2       => g_sqlerrm_token,
977                           p_token2_value => SQLERRM);
978 
979       -- notify caller of an UNEXPECTED error
980       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
981 
982   END Validate_GL_Reversal_Flag;
983 
984   ---------------------------------------------------------------------------
985   -- PROCEDURE Validate_Post_To_GL_Flag
986   ---------------------------------------------------------------------------
987   -- Start of comments
988   --
989   -- Procedure Name  : Validate_Post_To_GL_Flag
990   -- Description     :
991   -- Business Rules  :
992   -- Parameters      :
993   -- Version         : 1.0
994   -- End of comments
995   ---------------------------------------------------------------------------
996   PROCEDURE Validate_Post_To_GL_Flag(p_aehv_rec      IN      aehv_rec_type
997 						  ,x_return_status OUT NOCOPY     VARCHAR2)
998   IS
999 
1000   l_dummy         VARCHAR2(1)  := Okc_Api.G_FALSE;
1001 
1002   BEGIN
1003     -- initialize return status
1004     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1005 
1006     IF (p_aehv_rec.post_to_gl_flag IS NOT NULL) AND
1007        (p_aehv_rec.post_to_gl_flag <> Okc_Api.G_MISS_CHAR) THEN
1008         l_dummy
1009           := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(p_lookup_type => 'YES_NO',
1010                                                       p_lookup_code => p_aehv_rec.post_to_gl_flag,
1011                                                       p_app_id => 0,
1012                                                       p_view_app_id => 0);
1013 
1014 
1015        IF (l_dummy = Okc_Api.G_FALSE) THEN
1016            Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1017                               ,p_msg_name       => g_invalid_value
1018                               ,p_token1         => g_col_name_token
1019                               ,p_token1_value   => 'POST_TO_GL_FLAG');
1020            x_return_status    := Okc_Api.G_RET_STS_ERROR;
1021            RAISE G_EXCEPTION_HALT_VALIDATION;
1022         END IF;
1023     END IF;
1024 
1025   EXCEPTION
1026     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1027     -- no processing neccessary; validation can continue
1028     -- with the next column
1029     NULL;
1030 
1031     WHEN OTHERS THEN
1032       -- store SQL error message on message stack for caller
1033       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1034                           p_msg_name     => g_unexpected_error,
1035                           p_token1       => g_sqlcode_token,
1036                           p_token1_value => SQLCODE,
1037                           p_token2       => g_sqlerrm_token,
1038                           p_token2_value => SQLERRM);
1039 
1040       -- notify caller of an UNEXPECTED error
1041       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1042 
1043   END Validate_Post_To_GL_Flag;
1044 
1045   ---------------------------------------------------------------------------
1046   -- PROCEDURE Validate_GL_Transfer_Run_Id
1047   ---------------------------------------------------------------------------
1048   -- Start of comments
1049   --
1050   -- Procedure Name   : Validate_GL_Transfer_Run_Id
1051   -- Description      :
1052   -- Business Rules   :
1053   -- Parameters       :
1054   -- Version          : 1.0
1055   -- End of comments
1056   ---------------------------------------------------------------------------
1057   PROCEDURE Validate_GL_Transfer_Run_Id (p_aehv_rec      IN  aehv_rec_type
1058 				 ,x_return_status OUT NOCOPY VARCHAR2)
1059   IS
1060   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
1061 
1062   BEGIN
1063     -- initialize return status
1064     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1065 
1066     -- check for data before processing
1067     IF (p_aehv_rec.gl_transfer_run_id IS NULL) OR
1068        (p_aehv_rec.gl_transfer_run_id = Okc_Api.G_MISS_NUM) THEN
1069        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1070                            ,p_msg_name      => g_required_value
1071                            ,p_token1        => g_col_name_token
1072                            ,p_token1_value  => 'gl_transfer_run_id');
1073        x_return_status     := Okc_Api.G_RET_STS_ERROR;
1074        RAISE G_EXCEPTION_HALT_VALIDATION;
1075     END IF;
1076 
1077   EXCEPTION
1078     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1079     -- no processing necessary; validation can continue
1080     -- with the next column
1081     NULL;
1082 
1083     WHEN OTHERS THEN
1084       -- store SQL error message on message stack for caller
1085       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1086                           ,p_msg_name      => g_unexpected_error
1087                           ,p_token1        => g_sqlcode_token
1088                           ,p_token1_value  => SQLCODE
1089                           ,p_token2        => g_sqlerrm_token
1090                           ,p_token2_value  => SQLERRM);
1091 
1092        -- notify caller of an UNEXPECTED error
1093        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1094 
1095   END Validate_GL_Transfer_Run_Id;
1096 
1097   ---------------------------------------------------------------------------
1098   -- PROCEDURE Validate_Accounting_error_code
1099   ---------------------------------------------------------------------------
1100   -- Start of comments
1101   --
1102   -- Procedure Name   : Validate_Accounting_Error_code
1103   -- Description      :
1104   -- Business Rules   :
1105   -- Parameters       :
1106   -- Version          : 1.0
1107   -- End of comments
1108   ---------------------------------------------------------------------------
1109   PROCEDURE Validate_Accounting_Error_code (p_aehv_rec      IN  aehv_rec_type
1110 				 ,x_return_status OUT NOCOPY VARCHAR2)
1111   IS
1112   l_dummy                   VARCHAR2(1)    := Okc_Api.G_FALSE;
1113 
1114   BEGIN
1115     -- initialize return status
1116     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1117 
1118     -- check for data before processing
1119     IF (p_aehv_rec.Accounting_Error_Code IS NOT NULL) AND
1120        (p_aehv_rec.Accounting_Error_code <> Okc_Api.G_MISS_CHAR) THEN
1121 
1122         l_dummy := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(
1123                   p_lookup_type => 'OKL_ACCOUNTING_ERROR_CODE',
1124                   p_lookup_code => p_aehv_rec.accounting_error_code);
1125 
1126        IF (l_dummy = OKC_API.G_FALSE) THEN
1127 
1128             Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1129                                 ,p_msg_name      => g_invalid_value
1130                                 ,p_token1        => g_col_name_token
1131                                 ,p_token1_value  => 'ACCOUNTING_ERROR_CODE');
1132             x_return_status     := Okc_Api.G_RET_STS_ERROR;
1133 
1134             RAISE G_EXCEPTION_HALT_VALIDATION;
1135 
1136        END IF;
1137 
1138     END IF;
1139 
1140   EXCEPTION
1141     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1142     -- no processing necessary; validation can continue
1143     -- with the next column
1144     NULL;
1145 
1146     WHEN OTHERS THEN
1147       -- store SQL error message on message stack for caller
1148       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1149                           ,p_msg_name      => g_unexpected_error
1150                           ,p_token1        => g_sqlcode_token
1151                           ,p_token1_value  => SQLCODE
1152                           ,p_token2        => g_sqlerrm_token
1153                           ,p_token2_value  => SQLERRM);
1154 
1155        -- notify caller of an UNEXPECTED error
1156        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1157 
1158   END Validate_Accounting_Error_Code;
1159 
1160 
1161   ---------------------------------------------------------------------------
1162   -- PROCEDURE Validate_GL_Transfer_Err_Code
1163   ---------------------------------------------------------------------------
1164   -- Start of comments
1165   --
1166   -- Procedure Name   : validate_gl_transfer_err_code
1167   -- Description      :
1168   -- Business Rules   :
1169   -- Parameters       :
1170   -- Version          : 1.0
1171   -- End of comments
1172   ---------------------------------------------------------------------------
1173   PROCEDURE validate_gl_transfer_err_code (p_aehv_rec      IN  aehv_rec_type
1174 				 ,x_return_status OUT NOCOPY VARCHAR2)
1175   IS
1176   l_dummy                   VARCHAR2(1)    := Okc_Api.G_FALSE;
1177 
1178   BEGIN
1179     -- initialize return status
1180     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1181 
1182     -- check for data before processing
1183     IF (p_aehv_rec.GL_Transfer_Error_Code IS NOT NULL) AND
1184        (p_aehv_rec.GL_Transfer_Error_Code <> Okc_Api.G_MISS_CHAR) THEN
1185 
1186         l_dummy
1187           := OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(
1188                p_lookup_type => 'OKL_ACCOUNTING_ERROR_CODE',
1189                p_lookup_code => p_aehv_rec.GL_Transfer_Error_Code);
1190 
1191        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1192                            ,p_msg_name      => g_invalid_value
1193                            ,p_token1        => g_col_name_token
1194                            ,p_token1_value  => 'GL_TRANSFER_ERROR_CODE');
1195        x_return_status     := Okc_Api.G_RET_STS_ERROR;
1196        RAISE G_EXCEPTION_HALT_VALIDATION;
1197     END IF;
1198 
1199   EXCEPTION
1200     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1201     -- no processing necessary; validation can continue
1202     -- with the next column
1203     NULL;
1204 
1205     WHEN OTHERS THEN
1206       -- store SQL error message on message stack for caller
1207       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1208                           ,p_msg_name      => g_unexpected_error
1209                           ,p_token1        => g_sqlcode_token
1210                           ,p_token1_value  => SQLCODE
1211                           ,p_token2        => g_sqlerrm_token
1212                           ,p_token2_value  => SQLERRM);
1213 
1214        -- notify caller of an UNEXPECTED error
1215        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1216 
1217   END validate_gl_transfer_err_code;
1218 
1219 
1220   ---------------------------------------------------------------------------
1221   -- FUNCTION Validate_Attributes
1222   ---------------------------------------------------------------------------
1223   -- Start of comments
1224   --
1225   -- Procedure Name  : Validate_Attributes
1226   -- Description     :
1227   -- Business Rules  :
1228   -- Parameters      :
1229   -- Version         : 1.0
1230   -- End of comments
1231   ---------------------------------------------------------------------------
1232 
1233   FUNCTION Validate_Attributes (
1234     p_aehv_rec IN  aehv_rec_type
1235   ) RETURN VARCHAR2 IS
1236 
1237     x_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1238     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1239   BEGIN
1240 
1241     -- call each column-level validation
1242 
1243     -- Validate_AE_HEADER_ID
1244     Validate_AE_HEADER_ID (p_aehv_rec, x_return_status);
1245     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1246        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1247           -- need to exit
1248           l_return_status := x_return_status;
1249           RAISE G_EXCEPTION_HALT_VALIDATION;
1250        ELSE
1251           -- there was an error
1252           l_return_status := x_return_status;
1253        END IF;
1254     END IF;
1255 
1256     -- Validate_Object_Version_Number
1257     Validate_Object_Version_Number(p_aehv_rec, x_return_status);
1258     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1259        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1260           -- need to exit
1261           l_return_status := x_return_status;
1262           RAISE G_EXCEPTION_HALT_VALIDATION;
1263        ELSE
1264           -- there was an error
1265           l_return_status := x_return_status;
1266        END IF;
1267     END IF;
1268 
1269     -- Validate_ACCOUNTING_EVENT_ID
1270     Validate_ACCOUNTING_EVENT_ID (p_aehv_rec, x_return_status);
1271     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1272        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1273           -- need to exit
1274           l_return_status := x_return_status;
1275           RAISE G_EXCEPTION_HALT_VALIDATION;
1276        ELSE
1277           -- there was an error
1278           l_return_status := x_return_status;
1279        END IF;
1280     END IF;
1281 
1282     -- Validate_Set_Of_Books_Id
1283     Validate_Set_Of_Books_Id(p_aehv_rec, x_return_status);
1284     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1285        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1286           -- need to exit
1287           l_return_status := x_return_status;
1288           RAISE G_EXCEPTION_HALT_VALIDATION;
1289        ELSE
1290           -- there was an error
1291           l_return_status := x_return_status;
1292        END IF;
1293     END IF;
1294 
1295     -- Validate_AE_CATEGORY
1296     Validate_AE_CATEGORY(p_aehv_rec, x_return_status);
1297     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1298        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1299           -- need to exit
1300           l_return_status := x_return_status;
1301           RAISE G_EXCEPTION_HALT_VALIDATION;
1302        ELSE
1303           -- there was an error
1304           l_return_status := x_return_status;
1305        END IF;
1306     END IF;
1307 
1308     -- Validate_Period_Name
1309     Validate_Period_Name(p_aehv_rec, x_return_status);
1310     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1311        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1312           -- need to exit
1313           l_return_status := x_return_status;
1314           RAISE G_EXCEPTION_HALT_VALIDATION;
1315        ELSE
1316           -- there was an error
1317           l_return_status := x_return_status;
1318        END IF;
1319     END IF;
1320 
1321     -- Validate_Accounting_Date
1322     Validate_Accounting_Date(p_aehv_rec, x_return_status);
1323     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1324        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1325           -- need to exit
1326           l_return_status := x_return_status;
1327           RAISE G_EXCEPTION_HALT_VALIDATION;
1328        ELSE
1329           -- there was an error
1330           l_return_status := x_return_status;
1331        END IF;
1332     END IF;
1333 
1334     -- Validate_Cross_Currency_Flag
1335     Validate_Cross_Currency_Flag(p_aehv_rec, x_return_status);
1336     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1337        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1338           -- need to exit
1339           l_return_status := x_return_status;
1340           RAISE G_EXCEPTION_HALT_VALIDATION;
1341        ELSE
1342           -- there was an error
1343           l_return_status := x_return_status;
1344        END IF;
1345     END IF;
1346 
1347     -- Validate_GL_Transfer_Flag
1348     Validate_GL_Transfer_Flag(p_aehv_rec, x_return_status);
1349     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1350        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1351           -- need to exit
1352           l_return_status := x_return_status;
1353           RAISE G_EXCEPTION_HALT_VALIDATION;
1354        ELSE
1355           -- there was an error
1356           l_return_status := x_return_status;
1357        END IF;
1358     END IF;
1359 
1360     -- Validate_Post_To_GL_Flag
1361     Validate_Post_To_GL_Flag(p_aehv_rec, x_return_status);
1362     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1363        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1364           -- need to exit
1365           l_return_status := x_return_status;
1366           RAISE G_EXCEPTION_HALT_VALIDATION;
1367        ELSE
1368           -- there was an error
1369           l_return_status := x_return_status;
1370        END IF;
1371     END IF;
1372 
1373     -- Validate_GL_Reversal_Flag
1374     Validate_GL_Reversal_Flag(p_aehv_rec, x_return_status);
1375     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1376        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1377           -- need to exit
1378           l_return_status := x_return_status;
1379           RAISE G_EXCEPTION_HALT_VALIDATION;
1380        ELSE
1381           -- there was an error
1382           l_return_status := x_return_status;
1383        END IF;
1384     END IF;
1385 
1386     -- Validate_GL_Transfer_Run_Id
1387     Validate_GL_Transfer_Run_Id(p_aehv_rec, x_return_status);
1388     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1389        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1390           -- need to exit
1391           l_return_status := x_return_status;
1392           RAISE G_EXCEPTION_HALT_VALIDATION;
1393        ELSE
1394           -- there was an error
1395           l_return_status := x_return_status;
1396        END IF;
1397     END IF;
1398 
1399     -- Validate_Accounting_Error_Code
1400     Validate_Accounting_Error_Code(p_aehv_rec, x_return_status);
1401     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1402        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1403           -- need to exit
1404           l_return_status := x_return_status;
1405           RAISE G_EXCEPTION_HALT_VALIDATION;
1406        ELSE
1407           -- there was an error
1408           l_return_status := x_return_status;
1409        END IF;
1410     END IF;
1411 
1412     -- validate_gl_transfer_err_code
1413     validate_gl_transfer_err_code(p_aehv_rec, x_return_status);
1414     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1415        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1416           -- need to exit
1417           l_return_status := x_return_status;
1418           RAISE G_EXCEPTION_HALT_VALIDATION;
1419        ELSE
1420           -- there was an error
1421           l_return_status := x_return_status;
1422        END IF;
1423     END IF;
1424 
1425     RETURN(l_return_status);
1426   EXCEPTION
1427     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1428        -- exit with return status
1429        NULL;
1430        RETURN (l_return_status);
1431 
1432     WHEN OTHERS THEN
1433        -- store SQL error message on message stack for caller
1434        Okc_Api.SET_MESSAGE(p_app_name         => g_app_name,
1435                            p_msg_name         => g_unexpected_error,
1436                            p_token1           => g_sqlcode_token,
1437                            p_token1_value     => SQLCODE,
1438                            p_token2           => g_sqlerrm_token,
1439                            p_token2_value     => SQLERRM);
1440        -- notify caller of an UNEXPECTED error
1441        l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1442        RETURN(l_return_status);
1443 
1444   END Validate_Attributes;
1445 
1446   ---------------------------------------------------------------------------
1447   -- PROCEDURE Validate_Record
1448   ---------------------------------------------------------------------------
1449   -- Start of comments
1450   --
1451   -- Procedure Name  : Validate_Record
1452   -- Description     :
1453   -- Business Rules  :
1454   -- Parameters      :
1455   -- Version         : 1.0
1456   -- End of comments
1457   ---------------------------------------------------------------------------
1458 
1459   FUNCTION Validate_Record (
1460     p_aehv_rec IN aehv_rec_type
1461   ) RETURN VARCHAR2 IS
1462     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1463   BEGIN
1464     RETURN(l_return_status);
1465   END Validate_Record;
1466 
1467   /*********************** END MANUAL CODE **********************************/
1468 
1469   ---------------------------------------------------------------------------
1470   -- PROCEDURE Migrate
1471   ---------------------------------------------------------------------------
1472 
1473   PROCEDURE migrate (
1474     p_from	IN aehv_rec_type,
1475     p_to	IN OUT NOCOPY aeh_rec_type
1476   ) IS
1477   BEGIN
1478     p_to.AE_HEADER_ID  := p_from.AE_HEADER_ID ;
1479     p_to.post_to_gl_flag := p_from.post_to_gl_flag;
1480     p_to.set_of_books_id := p_from.set_of_books_id;
1481     p_to.org_id := p_from.org_id;
1482     p_to.ACCOUNTING_EVENT_ID  := p_from.ACCOUNTING_EVENT_ID ;
1483     p_to.AE_CATEGORY := p_from.AE_CATEGORY;
1484     p_to.period_name := p_from.period_name;
1485     p_to.accounting_date := p_from.accounting_date;
1486     p_to.cross_currency_flag := p_from.cross_currency_flag;
1487     p_to.gl_transfer_flag := p_from.gl_transfer_flag;
1488     p_to.gl_transfer_run_id := p_from.gl_transfer_run_id;
1489     p_to.object_version_number := p_from.object_version_number;
1490     p_to.sequence_id := p_from.sequence_id;
1491     p_to.sequence_value := p_from.sequence_value;
1492     p_to.description := p_from.description;
1493     p_to.accounting_error_code := p_from.accounting_error_code;
1494     p_to.gl_transfer_error_code := p_from.gl_transfer_error_code;
1495     p_to.gl_reversal_flag := p_from.gl_reversal_flag;
1496     p_to.program_id := p_from.program_id;
1497     p_to.program_application_id := p_from.program_application_id;
1498     p_to.program_update_date := p_from.program_update_date;
1499     p_to.request_id := p_from.request_id;
1500     p_to.created_by := p_from.created_by;
1501     p_to.creation_date := p_from.creation_date;
1502     p_to.last_updated_by := p_from.last_updated_by;
1503     p_to.last_update_date := p_from.last_update_date;
1504     p_to.last_update_login := p_from.last_update_login;
1505   END migrate;
1506   PROCEDURE migrate (
1507     p_from	IN aeh_rec_type,
1508     p_to	IN OUT NOCOPY aehv_rec_type
1509   ) IS
1510   BEGIN
1511     p_to.AE_HEADER_ID  := p_from.AE_HEADER_ID ;
1512     p_to.post_to_gl_flag := p_from.post_to_gl_flag;
1513     p_to.set_of_books_id := p_from.set_of_books_id;
1514     p_to.org_id := p_from.org_id;
1515     p_to.ACCOUNTING_EVENT_ID  := p_from.ACCOUNTING_EVENT_ID ;
1516     p_to.AE_CATEGORY := p_from.AE_CATEGORY;
1517     p_to.period_name := p_from.period_name;
1518     p_to.accounting_date := p_from.accounting_date;
1519     p_to.cross_currency_flag := p_from.cross_currency_flag;
1520     p_to.gl_transfer_flag := p_from.gl_transfer_flag;
1521     p_to.gl_transfer_run_id := p_from.gl_transfer_run_id;
1522     p_to.object_version_number := p_from.object_version_number;
1523     p_to.sequence_id := p_from.sequence_id;
1524     p_to.sequence_value := p_from.sequence_value;
1525     p_to.description := p_from.description;
1526     p_to.accounting_error_code := p_from.accounting_error_code;
1527     p_to.gl_transfer_error_code := p_from.gl_transfer_error_code;
1528     p_to.gl_reversal_flag := p_from.gl_reversal_flag;
1529     p_to.program_id := p_from.program_id;
1530     p_to.program_application_id := p_from.program_application_id;
1531     p_to.program_update_date := p_from.program_update_date;
1532     p_to.request_id := p_from.request_id;
1533     p_to.created_by := p_from.created_by;
1534     p_to.creation_date := p_from.creation_date;
1535     p_to.last_updated_by := p_from.last_updated_by;
1536     p_to.last_update_date := p_from.last_update_date;
1537     p_to.last_update_login := p_from.last_update_login;
1538   END migrate;
1539 
1540   ---------------------------------------------------------------------------
1541   -- PROCEDURE validate_row
1542   ---------------------------------------------------------------------------
1543   ---------------------------------------
1544   -- validate_row for:OKL_AE_HEADERS_V --
1545   ---------------------------------------
1546   PROCEDURE validate_row(
1547     p_api_version                  IN NUMBER,
1548     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1549     x_return_status                OUT NOCOPY VARCHAR2,
1550     x_msg_count                    OUT NOCOPY NUMBER,
1551     x_msg_data                     OUT NOCOPY VARCHAR2,
1552     p_aehv_rec                     IN aehv_rec_type) IS
1553 
1554     l_api_version                 CONSTANT NUMBER := 1;
1555     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
1556     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1557     l_aehv_rec                     aehv_rec_type := p_aehv_rec;
1558     l_aeh_rec                      aeh_rec_type;
1559   BEGIN
1560     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1561                                               G_PKG_NAME,
1562                                               p_init_msg_list,
1563                                               l_api_version,
1564                                               p_api_version,
1565                                               '_PVT',
1566                                               x_return_status);
1567     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1568       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1569     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1570       RAISE Okc_Api.G_EXCEPTION_ERROR;
1571     END IF;
1572     --- Validate all non-missing attributes (Item Level Validation)
1573     l_return_status := Validate_Attributes(l_aehv_rec);
1574     --- If any errors happen abort API
1575     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1576       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1577     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1578       RAISE Okc_Api.G_EXCEPTION_ERROR;
1579     END IF;
1580     l_return_status := Validate_Record(l_aehv_rec);
1581     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1582       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1583     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1584       RAISE Okc_Api.G_EXCEPTION_ERROR;
1585     END IF;
1586     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1587   EXCEPTION
1588     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1589       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1590       (
1591         l_api_name,
1592         G_PKG_NAME,
1593         'Okc_Api.G_RET_STS_ERROR',
1594         x_msg_count,
1595         x_msg_data,
1596         '_PVT'
1597       );
1598     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1599       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1600       (
1601         l_api_name,
1602         G_PKG_NAME,
1603         'Okc_Api.G_RET_STS_UNEXP_ERROR',
1604         x_msg_count,
1605         x_msg_data,
1606         '_PVT'
1607       );
1608     WHEN OTHERS THEN
1609       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1610       (
1611         l_api_name,
1612         G_PKG_NAME,
1613         'OTHERS',
1614         x_msg_count,
1615         x_msg_data,
1616         '_PVT'
1617       );
1618   END validate_row;
1619   ------------------------------------------
1620   -- PL/SQL TBL validate_row for:AEHV_TBL --
1621   ------------------------------------------
1622   PROCEDURE validate_row(
1623     p_api_version                  IN NUMBER,
1624     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1625     x_return_status                OUT NOCOPY VARCHAR2,
1626     x_msg_count                    OUT NOCOPY NUMBER,
1627     x_msg_data                     OUT NOCOPY VARCHAR2,
1628     p_aehv_tbl                     IN aehv_tbl_type) IS
1629 
1630     l_api_version                 CONSTANT NUMBER := 1;
1631     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1632     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1633     i                              NUMBER := 0;
1634     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1635 
1636   BEGIN
1637     Okc_Api.init_msg_list(p_init_msg_list);
1638     -- Make sure PL/SQL table has records in it before passing
1639     IF (p_aehv_tbl.COUNT > 0) THEN
1640       i := p_aehv_tbl.FIRST;
1641       LOOP
1642         validate_row (
1643           p_api_version                  => p_api_version,
1644           p_init_msg_list                => Okc_Api.G_FALSE,
1645           x_return_status                => x_return_status,
1646           x_msg_count                    => x_msg_count,
1647           x_msg_data                     => x_msg_data,
1648           p_aehv_rec                     => p_aehv_tbl(i));
1649 
1650         -- store the highest degree of error
1651 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1652            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1653               l_overall_status := x_return_status;
1654            END IF;
1655 	  END IF;
1656 
1657         EXIT WHEN (i = p_aehv_tbl.LAST);
1658         i := p_aehv_tbl.NEXT(i);
1659       END LOOP;
1660 	  -- return overall status
1661 	  x_return_status := l_overall_status;
1662 
1663     END IF;
1664   EXCEPTION
1665     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1666       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1667       (
1668         l_api_name,
1669         G_PKG_NAME,
1670         'Okc_Api.G_RET_STS_ERROR',
1671         x_msg_count,
1672         x_msg_data,
1673         '_PVT'
1674       );
1675     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1676       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1677       (
1678         l_api_name,
1679         G_PKG_NAME,
1680         'Okc_Api.G_RET_STS_UNEXP_ERROR',
1681         x_msg_count,
1682         x_msg_data,
1683         '_PVT'
1684       );
1685     WHEN OTHERS THEN
1686       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1687       (
1688         l_api_name,
1689         G_PKG_NAME,
1690         'OTHERS',
1691         x_msg_count,
1692         x_msg_data,
1693         '_PVT'
1694       );
1695   END validate_row;
1696 
1697   ---------------------------------------------------------------------------
1698   -- PROCEDURE insert_row
1699   ---------------------------------------------------------------------------
1700   -----------------------------------
1701   -- insert_row for:OKL_AE_HEADERS --
1702   -----------------------------------
1703   PROCEDURE insert_row(
1704     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1705     x_return_status                OUT NOCOPY VARCHAR2,
1706     x_msg_count                    OUT NOCOPY NUMBER,
1707     x_msg_data                     OUT NOCOPY VARCHAR2,
1708     p_aeh_rec                      IN aeh_rec_type,
1709     x_aeh_rec                      OUT NOCOPY aeh_rec_type) IS
1710 
1711     l_api_version                 CONSTANT NUMBER := 1;
1712     l_api_name                     CONSTANT VARCHAR2(30) := 'HEADERS_insert_row';
1713     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1714     l_aeh_rec                      aeh_rec_type := p_aeh_rec;
1715     l_def_aeh_rec                  aeh_rec_type;
1716     ---------------------------------------
1717     -- Set_Attributes for:OKL_AE_HEADERS --
1718     ---------------------------------------
1719     FUNCTION Set_Attributes (
1720       p_aeh_rec IN  aeh_rec_type,
1721       x_aeh_rec OUT NOCOPY aeh_rec_type
1722     ) RETURN VARCHAR2 IS
1723       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1724     BEGIN
1725       x_aeh_rec := p_aeh_rec;
1726       RETURN(l_return_status);
1727     END Set_Attributes;
1728   BEGIN
1729     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1730                                               p_init_msg_list,
1731                                               '_PVT',
1732                                               x_return_status);
1733     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1734       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1735     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1736       RAISE Okc_Api.G_EXCEPTION_ERROR;
1737     END IF;
1738     --- Setting item attributes
1739     l_return_status := Set_Attributes(
1740       p_aeh_rec,                         -- IN
1741       l_aeh_rec);                        -- OUT
1742     --- If any errors happen abort API
1743     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1744       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1745     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1746       RAISE Okc_Api.G_EXCEPTION_ERROR;
1747     END IF;
1748     INSERT INTO OKL_AE_HEADERS(
1749         AE_HEADER_ID ,
1750         post_to_gl_flag,
1751         set_of_books_id,
1752         org_id,
1753         ACCOUNTING_EVENT_ID ,
1754         AE_CATEGORY,
1755         period_name,
1756         accounting_date,
1757         cross_currency_flag,
1758         gl_transfer_flag,
1759         gl_transfer_run_id,
1760         object_version_number,
1761         sequence_id,
1762         sequence_value,
1763         description,
1764         accounting_error_code,
1765         gl_transfer_error_code,
1766         gl_reversal_flag,
1767         program_id,
1768         program_application_id,
1769         program_update_date,
1770         request_id,
1771         created_by,
1772         creation_date,
1773         last_updated_by,
1774         last_update_date,
1775         last_update_login)
1776       VALUES (
1777         l_aeh_rec.AE_HEADER_ID ,
1778         l_aeh_rec.post_to_gl_flag,
1779         l_aeh_rec.set_of_books_id,
1780         l_aeh_rec.org_id,
1781         l_aeh_rec.ACCOUNTING_EVENT_ID ,
1782         l_aeh_rec.AE_CATEGORY,
1783         l_aeh_rec.period_name,
1784         l_aeh_rec.accounting_date,
1785         l_aeh_rec.cross_currency_flag,
1786         l_aeh_rec.gl_transfer_flag,
1787         l_aeh_rec.gl_transfer_run_id,
1788         l_aeh_rec.object_version_number,
1789         l_aeh_rec.sequence_id,
1790         l_aeh_rec.sequence_value,
1791         l_aeh_rec.description,
1792         l_aeh_rec.accounting_error_code,
1793         l_aeh_rec.gl_transfer_error_code,
1794         l_aeh_rec.gl_reversal_flag,
1795         l_aeh_rec.PROGRAM_ID,
1796         l_aeh_rec.program_application_id,
1797         l_aeh_rec.program_update_date,
1798         l_aeh_rec.request_id,
1799         l_aeh_rec.created_by,
1800         l_aeh_rec.creation_date,
1801         l_aeh_rec.last_updated_by,
1802         l_aeh_rec.last_update_date,
1803         l_aeh_rec.last_update_login);
1804     -- Set OUT values
1805     x_aeh_rec := l_aeh_rec;
1806     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1807   EXCEPTION
1808     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1809       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1810       (
1811         l_api_name,
1812         G_PKG_NAME,
1813         'Okc_Api.G_RET_STS_ERROR',
1814         x_msg_count,
1815         x_msg_data,
1816         '_PVT'
1817       );
1818     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1819       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1820       (
1821         l_api_name,
1822         G_PKG_NAME,
1823         'Okc_Api.G_RET_STS_UNEXP_ERROR',
1824         x_msg_count,
1825         x_msg_data,
1826         '_PVT'
1827       );
1828     WHEN OTHERS THEN
1829       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1830       (
1831         l_api_name,
1832         G_PKG_NAME,
1833         'OTHERS',
1834         x_msg_count,
1835         x_msg_data,
1836         '_PVT'
1837       );
1838   END insert_row;
1839   -------------------------------------
1840   -- insert_row for:OKL_AE_HEADERS_V --
1841   -------------------------------------
1842   PROCEDURE insert_row(
1843     p_api_version                  IN NUMBER,
1844     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1845     x_return_status                OUT NOCOPY VARCHAR2,
1846     x_msg_count                    OUT NOCOPY NUMBER,
1847     x_msg_data                     OUT NOCOPY VARCHAR2,
1848     p_aehv_rec                     IN aehv_rec_type,
1849     x_aehv_rec                     OUT NOCOPY aehv_rec_type) IS
1850 
1851     l_api_version                 CONSTANT NUMBER := 1;
1852     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
1853     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1854     l_aehv_rec                     aehv_rec_type;
1855     l_def_aehv_rec                 aehv_rec_type;
1856     l_aeh_rec                      aeh_rec_type;
1857     lx_aeh_rec                     aeh_rec_type;
1858     -------------------------------
1859     -- FUNCTION fill_who_columns --
1860     -------------------------------
1861     FUNCTION fill_who_columns (
1862       p_aehv_rec	IN aehv_rec_type
1863     ) RETURN aehv_rec_type IS
1864       l_aehv_rec	aehv_rec_type := p_aehv_rec;
1865     BEGIN
1866       l_aehv_rec.CREATION_DATE := SYSDATE;
1867       l_aehv_rec.CREATED_BY := Fnd_Global.USER_ID;
1868       l_aehv_rec.LAST_UPDATE_DATE := SYSDATE;
1869       l_aehv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1870       l_aehv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1871       RETURN(l_aehv_rec);
1872     END fill_who_columns;
1873     -----------------------------------------
1874     -- Set_Attributes for:OKL_AE_HEADERS_V --
1875     -----------------------------------------
1876     FUNCTION Set_Attributes (
1877       p_aehv_rec IN  aehv_rec_type,
1878       x_aehv_rec OUT NOCOPY aehv_rec_type
1879     ) RETURN VARCHAR2 IS
1880       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1881     BEGIN
1882 	  x_aehv_rec := p_aehv_rec;
1883       x_aehv_rec.OBJECT_VERSION_NUMBER := 1;
1884       x_aehv_rec.ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID();
1885 	  x_aehv_rec.set_of_books_id := okl_accounting_util.get_set_of_books_id;
1886 	  SELECT DECODE(Fnd_Global.CONC_REQUEST_ID, -1, NULL, Fnd_Global.CONC_REQUEST_ID),
1887 	  		 DECODE(Fnd_Global.PROG_APPL_ID, -1, NULL, Fnd_Global.PROG_APPL_ID),
1888 			 DECODE(Fnd_Global.CONC_PROGRAM_ID, -1, NULL, Fnd_Global.CONC_PROGRAM_ID),
1889 			 DECODE(Fnd_Global.CONC_REQUEST_ID, -1, NULL, SYSDATE)
1890 	  INTO  x_aehv_rec.REQUEST_ID
1891 	  	     ,x_aehv_rec.PROGRAM_APPLICATION_ID
1892 		     ,x_aehv_rec.PROGRAM_ID
1893 		     ,x_aehv_rec.PROGRAM_UPDATE_DATE
1894 	  FROM DUAL;
1895 	  RETURN(l_return_status);
1896     END Set_Attributes;
1897   BEGIN
1898 
1899 
1900     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1901                                               G_PKG_NAME,
1902                                               p_init_msg_list,
1903                                               l_api_version,
1904                                               p_api_version,
1905                                               '_PVT',
1906                                               x_return_status);
1907     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1908       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1909     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1910       RAISE Okc_Api.G_EXCEPTION_ERROR;
1911     END IF;
1912     l_aehv_rec := null_out_defaults(p_aehv_rec);
1913     -- Set primary key value
1914     l_aehv_rec.AE_HEADER_ID  := get_seq_ID ;
1915     --- Setting item attributes
1916     l_return_status := Set_Attributes(
1917       l_aehv_rec,                        -- IN
1918       l_def_aehv_rec);                   -- OUT
1919     --- If any errors happen abort API
1920     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1921       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1922     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1923       RAISE Okc_Api.G_EXCEPTION_ERROR;
1924     END IF;
1925     l_def_aehv_rec := fill_who_columns(l_def_aehv_rec);
1926     --- Validate all non-missing attributes (Item Level Validation)
1927     l_return_status := Validate_Attributes(l_def_aehv_rec);
1928     --- If any errors happen abort API
1929     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1930       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1931     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1932       RAISE Okc_Api.G_EXCEPTION_ERROR;
1933     END IF;
1934     l_return_status := Validate_Record(l_def_aehv_rec);
1935     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1936       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1937     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1938       RAISE Okc_Api.G_EXCEPTION_ERROR;
1939     END IF;
1940     --------------------------------------
1941     -- Move VIEW record to "Child" records
1942     --------------------------------------
1943     migrate(l_def_aehv_rec, l_aeh_rec);
1944     --------------------------------------------
1945     -- Call the INSERT_ROW for each child record
1946     --------------------------------------------
1947     insert_row(
1948       p_init_msg_list,
1949       x_return_status,
1950       x_msg_count,
1951       x_msg_data,
1952       l_aeh_rec,
1953       lx_aeh_rec
1954     );
1955     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1956       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1957     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1958       RAISE Okc_Api.G_EXCEPTION_ERROR;
1959     END IF;
1960     migrate(lx_aeh_rec, l_def_aehv_rec);
1961     -- Set OUT values
1962     x_aehv_rec := l_def_aehv_rec;
1963     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1964   EXCEPTION
1965     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1966 	  x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1967       (
1968         l_api_name,
1969         G_PKG_NAME,
1970         'Okc_Api.G_RET_STS_ERROR',
1971         x_msg_count,
1972         x_msg_data,
1973         '_PVT'
1974       );
1975     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1976 	  x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1977       (
1978         l_api_name,
1979         G_PKG_NAME,
1980         'Okc_Api.G_RET_STS_UNEXP_ERROR',
1981         x_msg_count,
1982         x_msg_data,
1983         '_PVT'
1984       );
1985     WHEN OTHERS THEN
1986 	  x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1987       (
1988         l_api_name,
1989         G_PKG_NAME,
1990         'OTHERS',
1991         x_msg_count,
1992         x_msg_data,
1993         '_PVT'
1994       );
1995   END insert_row;
1996   ----------------------------------------
1997   -- PL/SQL TBL insert_row for:AEHV_TBL --
1998   ----------------------------------------
1999   PROCEDURE insert_row(
2000     p_api_version                  IN NUMBER,
2001     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2002     x_return_status                OUT NOCOPY VARCHAR2,
2003     x_msg_count                    OUT NOCOPY NUMBER,
2004     x_msg_data                     OUT NOCOPY VARCHAR2,
2005     p_aehv_tbl                     IN aehv_tbl_type,
2006     x_aehv_tbl                     OUT NOCOPY aehv_tbl_type) IS
2007 
2008     l_api_version                 CONSTANT NUMBER := 1;
2009     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2010     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2011     i                              NUMBER := 0;
2012     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2013 
2014   BEGIN
2015     Okc_Api.init_msg_list(p_init_msg_list);
2016     -- Make sure PL/SQL table has records in it before passing
2017     IF (p_aehv_tbl.COUNT > 0) THEN
2018       i := p_aehv_tbl.FIRST;
2019       LOOP
2020         insert_row (
2021           p_api_version                  => p_api_version,
2022           p_init_msg_list                => Okc_Api.G_FALSE,
2023           x_return_status                => x_return_status,
2024           x_msg_count                    => x_msg_count,
2025           x_msg_data                     => x_msg_data,
2026           p_aehv_rec                     => p_aehv_tbl(i),
2027           x_aehv_rec                     => x_aehv_tbl(i));
2028 
2029         -- store the highest degree of error
2030 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
2031            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
2032               l_overall_status := x_return_status;
2033            END IF;
2034 	  END IF;
2035 
2036         EXIT WHEN (i = p_aehv_tbl.LAST);
2037         i := p_aehv_tbl.NEXT(i);
2038       END LOOP;
2039 	  -- return overall status
2040 	  x_return_status := l_overall_status;
2041 
2042     END IF;
2043   EXCEPTION
2044     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2045       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2046       (
2047         l_api_name,
2048         G_PKG_NAME,
2049         'Okc_Api.G_RET_STS_ERROR',
2050         x_msg_count,
2051         x_msg_data,
2052         '_PVT'
2053       );
2054     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2055       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2056       (
2057         l_api_name,
2058         G_PKG_NAME,
2059         'Okc_Api.G_RET_STS_UNEXP_ERROR',
2060         x_msg_count,
2061         x_msg_data,
2062         '_PVT'
2063       );
2064     WHEN OTHERS THEN
2065       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2066       (
2067         l_api_name,
2068         G_PKG_NAME,
2069         'OTHERS',
2070         x_msg_count,
2071         x_msg_data,
2072         '_PVT'
2073       );
2074   END insert_row;
2075 
2076     --gboomina bug#4648697..changes for perf start
2077      --added new procedure for bulk insert
2078      ----------------------------------------
2079      -- PL/SQL TBL insert_row_perf for:AEHV_TBL --
2080      ----------------------------------------
2081      PROCEDURE insert_row_perf(
2082        p_api_version               IN NUMBER,
2083        p_init_msg_list             IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
2084        x_return_status             OUT NOCOPY VARCHAR2,
2085        x_msg_count                 OUT NOCOPY NUMBER,
2086        x_msg_data                  OUT NOCOPY VARCHAR2,
2087        p_aehv_tbl                  IN aehv_tbl_type,
2088        x_aehv_tbl                  OUT NOCOPY aehv_tbl_type) IS
2089 
2090        l_tabsize                   NUMBER := p_aehv_tbl.COUNT;
2091        ae_header_id_tbl            ae_header_id_typ;
2092        post_to_gl_flag_tbl         post_to_gl_flag_typ;
2093        set_of_books_id_tbl         set_of_books_id_typ;
2094        accounting_event_id_tbl     accounting_event_id_typ;
2095        object_version_number_tbl   object_version_number_typ;
2096        ae_category_tbl             ae_category_typ;
2097        period_name_tbl             period_name_typ;
2098        accounting_date_tbl         accounting_date_typ;
2099        gl_transfer_run_id_tbl      gl_transfer_run_id_typ;
2100        cross_currency_flag_tbl     cross_currency_flag_typ;
2101        gl_transfer_flag_tbl        gl_transfer_flag_typ;
2102        sequence_id_tbl             sequence_id_typ;
2103        sequence_value_tbl          sequence_value_typ;
2104        description_tbl             description_typ;
2105        accounting_error_code_tbl   accounting_error_code_typ;
2106        gl_transfer_error_code_tbl  gl_transfer_error_code_typ;
2107        gl_reversal_flag_tbl        gl_reversal_flag_typ;
2108        org_id_tbl                  org_id_typ;
2109        program_id_tbl              program_id_typ;
2110        program_application_id_tbl  program_application_id_typ;
2111        program_update_date_tbl     program_update_date_typ;
2112        request_id_tbl              request_id_typ;
2113        created_by_tbl              created_by_typ;
2114        creation_date_tbl           creation_date_typ;
2115        last_updated_by_tbl         last_updated_by_typ;
2116        last_update_date_tbl        last_update_date_typ;
2117        last_update_login_tbl       last_update_login_typ;
2118        j                           NUMBER := 0;
2119 
2120      BEGIN
2121        IF (p_aehv_tbl.COUNT > 0) THEN
2122 
2123          --populate column tables
2124          FOR i IN p_aehv_tbl.FIRST..p_aehv_tbl.LAST
2125          LOOP
2126            j := j+1;
2127 
2128            ae_header_id_tbl(j)           :=  p_aehv_tbl(i).ae_header_id;
2129            post_to_gl_flag_tbl(j)        :=  p_aehv_tbl(i).post_to_gl_flag;
2130            set_of_books_id_tbl(j)        :=  p_aehv_tbl(i).set_of_books_id;
2131            accounting_event_id_tbl(j)    :=  p_aehv_tbl(i).accounting_event_id;
2132            object_version_number_tbl(j)  :=  p_aehv_tbl(i).object_version_number;
2133            ae_category_tbl(j)            :=  p_aehv_tbl(i).ae_category;
2134            period_name_tbl(j)            :=  p_aehv_tbl(i).period_name;
2135            accounting_date_tbl(j)        :=  p_aehv_tbl(i).accounting_date;
2136            gl_transfer_run_id_tbl(j)     :=  p_aehv_tbl(i).gl_transfer_run_id;
2137            cross_currency_flag_tbl(j)    :=  p_aehv_tbl(i).cross_currency_flag;
2138            gl_transfer_flag_tbl(j)       :=  p_aehv_tbl(i).gl_transfer_flag;
2139            sequence_id_tbl(j)            :=  p_aehv_tbl(i).sequence_id;
2140            sequence_value_tbl(j)         :=  p_aehv_tbl(i).sequence_value;
2141            description_tbl(j)            :=  p_aehv_tbl(i).description;
2142            accounting_error_code_tbl(j)  :=  p_aehv_tbl(i).accounting_error_code;
2143            gl_transfer_error_code_tbl(j) :=  p_aehv_tbl(i).gl_transfer_error_code;
2144            gl_reversal_flag_tbl(j)       :=  p_aehv_tbl(i).gl_reversal_flag;
2145            org_id_tbl(j)                 :=  p_aehv_tbl(i).org_id;
2146            program_id_tbl(j)             :=  p_aehv_tbl(i).program_id;
2147            program_application_id_tbl(j) :=  p_aehv_tbl(i).program_application_id;
2148            program_update_date_tbl(j)    :=  p_aehv_tbl(i).program_update_date;
2149            request_id_tbl(j)             :=  p_aehv_tbl(i).request_id;
2150            created_by_tbl(j)             :=  p_aehv_tbl(i).created_by;
2151            creation_date_tbl(j)          :=  p_aehv_tbl(i).creation_date;
2152            last_updated_by_tbl(j)        :=  p_aehv_tbl(i).last_updated_by;
2153            last_update_date_tbl(j)       :=  p_aehv_tbl(i).last_update_date;
2154            last_update_login_tbl(j)      :=  p_aehv_tbl(i).last_update_login;
2155 
2156          END LOOP;
2157 
2158          --bulk insert into okl_ae_headers
2159          FORALL i IN 1..l_tabsize
2160            INSERT INTO OKL_AE_HEADERS(
2161                ae_header_id,
2162                post_to_gl_flag,
2163                set_of_books_id,
2164                org_id,
2165                accounting_event_id,
2166                ae_category,
2167                period_name,
2168                accounting_date,
2169                cross_currency_flag,
2170                gl_transfer_flag,
2171                gl_transfer_run_id,
2172                object_version_number,
2173                sequence_id,
2174                sequence_value,
2175                description,
2176                accounting_error_code,
2177                gl_transfer_error_code,
2178                gl_reversal_flag,
2179                program_id,
2180                program_application_id,
2181                program_update_date,
2182                request_id,
2183                created_by,
2184                creation_date,
2185                last_updated_by,
2186                last_update_date,
2187                last_update_login)
2188            VALUES (
2189                ae_header_id_tbl(i),
2190                post_to_gl_flag_tbl(i),
2191                set_of_books_id_tbl(i),
2192                org_id_tbl(i),
2193                accounting_event_id_tbl(i),
2194                ae_category_tbl(i),
2195                period_name_tbl(i),
2196                accounting_date_tbl(i),
2197                cross_currency_flag_tbl(i),
2198                gl_transfer_flag_tbl(i),
2199                gl_transfer_run_id_tbl(i),
2200                object_version_number_tbl(i),
2201                sequence_id_tbl(i),
2202                sequence_value_tbl(i),
2203                description_tbl(i),
2204                accounting_error_code_tbl(i),
2205                gl_transfer_error_code_tbl(i),
2206                gl_reversal_flag_tbl(i),
2207                program_id_tbl(i),
2208                program_application_id_tbl(i),
2209                program_update_date_tbl(i),
2210                request_id_tbl(i),
2211                created_by_tbl(i),
2212                creation_date_tbl(i),
2213                last_updated_by_tbl(i),
2214                last_update_date_tbl(i),
2215                last_update_login_tbl(i));
2216 
2217        END IF;
2218        --set OUT params
2219        x_aehv_tbl := p_aehv_tbl;
2220 
2221      END insert_row_perf;
2222      --gboomina bug#4648697..changes for perf end
2223 
2224 
2225   ---------------------------------------------------------------------------
2226   -- PROCEDURE lock_row
2227   ---------------------------------------------------------------------------
2228   ---------------------------------
2229   -- lock_row for:OKL_AE_HEADERS --
2230   ---------------------------------
2231   PROCEDURE lock_row(
2232     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2233     x_return_status                OUT NOCOPY VARCHAR2,
2234     x_msg_count                    OUT NOCOPY NUMBER,
2235     x_msg_data                     OUT NOCOPY VARCHAR2,
2236     p_aeh_rec                      IN aeh_rec_type) IS
2237 
2238     E_Resource_Busy               EXCEPTION;
2239     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2240     CURSOR lock_csr (p_aeh_rec IN aeh_rec_type) IS
2241     SELECT OBJECT_VERSION_NUMBER
2242       FROM OKL_AE_HEADERS
2243      WHERE AE_HEADER_ID  = p_aeh_rec.AE_HEADER_ID
2244        AND OBJECT_VERSION_NUMBER = p_aeh_rec.object_version_number
2245     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2246 
2247     CURSOR  lchk_csr (p_aeh_rec IN aeh_rec_type) IS
2248     SELECT OBJECT_VERSION_NUMBER
2249       FROM OKL_AE_HEADERS
2250     WHERE AE_HEADER_ID  = p_aeh_rec.AE_HEADER_ID ;
2251     l_api_version                 CONSTANT NUMBER := 1;
2252     l_api_name                     CONSTANT VARCHAR2(30) := 'HEADERS_lock_row';
2253     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2254     l_object_version_number       OKL_AE_HEADERS.OBJECT_VERSION_NUMBER%TYPE;
2255     lc_object_version_number      OKL_AE_HEADERS.OBJECT_VERSION_NUMBER%TYPE;
2256     l_row_notfound                BOOLEAN := FALSE;
2257     lc_row_notfound               BOOLEAN := FALSE;
2258   BEGIN
2259     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2260                                               p_init_msg_list,
2261                                               '_PVT',
2262                                               x_return_status);
2263     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2264       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2265     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2266       RAISE Okc_Api.G_EXCEPTION_ERROR;
2267     END IF;
2268     BEGIN
2269       OPEN lock_csr(p_aeh_rec);
2270       FETCH lock_csr INTO l_object_version_number;
2271       l_row_notfound := lock_csr%NOTFOUND;
2272       CLOSE lock_csr;
2273     EXCEPTION
2274       WHEN E_Resource_Busy THEN
2275         IF (lock_csr%ISOPEN) THEN
2276           CLOSE lock_csr;
2277         END IF;
2278         Okc_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2279         RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
2280     END;
2281 
2282     IF ( l_row_notfound ) THEN
2283       OPEN lchk_csr(p_aeh_rec);
2284       FETCH lchk_csr INTO lc_object_version_number;
2285       lc_row_notfound := lchk_csr%NOTFOUND;
2286       CLOSE lchk_csr;
2287     END IF;
2288     IF (lc_row_notfound) THEN
2289       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2290       RAISE Okc_Api.G_EXCEPTION_ERROR;
2291     ELSIF lc_object_version_number > p_aeh_rec.object_version_number THEN
2292       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2293       RAISE Okc_Api.G_EXCEPTION_ERROR;
2294     ELSIF lc_object_version_number <> p_aeh_rec.object_version_number THEN
2295       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2296       RAISE Okc_Api.G_EXCEPTION_ERROR;
2297     ELSIF lc_object_version_number = -1 THEN
2298       Okc_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2299       RAISE Okc_Api.G_EXCEPTION_ERROR;
2300     END IF;
2301     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2302   EXCEPTION
2303     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2304       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2305       (
2306         l_api_name,
2307         G_PKG_NAME,
2308         'Okc_Api.G_RET_STS_ERROR',
2309         x_msg_count,
2310         x_msg_data,
2311         '_PVT'
2312       );
2313     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2314       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2315       (
2316         l_api_name,
2317         G_PKG_NAME,
2318         'Okc_Api.G_RET_STS_UNEXP_ERROR',
2319         x_msg_count,
2320         x_msg_data,
2321         '_PVT'
2322       );
2323     WHEN OTHERS THEN
2324       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2325       (
2326         l_api_name,
2327         G_PKG_NAME,
2328         'OTHERS',
2329         x_msg_count,
2330         x_msg_data,
2331         '_PVT'
2332       );
2333   END lock_row;
2334   -----------------------------------
2335   -- lock_row for:OKL_AE_HEADERS_V --
2336   -----------------------------------
2337   PROCEDURE lock_row(
2338     p_api_version                  IN NUMBER,
2339     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2340     x_return_status                OUT NOCOPY VARCHAR2,
2341     x_msg_count                    OUT NOCOPY NUMBER,
2342     x_msg_data                     OUT NOCOPY VARCHAR2,
2343     p_aehv_rec                     IN aehv_rec_type) IS
2344 
2345     l_api_version                 CONSTANT NUMBER := 1;
2346     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
2347     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2348     l_aeh_rec                      aeh_rec_type;
2349   BEGIN
2350     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2351                                               G_PKG_NAME,
2352                                               p_init_msg_list,
2353                                               l_api_version,
2354                                               p_api_version,
2355                                               '_PVT',
2356                                               x_return_status);
2357     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2358       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2359     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2360       RAISE Okc_Api.G_EXCEPTION_ERROR;
2361     END IF;
2362     --------------------------------------
2363     -- Move VIEW record to "Child" records
2364     --------------------------------------
2365     migrate(p_aehv_rec, l_aeh_rec);
2366     --------------------------------------------
2367     -- Call the LOCK_ROW for each child record
2368     --------------------------------------------
2369     lock_row(
2370       p_init_msg_list,
2371       x_return_status,
2372       x_msg_count,
2373       x_msg_data,
2374       l_aeh_rec
2375     );
2376     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2377       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2378     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2379       RAISE Okc_Api.G_EXCEPTION_ERROR;
2380     END IF;
2381     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2382   EXCEPTION
2383     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2384       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2385       (
2386         l_api_name,
2387         G_PKG_NAME,
2388         'Okc_Api.G_RET_STS_ERROR',
2389         x_msg_count,
2390         x_msg_data,
2391         '_PVT'
2392       );
2393     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2394       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2395       (
2396         l_api_name,
2397         G_PKG_NAME,
2398         'Okc_Api.G_RET_STS_UNEXP_ERROR',
2399         x_msg_count,
2400         x_msg_data,
2401         '_PVT'
2402       );
2403     WHEN OTHERS THEN
2404       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2405       (
2406         l_api_name,
2407         G_PKG_NAME,
2408         'OTHERS',
2409         x_msg_count,
2410         x_msg_data,
2411         '_PVT'
2412       );
2413   END lock_row;
2414   --------------------------------------
2415   -- PL/SQL TBL lock_row for:AEHV_TBL --
2416   --------------------------------------
2417   PROCEDURE lock_row(
2418     p_api_version                  IN NUMBER,
2419     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2420     x_return_status                OUT NOCOPY VARCHAR2,
2421     x_msg_count                    OUT NOCOPY NUMBER,
2422     x_msg_data                     OUT NOCOPY VARCHAR2,
2423     p_aehv_tbl                     IN aehv_tbl_type) IS
2424 
2425     l_api_version                 CONSTANT NUMBER := 1;
2426     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2427     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2428     i                              NUMBER := 0;
2429     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2430 
2431   BEGIN
2432     Okc_Api.init_msg_list(p_init_msg_list);
2433     -- Make sure PL/SQL table has records in it before passing
2434     IF (p_aehv_tbl.COUNT > 0) THEN
2435       i := p_aehv_tbl.FIRST;
2436       LOOP
2437         lock_row (
2438           p_api_version                  => p_api_version,
2439           p_init_msg_list                => Okc_Api.G_FALSE,
2440           x_return_status                => x_return_status,
2441           x_msg_count                    => x_msg_count,
2442           x_msg_data                     => x_msg_data,
2443           p_aehv_rec                     => p_aehv_tbl(i));
2444 
2445         -- store the highest degree of error
2446 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
2447            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
2448               l_overall_status := x_return_status;
2449            END IF;
2450 	  END IF;
2451 
2452         EXIT WHEN (i = p_aehv_tbl.LAST);
2453         i := p_aehv_tbl.NEXT(i);
2454       END LOOP;
2455 	  -- return overall status
2456 	  x_return_status := l_overall_status;
2457 
2458     END IF;
2459   EXCEPTION
2460     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2461       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2462       (
2463         l_api_name,
2464         G_PKG_NAME,
2465         'Okc_Api.G_RET_STS_ERROR',
2466         x_msg_count,
2467         x_msg_data,
2468         '_PVT'
2469       );
2470     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2471       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2472       (
2473         l_api_name,
2474         G_PKG_NAME,
2475         'Okc_Api.G_RET_STS_UNEXP_ERROR',
2476         x_msg_count,
2477         x_msg_data,
2478         '_PVT'
2479       );
2480     WHEN OTHERS THEN
2481       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2482       (
2483         l_api_name,
2484         G_PKG_NAME,
2485         'OTHERS',
2486         x_msg_count,
2487         x_msg_data,
2488         '_PVT'
2489       );
2490   END lock_row;
2491 
2492   ---------------------------------------------------------------------------
2493   -- PROCEDURE update_row
2494   ---------------------------------------------------------------------------
2495   -----------------------------------
2496   -- update_row for:OKL_AE_HEADERS --
2497   -----------------------------------
2498   PROCEDURE update_row(
2499     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2500     x_return_status                OUT NOCOPY VARCHAR2,
2501     x_msg_count                    OUT NOCOPY NUMBER,
2502     x_msg_data                     OUT NOCOPY VARCHAR2,
2503     p_aeh_rec                      IN aeh_rec_type,
2504     x_aeh_rec                      OUT NOCOPY aeh_rec_type) IS
2505 
2506     l_api_version                 CONSTANT NUMBER := 1;
2507     l_api_name                     CONSTANT VARCHAR2(30) := 'HEADERS_update_row';
2508     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2509     l_aeh_rec                      aeh_rec_type := p_aeh_rec;
2510     l_def_aeh_rec                  aeh_rec_type;
2511     l_row_notfound                 BOOLEAN := TRUE;
2512     ----------------------------------
2513     -- FUNCTION populate_new_record --
2514     ----------------------------------
2515     FUNCTION populate_new_record (
2516       p_aeh_rec	IN aeh_rec_type,
2517       x_aeh_rec	OUT NOCOPY aeh_rec_type
2518     ) RETURN VARCHAR2 IS
2519       l_aeh_rec                      aeh_rec_type;
2520       l_row_notfound                 BOOLEAN := TRUE;
2521       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2522     BEGIN
2523       x_aeh_rec := p_aeh_rec;
2524       -- Get current database values
2525       l_aeh_rec := get_rec(p_aeh_rec, l_row_notfound);
2526       IF (l_row_notfound) THEN
2527         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2528       END IF;
2529       IF (x_aeh_rec.AE_HEADER_ID  = Okc_Api.G_MISS_NUM)
2530       THEN
2531         x_aeh_rec.AE_HEADER_ID  := l_aeh_rec.AE_HEADER_ID ;
2532       END IF;
2533       IF (x_aeh_rec.post_to_gl_flag = Okc_Api.G_MISS_CHAR)
2534       THEN
2535         x_aeh_rec.post_to_gl_flag := l_aeh_rec.post_to_gl_flag;
2536       END IF;
2537       IF (x_aeh_rec.set_of_books_id = Okc_Api.G_MISS_NUM)
2538       THEN
2539         x_aeh_rec.set_of_books_id := l_aeh_rec.set_of_books_id;
2540       END IF;
2541       IF (x_aeh_rec.org_id = Okc_Api.G_MISS_NUM)
2542       THEN
2543         x_aeh_rec.org_id := l_aeh_rec.org_id;
2544       END IF;
2545       IF (x_aeh_rec.ACCOUNTING_EVENT_ID  = Okc_Api.G_MISS_NUM)
2546       THEN
2547         x_aeh_rec.ACCOUNTING_EVENT_ID  := l_aeh_rec.ACCOUNTING_EVENT_ID ;
2548       END IF;
2549       IF (x_aeh_rec.AE_CATEGORY = Okc_Api.G_MISS_CHAR)
2550       THEN
2551         x_aeh_rec.AE_CATEGORY := l_aeh_rec.AE_CATEGORY;
2552       END IF;
2553       IF (x_aeh_rec.period_name = Okc_Api.G_MISS_CHAR)
2554       THEN
2555         x_aeh_rec.period_name := l_aeh_rec.period_name;
2556       END IF;
2557       IF (x_aeh_rec.accounting_date = Okc_Api.G_MISS_DATE)
2558       THEN
2559         x_aeh_rec.accounting_date := l_aeh_rec.accounting_date;
2560       END IF;
2561       IF (x_aeh_rec.cross_currency_flag = Okc_Api.G_MISS_CHAR)
2562       THEN
2563         x_aeh_rec.cross_currency_flag := l_aeh_rec.cross_currency_flag;
2564       END IF;
2565       IF (x_aeh_rec.gl_transfer_flag = Okc_Api.G_MISS_CHAR)
2566       THEN
2567         x_aeh_rec.gl_transfer_flag := l_aeh_rec.gl_transfer_flag;
2568       END IF;
2569       IF (x_aeh_rec.gl_transfer_run_id = Okc_Api.G_MISS_NUM)
2570       THEN
2571         x_aeh_rec.gl_transfer_run_id := l_aeh_rec.gl_transfer_run_id;
2572       END IF;
2573       IF (x_aeh_rec.object_version_number = Okc_Api.G_MISS_NUM)
2574       THEN
2575         x_aeh_rec.object_version_number := l_aeh_rec.object_version_number;
2576       END IF;
2577       IF (x_aeh_rec.sequence_id = Okc_Api.G_MISS_NUM)
2578       THEN
2579         x_aeh_rec.sequence_id := l_aeh_rec.sequence_id;
2580       END IF;
2581       IF (x_aeh_rec.sequence_value = Okc_Api.G_MISS_NUM)
2582       THEN
2583         x_aeh_rec.sequence_value := l_aeh_rec.sequence_value;
2584       END IF;
2585       IF (x_aeh_rec.description = Okc_Api.G_MISS_CHAR)
2586       THEN
2587         x_aeh_rec.description := l_aeh_rec.description;
2588       END IF;
2589       IF (x_aeh_rec.accounting_error_code = Okc_Api.G_MISS_CHAR)
2590       THEN
2591         x_aeh_rec.accounting_error_code := l_aeh_rec.accounting_error_code;
2592       END IF;
2593       IF (x_aeh_rec.gl_transfer_error_code = Okc_Api.G_MISS_CHAR)
2594       THEN
2595         x_aeh_rec.gl_transfer_error_code := l_aeh_rec.gl_transfer_error_code;
2596       END IF;
2597       IF (x_aeh_rec.gl_reversal_flag = Okc_Api.G_MISS_CHAR)
2598       THEN
2599         x_aeh_rec.gl_reversal_flag := l_aeh_rec.gl_reversal_flag;
2600       END IF;
2601       IF (x_aeh_rec.program_id = Okc_Api.G_MISS_NUM)
2602       THEN
2603         x_aeh_rec.program_id := l_aeh_rec.program_id;
2604       END IF;
2605       IF (x_aeh_rec.program_application_id = Okc_Api.G_MISS_NUM)
2606       THEN
2607         x_aeh_rec.program_application_id := l_aeh_rec.program_application_id;
2608       END IF;
2609       IF (x_aeh_rec.program_update_date = Okc_Api.G_MISS_DATE)
2610       THEN
2611         x_aeh_rec.program_update_date := l_aeh_rec.program_update_date;
2612       END IF;
2613       IF (x_aeh_rec.request_id = Okc_Api.G_MISS_NUM)
2614       THEN
2615         x_aeh_rec.request_id := l_aeh_rec.request_id;
2616       END IF;
2617       IF (x_aeh_rec.created_by = Okc_Api.G_MISS_NUM)
2618       THEN
2619         x_aeh_rec.created_by := l_aeh_rec.created_by;
2620       END IF;
2621       IF (x_aeh_rec.creation_date = Okc_Api.G_MISS_DATE)
2622       THEN
2623         x_aeh_rec.creation_date := l_aeh_rec.creation_date;
2624       END IF;
2625       IF (x_aeh_rec.last_updated_by = Okc_Api.G_MISS_NUM)
2626       THEN
2627         x_aeh_rec.last_updated_by := l_aeh_rec.last_updated_by;
2628       END IF;
2629       IF (x_aeh_rec.last_update_date = Okc_Api.G_MISS_DATE)
2630       THEN
2631         x_aeh_rec.last_update_date := l_aeh_rec.last_update_date;
2632       END IF;
2633       IF (x_aeh_rec.last_update_login = Okc_Api.G_MISS_NUM)
2634       THEN
2635         x_aeh_rec.last_update_login := l_aeh_rec.last_update_login;
2636       END IF;
2637       RETURN(l_return_status);
2638     END populate_new_record;
2639     ---------------------------------------
2640     -- Set_Attributes for:OKL_AE_HEADERS --
2641     ---------------------------------------
2642     FUNCTION Set_Attributes (
2643       p_aeh_rec IN  aeh_rec_type,
2644       x_aeh_rec OUT NOCOPY aeh_rec_type
2645     ) RETURN VARCHAR2 IS
2646       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2647     BEGIN
2648       x_aeh_rec := p_aeh_rec;
2649       RETURN(l_return_status);
2650     END Set_Attributes;
2651   BEGIN
2652     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2653                                               p_init_msg_list,
2654                                               '_PVT',
2655                                               x_return_status);
2656     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2657       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2658     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2659       RAISE Okc_Api.G_EXCEPTION_ERROR;
2660     END IF;
2661     --- Setting item attributes
2662     l_return_status := Set_Attributes(
2663       p_aeh_rec,                         -- IN
2664       l_aeh_rec);                        -- OUT
2665     --- If any errors happen abort API
2666     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2667       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2668     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2669       RAISE Okc_Api.G_EXCEPTION_ERROR;
2670     END IF;
2671     l_return_status := populate_new_record(l_aeh_rec, l_def_aeh_rec);
2672     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2673       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2674     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2675       RAISE Okc_Api.G_EXCEPTION_ERROR;
2676     END IF;
2677     UPDATE  OKL_AE_HEADERS
2678     SET POST_TO_GL_FLAG = l_def_aeh_rec.post_to_gl_flag,
2679         SET_OF_BOOKS_ID = l_def_aeh_rec.set_of_books_id,
2680         ORG_ID = l_def_aeh_rec.org_id,
2681         ACCOUNTING_EVENT_ID  = l_def_aeh_rec.ACCOUNTING_EVENT_ID ,
2682         AE_CATEGORY = l_def_aeh_rec.AE_CATEGORY,
2683         PERIOD_NAME = l_def_aeh_rec.period_name,
2684         ACCOUNTING_DATE = l_def_aeh_rec.accounting_date,
2685         CROSS_CURRENCY_FLAG = l_def_aeh_rec.cross_currency_flag,
2686         GL_TRANSFER_FLAG = l_def_aeh_rec.gl_transfer_flag,
2687         GL_TRANSFER_RUN_ID = l_def_aeh_rec.gl_transfer_run_id,
2688         OBJECT_VERSION_NUMBER = l_def_aeh_rec.object_version_number,
2689         SEQUENCE_ID = l_def_aeh_rec.sequence_id,
2690         SEQUENCE_VALUE = l_def_aeh_rec.sequence_value,
2691         DESCRIPTION = l_def_aeh_rec.description,
2692         ACCOUNTING_ERROR_CODE = l_def_aeh_rec.accounting_error_code,
2693         GL_TRANSFER_ERROR_CODE = l_def_aeh_rec.gl_transfer_error_code,
2694         GL_REVERSAL_FLAG = l_def_aeh_rec.gl_reversal_flag,
2695         PROGRAM_ID = l_def_aeh_rec.program_id,
2696         PROGRAM_APPLICATION_ID = l_def_aeh_rec.program_application_id,
2697         PROGRAM_UPDATE_DATE = l_def_aeh_rec.program_update_date,
2698         REQUEST_ID = l_def_aeh_rec.request_id,
2699         CREATED_BY = l_def_aeh_rec.created_by,
2700         CREATION_DATE = l_def_aeh_rec.creation_date,
2701         LAST_UPDATED_BY = l_def_aeh_rec.last_updated_by,
2702         LAST_UPDATE_DATE = l_def_aeh_rec.last_update_date,
2703         LAST_UPDATE_LOGIN = l_def_aeh_rec.last_update_login
2704     WHERE AE_HEADER_ID  = l_def_aeh_rec.AE_HEADER_ID ;
2705 
2706     x_aeh_rec := l_def_aeh_rec;
2707     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2708   EXCEPTION
2709     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2710       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2711       (
2712         l_api_name,
2713         G_PKG_NAME,
2714         'Okc_Api.G_RET_STS_ERROR',
2715         x_msg_count,
2716         x_msg_data,
2717         '_PVT'
2718       );
2719     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2720       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2721       (
2722         l_api_name,
2723         G_PKG_NAME,
2724         'Okc_Api.G_RET_STS_UNEXP_ERROR',
2725         x_msg_count,
2726         x_msg_data,
2727         '_PVT'
2728       );
2729     WHEN OTHERS THEN
2730       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2731       (
2732         l_api_name,
2733         G_PKG_NAME,
2734         'OTHERS',
2735         x_msg_count,
2736         x_msg_data,
2737         '_PVT'
2738       );
2739   END update_row;
2740   -------------------------------------
2741   -- update_row for:OKL_AE_HEADERS_V --
2742   -------------------------------------
2743   PROCEDURE update_row(
2744     p_api_version                  IN NUMBER,
2745     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2746     x_return_status                OUT NOCOPY VARCHAR2,
2747     x_msg_count                    OUT NOCOPY NUMBER,
2748     x_msg_data                     OUT NOCOPY VARCHAR2,
2749     p_aehv_rec                     IN aehv_rec_type,
2750     x_aehv_rec                     OUT NOCOPY aehv_rec_type) IS
2751 
2752     l_api_version                 CONSTANT NUMBER := 1;
2753     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
2754     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2755     l_aehv_rec                     aehv_rec_type := p_aehv_rec;
2756     l_def_aehv_rec                 aehv_rec_type;
2757     l_aeh_rec                      aeh_rec_type;
2758     lx_aeh_rec                     aeh_rec_type;
2759     -------------------------------
2760     -- FUNCTION fill_who_columns --
2761     -------------------------------
2762     FUNCTION fill_who_columns (
2763       p_aehv_rec	IN aehv_rec_type
2764     ) RETURN aehv_rec_type IS
2765       l_aehv_rec	aehv_rec_type := p_aehv_rec;
2766     BEGIN
2767       l_aehv_rec.LAST_UPDATE_DATE := SYSDATE;
2768       l_aehv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
2769       l_aehv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
2770       RETURN(l_aehv_rec);
2771     END fill_who_columns;
2772     ----------------------------------
2773     -- FUNCTION populate_new_record --
2774     ----------------------------------
2775     FUNCTION populate_new_record (
2776       p_aehv_rec	IN aehv_rec_type,
2777       x_aehv_rec	OUT NOCOPY aehv_rec_type
2778     ) RETURN VARCHAR2 IS
2779       l_aehv_rec                     aehv_rec_type;
2780       l_row_notfound                 BOOLEAN := TRUE;
2781       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2782     BEGIN
2783       x_aehv_rec := p_aehv_rec;
2784       -- Get current database values
2785       l_aehv_rec := get_rec(p_aehv_rec, l_row_notfound);
2786       IF (l_row_notfound) THEN
2787         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2788       END IF;
2789       IF (x_aehv_rec.post_to_gl_flag = Okc_Api.G_MISS_CHAR)
2790       THEN
2791         x_aehv_rec.post_to_gl_flag := l_aehv_rec.post_to_gl_flag;
2792       END IF;
2793       IF (x_aehv_rec.AE_HEADER_ID  = Okc_Api.G_MISS_NUM)
2794       THEN
2795         x_aehv_rec.AE_HEADER_ID  := l_aehv_rec.AE_HEADER_ID ;
2796       END IF;
2797       IF (x_aehv_rec.object_version_number = Okc_Api.G_MISS_NUM)
2798       THEN
2799         x_aehv_rec.object_version_number := l_aehv_rec.object_version_number;
2800       END IF;
2801       IF (x_aehv_rec.ACCOUNTING_EVENT_ID  = Okc_Api.G_MISS_NUM)
2802       THEN
2803         x_aehv_rec.ACCOUNTING_EVENT_ID  := l_aehv_rec.ACCOUNTING_EVENT_ID ;
2804       END IF;
2805       IF (x_aehv_rec.set_of_books_id = Okc_Api.G_MISS_NUM)
2806       THEN
2807         x_aehv_rec.set_of_books_id := l_aehv_rec.set_of_books_id;
2808       END IF;
2809       IF (x_aehv_rec.org_id = Okc_Api.G_MISS_NUM)
2810       THEN
2811         x_aehv_rec.org_id := l_aehv_rec.org_id;
2812       END IF;
2813       IF (x_aehv_rec.AE_CATEGORY = Okc_Api.G_MISS_CHAR)
2814       THEN
2815         x_aehv_rec.AE_CATEGORY := l_aehv_rec.AE_CATEGORY;
2816       END IF;
2817       IF (x_aehv_rec.sequence_id = Okc_Api.G_MISS_NUM)
2818       THEN
2819         x_aehv_rec.sequence_id := l_aehv_rec.sequence_id;
2820       END IF;
2821       IF (x_aehv_rec.sequence_value = Okc_Api.G_MISS_NUM)
2822       THEN
2823         x_aehv_rec.sequence_value := l_aehv_rec.sequence_value;
2824       END IF;
2825       IF (x_aehv_rec.period_name = Okc_Api.G_MISS_CHAR)
2826       THEN
2827         x_aehv_rec.period_name := l_aehv_rec.period_name;
2828       END IF;
2829       IF (x_aehv_rec.accounting_date = Okc_Api.G_MISS_DATE)
2830       THEN
2831         x_aehv_rec.accounting_date := l_aehv_rec.accounting_date;
2832       END IF;
2833       IF (x_aehv_rec.description = Okc_Api.G_MISS_CHAR)
2834       THEN
2835         x_aehv_rec.description := l_aehv_rec.description;
2836       END IF;
2837       IF (x_aehv_rec.accounting_error_code = Okc_Api.G_MISS_CHAR)
2838       THEN
2839         x_aehv_rec.accounting_error_code := l_aehv_rec.accounting_error_code;
2840       END IF;
2841       IF (x_aehv_rec.cross_currency_flag = Okc_Api.G_MISS_CHAR)
2842       THEN
2843         x_aehv_rec.cross_currency_flag := l_aehv_rec.cross_currency_flag;
2844       END IF;
2845       IF (x_aehv_rec.gl_transfer_flag = Okc_Api.G_MISS_CHAR)
2846       THEN
2847         x_aehv_rec.gl_transfer_flag := l_aehv_rec.gl_transfer_flag;
2848       END IF;
2849       IF (x_aehv_rec.gl_transfer_error_code = Okc_Api.G_MISS_CHAR)
2850       THEN
2851         x_aehv_rec.gl_transfer_error_code := l_aehv_rec.gl_transfer_error_code;
2852       END IF;
2853       IF (x_aehv_rec.gl_transfer_run_id = Okc_Api.G_MISS_NUM)
2854       THEN
2855         x_aehv_rec.gl_transfer_run_id := l_aehv_rec.gl_transfer_run_id;
2856       END IF;
2857       IF (x_aehv_rec.gl_reversal_flag = Okc_Api.G_MISS_CHAR)
2858       THEN
2859         x_aehv_rec.gl_reversal_flag := l_aehv_rec.gl_reversal_flag;
2860       END IF;
2861       IF (x_aehv_rec.program_id = Okc_Api.G_MISS_NUM)
2862       THEN
2863         x_aehv_rec.program_id := l_aehv_rec.program_id;
2864       END IF;
2865       IF (x_aehv_rec.program_application_id = Okc_Api.G_MISS_NUM)
2866       THEN
2867         x_aehv_rec.program_application_id := l_aehv_rec.program_application_id;
2868       END IF;
2869       IF (x_aehv_rec.program_update_date = Okc_Api.G_MISS_DATE)
2870       THEN
2871         x_aehv_rec.program_update_date := l_aehv_rec.program_update_date;
2872       END IF;
2873       IF (x_aehv_rec.request_id = Okc_Api.G_MISS_NUM)
2874       THEN
2875         x_aehv_rec.request_id := l_aehv_rec.request_id;
2876       END IF;
2877       IF (x_aehv_rec.created_by = Okc_Api.G_MISS_NUM)
2878       THEN
2879         x_aehv_rec.created_by := l_aehv_rec.created_by;
2880       END IF;
2881       IF (x_aehv_rec.creation_date = Okc_Api.G_MISS_DATE)
2882       THEN
2883         x_aehv_rec.creation_date := l_aehv_rec.creation_date;
2884       END IF;
2885       IF (x_aehv_rec.last_updated_by = Okc_Api.G_MISS_NUM)
2886       THEN
2887         x_aehv_rec.last_updated_by := l_aehv_rec.last_updated_by;
2888       END IF;
2889       IF (x_aehv_rec.last_update_date = Okc_Api.G_MISS_DATE)
2890       THEN
2891         x_aehv_rec.last_update_date := l_aehv_rec.last_update_date;
2892       END IF;
2893       IF (x_aehv_rec.last_update_login = Okc_Api.G_MISS_NUM)
2894       THEN
2895         x_aehv_rec.last_update_login := l_aehv_rec.last_update_login;
2896       END IF;
2897       RETURN(l_return_status);
2898     END populate_new_record;
2899     -----------------------------------------
2900     -- Set_Attributes for:OKL_AE_HEADERS_V --
2901     -----------------------------------------
2902     FUNCTION Set_Attributes (
2903       p_aehv_rec IN  aehv_rec_type,
2904       x_aehv_rec OUT NOCOPY aehv_rec_type
2905     ) RETURN VARCHAR2 IS
2906       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2907     BEGIN
2908       x_aehv_rec := p_aehv_rec;
2909 	  SELECT NVL(DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID),x_aehv_rec.REQUEST_ID),
2910 	  		 NVL(DECODE(Fnd_Global.PROG_APPL_ID,-1,NULL,Fnd_Global.PROG_APPL_ID),x_aehv_rec.PROGRAM_APPLICATION_ID),
2911 			 NVL(DECODE(Fnd_Global.CONC_PROGRAM_ID,-1,NULL,Fnd_Global.CONC_PROGRAM_ID),x_aehv_rec.PROGRAM_ID),
2912 			 DECODE(DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,SYSDATE),NULL,x_aehv_rec.PROGRAM_UPDATE_DATE,SYSDATE)
2913 	  INTO  x_aehv_rec.REQUEST_ID
2914 	  	     ,x_aehv_rec.PROGRAM_APPLICATION_ID
2915 		     ,x_aehv_rec.PROGRAM_ID
2916 		     ,x_aehv_rec.PROGRAM_UPDATE_DATE
2917 	  FROM DUAL;
2918 
2919       RETURN(l_return_status);
2920     END Set_Attributes;
2921   BEGIN
2922 
2923     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2924                                               G_PKG_NAME,
2925                                               p_init_msg_list,
2926                                               l_api_version,
2927                                               p_api_version,
2928                                               '_PVT',
2929                                               x_return_status);
2930 
2931     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2932       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2933     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2934       RAISE Okc_Api.G_EXCEPTION_ERROR;
2935     END IF;
2936     --- Setting item attributes
2937     l_return_status := Set_Attributes(
2938       p_aehv_rec,                        -- IN
2939       l_aehv_rec);                       -- OUT
2940 	    --- If any errors happen abort API
2941     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2942       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2943     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2944       RAISE Okc_Api.G_EXCEPTION_ERROR;
2945     END IF;
2946     l_return_status := populate_new_record(l_aehv_rec, l_def_aehv_rec);
2947 	 IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2948       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2949     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2950       RAISE Okc_Api.G_EXCEPTION_ERROR;
2951     END IF;
2952     l_def_aehv_rec := fill_who_columns(l_def_aehv_rec);
2953 
2954     --- Validate all non-missing attributes (Item Level Validation)
2955     l_return_status := Validate_Attributes(l_def_aehv_rec);
2956 	--- If any errors happen abort API
2957     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2958       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2959     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2960       RAISE Okc_Api.G_EXCEPTION_ERROR;
2961     END IF;
2962     l_return_status := Validate_Record(l_def_aehv_rec);
2963 	IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2964       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2965     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2966       RAISE Okc_Api.G_EXCEPTION_ERROR;
2967     END IF;
2968 
2969     --------------------------------------
2970     -- Move VIEW record to "Child" records
2971     --------------------------------------
2972     migrate(l_def_aehv_rec, l_aeh_rec);
2973     --------------------------------------------
2974     -- Call the UPDATE_ROW for each child record
2975     --------------------------------------------
2976     update_row(
2977       p_init_msg_list,
2978       x_return_status,
2979       x_msg_count,
2980       x_msg_data,
2981       l_aeh_rec,
2982       lx_aeh_rec
2983     );
2984 	IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2985       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2986     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2987       RAISE Okc_Api.G_EXCEPTION_ERROR;
2988     END IF;
2989     migrate(lx_aeh_rec, l_def_aehv_rec);
2990     x_aehv_rec := l_def_aehv_rec;
2991     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2992   EXCEPTION
2993     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2994       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2995       (
2996         l_api_name,
2997         G_PKG_NAME,
2998         'Okc_Api.G_RET_STS_ERROR',
2999         x_msg_count,
3000         x_msg_data,
3001         '_PVT'
3002       );
3003     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3004       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3005       (
3006         l_api_name,
3007         G_PKG_NAME,
3008         'Okc_Api.G_RET_STS_UNEXP_ERROR',
3009         x_msg_count,
3010         x_msg_data,
3011         '_PVT'
3012       );
3013     WHEN OTHERS THEN
3014       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3015       (
3016         l_api_name,
3017         G_PKG_NAME,
3018         'OTHERS',
3019         x_msg_count,
3020         x_msg_data,
3021         '_PVT'
3022       );
3023   END update_row;
3024   ----------------------------------------
3025   -- PL/SQL TBL update_row for:AEHV_TBL --
3026   ----------------------------------------
3027   PROCEDURE update_row(
3028     p_api_version                  IN NUMBER,
3029     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3030     x_return_status                OUT NOCOPY VARCHAR2,
3031     x_msg_count                    OUT NOCOPY NUMBER,
3032     x_msg_data                     OUT NOCOPY VARCHAR2,
3033     p_aehv_tbl                     IN aehv_tbl_type,
3034     x_aehv_tbl                     OUT NOCOPY aehv_tbl_type) IS
3035 
3036     l_api_version                 CONSTANT NUMBER := 1;
3037     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3038     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3039     i                              NUMBER := 0;
3040     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3041 
3042   BEGIN
3043     Okc_Api.init_msg_list(p_init_msg_list);
3044     -- Make sure PL/SQL table has records in it before passing
3045     IF (p_aehv_tbl.COUNT > 0) THEN
3046       i := p_aehv_tbl.FIRST;
3047       LOOP
3048         update_row (
3049           p_api_version                  => p_api_version,
3050           p_init_msg_list                => Okc_Api.G_FALSE,
3051           x_return_status                => x_return_status,
3052           x_msg_count                    => x_msg_count,
3053           x_msg_data                     => x_msg_data,
3054           p_aehv_rec                     => p_aehv_tbl(i),
3055           x_aehv_rec                     => x_aehv_tbl(i));
3056 
3057         -- store the highest degree of error
3058 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3059            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3060               l_overall_status := x_return_status;
3061            END IF;
3062 	  END IF;
3063 
3064         EXIT WHEN (i = p_aehv_tbl.LAST);
3065         i := p_aehv_tbl.NEXT(i);
3066       END LOOP;
3067 	  -- return overall status
3068 	  x_return_status := l_overall_status;
3069 
3070     END IF;
3071   EXCEPTION
3072     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3073       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3074       (
3075         l_api_name,
3076         G_PKG_NAME,
3077         'Okc_Api.G_RET_STS_ERROR',
3078         x_msg_count,
3079         x_msg_data,
3080         '_PVT'
3081       );
3082     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3083       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3084       (
3085         l_api_name,
3086         G_PKG_NAME,
3087         'Okc_Api.G_RET_STS_UNEXP_ERROR',
3088         x_msg_count,
3089         x_msg_data,
3090         '_PVT'
3091       );
3092     WHEN OTHERS THEN
3093       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3094       (
3095         l_api_name,
3096         G_PKG_NAME,
3097         'OTHERS',
3098         x_msg_count,
3099         x_msg_data,
3100         '_PVT'
3101       );
3102   END update_row;
3103 
3104   ---------------------------------------------------------------------------
3105   -- PROCEDURE delete_row
3106   ---------------------------------------------------------------------------
3107   -----------------------------------
3108   -- delete_row for:OKL_AE_HEADERS --
3109   -----------------------------------
3110   PROCEDURE delete_row(
3111     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3112     x_return_status                OUT NOCOPY VARCHAR2,
3113     x_msg_count                    OUT NOCOPY NUMBER,
3114     x_msg_data                     OUT NOCOPY VARCHAR2,
3115     p_aeh_rec                      IN aeh_rec_type) IS
3116 
3117     l_api_version                 CONSTANT NUMBER := 1;
3118     l_api_name                     CONSTANT VARCHAR2(30) := 'HEADERS_delete_row';
3119     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3120     l_aeh_rec                      aeh_rec_type:= p_aeh_rec;
3121     l_row_notfound                 BOOLEAN := TRUE;
3122   BEGIN
3123     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
3124                                               p_init_msg_list,
3125                                               '_PVT',
3126                                               x_return_status);
3127     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3128       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3129     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3130       RAISE Okc_Api.G_EXCEPTION_ERROR;
3131     END IF;
3132     DELETE FROM OKL_AE_HEADERS
3133      WHERE AE_HEADER_ID  = l_aeh_rec.AE_HEADER_ID ;
3134 
3135     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
3136   EXCEPTION
3137     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3138       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3139       (
3140         l_api_name,
3141         G_PKG_NAME,
3142         'Okc_Api.G_RET_STS_ERROR',
3143         x_msg_count,
3144         x_msg_data,
3145         '_PVT'
3146       );
3147     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3148       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3149       (
3150         l_api_name,
3151         G_PKG_NAME,
3152         'Okc_Api.G_RET_STS_UNEXP_ERROR',
3153         x_msg_count,
3154         x_msg_data,
3155         '_PVT'
3156       );
3157     WHEN OTHERS THEN
3158       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3159       (
3160         l_api_name,
3161         G_PKG_NAME,
3162         'OTHERS',
3163         x_msg_count,
3164         x_msg_data,
3165         '_PVT'
3166       );
3167   END delete_row;
3168   -------------------------------------
3169   -- delete_row for:OKL_AE_HEADERS_V --
3170   -------------------------------------
3171   PROCEDURE delete_row(
3172     p_api_version                  IN NUMBER,
3173     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3174     x_return_status                OUT NOCOPY VARCHAR2,
3175     x_msg_count                    OUT NOCOPY NUMBER,
3176     x_msg_data                     OUT NOCOPY VARCHAR2,
3177     p_aehv_rec                     IN aehv_rec_type) IS
3178 
3179     l_api_version                 CONSTANT NUMBER := 1;
3180     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
3181     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3182     l_aehv_rec                     aehv_rec_type := p_aehv_rec;
3183     l_aeh_rec                      aeh_rec_type;
3184   BEGIN
3185     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
3186                                               G_PKG_NAME,
3187                                               p_init_msg_list,
3188                                               l_api_version,
3189                                               p_api_version,
3190                                               '_PVT',
3191                                               x_return_status);
3192     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3193       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3194     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3195       RAISE Okc_Api.G_EXCEPTION_ERROR;
3196     END IF;
3197     --------------------------------------
3198     -- Move VIEW record to "Child" records
3199     --------------------------------------
3200     migrate(l_aehv_rec, l_aeh_rec);
3201     --------------------------------------------
3202     -- Call the DELETE_ROW for each child record
3203     --------------------------------------------
3204     delete_row(
3205       p_init_msg_list,
3206       x_return_status,
3207       x_msg_count,
3208       x_msg_data,
3209       l_aeh_rec
3210     );
3211     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3212       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3213     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3214       RAISE Okc_Api.G_EXCEPTION_ERROR;
3215     END IF;
3216     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
3217   EXCEPTION
3218     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3219       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3220       (
3221         l_api_name,
3222         G_PKG_NAME,
3223         'Okc_Api.G_RET_STS_ERROR',
3224         x_msg_count,
3225         x_msg_data,
3226         '_PVT'
3227       );
3228     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3229       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3230       (
3231         l_api_name,
3232         G_PKG_NAME,
3233         'Okc_Api.G_RET_STS_UNEXP_ERROR',
3234         x_msg_count,
3235         x_msg_data,
3236         '_PVT'
3237       );
3238     WHEN OTHERS THEN
3239       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3240       (
3241         l_api_name,
3242         G_PKG_NAME,
3243         'OTHERS',
3244         x_msg_count,
3245         x_msg_data,
3246         '_PVT'
3247       );
3248   END delete_row;
3249   ----------------------------------------
3250   -- PL/SQL TBL delete_row for:AEHV_TBL --
3251   ----------------------------------------
3252   PROCEDURE delete_row(
3253     p_api_version                  IN NUMBER,
3254     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3255     x_return_status                OUT NOCOPY VARCHAR2,
3256     x_msg_count                    OUT NOCOPY NUMBER,
3257     x_msg_data                     OUT NOCOPY VARCHAR2,
3258     p_aehv_tbl                     IN aehv_tbl_type) IS
3259 
3260     l_api_version                 CONSTANT NUMBER := 1;
3261     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3262     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3263     i                              NUMBER := 0;
3264     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3265 
3266   BEGIN
3267     Okc_Api.init_msg_list(p_init_msg_list);
3268     -- Make sure PL/SQL table has records in it before passing
3269     IF (p_aehv_tbl.COUNT > 0) THEN
3270       i := p_aehv_tbl.FIRST;
3271       LOOP
3272         delete_row (
3273           p_api_version                  => p_api_version,
3274           p_init_msg_list                => Okc_Api.G_FALSE,
3275           x_return_status                => x_return_status,
3276           x_msg_count                    => x_msg_count,
3277           x_msg_data                     => x_msg_data,
3278           p_aehv_rec                     => p_aehv_tbl(i));
3279 
3280         -- store the highest degree of error
3281 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3282            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3283               l_overall_status := x_return_status;
3284            END IF;
3285 	  END IF;
3286 
3287         EXIT WHEN (i = p_aehv_tbl.LAST);
3288         i := p_aehv_tbl.NEXT(i);
3289       END LOOP;
3290 	  -- return overall status
3291 	  x_return_status := l_overall_status;
3292 
3293     END IF;
3294   EXCEPTION
3295     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3296       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3297       (
3298         l_api_name,
3299         G_PKG_NAME,
3300         'Okc_Api.G_RET_STS_ERROR',
3301         x_msg_count,
3302         x_msg_data,
3303         '_PVT'
3304       );
3305     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3306       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3307       (
3308         l_api_name,
3309         G_PKG_NAME,
3310         'Okc_Api.G_RET_STS_UNEXP_ERROR',
3311         x_msg_count,
3312         x_msg_data,
3313         '_PVT'
3314       );
3315     WHEN OTHERS THEN
3316       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3317       (
3318         l_api_name,
3319         G_PKG_NAME,
3320         'OTHERS',
3321         x_msg_count,
3322         x_msg_data,
3323         '_PVT'
3324       );
3325   END delete_row;
3326 END Okl_Aeh_Pvt;