DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AEL_PVT

Source


1 PACKAGE BODY Okl_Ael_Pvt AS
2 /* $Header: OKLSAELB.pls 120.3 2006/07/13 12:49:48 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_LINES
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_ael_rec                      IN ael_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN ael_rec_type IS
42     CURSOR okl_ae_lines_pk_csr (p_ae_line_id                 IN NUMBER) IS
43     SELECT
44             ae_line_id,
45             CODE_COMBINATION_ID,
46             AE_HEADER_ID,
47             CURRENCY_CONVERSION_TYPE,
48             ORG_ID,
49             AE_LINE_NUMBER,
50             AE_LINE_TYPE_CODE,
51             SOURCE_TABLE,
52             SOURCE_ID,
53             OBJECT_VERSION_NUMBER,
54             CURRENCY_CODE,
55             CURRENCY_CONVERSION_DATE,
56             CURRENCY_CONVERSION_RATE,
57             ENTERED_DR,
58             ENTERED_CR,
59             ACCOUNTED_DR,
60             ACCOUNTED_CR,
61             REFERENCE1,
62             REFERENCE2,
63             REFERENCE3,
64             REFERENCE4,
65             REFERENCE5,
66             REFERENCE6,
67             REFERENCE7,
68             REFERENCE8,
69             REFERENCE9,
70             REFERENCE10,
71             DESCRIPTION,
72             THIRD_PARTY_ID,
73             THIRD_PARTY_SUB_ID,
74             STAT_AMOUNT,
75             USSGL_TRANSACTION_CODE,
76             SUBLEDGER_DOC_SEQUENCE_ID,
77             ACCOUNTING_ERROR_CODE,
78             GL_TRANSFER_ERROR_CODE,
79             GL_SL_LINK_ID,
80             TAXABLE_ENTERED_DR,
81             TAXABLE_ENTERED_CR,
82             TAXABLE_ACCOUNTED_DR,
83             TAXABLE_ACCOUNTED_CR,
84             APPLIED_FROM_TRX_HDR_TABLE,
85             APPLIED_FROM_TRX_HDR_ID,
86             APPLIED_TO_TRX_HDR_TABLE,
87             APPLIED_TO_TRX_HDR_ID,
88             TAX_LINK_ID,
89             PROGRAM_ID,
90             PROGRAM_APPLICATION_ID,
91             PROGRAM_UPDATE_DATE,
92             REQUEST_ID,
93             CREATED_BY,
94             CREATION_DATE,
95             LAST_UPDATED_BY,
96             LAST_UPDATE_DATE,
97             LAST_UPDATE_LOGIN,
98             ACCOUNT_OVERLAY_SOURCE_ID,
99             SUBLEDGER_DOC_SEQUENCE_VALUE,
100             TAX_CODE_ID
101       FROM Okl_Ae_Lines
102      WHERE okl_ae_lines.ae_line_id      = p_ae_line_id;
103     l_okl_ae_lines_pk              okl_ae_lines_pk_csr%ROWTYPE;
104     l_ael_rec                      ael_rec_type;
105   BEGIN
106     x_no_data_found := TRUE;
107     -- Get current database values
108     OPEN okl_ae_lines_pk_csr (p_ael_rec.ae_line_id);
109     FETCH okl_ae_lines_pk_csr INTO
110               l_ael_rec.ae_line_id,
111               l_ael_rec.CODE_COMBINATION_ID,
112               l_ael_rec.AE_HEADER_ID,
113               l_ael_rec.currency_CONVERSION_TYPE,
114               l_ael_rec.ORG_ID,
115               l_ael_rec.AE_LINE_NUMBER,
116               l_ael_rec.AE_LINE_TYPE_CODE,
117               l_ael_rec.SOURCE_TABLE,
118               l_ael_rec.SOURCE_ID,
119               l_ael_rec.OBJECT_VERSION_NUMBER,
120               l_ael_rec.currency_code,
121               l_ael_rec.CURRENCY_CONVERSION_DATE,
122               l_ael_rec.CURRENCY_CONVERSION_RATE,
123               l_ael_rec.ENTERED_DR,
124               l_ael_rec.ENTERED_CR,
125               l_ael_rec.ACCOUNTED_DR,
126               l_ael_rec.ACCOUNTED_CR,
127               l_ael_rec.REFERENCE1,
128               l_ael_rec.REFERENCE2,
129               l_ael_rec.REFERENCE3,
130               l_ael_rec.REFERENCE4,
131               l_ael_rec.REFERENCE5,
132               l_ael_rec.REFERENCE6,
133               l_ael_rec.REFERENCE7,
134               l_ael_rec.REFERENCE8,
135               l_ael_rec.REFERENCE9,
136               l_ael_rec.REFERENCE10,
137               l_ael_rec.DESCRIPTION,
138               l_ael_rec.THIRD_PARTY_ID,
139               l_ael_rec.THIRD_PARTY_SUB_ID,
140               l_ael_rec.STAT_AMOUNT,
141               l_ael_rec.USSGL_TRANSACTION_CODE,
142               l_ael_rec.SUBLEDGER_DOC_SEQUENCE_ID,
143               l_ael_rec.ACCOUNTING_ERROR_CODE,
144               l_ael_rec.GL_TRANSFER_ERROR_CODE,
145               l_ael_rec.GL_SL_LINK_ID,
146               l_ael_rec.TAXABLE_ENTERED_DR,
147               l_ael_rec.TAXABLE_ENTERED_CR,
148               l_ael_rec.TAXABLE_ACCOUNTED_DR,
149               l_ael_rec.TAXABLE_ACCOUNTED_CR,
150               l_ael_rec.APPLIED_FROM_TRX_HDR_TABLE,
151               l_ael_rec.APPLIED_FROM_TRX_HDR_ID,
152               l_ael_rec.APPLIED_TO_TRX_HDR_TABLE,
153               l_ael_rec.APPLIED_TO_TRX_HDR_ID,
154               l_ael_rec.TAX_LINK_ID,
155               l_ael_rec.PROGRAM_ID,
156               l_ael_rec.PROGRAM_APPLICATION_ID,
157               l_ael_rec.PROGRAM_UPDATE_DATE,
158               l_ael_rec.REQUEST_ID,
159               l_ael_rec.CREATED_BY,
160               l_ael_rec.CREATION_DATE,
161               l_ael_rec.LAST_UPDATED_BY,
162               l_ael_rec.LAST_UPDATE_DATE,
163               l_ael_rec.LAST_UPDATE_LOGIN,
164 			  l_ael_rec.ACCOUNT_OVERLAY_SOURCE_ID,
165               l_ael_rec.SUBLEDGER_DOC_SEQUENCE_VALUE,
166               l_ael_rec.TAX_CODE_ID;
167     x_no_data_found := okl_ae_lines_pk_csr%NOTFOUND;
168     CLOSE okl_ae_lines_pk_csr;
169     RETURN(l_ael_rec);
170   END get_rec;
171 
172   FUNCTION get_rec (
173     p_ael_rec                      IN ael_rec_type
174   ) RETURN ael_rec_type IS
175     l_row_notfound                 BOOLEAN := TRUE;
176   BEGIN
177     RETURN(get_rec(p_ael_rec, l_row_notfound));
178   END get_rec;
179   ---------------------------------------------------------------------------
180   -- FUNCTION get_rec for: OKL_AE_LINES_V
181   ---------------------------------------------------------------------------
182   FUNCTION get_rec (
183     p_aelv_rec                     IN aelv_rec_type,
184     x_no_data_found                OUT NOCOPY BOOLEAN
185   ) RETURN aelv_rec_type IS
186     CURSOR okl_aelv_pk_csr (p_ae_line_id                 IN NUMBER) IS
187     SELECT
188             ae_line_id,
189             OBJECT_VERSION_NUMBER,
190             AE_HEADER_ID,
191             CURRENCY_CONVERSION_TYPE,
192             CODE_COMBINATION_ID,
193             ORG_ID,
194             AE_LINE_NUMBER,
195             AE_LINE_TYPE_CODE,
196             CURRENCY_CONVERSION_DATE,
197             CURRENCY_CONVERSION_RATE,
198             ENTERED_DR,
199             ENTERED_CR,
200             ACCOUNTED_DR,
201             ACCOUNTED_CR,
202             SOURCE_TABLE,
203             SOURCE_ID,
204             REFERENCE1,
205             REFERENCE2,
206             REFERENCE3,
207             REFERENCE4,
208             REFERENCE5,
209             REFERENCE6,
210             REFERENCE7,
211             REFERENCE8,
212             REFERENCE9,
213             REFERENCE10,
214             DESCRIPTION,
215             THIRD_PARTY_ID,
216             THIRD_PARTY_SUB_ID,
217             STAT_AMOUNT,
218             USSGL_TRANSACTION_CODE,
219             SUBLEDGER_DOC_SEQUENCE_ID,
220             ACCOUNTING_ERROR_CODE,
221             GL_TRANSFER_ERROR_CODE,
222             GL_SL_LINK_ID,
223             TAXABLE_ENTERED_DR,
224             TAXABLE_ENTERED_CR,
225             TAXABLE_ACCOUNTED_DR,
226             TAXABLE_ACCOUNTED_CR,
227             APPLIED_FROM_TRX_HDR_TABLE,
228             APPLIED_FROM_TRX_HDR_ID,
229             APPLIED_TO_TRX_HDR_TABLE,
230             APPLIED_TO_TRX_HDR_ID,
231             TAX_LINK_ID,
232             CURRENCY_CODE,
233             PROGRAM_ID,
234             PROGRAM_APPLICATION_ID,
235             PROGRAM_UPDATE_DATE,
236             REQUEST_ID,
237             CREATED_BY,
238             CREATION_DATE,
239             LAST_UPDATED_BY,
240             LAST_UPDATE_DATE,
241             LAST_UPDATE_LOGIN,
242             ACCOUNT_OVERLAY_SOURCE_ID,
243             SUBLEDGER_DOC_SEQUENCE_VALUE,
244             TAX_CODE_ID
245       FROM OKL_AE_LINES
246      WHERE OKL_AE_LINES.ae_line_id    = p_ae_line_id;
247     l_okl_aelv_pk                  okl_aelv_pk_csr%ROWTYPE;
248     l_aelv_rec                     aelv_rec_type;
249   BEGIN
250     x_no_data_found := TRUE;
251     -- Get current database values
252     OPEN okl_aelv_pk_csr (p_aelv_rec.ae_line_id);
253     FETCH okl_aelv_pk_csr INTO
254               l_aelv_rec.ae_line_id,
255               l_aelv_rec.OBJECT_VERSION_NUMBER,
256               l_aelv_rec.AE_HEADER_ID,
257               l_aelv_rec.currency_CONVERSION_TYPE,
258               l_aelv_rec.CODE_COMBINATION_ID,
259               l_aelv_rec.ORG_ID,
260               l_aelv_rec.AE_LINE_NUMBER,
261               l_aelv_rec.AE_LINE_TYPE_CODE,
262               l_aelv_rec.CURRENCY_CONVERSION_DATE,
263               l_aelv_rec.CURRENCY_CONVERSION_RATE,
264               l_aelv_rec.ENTERED_DR,
265               l_aelv_rec.ENTERED_CR,
266               l_aelv_rec.ACCOUNTED_DR,
267               l_aelv_rec.ACCOUNTED_CR,
268               l_aelv_rec.SOURCE_TABLE,
269               l_aelv_rec.SOURCE_ID,
270               l_aelv_rec.REFERENCE1,
271               l_aelv_rec.REFERENCE2,
272               l_aelv_rec.REFERENCE3,
273               l_aelv_rec.REFERENCE4,
274               l_aelv_rec.REFERENCE5,
275               l_aelv_rec.REFERENCE6,
276               l_aelv_rec.REFERENCE7,
277               l_aelv_rec.REFERENCE8,
278               l_aelv_rec.REFERENCE9,
279               l_aelv_rec.REFERENCE10,
280               l_aelv_rec.DESCRIPTION,
281               l_aelv_rec.THIRD_PARTY_ID,
282               l_aelv_rec.THIRD_PARTY_SUB_ID,
283               l_aelv_rec.STAT_AMOUNT,
284               l_aelv_rec.USSGL_TRANSACTION_CODE,
285               l_aelv_rec.SUBLEDGER_DOC_SEQUENCE_ID,
286               l_aelv_rec.ACCOUNTING_ERROR_CODE,
287               l_aelv_rec.GL_TRANSFER_ERROR_CODE,
288               l_aelv_rec.GL_SL_LINK_ID,
289               l_aelv_rec.TAXABLE_ENTERED_DR,
290               l_aelv_rec.TAXABLE_ENTERED_CR,
291               l_aelv_rec.TAXABLE_ACCOUNTED_DR,
292               l_aelv_rec.TAXABLE_ACCOUNTED_CR,
293               l_aelv_rec.APPLIED_FROM_TRX_HDR_TABLE,
294               l_aelv_rec.APPLIED_FROM_TRX_HDR_ID,
295               l_aelv_rec.APPLIED_TO_TRX_HDR_TABLE,
296               l_aelv_rec.APPLIED_TO_TRX_HDR_ID,
297               l_aelv_rec.TAX_LINK_ID,
298               l_aelv_rec.currency_code,
299               l_aelv_rec.PROGRAM_ID,
300               l_aelv_rec.PROGRAM_APPLICATION_ID,
301               l_aelv_rec.PROGRAM_UPDATE_DATE,
302               l_aelv_rec.REQUEST_ID,
303               l_aelv_rec.CREATED_BY,
304               l_aelv_rec.CREATION_DATE,
305               l_aelv_rec.LAST_UPDATED_BY,
306               l_aelv_rec.LAST_UPDATE_DATE,
307               l_aelv_rec.LAST_UPDATE_LOGIN,
308               l_aelv_rec.ACCOUNT_OVERLAY_SOURCE_ID,
309               l_aelv_rec.SUBLEDGER_DOC_SEQUENCE_VALUE,
310               l_aelv_rec.TAX_CODE_ID;
311     x_no_data_found := okl_aelv_pk_csr%NOTFOUND;
312     CLOSE okl_aelv_pk_csr;
313     RETURN(l_aelv_rec);
314   END get_rec;
315 
316   FUNCTION get_rec (
317     p_aelv_rec                     IN aelv_rec_type
318   ) RETURN aelv_rec_type IS
319     l_row_notfound                 BOOLEAN := TRUE;
320   BEGIN
321     RETURN(get_rec(p_aelv_rec, l_row_notfound));
322   END get_rec;
323 
324   ----------------------------------------------------
325   -- FUNCTION null_out_defaults for: OKL_AE_LINES_V --
326   ----------------------------------------------------
327   FUNCTION null_out_defaults (
328     p_aelv_rec	IN aelv_rec_type
329   ) RETURN aelv_rec_type IS
330     l_aelv_rec	aelv_rec_type := p_aelv_rec;
331   BEGIN
332     IF (l_aelv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
333       l_aelv_rec.object_version_number := NULL;
334     END IF;
335     IF (l_aelv_rec.AE_HEADER_ID = Okc_Api.G_MISS_NUM) THEN
336       l_aelv_rec.AE_HEADER_ID := NULL;
337     END IF;
338     IF (l_aelv_rec.currency_conversion_type = Okc_Api.G_MISS_CHAR) THEN
339       l_aelv_rec.currency_conversion_type := NULL;
340     END IF;
341     IF (l_aelv_rec.code_combination_id = Okc_Api.G_MISS_NUM) THEN
342       l_aelv_rec.code_combination_id := NULL;
343     END IF;
344     IF (l_aelv_rec.org_id = Okc_Api.G_MISS_NUM) THEN
345       l_aelv_rec.org_id := NULL;
346     END IF;
347     IF (l_aelv_rec.AE_LINE_NUMBER = Okc_Api.G_MISS_NUM) THEN
348       l_aelv_rec.AE_LINE_NUMBER := NULL;
349     END IF;
350     IF (l_aelv_rec.AE_LINE_TYPE_CODE = Okc_Api.G_MISS_CHAR) THEN
351       l_aelv_rec.AE_LINE_TYPE_CODE := NULL;
352     END IF;
353     IF (l_aelv_rec.currency_conversion_date = Okc_Api.G_MISS_DATE) THEN
354       l_aelv_rec.currency_conversion_date := NULL;
355     END IF;
356     IF (l_aelv_rec.currency_conversion_rate = Okc_Api.G_MISS_NUM) THEN
357       l_aelv_rec.currency_conversion_rate := NULL;
358     END IF;
359     IF (l_aelv_rec.ENTERED_DR = Okc_Api.G_MISS_NUM) THEN
360       l_aelv_rec.ENTERED_DR := NULL;
361     END IF;
362     IF (l_aelv_rec.ENTERED_CR = Okc_Api.G_MISS_NUM) THEN
363       l_aelv_rec.ENTERED_CR := NULL;
364     END IF;
365     IF (l_aelv_rec.ACCOUNTED_DR = Okc_Api.G_MISS_NUM) THEN
366       l_aelv_rec.ACCOUNTED_DR := NULL;
367     END IF;
368     IF (l_aelv_rec.ACCOUNTED_CR = Okc_Api.G_MISS_NUM) THEN
369       l_aelv_rec.ACCOUNTED_CR := NULL;
370     END IF;
371     IF (l_aelv_rec.source_table = Okc_Api.G_MISS_CHAR) THEN
372       l_aelv_rec.source_table := NULL;
373     END IF;
374     IF (l_aelv_rec.source_id = Okc_Api.G_MISS_NUM) THEN
375       l_aelv_rec.source_id := NULL;
376     END IF;
377     IF (l_aelv_rec.reference1 = Okc_Api.G_MISS_CHAR) THEN
378       l_aelv_rec.reference1 := NULL;
379     END IF;
380     IF (l_aelv_rec.reference2 = Okc_Api.G_MISS_CHAR) THEN
381       l_aelv_rec.reference2 := NULL;
382     END IF;
383     IF (l_aelv_rec.reference3 = Okc_Api.G_MISS_CHAR) THEN
384       l_aelv_rec.reference3 := NULL;
385     END IF;
386     IF (l_aelv_rec.reference4 = Okc_Api.G_MISS_CHAR) THEN
387       l_aelv_rec.reference4 := NULL;
388     END IF;
389     IF (l_aelv_rec.reference5 = Okc_Api.G_MISS_CHAR) THEN
390       l_aelv_rec.reference5 := NULL;
391     END IF;
392     IF (l_aelv_rec.reference6 = Okc_Api.G_MISS_CHAR) THEN
393       l_aelv_rec.reference6 := NULL;
394     END IF;
395     IF (l_aelv_rec.reference7 = Okc_Api.G_MISS_CHAR) THEN
396       l_aelv_rec.reference7 := NULL;
397     END IF;
398     IF (l_aelv_rec.reference8 = Okc_Api.G_MISS_CHAR) THEN
399       l_aelv_rec.reference8 := NULL;
400     END IF;
401     IF (l_aelv_rec.reference9 = Okc_Api.G_MISS_CHAR) THEN
402       l_aelv_rec.reference9 := NULL;
403     END IF;
404     IF (l_aelv_rec.reference10 = Okc_Api.G_MISS_CHAR) THEN
405       l_aelv_rec.reference10 := NULL;
406     END IF;
407     IF (l_aelv_rec.description = Okc_Api.G_MISS_CHAR) THEN
408       l_aelv_rec.description := NULL;
409     END IF;
410     IF (l_aelv_rec.third_party_id = Okc_Api.G_MISS_NUM) THEN
411       l_aelv_rec.third_party_id := NULL;
412     END IF;
413     IF (l_aelv_rec.third_party_sub_id = Okc_Api.G_MISS_NUM) THEN
414       l_aelv_rec.third_party_sub_id := NULL;
415     END IF;
416     IF (l_aelv_rec.STAT_AMOUNT = Okc_Api.G_MISS_NUM) THEN
417       l_aelv_rec.STAT_AMOUNT := NULL;
418     END IF;
419     IF (l_aelv_rec.ussgl_transaction_code = Okc_Api.G_MISS_CHAR) THEN
420       l_aelv_rec.ussgl_transaction_code := NULL;
421     END IF;
422     IF (l_aelv_rec.subledger_doc_sequence_id = Okc_Api.G_MISS_NUM) THEN
423       l_aelv_rec.subledger_doc_sequence_id := NULL;
424     END IF;
425     IF (l_aelv_rec.accounting_error_code = Okc_Api.G_MISS_CHAR) THEN
426       l_aelv_rec.accounting_error_code := NULL;
427     END IF;
428     IF (l_aelv_rec.gl_transfer_error_code = Okc_Api.G_MISS_CHAR) THEN
429       l_aelv_rec.gl_transfer_error_code := NULL;
430     END IF;
431     IF (l_aelv_rec.GL_SL_LINK_ID = Okc_Api.G_MISS_NUM) THEN
432       l_aelv_rec.GL_SL_LINK_ID := NULL;
433     END IF;
434     IF (l_aelv_rec.taxable_ENTERED_DR = Okc_Api.G_MISS_NUM) THEN
435       l_aelv_rec.taxable_ENTERED_DR := NULL;
436     END IF;
437     IF (l_aelv_rec.taxable_ENTERED_CR = Okc_Api.G_MISS_NUM) THEN
438       l_aelv_rec.taxable_ENTERED_CR := NULL;
439     END IF;
440     IF (l_aelv_rec.taxable_ACCOUNTED_DR = Okc_Api.G_MISS_NUM) THEN
441       l_aelv_rec.taxable_ACCOUNTED_DR := NULL;
442     END IF;
443     IF (l_aelv_rec.taxable_ACCOUNTED_CR = Okc_Api.G_MISS_NUM) THEN
444       l_aelv_rec.taxable_ACCOUNTED_CR := NULL;
445     END IF;
446     IF (l_aelv_rec.applied_from_trx_hdr_table = Okc_Api.G_MISS_CHAR) THEN
447       l_aelv_rec.applied_from_trx_hdr_table := NULL;
448     END IF;
449     IF (l_aelv_rec.applied_from_trx_hdr_id = Okc_Api.G_MISS_NUM) THEN
450       l_aelv_rec.applied_from_trx_hdr_id := NULL;
451     END IF;
452     IF (l_aelv_rec.applied_to_trx_hdr_table = Okc_Api.G_MISS_CHAR) THEN
453       l_aelv_rec.applied_to_trx_hdr_table := NULL;
454     END IF;
455     IF (l_aelv_rec.applied_to_trx_hdr_id = Okc_Api.G_MISS_NUM) THEN
456       l_aelv_rec.applied_to_trx_hdr_id := NULL;
457     END IF;
458     IF (l_aelv_rec.tax_link_id = Okc_Api.G_MISS_NUM) THEN
459       l_aelv_rec.tax_link_id := NULL;
460     END IF;
461     IF (l_aelv_rec.currency_code = Okc_Api.G_MISS_CHAR) THEN
462       l_aelv_rec.currency_code := NULL;
463     END IF;
464     /* commented to make sure concurrent manager columns are not nulled out nocopy as per pg. 104 in API developer's guide
465     IF (l_aelv_rec.program_id = OKC_API.G_MISS_NUM) THEN
466       l_aelv_rec.program_id := NULL;
467     END IF;
468     IF (l_aelv_rec.program_application_id = OKC_API.G_MISS_NUM) THEN
469       l_aelv_rec.program_application_id := NULL;
470     END IF;
471     IF (l_aelv_rec.program_update_date = OKC_API.G_MISS_DATE) THEN
472       l_aelv_rec.program_update_date := NULL;
473     END IF;
474     IF (l_aelv_rec.request_id = OKC_API.G_MISS_NUM) THEN
475       l_aelv_rec.request_id := NULL;
476     END IF;
477     */
478     IF (l_aelv_rec.created_by = Okc_Api.G_MISS_NUM) THEN
479       l_aelv_rec.created_by := NULL;
480     END IF;
481     IF (l_aelv_rec.creation_date = Okc_Api.G_MISS_DATE) THEN
482       l_aelv_rec.creation_date := NULL;
483     END IF;
484     IF (l_aelv_rec.last_updated_by = Okc_Api.G_MISS_NUM) THEN
485       l_aelv_rec.last_updated_by := NULL;
486     END IF;
487     IF (l_aelv_rec.last_update_date = Okc_Api.G_MISS_DATE) THEN
488       l_aelv_rec.last_update_date := NULL;
489     END IF;
490     IF (l_aelv_rec.last_update_login = Okc_Api.G_MISS_NUM) THEN
491       l_aelv_rec.last_update_login := NULL;
492     END IF;
493 	IF (l_aelv_rec.ACCOUNT_OVERLAY_SOURCE_ID = Okc_Api.G_MISS_NUM) THEN
494       l_aelv_rec.ACCOUNT_OVERLAY_SOURCE_ID := NULL;
495     END IF;
496 	IF (l_aelv_rec.SUBLEDGER_DOC_SEQUENCE_VALUE = Okc_Api.G_MISS_NUM) THEN
497       l_aelv_rec.SUBLEDGER_DOC_SEQUENCE_VALUE := NULL;
498     END IF;
499 	IF (l_aelv_rec.TAX_CODE_ID = Okc_Api.G_MISS_NUM) THEN
500       l_aelv_rec.TAX_CODE_ID := NULL;
501     END IF;
502     RETURN(l_aelv_rec);
503   END null_out_defaults;
504 
505 /* Renu Gurudev 4/27/2001 - Commented out nocopy generated code in favor of manually written code
506   ---------------------------------------------------------------------------
507   -- PROCEDURE Validate_Attributes
508   ---------------------------------------------------------------------------
509   --------------------------------------------
510   -- Validate_Attributes for:OKL_AE_LINES_V --
511   --------------------------------------------
512   FUNCTION Validate_Attributes (
513     p_aelv_rec IN  aelv_rec_type
514   ) RETURN VARCHAR2 IS
515     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
516   BEGIN
517     IF p_aelv_rec.ae_line_id = OKC_API.G_MISS_NUM OR
518        p_aelv_rec.ae_line_id IS NULL
519     THEN
520       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
521       l_return_status := OKC_API.G_RET_STS_ERROR;
522     ELSIF p_aelv_rec.object_version_number = OKC_API.G_MISS_NUM OR
523           p_aelv_rec.object_version_number IS NULL
524     THEN
525       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
526       l_return_status := OKC_API.G_RET_STS_ERROR;
527     ELSIF p_aelv_rec.AE_HEADER_ID = OKC_API.G_MISS_NUM OR
528           p_aelv_rec.AE_HEADER_ID IS NULL
529     THEN
530       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'AE_HEADER_ID');
531       l_return_status := OKC_API.G_RET_STS_ERROR;
532     ELSIF p_aelv_rec.code_combination_id = OKC_API.G_MISS_NUM OR
533           p_aelv_rec.code_combination_id IS NULL
534     THEN
535       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'code_combination_id');
536       l_return_status := OKC_API.G_RET_STS_ERROR;
537     ELSIF p_aelv_rec.AE_LINE_NUMBER = OKC_API.G_MISS_NUM OR
538           p_aelv_rec.AE_LINE_NUMBER IS NULL
539     THEN
540       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'line_number');
541       l_return_status := OKC_API.G_RET_STS_ERROR;
542     ELSIF p_aelv_rec.AE_LINE_TYPE_CODE = OKC_API.G_MISS_CHAR OR
543           p_aelv_rec.AE_LINE_TYPE_CODE IS NULL
544     THEN
545       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'line_type_code');
546       l_return_status := OKC_API.G_RET_STS_ERROR;
547     ELSIF p_aelv_rec.source_table = OKC_API.G_MISS_CHAR OR
548           p_aelv_rec.source_table IS NULL
549     THEN
550       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'source_table');
551       l_return_status := OKC_API.G_RET_STS_ERROR;
552     ELSIF p_aelv_rec.source_id = OKC_API.G_MISS_NUM OR
553           p_aelv_rec.source_id IS NULL
554     THEN
555       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'source_id');
556       l_return_status := OKC_API.G_RET_STS_ERROR;
557     ELSIF p_aelv_rec.curr_code = OKC_API.G_MISS_CHAR OR
558           p_aelv_rec.curr_code IS NULL
559     THEN
560       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'curr_code');
561       l_return_status := OKC_API.G_RET_STS_ERROR;
562     END IF;
563     RETURN(l_return_status);
564   END Validate_Attributes;
565 
566   ---------------------------------------------------------------------------
567   -- PROCEDURE Validate_Record
568   ---------------------------------------------------------------------------
569   ----------------------------------------
570   -- Validate_Record for:OKL_AE_LINES_V --
571   ----------------------------------------
572   FUNCTION Validate_Record (
573     p_aelv_rec IN aelv_rec_type
574   ) RETURN VARCHAR2 IS
575     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
576   BEGIN
577     RETURN (l_return_status);
578   END Validate_Record;
579 
580 */
581 
582   /*********** begin manual coding *****************/
583   ---------------------------------------------------------------------------
584   -- PROCEDURE Validate_ae_line_id
585   ---------------------------------------------------------------------------
586   -- Start of comments
587   --
588   -- Procedure Name   : Validate_ae_line_id
589   -- Description      :
590   -- Business Rules   :
591   -- Parameters       :
592   -- Version          : 1.0
593   -- End of comments
594   ---------------------------------------------------------------------------
595   PROCEDURE Validate_ae_line_id (p_aelv_rec      IN  aelv_rec_type
596 				 ,x_return_status OUT NOCOPY VARCHAR2)
597   IS
598   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
599 
600   BEGIN
601     -- initialize return status
602     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
603 
604     -- check for data before processing
605     IF (p_aelv_rec.ae_line_id IS NULL) OR
606        (p_aelv_rec.ae_line_id = Okc_Api.G_MISS_NUM) THEN
607        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
608                            ,p_msg_name      => g_required_value
609                            ,p_token1        => g_col_name_token
610                            ,p_token1_value  => 'id');
611        x_return_status     := Okc_Api.G_RET_STS_ERROR;
612        RAISE G_EXCEPTION_HALT_VALIDATION;
613     END IF;
614 
615   EXCEPTION
616     WHEN G_EXCEPTION_HALT_VALIDATION THEN
617     -- no processing necessary; validation can continue
618     -- with the next column
619     NULL;
620 
621     WHEN OTHERS THEN
622       -- store SQL error message on message stack for caller
623       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
624                           ,p_msg_name      => g_unexpected_error
625                           ,p_token1        => g_sqlcode_token
626                           ,p_token1_value  => SQLCODE
627                           ,p_token2        => g_sqlerrm_token
628                           ,p_token2_value  => SQLERRM);
629 
630        -- notify caller of an UNEXPECTED error
631        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
632 
633   END Validate_ae_line_id;
634 
635 
636   -- PROCEDURE Validate_Object_Version_Number
637   ---------------------------------------------------------------------------
638   -- Start of comments
639   --
640   -- Procedure Name   : Validate_Object_Version_Number
641   -- Description      :
642   -- Business Rules   :
643   -- Parameters       :
644   -- Version          : 1.0
645   -- End of comments
646   ---------------------------------------------------------------------------
647   PROCEDURE Validate_Object_Version_Number (p_aelv_rec      IN  aelv_rec_type
648                                             ,x_return_status OUT NOCOPY VARCHAR2)
649   IS
650   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
651 
652   BEGIN
653     -- initialize return status
654     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
655 
656     -- check for data before processing
657     IF (p_aelv_rec.object_version_number IS NULL) OR
658        (p_aelv_rec.object_version_number = Okc_Api.G_MISS_NUM) THEN
659        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
660                            ,p_msg_name      => g_required_value
661                            ,p_token1        => g_col_name_token
662                            ,p_token1_value  => 'object_version_number');
663        x_return_status     := Okc_Api.G_RET_STS_ERROR;
664        RAISE G_EXCEPTION_HALT_VALIDATION;
665     END IF;
666 
667   EXCEPTION
668     WHEN G_EXCEPTION_HALT_VALIDATION THEN
669     -- no processing necessary; validation can continue
670     -- with the next column
671     NULL;
672 
673     WHEN OTHERS THEN
674       -- store SQL error message on message stack for caller
675       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
676                           ,p_msg_name      => g_unexpected_error
677                           ,p_token1        => g_sqlcode_token
678                           ,p_token1_value  => SQLCODE
679                           ,p_token2        => g_sqlerrm_token
680                           ,p_token2_value  => SQLERRM);
681 
682        -- notify caller of an UNEXPECTED error
683        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
684 
685   END Validate_Object_Version_Number;
686 
687   ---------------------------------------------------------------------------
688   -- PROCEDURE Validate_AE_HEADER_ID
689   ---------------------------------------------------------------------------
690   -- Start of comments
691   --
692   -- Procedure Name   : Validate_AE_HEADER_ID
693   -- Description      :
694   -- Business Rules   :
695   -- Parameters       :
696   -- Version          : 1.0
697   -- End of comments
698   ---------------------------------------------------------------------------
699   PROCEDURE Validate_AE_HEADER_ID (p_aelv_rec      IN  aelv_rec_type
700 				 ,x_return_status OUT NOCOPY VARCHAR2)
701   IS
702   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
703   item_not_found_error          EXCEPTION;
704 
705   l_dummy                    VARCHAR2(1);
706   l_row_notfound                 BOOLEAN := TRUE;
707 
708   CURSOR okl_aelv_fk_csr (p_ae_header_id IN NUMBER) IS
709   SELECT  '1'
710   FROM OKL_AE_HEADERS
711   WHERE OKL_AE_HEADERS.ae_header_id = p_ae_header_id;
712 
713   BEGIN
714     -- initialize return status
715     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
716 
717     -- check for data before processing
718     IF (p_aelv_rec.AE_HEADER_ID IS NULL) OR
719        (p_aelv_rec.AE_HEADER_ID = Okc_Api.G_MISS_NUM) THEN
720        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
721                            ,p_msg_name      => g_required_value
722                            ,p_token1        => g_col_name_token
723                            ,p_token1_value  => 'AE_HEADER_ID');
724        x_return_status     := Okc_Api.G_RET_STS_ERROR;
725        RAISE G_EXCEPTION_HALT_VALIDATION;
726     ELSE
727        OPEN okl_aelv_fk_csr(p_aelv_rec.AE_HEADER_ID);
728        FETCH okl_aelv_fk_csr INTO l_dummy;
729        l_row_notfound := okl_aelv_fk_csr%NOTFOUND;
730        CLOSE okl_aelv_fk_csr;
731        IF (l_row_notfound) THEN
732          Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'AE_HEADER_ID');
733          RAISE item_not_found_error;
734        END IF;
735     END IF;
736 
737   EXCEPTION
738     WHEN G_EXCEPTION_HALT_VALIDATION THEN
739     -- no processing necessary; validation can continue
740     -- with the next column
741     NULL;
742 
743     WHEN item_not_found_error THEN
744        x_return_status := Okc_Api.G_RET_STS_ERROR;
745 
746     WHEN OTHERS THEN
747       -- store SQL error message on message stack for caller
748       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
749                           ,p_msg_name      => g_unexpected_error
750                           ,p_token1        => g_sqlcode_token
751                           ,p_token1_value  => SQLCODE
752                           ,p_token2        => g_sqlerrm_token
753                           ,p_token2_value  => SQLERRM);
754 
755        -- notify caller of an UNEXPECTED error
756        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
757 
758   END Validate_AE_HEADER_ID;
759 
760 
761   ---------------------------------------------------------------------------
762   -- PROCEDURE Validate_Code_Combination_Id
763   ---------------------------------------------------------------------------
764   -- Start of comments
765   --
766   -- Procedure Name   : Validate_Code_Combination_Id
767   -- Description      :
768   -- Business Rules   :
769   -- Parameters       :
770   -- Version          : 1.0
771   -- End of comments
772   ---------------------------------------------------------------------------
773   PROCEDURE Validate_Code_Combination_Id (p_aelv_rec      IN  aelv_rec_type
774 				 ,x_return_status OUT NOCOPY VARCHAR2)
775   IS
776   l_return_status              VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
777   item_not_found_error          EXCEPTION;
778 
779   l_dummy                    VARCHAR2(1) := okl_api.g_true;
780     BEGIN
781     -- initialize return status
782     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
783 
784     -- check for data before processing
785     IF (p_aelv_rec.code_combination_id IS NULL) OR
786        (p_aelv_rec.code_combination_id = Okc_Api.G_MISS_NUM) THEN
787        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
788                            ,p_msg_name      => g_required_value
789                            ,p_token1        => g_col_name_token
790                            ,p_token1_value  => 'code_combination_id');
791        x_return_status     := Okc_Api.G_RET_STS_ERROR;
792        RAISE G_EXCEPTION_HALT_VALIDATION;
793     ELSE
794     l_dummy := Okl_Accounting_Util.VALIDATE_GL_CCID (
795 	p_aelv_rec.code_combination_id);
796     IF l_dummy = okl_api.g_false THEN
797 		Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
798                         	p_msg_name     => g_invalid_value,
799                         	p_token1       => g_col_name_token,
800                         	p_token1_value => 'CODE_COMBINATION_ID');
801           	x_return_status := Okc_Api.G_RET_STS_ERROR;
802 		RAISE G_EXCEPTION_HALT_VALIDATION;
803     END IF;
804     END IF;
805   EXCEPTION
806     WHEN G_EXCEPTION_HALT_VALIDATION THEN
807     -- no processing necessary; validation can continue
808     -- with the next column
809     NULL;
810 
811     WHEN item_not_found_error THEN
812        x_return_status := Okc_Api.G_RET_STS_ERROR;
813 
814     WHEN OTHERS THEN
815       -- store SQL error message on message stack for caller
816       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
817                           ,p_msg_name      => g_unexpected_error
818                           ,p_token1        => g_sqlcode_token
819                           ,p_token1_value  => SQLCODE
820                           ,p_token2        => g_sqlerrm_token
821                           ,p_token2_value  => SQLERRM);
822 
823        -- notify caller of an UNEXPECTED error
824        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
825 
826   END Validate_Code_Combination_Id;
827 
828   ---------------------------------------------------------------------------
829   -- PROCEDURE Validate_Curr_Cnvrsn_Type
830   ---------------------------------------------------------------------------
831   -- Start of comments
832   --
833   -- Procedure Name   : Validate_Curr_Conversion_Type
834   -- Description      :
835   -- Business Rules   :
836   -- Parameters       :
837   -- Version          : 1.0
838   -- End of comments
839   ---------------------------------------------------------------------------
840   PROCEDURE Validate_Curr_Cnvrsn_Type (p_aelv_rec      IN  aelv_rec_type
841 				 ,x_return_status OUT NOCOPY VARCHAR2)
842   IS
843   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
844   item_not_found_error          EXCEPTION;
845 
846   l_dummy                    VARCHAR2(1);
847   l_row_notfound                 BOOLEAN := TRUE;
848 
849   BEGIN
850     -- initialize return status
851     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
852 
853     -- check for data before processing
854    IF (p_aelv_rec.currency_conversion_type IS NOT NULL) AND
855       (p_aelv_rec.currency_conversion_type  <> Okc_Api.G_MISS_CHAR) THEN
856     l_dummy := Okl_Accounting_Util.VALIDATE_CURRENCY_CON_TYPE(p_aelv_rec.currency_conversion_type);
857     IF (l_dummy = OKC_API.G_FALSE) THEN
858       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
859                        ,p_msg_name      => g_invalid_value
860                        ,p_token1        => g_col_name_token
861                        ,p_token1_value  => 'CURRENCY_CONVERSION_TYPE');
862        x_return_status     := Okc_Api.G_RET_STS_ERROR;
863        RAISE G_EXCEPTION_HALT_VALIDATION;
864     END IF;
865   END IF;
866 
867   EXCEPTION
868     WHEN G_EXCEPTION_HALT_VALIDATION THEN
869     -- no processing necessary; validation can continue
870     -- with the next column
871     NULL;
872 
873     WHEN item_not_found_error THEN
874        x_return_status := Okc_Api.G_RET_STS_ERROR;
875 
876     WHEN OTHERS THEN
877       -- store SQL error message on message stack for caller
878       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
879                           ,p_msg_name      => g_unexpected_error
880                           ,p_token1        => g_sqlcode_token
881                           ,p_token1_value  => SQLCODE
882                           ,p_token2        => g_sqlerrm_token
883                           ,p_token2_value  => SQLERRM);
884 
885        -- notify caller of an UNEXPECTED error
886        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
887 
888   END Validate_Curr_Cnvrsn_Type;
889 
890   ---------------------------------------------------------------------------
891   -- PROCEDURE Validate_AE_LINE_NUMBER
892   ---------------------------------------------------------------------------
893   -- Start of comments
894   --
895   -- Procedure Name   : Validate_AE_LINE_NUMBER
896   -- Description      :
897   -- Business Rules   :
898   -- Parameters       :
899   -- Version          : 1.0
900   -- End of comments
901   ---------------------------------------------------------------------------
902   PROCEDURE Validate_AE_LINE_NUMBER (p_aelv_rec      IN  aelv_rec_type
903 				 ,x_return_status OUT NOCOPY VARCHAR2)
904   IS
905   l_return_status                   VARCHAR2(1)    := Okc_Api.G_RET_STS_SUCCESS;
906 
907   BEGIN
908     -- initialize return status
909     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
910 
911     -- check for data before processing
912     IF (p_aelv_rec.AE_LINE_NUMBER IS NULL) OR
913        (p_aelv_rec.AE_LINE_NUMBER = Okc_Api.G_MISS_NUM) THEN
914        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
915                            ,p_msg_name      => g_required_value
916                            ,p_token1        => g_col_name_token
917                            ,p_token1_value  => 'line_number');
918        x_return_status     := Okc_Api.G_RET_STS_ERROR;
919        RAISE G_EXCEPTION_HALT_VALIDATION;
920     END IF;
921 
922   EXCEPTION
923     WHEN G_EXCEPTION_HALT_VALIDATION THEN
924     -- no processing necessary; validation can continue
925     -- with the next column
926     NULL;
927 
928     WHEN OTHERS THEN
929       -- store SQL error message on message stack for caller
930       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
931                           ,p_msg_name      => g_unexpected_error
932                           ,p_token1        => g_sqlcode_token
933                           ,p_token1_value  => SQLCODE
934                           ,p_token2        => g_sqlerrm_token
935                           ,p_token2_value  => SQLERRM);
936 
937        -- notify caller of an UNEXPECTED error
938        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
939 
940   END Validate_AE_LINE_NUMBER;
941 
942   ---------------------------------------------------------------------------
943   -- PROCEDURE Validate_AE_LINE_TYPE_CODE
944   ---------------------------------------------------------------------------
945   -- Start of comments
946   --
947   -- Procedure Name  : Validate_AE_LINE_TYPE_CODE
948   -- Description     :
949   -- Business Rules  :
950   -- Parameters      :
951   -- Version         : 1.0
952   -- End of comments
953   ---------------------------------------------------------------------------
954   PROCEDURE Validate_AE_LINE_TYPE_CODE(p_aelv_rec      IN      aelv_rec_type
955 						  ,x_return_status OUT NOCOPY     VARCHAR2)
956   IS
957 
958   l_return_status         VARCHAR2(1)  := Okc_Api.G_RET_STS_SUCCESS;
959   l_dummy     VARCHAR2(1) := OKC_API.G_FALSE;
960 
961   BEGIN
962     -- initialize return status
963     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
964 
965     -- check for data before processing
966     IF (p_aelv_rec.AE_LINE_TYPE_CODE IS NULL) OR
967        (p_aelv_rec.AE_LINE_TYPE_CODE = Okc_Api.G_MISS_CHAR) THEN
968        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
969                           ,p_msg_name       => g_required_value
970                           ,p_token1         => g_col_name_token
971                           ,p_token1_value   => 'line_type_code');
972        x_return_status    := Okc_Api.G_RET_STS_ERROR;
973        RAISE G_EXCEPTION_HALT_VALIDATION;
974     END IF;
975 
976     -- check in fnd_lookups for validity
977 
978     l_dummy
979           := Okl_Accounting_Util.VALIDATE_LOOKUP_CODE(p_lookup_type => 'OKL_ACCOUNTING_LINE_TYPE',
980                                                   p_lookup_code => p_aelv_rec.AE_LINE_TYPE_CODE);
981 
982     IF (l_dummy = Okc_Api.G_FALSE) THEN
983        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
984                           ,p_msg_name       => g_invalid_value
985                           ,p_token1         => g_col_name_token
986                           ,p_token1_value   => 'line_type_code');
987        x_return_status    := Okc_Api.G_RET_STS_ERROR;
988        RAISE G_EXCEPTION_HALT_VALIDATION;
989     END IF;
990 
991   EXCEPTION
992     WHEN G_EXCEPTION_HALT_VALIDATION THEN
993     -- no processing neccessary; validation can continue
994     -- with the next column
995     NULL;
996 
997     WHEN OTHERS THEN
998       -- store SQL error message on message stack for caller
999       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1000                           p_msg_name     => g_unexpected_error,
1001                           p_token1       => g_sqlcode_token,
1002                           p_token1_value => SQLCODE,
1003                           p_token2       => g_sqlerrm_token,
1004                           p_token2_value => SQLERRM);
1005 
1006       -- notify caller of an UNEXPECTED error
1007       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1008 
1009   END Validate_AE_LINE_TYPE_CODE;
1010 
1011   ---------------------------------------------------------------------------
1012   -- PROCEDURE Validate_Source_ID_Tbl
1013   ---------------------------------------------------------------------------
1014   -- Start of comments
1015   --
1016   -- Procedure Name  : Validate_Source_ID_Tbl
1017   -- Description     :
1018   -- Business Rules  :
1019   -- Parameters      :
1020   -- Version         : 1.0
1021   -- End of comments
1022   ---------------------------------------------------------------------------
1023   PROCEDURE Validate_Source_ID_Tbl(p_aelv_rec      IN      aelv_rec_type
1024 						  ,x_return_status OUT NOCOPY     VARCHAR2)
1025   IS
1026 
1027   l_dummy         VARCHAR2(1)  ;
1028 
1029   BEGIN
1030     -- initialize return status
1031     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1032 
1033     -- check for data before processing
1034     IF (p_aelv_rec.source_table IS NULL) OR
1035        (p_aelv_rec.source_table = Okc_Api.G_MISS_CHAR) THEN
1036        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1037                           ,p_msg_name       => g_required_value
1038                           ,p_token1         => g_col_name_token
1039                           ,p_token1_value   => 'SOURCE_TABLE');
1040        x_return_status    := Okc_Api.G_RET_STS_ERROR;
1041     END IF;
1042 
1043     IF (p_aelv_rec.source_id IS NULL) OR
1044        (p_aelv_rec.source_id = Okc_Api.G_MISS_NUM) THEN
1045        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1046                           ,p_msg_name       => g_required_value
1047                           ,p_token1         => g_col_name_token
1048                           ,p_token1_value   => 'SOURCE_ID');
1049        x_return_status    := Okc_Api.G_RET_STS_ERROR;
1050     END IF;
1051 
1052     IF (x_return_Status = OKC_API.G_RET_STS_ERROR) THEN
1053         RAISE G_EXCEPTION_HALT_VALIDATION;
1054     ELSE
1055        l_dummy
1056         := Okl_Accounting_Util.VALIDATE_SOURCE_ID_TABLE(p_source_id => p_aelv_rec.source_id,
1057                                                         p_source_table => p_aelv_rec.source_table);
1058         IF l_dummy = OKC_API.G_FALSE THEN
1059                 Okc_Api.SET_MESSAGE(p_app_name  => g_app_name,
1060                                 p_msg_name     => g_invalid_value,
1061                                 p_token1       => g_col_name_token,
1062                                 p_token1_value => 'source_id');
1063                 x_return_status := Okc_Api.G_RET_STS_ERROR;
1064                 RAISE G_EXCEPTION_HALT_VALIDATION;
1065         END IF;
1066     END IF;
1067 
1068 
1069 
1070   EXCEPTION
1071     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1072     -- no processing neccessary; validation can continue
1073     -- with the next column
1074     NULL;
1075 
1076     WHEN OTHERS THEN
1077       -- store SQL error message on message stack for caller
1078       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1079                           p_msg_name     => g_unexpected_error,
1080                           p_token1       => g_sqlcode_token,
1081                           p_token1_value => SQLCODE,
1082                           p_token2       => g_sqlerrm_token,
1083                           p_token2_value => SQLERRM);
1084 
1085       -- notify caller of an UNEXPECTED error
1086       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1087 
1088   END Validate_Source_ID_Tbl;
1089 
1090 
1091   ---------------------------------------------------------------------------
1092   -- PROCEDURE Validate_Currency_Code
1093   ---------------------------------------------------------------------------
1094   -- Start of comments
1095   --
1096   -- Procedure Name  : Validate_Currency_Code
1097   -- Description     :
1098   -- Business Rules  :
1099   -- Parameters      :
1100   -- Version         : 1.0
1101   -- End of comments
1102   ---------------------------------------------------------------------------
1103   PROCEDURE Validate_Currency_Code(p_aelv_rec      IN      aelv_rec_type
1104 						  ,x_return_status OUT NOCOPY     VARCHAR2)
1105   IS
1106 
1107   l_dummy         VARCHAR2(1)  := Okc_Api.G_FALSE;
1108 
1109   BEGIN
1110     -- initialize return status
1111     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1112 
1113     -- check for data before processing
1114     IF (p_aelv_rec.currency_code IS NULL) OR
1115        (p_aelv_rec.currency_code = Okc_Api.G_MISS_CHAR) THEN
1116        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1117                           ,p_msg_name       => g_required_value
1118                           ,p_token1         => g_col_name_token
1119                           ,p_token1_value   => 'currency_code');
1120        x_return_status    := Okc_Api.G_RET_STS_ERROR;
1121        RAISE G_EXCEPTION_HALT_VALIDATION;
1122     ELSE
1123       l_dummy := Okl_Accounting_Util.VALIDATE_CURRENCY_CODE (p_aelv_rec.currency_code);
1124 
1125 	    IF l_dummy = okc_api.g_false THEN
1126 	      	Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1127                         		p_msg_name     => g_invalid_value,
1128                         		p_token1       => g_col_name_token,
1129                         		p_token1_value => 'CURRENCY_CODE');
1130 	          	x_return_status := Okc_Api.G_RET_STS_ERROR;
1131 		RAISE G_EXCEPTION_HALT_VALIDATION;
1132 	    END IF;
1133     END IF;
1134 
1135   EXCEPTION
1136     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1137     -- no processing neccessary; validation can continue
1138     -- with the next column
1139     NULL;
1140 
1141     WHEN OTHERS THEN
1142       -- store SQL error message on message stack for caller
1143       Okc_Api.SET_MESSAGE(p_app_name     => g_app_name,
1144                           p_msg_name     => g_unexpected_error,
1145                           p_token1       => g_sqlcode_token,
1146                           p_token1_value => SQLCODE,
1147                           p_token2       => g_sqlerrm_token,
1148                           p_token2_value => SQLERRM);
1149 
1150       -- notify caller of an UNEXPECTED error
1151       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1152 
1153   END Validate_Currency_Code;
1154 
1155 
1156  ---------------------------------------------------------------------------
1157   -- PROCEDURE Validate_Accounting_error_code
1158   ---------------------------------------------------------------------------
1159   -- Start of comments
1160   --
1161   -- Procedure Name   : Validate_Accounting_Error_code
1162   -- Description      :
1163   -- Business Rules   :
1164   -- Parameters       :
1165   -- Version          : 1.0
1166   -- End of comments
1167   ---------------------------------------------------------------------------
1168   PROCEDURE Validate_Accounting_Error_code (p_aelv_rec      IN  aelv_rec_type
1169                                            ,x_return_status OUT NOCOPY VARCHAR2)
1170   IS
1171   l_dummy                   VARCHAR2(1)    := Okc_Api.G_FALSE;
1172 
1173   BEGIN
1174     -- initialize return status
1175     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1176 
1177     -- check for data before processing
1178     IF (p_aelv_rec.Accounting_Error_Code IS NOT NULL) AND
1179        (p_aelv_rec.Accounting_Error_code <> Okc_Api.G_MISS_CHAR) THEN
1180 
1181         l_dummy
1182           := Okl_Accounting_Util.VALIDATE_LOOKUP_CODE(p_lookup_type => 'OKL_ACCOUNTING_ERROR_CODE',
1183                                                 p_lookup_code => p_aelv_rec.accounting_error_code);
1184 
1185        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1186                            ,p_msg_name      => g_invalid_value
1187                            ,p_token1        => g_col_name_token
1188                            ,p_token1_value  => 'ACCOUNTING_ERROR_CODE');
1189        x_return_status     := Okc_Api.G_RET_STS_ERROR;
1190        RAISE G_EXCEPTION_HALT_VALIDATION;
1191     END IF;
1192 
1193   EXCEPTION
1194     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1195     -- no processing necessary; validation can continue
1196     -- with the next column
1197     NULL;
1198 
1199     WHEN OTHERS THEN
1200       -- store SQL error message on message stack for caller
1201       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1202                           ,p_msg_name      => g_unexpected_error
1203                           ,p_token1        => g_sqlcode_token
1204                           ,p_token1_value  => SQLCODE
1205                           ,p_token2        => g_sqlerrm_token
1206                           ,p_token2_value  => SQLERRM);
1207 
1208        -- notify caller of an UNEXPECTED error
1209        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1210 
1211   END Validate_Accounting_Error_Code;
1212 
1213 
1214   ---------------------------------------------------------------------------
1215   -- PROCEDURE validate_GL_trans_Err_Code
1216   ---------------------------------------------------------------------------
1217   -- Start of comments
1218   --
1219  -- Procedure Name   : validate_GL_trans_Err_Code
1220   -- Description      :
1221   -- Business Rules   :
1222   -- Parameters       :
1223   -- Version          : 1.0
1224   -- End of comments
1225   ---------------------------------------------------------------------------
1226   PROCEDURE validate_GL_trans_Err_Code (p_aelv_rec      IN  aelv_rec_type
1227                                  ,x_return_status OUT NOCOPY VARCHAR2)
1228   IS
1229   l_dummy                   VARCHAR2(1)    := Okc_Api.G_FALSE;
1230 
1231   BEGIN
1232     -- initialize return status
1233     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1234 
1235     -- check for data before processing
1236     IF (p_aelv_rec.GL_Transfer_Error_Code IS NOT NULL) AND
1237        (p_aelv_rec.GL_Transfer_Error_Code <> Okc_Api.G_MISS_CHAR) THEN
1238 
1239         l_dummy
1240           := Okl_Accounting_Util.VALIDATE_LOOKUP_CODE(p_lookup_type => 'OKL_ACCOUNTING_ERROR_CODE',
1241                                               p_lookup_code => p_aelv_rec.GL_Transfer_Error_Code);
1242 
1243        Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1244                            ,p_msg_name      => g_invalid_value
1245                            ,p_token1        => g_col_name_token
1246                            ,p_token1_value  => 'GL_TRANSFER_ERROR_CODE');
1247        x_return_status     := Okc_Api.G_RET_STS_ERROR;
1248        RAISE G_EXCEPTION_HALT_VALIDATION;
1249     END IF;
1250  EXCEPTION
1251     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1252     -- no processing necessary; validation can continue
1253     -- with the next column
1254     NULL;
1255 
1256     WHEN OTHERS THEN
1257       -- store SQL error message on message stack for caller
1258       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
1259                           ,p_msg_name      => g_unexpected_error
1260                           ,p_token1        => g_sqlcode_token
1261                           ,p_token1_value  => SQLCODE
1262                           ,p_token2        => g_sqlerrm_token
1263                           ,p_token2_value  => SQLERRM);
1264 
1265        -- notify caller of an UNEXPECTED error
1266        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1267 
1268   END validate_GL_trans_Err_Code;
1269 
1270 
1271 ---------------------------------------------------------------------------
1272   -- PROCEDURE validate_unique_ael_record
1273   ---------------------------------------------------------------------------
1274   PROCEDURE Validate_Unique_Ael_Record(x_return_status OUT NOCOPY     VARCHAR2,
1275                                        p_aelv_rec      IN      aelv_rec_type)
1276   IS
1277 
1278   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1279   l_unq_tbl               OKC_UTIL.unq_tbl_type;
1280   l_aelv_status           VARCHAR2(1);
1281   l_row_found             BOOLEAN := FALSE;
1282 
1283   CURSOR c1 IS
1284   SELECT        '1'
1285   FROM  OKL_AE_LINES
1286   WHERE AE_HEADER_ID = p_aelv_rec.AE_HEADER_ID
1287   AND   AE_LINE_NUMBER = p_aelv_rec.AE_LINE_NUMBER
1288   AND   ae_line_id  <> p_aelv_rec.ae_line_id;
1289 
1290   BEGIN
1291 
1292     -- initialize return status
1293     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1294 
1295     OPEN c1 ;
1296     FETCH c1 INTO l_aelv_status;
1297     l_row_found := c1%FOUND;
1298     CLOSE c1;
1299     IF l_row_found THEN
1300         OKC_API.set_message(G_APP_NAME,G_UNQS);
1301         x_return_status := OKC_API.G_RET_STS_ERROR;
1302     END IF;
1303 
1304 
1305   EXCEPTION
1306     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1307     -- no processing necessary;  validation can continue
1308     -- with the next column
1309     NULL;
1310 
1311     WHEN OTHERS THEN
1312      -- store SQL error message on message stack for caller
1313       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1314                           p_msg_name     => g_unexpected_error,
1315                           p_token1       => g_sqlcode_token,
1316                           p_token1_value => SQLCODE,
1317                           p_token2       => g_sqlerrm_token,
1318                           p_token2_value => SQLERRM);
1319 
1320       -- notify caller of an UNEXPECTED error
1321       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1322 
1323   END Validate_Unique_Ael_Record;
1324 
1325 
1326 
1327   ---------------------------------------------------------------------------
1328   -- FUNCTION Validate_Attributes
1329   ---------------------------------------------------------------------------
1330   -- Start of comments
1331   --
1332   -- Procedure Name  : Validate_Attributes
1333   -- Description     :
1334   -- Business Rules  :
1335   -- Parameters      :
1336   -- Version         : 1.0
1337   -- End of comments
1338   ---------------------------------------------------------------------------
1339 
1340   FUNCTION Validate_Attributes (
1341     p_aelv_rec IN  aelv_rec_type
1342   ) RETURN VARCHAR2 IS
1343 
1344     x_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1345     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1346   BEGIN
1347 
1348 
1349     -- call each column-level validation
1350 
1351     -- Validate_ae_line_id
1352     Validate_ae_line_id(p_aelv_rec, x_return_status);
1353 	IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1354        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1355           -- need to exit
1356           l_return_status := x_return_status;
1357           RAISE G_EXCEPTION_HALT_VALIDATION;
1358        ELSE
1359           -- there was an error
1360           l_return_status := x_return_status;
1361        END IF;
1362     END IF;
1363 
1364    -- Validate_Object_Version_Number
1365     Validate_Object_Version_Number(p_aelv_rec, x_return_status);
1366 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1367        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1368           -- need to exit
1369           l_return_status := x_return_status;
1370           RAISE G_EXCEPTION_HALT_VALIDATION;
1371        ELSE
1372           -- there was an error
1373           l_return_status := x_return_status;
1374        END IF;
1375     END IF;
1376 
1377     -- Validate_AE_HEADER_ID
1378     Validate_AE_HEADER_ID(p_aelv_rec, x_return_status);
1379 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1380        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1381           -- need to exit
1382           l_return_status := x_return_status;
1383           RAISE G_EXCEPTION_HALT_VALIDATION;
1384        ELSE
1385           -- there was an error
1386           l_return_status := x_return_status;
1387        END IF;
1388     END IF;
1389 
1390     -- Validate_Code_Combination_Id
1391 /* The following code commented by Kanti. This is because we are doing a validation
1392    in the accounting entry creation program. We have a requirement to create a line
1393    even when ccid is invalid. In this case, we update the error flag to say that
1394    'ACCOUNT INVALID' but neverthless, we allow an invalid CCID to be present in
1395    the table. Therefore, this check needs to be removed from this place
1396 
1397     Validate_Code_Combination_Id(p_aelv_rec, x_return_status);
1398     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1399        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1400           -- need to exit
1401           l_return_status := x_return_status;
1402           RAISE G_EXCEPTION_HALT_VALIDATION;
1403        ELSE
1404           -- there was an error
1405           l_return_status := x_return_status;
1406        END IF;
1407     END IF;
1408 
1409 */
1410 
1411     -- Validate_Curr_Cnvrsn_Type
1412     Validate_Curr_Cnvrsn_Type(p_aelv_rec, x_return_status);
1413 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1414        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1415           -- need to exit
1416           l_return_status := x_return_status;
1417           RAISE G_EXCEPTION_HALT_VALIDATION;
1418        ELSE
1419           -- there was an error
1420           l_return_status := x_return_status;
1421        END IF;
1422     END IF;
1423 
1424     -- Validate_AE_LINE_NUMBER
1425     Validate_AE_LINE_NUMBER(p_aelv_rec, x_return_status);
1426 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1427        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1428           -- need to exit
1429           l_return_status := x_return_status;
1430           RAISE G_EXCEPTION_HALT_VALIDATION;
1431        ELSE
1432           -- there was an error
1433           l_return_status := x_return_status;
1434        END IF;
1435     END IF;
1436 
1437     -- Validate_AE_LINE_TYPE_CODE
1438     Validate_AE_LINE_TYPE_CODE(p_aelv_rec, x_return_status);
1439 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1440        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1441           -- need to exit
1442           l_return_status := x_return_status;
1443           RAISE G_EXCEPTION_HALT_VALIDATION;
1444        ELSE
1445           -- there was an error
1446           l_return_status := x_return_status;
1447        END IF;
1448     END IF;
1449 
1450     -- Validate_Source_Table and ID
1451     Validate_Source_ID_TBL(p_aelv_rec, x_return_status);
1452 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1453        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1454           -- need to exit
1455           l_return_status := x_return_status;
1456           RAISE G_EXCEPTION_HALT_VALIDATION;
1457        ELSE
1458           -- there was an error
1459           l_return_status := x_return_status;
1460        END IF;
1461     END IF;
1462 
1463     -- Validate_Curr_Code
1464     Validate_Currency_Code(p_aelv_rec, x_return_status);
1465 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1466        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1467           -- need to exit
1468           l_return_status := x_return_status;
1469           RAISE G_EXCEPTION_HALT_VALIDATION;
1470        ELSE
1471           -- there was an error
1472           l_return_status := x_return_status;
1473        END IF;
1474     END IF;
1475 
1476     -- Validate_Accounting_Error_Code
1477 
1478 /* This code commented by Kanti. We no longer keep a code in the table but we keep the
1479    actual message. And therefore, this need not be validated against a lookup. This
1480    lookup will be dropped
1481 
1482     Validate_Accounting_Error_Code(p_aelv_rec, x_return_status);
1483 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1484        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1485           -- need to exit
1486           l_return_status := x_return_status;
1487           RAISE G_EXCEPTION_HALT_VALIDATION;
1488        ELSE
1489           -- there was an error
1490           l_return_status := x_return_status;
1491        END IF;
1492     END IF;
1493 
1494 */
1495 
1496 /*  This code is also not required since GL populates this error message and it does not
1497     make sense to validate it here
1498 
1499     -- validate_GL_trans_Err_Code
1500     validate_GL_trans_Err_Code(p_aelv_rec, x_return_status);
1501 		IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1502        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1503           -- need to exit
1504           l_return_status := x_return_status;
1505           RAISE G_EXCEPTION_HALT_VALIDATION;
1506        ELSE
1507           -- there was an error
1508           l_return_status := x_return_status;
1509        END IF;
1510     END IF;
1511 
1512 */
1513 
1514     RETURN(l_return_status);
1515   EXCEPTION
1516     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1517        -- exit with return status
1518        NULL;
1519        RETURN (l_return_status);
1520 
1521     WHEN OTHERS THEN
1522        -- store SQL error message on message stack for caller
1523        Okc_Api.SET_MESSAGE(p_app_name         => g_app_name,
1524                            p_msg_name         => g_unexpected_error,
1525                            p_token1           => g_sqlcode_token,
1526                            p_token1_value     => SQLCODE,
1527                            p_token2           => g_sqlerrm_token,
1528                            p_token2_value     => SQLERRM);
1529        -- notify caller of an UNEXPECTED error
1530        l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1531        RETURN(l_return_status);
1532 
1533   END Validate_Attributes;
1534 
1535 
1536 
1537   ---------------------------------------------------------------------------
1538   -- PROCEDURE Validate_Record
1539   ---------------------------------------------------------------------------
1540   -- Start of comments
1541   --
1542   -- Procedure Name  : Validate_Record
1543   -- Description     :
1544   -- Business Rules  :
1545   -- Parameters      :
1546   -- Version         : 1.0
1547   -- End of comments
1548   ---------------------------------------------------------------------------
1549 
1550   FUNCTION Validate_Record (
1551     p_aelv_rec IN aelv_rec_type
1552   ) RETURN VARCHAR2 IS
1553     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1554   BEGIN
1555 
1556     Validate_Unique_AeL_Record(x_return_status => l_return_Status, p_aelv_rec => p_aelv_rec);
1557     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1558        IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1559           RAISE G_EXCEPTION_HALT_VALIDATION;
1560        ELSE
1561           NULL;
1562        END IF;
1563     END IF;
1564 
1565     RETURN(l_return_status);
1566 
1567   EXCEPTION
1568 
1569   WHEN G_EXCEPTION_HALT_VALIDATION THEN
1570        NULL;
1571        RETURN (l_return_status);
1572 
1573     WHEN OTHERS THEN
1574        -- store SQL error message on message stack for caller
1575        Okc_Api.SET_MESSAGE(p_app_name         => g_app_name,
1576                            p_msg_name         => g_unexpected_error,
1577                            p_token1           => g_sqlcode_token,
1578                            p_token1_value     => SQLCODE,
1579                            p_token2           => g_sqlerrm_token,
1580                            p_token2_value     => SQLERRM);
1581        -- notify caller of an UNEXPECTED error
1582        l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1583        RETURN(l_return_status);
1584   END Validate_Record;
1585 
1586   /*********************** END MANUAL CODE **********************************/
1587 
1588   ---------------------------------------------------------------------------
1589   -- PROCEDURE Migrate
1590   ---------------------------------------------------------------------------
1591   PROCEDURE migrate (
1592     p_from	IN aelv_rec_type,
1593     p_to	IN OUT NOCOPY ael_rec_type
1594   ) IS
1595   BEGIN
1596     p_to.ae_line_id := p_from.ae_line_id;
1597     p_to.code_combination_id := p_from.code_combination_id;
1598     p_to.AE_HEADER_ID := p_from.AE_HEADER_ID;
1599     p_to.currency_conversion_type := p_from.currency_conversion_type;
1600     p_to.org_id := p_from.org_id;
1601     p_to.AE_LINE_NUMBER := p_from.AE_LINE_NUMBER;
1602     p_to.AE_LINE_TYPE_CODE := p_from.AE_LINE_TYPE_CODE;
1603     p_to.source_table := p_from.source_table;
1604     p_to.source_id := p_from.source_id;
1605     p_to.object_version_number := p_from.object_version_number;
1606     p_to.currency_code := p_from.currency_code;
1607     p_to.currency_conversion_date := p_from.currency_conversion_date;
1608     p_to.currency_conversion_rate := p_from.currency_conversion_rate;
1609     p_to.ENTERED_DR := p_from.ENTERED_DR;
1610     p_to.ENTERED_CR := p_from.ENTERED_CR;
1611     p_to.ACCOUNTED_DR := p_from.ACCOUNTED_DR;
1612     p_to.ACCOUNTED_CR := p_from.ACCOUNTED_CR;
1613     p_to.reference1 := p_from.reference1;
1614     p_to.reference2 := p_from.reference2;
1615     p_to.reference3 := p_from.reference3;
1616     p_to.reference4 := p_from.reference4;
1617     p_to.reference5 := p_from.reference5;
1618     p_to.reference6 := p_from.reference6;
1619     p_to.reference7 := p_from.reference7;
1620     p_to.reference8 := p_from.reference8;
1621     p_to.reference9 := p_from.reference9;
1622     p_to.reference10 := p_from.reference10;
1623     p_to.description := p_from.description;
1624     p_to.third_party_id := p_from.third_party_id;
1625     p_to.third_party_sub_id := p_from.third_party_sub_id;
1626     p_to.STAT_AMOUNT := p_from.STAT_AMOUNT;
1627     p_to.ussgl_transaction_code := p_from.ussgl_transaction_code;
1628     p_to.subledger_doc_sequence_id := p_from.subledger_doc_sequence_id;
1629     p_to.accounting_error_code := p_from.accounting_error_code;
1630     p_to.gl_transfer_error_code := p_from.gl_transfer_error_code;
1631     p_to.GL_SL_LINK_ID := p_from.GL_SL_LINK_ID;
1632     p_to.taxable_ENTERED_DR := p_from.taxable_ENTERED_DR;
1633     p_to.taxable_ENTERED_CR := p_from.taxable_ENTERED_CR;
1634     p_to.taxable_ACCOUNTED_DR := p_from.taxable_ACCOUNTED_DR;
1635     p_to.taxable_ACCOUNTED_CR := p_from.taxable_ACCOUNTED_CR;
1636     p_to.applied_from_trx_hdr_table := p_from.applied_from_trx_hdr_table;
1637     p_to.applied_from_trx_hdr_id := p_from.applied_from_trx_hdr_id;
1638     p_to.applied_to_trx_hdr_table := p_from.applied_to_trx_hdr_table;
1639     p_to.applied_to_trx_hdr_id := p_from.applied_to_trx_hdr_id;
1640     p_to.tax_link_id := p_from.tax_link_id;
1641     p_to.program_id := p_from.program_id;
1642     p_to.program_application_id := p_from.program_application_id;
1643     p_to.program_update_date := p_from.program_update_date;
1644     p_to.request_id := p_from.request_id;
1645     p_to.created_by := p_from.created_by;
1646     p_to.creation_date := p_from.creation_date;
1647     p_to.last_updated_by := p_from.last_updated_by;
1648     p_to.last_update_date := p_from.last_update_date;
1649     p_to.last_update_login := p_from.last_update_login;
1650     p_to.ACCOUNT_OVERLAY_SOURCE_ID := p_from.ACCOUNT_OVERLAY_SOURCE_ID;
1651     p_to.SUBLEDGER_DOC_SEQUENCE_VALUE := p_from.SUBLEDGER_DOC_SEQUENCE_VALUE;
1652     p_to.TAX_CODE_ID := p_from.TAX_CODE_ID;
1653   END migrate;
1654   PROCEDURE migrate (
1655     p_from	IN ael_rec_type,
1656     p_to	IN OUT NOCOPY aelv_rec_type
1657   ) IS
1658   BEGIN
1659     p_to.ae_line_id := p_from.ae_line_id;
1660     p_to.code_combination_id := p_from.code_combination_id;
1661     p_to.AE_HEADER_ID := p_from.AE_HEADER_ID;
1662     p_to.currency_conversion_type := p_from.currency_conversion_type;
1663     p_to.org_id := p_from.org_id;
1664     p_to.AE_LINE_NUMBER := p_from.AE_LINE_NUMBER;
1665     p_to.AE_LINE_TYPE_CODE := p_from.AE_LINE_TYPE_CODE;
1666     p_to.source_table := p_from.source_table;
1667     p_to.source_id := p_from.source_id;
1668     p_to.object_version_number := p_from.object_version_number;
1669     p_to.currency_code := p_from.currency_code;
1670     p_to.currency_conversion_date := p_from.currency_conversion_date;
1671     p_to.currency_conversion_rate := p_from.currency_conversion_rate;
1672     p_to.ENTERED_DR := p_from.ENTERED_DR;
1673     p_to.ENTERED_CR := p_from.ENTERED_CR;
1674     p_to.ACCOUNTED_DR := p_from.ACCOUNTED_DR;
1675     p_to.ACCOUNTED_CR := p_from.ACCOUNTED_CR;
1676     p_to.reference1 := p_from.reference1;
1677     p_to.reference2 := p_from.reference2;
1678     p_to.reference3 := p_from.reference3;
1679     p_to.reference4 := p_from.reference4;
1680     p_to.reference5 := p_from.reference5;
1681     p_to.reference6 := p_from.reference6;
1682     p_to.reference7 := p_from.reference7;
1683     p_to.reference8 := p_from.reference8;
1684     p_to.reference9 := p_from.reference9;
1685     p_to.reference10 := p_from.reference10;
1686     p_to.description := p_from.description;
1687     p_to.third_party_id := p_from.third_party_id;
1688     p_to.third_party_sub_id := p_from.third_party_sub_id;
1689     p_to.STAT_AMOUNT := p_from.STAT_AMOUNT;
1690     p_to.ussgl_transaction_code := p_from.ussgl_transaction_code;
1691     p_to.subledger_doc_sequence_id := p_from.subledger_doc_sequence_id;
1692     p_to.accounting_error_code := p_from.accounting_error_code;
1693     p_to.gl_transfer_error_code := p_from.gl_transfer_error_code;
1694     p_to.GL_SL_LINK_ID := p_from.GL_SL_LINK_ID;
1695     p_to.taxable_ENTERED_DR := p_from.taxable_ENTERED_DR;
1696     p_to.taxable_ENTERED_CR := p_from.taxable_ENTERED_CR;
1697     p_to.taxable_ACCOUNTED_DR := p_from.taxable_ACCOUNTED_DR;
1698     p_to.taxable_ACCOUNTED_CR := p_from.taxable_ACCOUNTED_CR;
1699     p_to.applied_from_trx_hdr_table := p_from.applied_from_trx_hdr_table;
1700     p_to.applied_from_trx_hdr_id := p_from.applied_from_trx_hdr_id;
1701     p_to.applied_to_trx_hdr_table := p_from.applied_to_trx_hdr_table;
1702     p_to.applied_to_trx_hdr_id := p_from.applied_to_trx_hdr_id;
1703     p_to.tax_link_id := p_from.tax_link_id;
1704     p_to.program_id := p_from.program_id;
1705     p_to.program_application_id := p_from.program_application_id;
1706     p_to.program_update_date := p_from.program_update_date;
1707     p_to.request_id := p_from.request_id;
1708     p_to.created_by := p_from.created_by;
1709     p_to.creation_date := p_from.creation_date;
1710     p_to.last_updated_by := p_from.last_updated_by;
1711     p_to.last_update_date := p_from.last_update_date;
1712     p_to.last_update_login := p_from.last_update_login;
1713     p_to.ACCOUNT_OVERLAY_SOURCE_ID := p_from.ACCOUNT_OVERLAY_SOURCE_ID;
1714     p_to.SUBLEDGER_DOC_SEQUENCE_VALUE := p_from.SUBLEDGER_DOC_SEQUENCE_VALUE;
1715     p_to.TAX_CODE_ID := p_from.TAX_CODE_ID;
1716   END migrate;
1717 
1718   ---------------------------------------------------------------------------
1719   -- PROCEDURE validate_row
1720   ---------------------------------------------------------------------------
1721   -------------------------------------
1722   -- validate_row for:OKL_AE_LINES_V --
1723   -------------------------------------
1724   PROCEDURE validate_row(
1725     p_api_version                  IN NUMBER,
1726     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1727     x_return_status                OUT NOCOPY VARCHAR2,
1728     x_msg_count                    OUT NOCOPY NUMBER,
1729     x_msg_data                     OUT NOCOPY VARCHAR2,
1730     p_aelv_rec                     IN aelv_rec_type) IS
1731 
1732     l_api_version                 CONSTANT NUMBER := 1;
1733     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
1734     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1735     l_aelv_rec                     aelv_rec_type := p_aelv_rec;
1736     l_ael_rec                      ael_rec_type;
1737   BEGIN
1738     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1739                                               G_PKG_NAME,
1740                                               p_init_msg_list,
1741                                               l_api_version,
1742                                               p_api_version,
1743                                               '_PVT',
1744                                               x_return_status);
1745     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1746       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1747     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1748       RAISE Okc_Api.G_EXCEPTION_ERROR;
1749     END IF;
1750     --- Validate all non-missing attributes (Item Level Validation)
1751     l_return_status := Validate_Attributes(l_aelv_rec);
1752     --- If any errors happen abort API
1753     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1754       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1755     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1756       RAISE Okc_Api.G_EXCEPTION_ERROR;
1757     END IF;
1758     l_return_status := Validate_Record(l_aelv_rec);
1759     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1760       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1761     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1762       RAISE Okc_Api.G_EXCEPTION_ERROR;
1763     END IF;
1764     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1765   EXCEPTION
1766     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1767       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1768       (
1769         l_api_name,
1770         G_PKG_NAME,
1771         'OKC_API.G_RET_STS_ERROR',
1772         x_msg_count,
1773         x_msg_data,
1774         '_PVT'
1775       );
1776     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1777       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1778       (
1779         l_api_name,
1780         G_PKG_NAME,
1781         'OKC_API.G_RET_STS_UNEXP_ERROR',
1782         x_msg_count,
1783         x_msg_data,
1784         '_PVT'
1785       );
1786     WHEN OTHERS THEN
1787       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1788       (
1789         l_api_name,
1790         G_PKG_NAME,
1791         'OTHERS',
1792         x_msg_count,
1793         x_msg_data,
1794         '_PVT'
1795       );
1796   END validate_row;
1797   ------------------------------------------
1798   -- PL/SQL TBL validate_row for:AELV_TBL --
1799   ------------------------------------------
1800   PROCEDURE validate_row(
1801     p_api_version                  IN NUMBER,
1802     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1803     x_return_status                OUT NOCOPY VARCHAR2,
1804     x_msg_count                    OUT NOCOPY NUMBER,
1805     x_msg_data                     OUT NOCOPY VARCHAR2,
1806     p_aelv_tbl                     IN aelv_tbl_type) IS
1807 
1808     l_api_version                 CONSTANT NUMBER := 1;
1809     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1810     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1811     i                              NUMBER := 0;
1812     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1813 
1814   BEGIN
1815     Okc_Api.init_msg_list(p_init_msg_list);
1816     -- Make sure PL/SQL table has records in it before passing
1817     IF (p_aelv_tbl.COUNT > 0) THEN
1818       i := p_aelv_tbl.FIRST;
1819       LOOP
1820         validate_row (
1821           p_api_version                  => p_api_version,
1822           p_init_msg_list                => Okc_Api.G_FALSE,
1823           x_return_status                => x_return_status,
1824           x_msg_count                    => x_msg_count,
1825           x_msg_data                     => x_msg_data,
1826           p_aelv_rec                     => p_aelv_tbl(i));
1827 
1828         -- store the highest degree of error
1829 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
1830            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
1831               l_overall_status := x_return_status;
1832            END IF;
1833 	  END IF;
1834 
1835         EXIT WHEN (i = p_aelv_tbl.LAST);
1836         i := p_aelv_tbl.NEXT(i);
1837       END LOOP;
1838 	  -- return overall status
1839 	  x_return_status := l_overall_status;
1840 
1841     END IF;
1842   EXCEPTION
1843     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
1844       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
1845       (
1846         l_api_name,
1847         G_PKG_NAME,
1848         'OKC_API.G_RET_STS_ERROR',
1849         x_msg_count,
1850         x_msg_data,
1851         '_PVT'
1852       );
1853     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1854       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1855       (
1856         l_api_name,
1857         G_PKG_NAME,
1858         'OKC_API.G_RET_STS_UNEXP_ERROR',
1859         x_msg_count,
1860         x_msg_data,
1861         '_PVT'
1862       );
1863     WHEN OTHERS THEN
1864       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
1865       (
1866         l_api_name,
1867         G_PKG_NAME,
1868         'OTHERS',
1869         x_msg_count,
1870         x_msg_data,
1871         '_PVT'
1872       );
1873   END validate_row;
1874 
1875   ---------------------------------------------------------------------------
1876   -- PROCEDURE insert_row
1877   ---------------------------------------------------------------------------
1878   ---------------------------------
1879   -- insert_row for:OKL_AE_LINES --
1880   ---------------------------------
1881   PROCEDURE insert_row(
1882     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
1883     x_return_status                OUT NOCOPY VARCHAR2,
1884     x_msg_count                    OUT NOCOPY NUMBER,
1885     x_msg_data                     OUT NOCOPY VARCHAR2,
1886     p_ael_rec                      IN ael_rec_type,
1887     x_ael_rec                      OUT NOCOPY ael_rec_type) IS
1888 
1889     l_api_version                 CONSTANT NUMBER := 1;
1890     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_insert_row';
1891     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1892     l_ael_rec                      ael_rec_type := p_ael_rec;
1893     l_def_ael_rec                  ael_rec_type;
1894     -------------------------------------
1895     -- Set_Attributes for:OKL_AE_LINES --
1896     -------------------------------------
1897     FUNCTION Set_Attributes (
1898       p_ael_rec IN  ael_rec_type,
1899       x_ael_rec OUT NOCOPY ael_rec_type
1900     ) RETURN VARCHAR2 IS
1901       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1902     BEGIN
1903       x_ael_rec := p_ael_rec;
1904       RETURN(l_return_status);
1905     END Set_Attributes;
1906   BEGIN
1907   l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
1908                                               p_init_msg_list,
1909                                               '_PVT',
1910                                               x_return_status);
1911     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1912       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1913     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1914       RAISE Okc_Api.G_EXCEPTION_ERROR;
1915     END IF;
1916     --- Setting item attributes
1917     l_return_status := Set_Attributes(
1918       p_ael_rec,                         -- IN
1919       l_ael_rec);                        -- OUT
1920     --- If any errors happen abort API
1921     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1922       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1923     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1924       RAISE Okc_Api.G_EXCEPTION_ERROR;
1925     END IF;
1926     INSERT INTO OKL_AE_LINES(
1927         ae_line_id,
1928         code_combination_id,
1929         AE_HEADER_ID,
1930         currency_conversion_type,
1931         org_id,
1932         AE_LINE_NUMBER,
1933         AE_LINE_TYPE_CODE,
1934         source_table,
1935         source_id,
1936         object_version_number,
1937         currency_code,
1938         currency_conversion_date,
1939         currency_conversion_rate,
1940         ENTERED_DR,
1941         ENTERED_CR,
1942         ACCOUNTED_DR,
1943         ACCOUNTED_CR,
1944         reference1,
1945         reference2,
1946         reference3,
1947         reference4,
1948         reference5,
1949         reference6,
1950         reference7,
1951         reference8,
1952         reference9,
1953         reference10,
1954         description,
1955         third_party_id,
1956         third_party_sub_id,
1957         STAT_AMOUNT,
1958         ussgl_transaction_code,
1959         subledger_doc_sequence_id,
1960         accounting_error_code,
1961         gl_transfer_error_code,
1962         GL_SL_LINK_ID,
1963         taxable_ENTERED_DR,
1964         taxable_ENTERED_CR,
1965         taxable_ACCOUNTED_DR,
1966         taxable_ACCOUNTED_CR,
1967         applied_from_trx_hdr_table,
1968         applied_from_trx_hdr_id,
1969         applied_to_trx_hdr_table,
1970         applied_to_trx_hdr_id,
1971         tax_link_id,
1972         program_id,
1973         program_application_id,
1974         program_update_date,
1975         request_id,
1976         created_by,
1977         creation_date,
1978         last_updated_by,
1979         last_update_date,
1980         LAST_UPDATE_LOGIN,
1981         ACCOUNT_OVERLAY_SOURCE_ID,
1982         SUBLEDGER_DOC_SEQUENCE_VALUE,
1983         TAX_CODE_ID)
1984       VALUES (
1985         l_ael_rec.ae_line_id,
1986         l_ael_rec.code_combination_id,
1987         l_ael_rec.AE_HEADER_ID,
1988         l_ael_rec.currency_conversion_type,
1989         l_ael_rec.org_id,
1990         l_ael_rec.AE_LINE_NUMBER,
1991         l_ael_rec.AE_LINE_TYPE_CODE,
1992         l_ael_rec.source_table,
1993         l_ael_rec.source_id,
1994         l_ael_rec.object_version_number,
1995         l_ael_rec.currency_code,
1996         l_ael_rec.currency_conversion_date,
1997         l_ael_rec.currency_conversion_rate,
1998         l_ael_rec.ENTERED_DR,
1999         l_ael_rec.ENTERED_CR,
2000         l_ael_rec.ACCOUNTED_DR,
2001         l_ael_rec.ACCOUNTED_CR,
2002         l_ael_rec.reference1,
2003         l_ael_rec.reference2,
2004         l_ael_rec.reference3,
2005         l_ael_rec.reference4,
2006         l_ael_rec.reference5,
2007         l_ael_rec.reference6,
2008         l_ael_rec.reference7,
2009         l_ael_rec.reference8,
2010         l_ael_rec.reference9,
2011         l_ael_rec.reference10,
2012         l_ael_rec.description,
2013         l_ael_rec.third_party_id,
2014         l_ael_rec.third_party_sub_id,
2015         l_ael_rec.STAT_AMOUNT,
2016         l_ael_rec.ussgl_transaction_code,
2017         l_ael_rec.subledger_doc_sequence_id,
2018         l_ael_rec.accounting_error_code,
2019         l_ael_rec.gl_transfer_error_code,
2020         l_ael_rec.GL_SL_LINK_ID,
2021         l_ael_rec.taxable_ENTERED_DR,
2022         l_ael_rec.taxable_ENTERED_CR,
2023         l_ael_rec.taxable_ACCOUNTED_DR,
2024         l_ael_rec.taxable_ACCOUNTED_CR,
2025         l_ael_rec.applied_from_trx_hdr_table,
2026         l_ael_rec.applied_from_trx_hdr_id,
2027         l_ael_rec.applied_to_trx_hdr_table,
2028         l_ael_rec.applied_to_trx_hdr_id,
2029         l_ael_rec.tax_link_id,
2030         l_ael_rec.PROGRAM_ID,
2031         l_ael_rec.program_application_id,
2032         l_ael_rec.program_update_date,
2033         l_ael_rec.request_id,
2034         l_ael_rec.created_by,
2035         l_ael_rec.creation_date,
2036         l_ael_rec.last_updated_by,
2037         l_ael_rec.last_update_date,
2038         l_ael_rec.LAST_UPDATE_LOGIN,
2039 		l_ael_rec.ACCOUNT_OVERLAY_SOURCE_ID,
2040         l_ael_rec.SUBLEDGER_DOC_SEQUENCE_VALUE,
2041         l_ael_rec.TAX_CODE_ID);
2042     -- Set OUT values
2043     x_ael_rec := l_ael_rec;
2044     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2045   EXCEPTION
2046     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2047       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2048       (
2049         l_api_name,
2050         G_PKG_NAME,
2051         'OKC_API.G_RET_STS_ERROR',
2052         x_msg_count,
2053         x_msg_data,
2054         '_PVT'
2055       );
2056     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2057       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2058       (
2059         l_api_name,
2060         G_PKG_NAME,
2061         'OKC_API.G_RET_STS_UNEXP_ERROR',
2062         x_msg_count,
2063         x_msg_data,
2064         '_PVT'
2065       );
2066     WHEN OTHERS THEN
2067       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2068       (
2069         l_api_name,
2070         G_PKG_NAME,
2071         'OTHERS',
2072         x_msg_count,
2073         x_msg_data,
2074         '_PVT'
2075       );
2076   END insert_row;
2077   -----------------------------------
2078   -- insert_row for:OKL_AE_LINES_V --
2079   -----------------------------------
2080   PROCEDURE insert_row(
2081     p_api_version                  IN NUMBER,
2082     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2083     x_return_status                OUT NOCOPY VARCHAR2,
2084     x_msg_count                    OUT NOCOPY NUMBER,
2085     x_msg_data                     OUT NOCOPY VARCHAR2,
2086     p_aelv_rec                     IN aelv_rec_type,
2087     x_aelv_rec                     OUT NOCOPY aelv_rec_type) IS
2088 
2089     l_api_version                 CONSTANT NUMBER := 1;
2090     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
2091     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2092     l_aelv_rec                     aelv_rec_type;
2093     l_def_aelv_rec                 aelv_rec_type;
2094     l_ael_rec                      ael_rec_type;
2095     lx_ael_rec                     ael_rec_type;
2096     -------------------------------
2097     -- FUNCTION fill_who_columns --
2098     -------------------------------
2099     FUNCTION fill_who_columns (
2100       p_aelv_rec	IN aelv_rec_type
2101     ) RETURN aelv_rec_type IS
2102       l_aelv_rec	aelv_rec_type := p_aelv_rec;
2103     BEGIN
2104       l_aelv_rec.CREATION_DATE := SYSDATE;
2105       l_aelv_rec.CREATED_BY := Fnd_Global.USER_ID;
2106       l_aelv_rec.LAST_UPDATE_DATE := SYSDATE;
2107       l_aelv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
2108       l_aelv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
2109       RETURN(l_aelv_rec);
2110     END fill_who_columns;
2111     ---------------------------------------
2112     -- Set_Attributes for:OKL_AE_LINES_V --
2113     ---------------------------------------
2114     FUNCTION Set_Attributes (
2115       p_aelv_rec IN  aelv_rec_type,
2116       x_aelv_rec OUT NOCOPY aelv_rec_type
2117     ) RETURN VARCHAR2 IS
2118       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2119     BEGIN
2120       x_aelv_rec := p_aelv_rec;
2121       x_aelv_rec.OBJECT_VERSION_NUMBER := 1;
2122       x_aelv_rec.ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID();
2123 	  SELECT DECODE(Fnd_Global.CONC_REQUEST_ID, -1, NULL, Fnd_Global.CONC_REQUEST_ID),
2124 	  		 DECODE(Fnd_Global.PROG_APPL_ID, -1, NULL, Fnd_Global.PROG_APPL_ID),
2125 			 DECODE(Fnd_Global.CONC_PROGRAM_ID, -1, NULL, Fnd_Global.CONC_PROGRAM_ID),
2126 			 DECODE(Fnd_Global.CONC_REQUEST_ID, -1, NULL, SYSDATE)
2127 	  INTO  x_aelv_rec.REQUEST_ID
2128 	  	     ,x_aelv_rec.PROGRAM_APPLICATION_ID
2129 		     ,x_aelv_rec.PROGRAM_ID
2130 		     ,x_aelv_rec.PROGRAM_UPDATE_DATE
2131 	  FROM DUAL;
2132       RETURN(l_return_status);
2133     END Set_Attributes;
2134   BEGIN
2135     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2136                                               G_PKG_NAME,
2137                                               p_init_msg_list,
2138                                               l_api_version,
2139                                               p_api_version,
2140                                               '_PVT',
2141                                               x_return_status);
2142     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2143       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2144     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2145       RAISE Okc_Api.G_EXCEPTION_ERROR;
2146     END IF;
2147     l_aelv_rec := null_out_defaults(p_aelv_rec);
2148     -- Set primary key value
2149     l_aelv_rec.ae_line_id := get_seq_id;
2150     --- Setting item attributes
2151     l_return_status := Set_Attributes(
2152       l_aelv_rec,                        -- IN
2153       l_def_aelv_rec);                   -- OUT
2154 	  --- If any errors happen abort API
2155     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2156       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2157     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2158       RAISE Okc_Api.G_EXCEPTION_ERROR;
2159     END IF;
2160     l_def_aelv_rec := fill_who_columns(l_def_aelv_rec);
2161     --- Validate all non-missing attributes (Item Level Validation)
2162     l_return_status := Validate_Attributes(l_def_aelv_rec);
2163 		 --- If any errors happen abort API
2164     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2165       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2166     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2167       RAISE Okc_Api.G_EXCEPTION_ERROR;
2168     END IF;
2169     l_return_status := Validate_Record(l_def_aelv_rec);
2170 		  IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2171       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2172     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2173       RAISE Okc_Api.G_EXCEPTION_ERROR;
2174     END IF;
2175     --------------------------------------
2176     -- Move VIEW record to "Child" records
2177     --------------------------------------
2178     migrate(l_def_aelv_rec, l_ael_rec);
2179     --------------------------------------------
2180     -- Call the INSERT_ROW for each child record
2181     --------------------------------------------
2182     insert_row(
2183       p_init_msg_list,
2184       x_return_status,
2185       x_msg_count,
2186       x_msg_data,
2187       l_ael_rec,
2188       lx_ael_rec
2189     );
2190 		  IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2191       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2192     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2193       RAISE Okc_Api.G_EXCEPTION_ERROR;
2194     END IF;
2195     migrate(lx_ael_rec, l_def_aelv_rec);
2196     -- Set OUT values
2197     x_aelv_rec := l_def_aelv_rec;
2198     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2199 	NULL;
2200   EXCEPTION
2201     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2202       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2203       (
2204         l_api_name,
2205         G_PKG_NAME,
2206         'OKC_API.G_RET_STS_ERROR',
2207         x_msg_count,
2208         x_msg_data,
2209         '_PVT'
2210       );
2211     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2212       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2213       (
2214         l_api_name,
2215         G_PKG_NAME,
2216         'OKC_API.G_RET_STS_UNEXP_ERROR',
2217         x_msg_count,
2218         x_msg_data,
2219         '_PVT'
2220       );
2221     WHEN OTHERS THEN
2222       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2223       (
2224         l_api_name,
2225         G_PKG_NAME,
2226         'OTHERS',
2227         x_msg_count,
2228         x_msg_data,
2229         '_PVT'
2230       );
2231   END insert_row;
2232   ----------------------------------------
2233   -- PL/SQL TBL insert_row for:AELV_TBL --
2234   ----------------------------------------
2235   PROCEDURE insert_row(
2236     p_api_version                  IN NUMBER,
2237     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2238     x_return_status                OUT NOCOPY VARCHAR2,
2239     x_msg_count                    OUT NOCOPY NUMBER,
2240     x_msg_data                     OUT NOCOPY VARCHAR2,
2241     p_aelv_tbl                     IN aelv_tbl_type,
2242     x_aelv_tbl                     OUT NOCOPY aelv_tbl_type) IS
2243 
2244     l_api_version                 CONSTANT NUMBER := 1;
2245     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2246     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2247     i                              NUMBER := 0;
2248     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2249 
2250   BEGIN
2251     Okc_Api.init_msg_list(p_init_msg_list);
2252     -- Make sure PL/SQL table has records in it before passing
2253     IF (p_aelv_tbl.COUNT > 0) THEN
2254       i := p_aelv_tbl.FIRST;
2255       LOOP
2256         insert_row (
2257           p_api_version                  => p_api_version,
2258           p_init_msg_list                => Okc_Api.G_FALSE,
2259           x_return_status                => x_return_status,
2260           x_msg_count                    => x_msg_count,
2261           x_msg_data                     => x_msg_data,
2262           p_aelv_rec                     => p_aelv_tbl(i),
2263           x_aelv_rec                     => x_aelv_tbl(i));
2264 
2265         -- store the highest degree of error
2266 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
2267            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
2268               l_overall_status := x_return_status;
2269            END IF;
2270 	  END IF;
2271 
2272         EXIT WHEN (i = p_aelv_tbl.LAST);
2273         i := p_aelv_tbl.NEXT(i);
2274       END LOOP;
2275 	  -- return overall status
2276 	  x_return_status := l_overall_status;
2277 
2278     END IF;
2279   EXCEPTION
2280     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2281       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2282       (
2283         l_api_name,
2284         G_PKG_NAME,
2285         'OKC_API.G_RET_STS_ERROR',
2286         x_msg_count,
2287         x_msg_data,
2288         '_PVT'
2289       );
2290     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2291       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2292       (
2293         l_api_name,
2294         G_PKG_NAME,
2295         'OKC_API.G_RET_STS_UNEXP_ERROR',
2296         x_msg_count,
2297         x_msg_data,
2298         '_PVT'
2299       );
2300     WHEN OTHERS THEN
2301       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2302       (
2303         l_api_name,
2304         G_PKG_NAME,
2305         'OTHERS',
2306         x_msg_count,
2307         x_msg_data,
2308         '_PVT'
2309       );
2310   END insert_row;
2311 
2312     --gboomina bug#4648697..changes for perf start
2313      --added new procedure for bulk insert
2314      ----------------------------------------
2315      -- PL/SQL TBL insert_row_perf for:AELV_TBL --
2316      ----------------------------------------
2317      PROCEDURE insert_row_perf(
2318        p_api_version                  IN NUMBER,
2319        p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2320        x_return_status                OUT NOCOPY VARCHAR2,
2321        x_msg_count                    OUT NOCOPY NUMBER,
2322        x_msg_data                     OUT NOCOPY VARCHAR2,
2323        p_aelv_tbl                     IN aelv_tbl_type,
2324        x_aelv_tbl                     OUT NOCOPY aelv_tbl_type) IS
2325 
2326        l_tabsize                       NUMBER := p_aelv_tbl.COUNT;
2327        ae_line_id_tbl                  ae_line_id_typ;
2328        account_overlay_source_id_tbl   account_overlay_source_id_typ;
2329        subledger_doc_seq_value_tbl     subledger_doc_seq_value_typ;
2330        tax_code_id_tbl                 tax_code_id_typ;
2331        ae_line_number_tbl              ae_line_number_typ;
2332        code_combination_id_tbl         code_combination_id_typ;
2333        ae_header_id_tbl                ae_header_id_typ;
2334        currency_conversion_type_tbl    currency_conversion_type_typ;
2335        ae_line_type_code_tbl           ae_line_type_code_typ;
2336        source_table_tbl                source_table_typ;
2337        source_id_tbl                   source_id_typ;
2338        object_version_number_tbl       object_version_number_typ;
2339        currency_code_tbl               currency_code_typ;
2340        currency_conversion_date_tbl    currency_conversion_date_typ;
2341        currency_conversion_rate_tbl    currency_conversion_rate_typ;
2342        entered_dr_tbl                  entered_dr_typ;
2343        entered_cr_tbl                  entered_cr_typ;
2344        accounted_dr_tbl                accounted_dr_typ;
2345        accounted_cr_tbl                accounted_cr_typ;
2346        reference1_tbl                  reference1_typ;
2347        reference2_tbl                  reference2_typ;
2348        reference3_tbl                  reference3_typ;
2349        reference4_tbl                  reference4_typ;
2350        reference5_tbl                  reference5_typ;
2351        reference6_tbl                  reference6_typ;
2352        reference7_tbl                  reference7_typ;
2353        reference8_tbl                  reference8_typ;
2354        reference9_tbl                  reference9_typ;
2355        reference10_tbl                 reference10_typ;
2356        description_tbl                 description_typ;
2357        third_party_id_tbl              third_party_id_typ;
2358        third_party_sub_id_tbl          third_party_sub_id_typ;
2359        stat_amount_tbl                 stat_amount_typ;
2360        ussgl_transaction_code_tbl      ussgl_transaction_code_typ;
2361        subledger_doc_sequence_id_tbl   subledger_doc_sequence_id_typ;
2362        accounting_error_code_tbl       accounting_error_code_typ;
2363        gl_transfer_error_code_tbl      gl_transfer_error_code_typ;
2364        gl_sl_link_id_tbl               gl_sl_link_id_typ;
2365        taxable_entered_dr_tbl          taxable_entered_dr_typ;
2366        taxable_entered_cr_tbl          taxable_entered_cr_typ;
2367        taxable_accounted_dr_tbl        taxable_accounted_dr_typ;
2368        taxable_accounted_cr_tbl        taxable_accounted_cr_typ;
2369        applied_from_trx_hdr_tab_tbl    applied_from_trx_hdr_tab_typ;
2370        applied_from_trx_hdr_id_tbl     applied_from_trx_hdr_id_typ;
2371        applied_to_trx_hdr_table_tbl    applied_to_trx_hdr_table_typ;
2372        applied_to_trx_hdr_id_tbl       applied_to_trx_hdr_id_typ;
2373        tax_link_id_tbl                 tax_link_id_typ;
2374        org_id_tbl                      org_id_typ;
2375        program_id_tbl                  program_id_typ;
2376        program_application_id_tbl      program_application_id_typ;
2377        program_update_date_tbl         program_update_date_typ;
2378        request_id_tbl                  request_id_typ;
2379        created_by_tbl                  created_by_typ;
2380        creation_date_tbl               creation_date_typ;
2381        last_updated_by_tbl             last_updated_by_typ;
2382        last_update_date_tbl            last_update_date_typ;
2383        last_update_login_tbl           last_update_login_typ;
2384        j                               NUMBER := 0;
2385 
2386      BEGIN
2387        IF (p_aelv_tbl.COUNT > 0) THEN
2388 
2389          --populate column tables
2390          FOR i IN p_aelv_tbl.FIRST..p_aelv_tbl.LAST
2391          LOOP
2392            j := j+1;
2393 
2394            ae_line_id_tbl(j)                 :=  p_aelv_tbl(i).ae_line_id;
2395            account_overlay_source_id_tbl(j)  :=  p_aelv_tbl(i).account_overlay_source_id;
2396            subledger_doc_seq_value_tbl(j)    :=  p_aelv_tbl(i).subledger_doc_sequence_value;
2397            tax_code_id_tbl(j)                :=  p_aelv_tbl(i).tax_code_id;
2398            ae_line_number_tbl(j)             :=  p_aelv_tbl(i).ae_line_number;
2399            code_combination_id_tbl(j)        :=  p_aelv_tbl(i).code_combination_id;
2400            ae_header_id_tbl(j)               :=  p_aelv_tbl(i).ae_header_id;
2401            currency_conversion_type_tbl(j)   :=  p_aelv_tbl(i).currency_conversion_type;
2402            ae_line_type_code_tbl(j)          :=  p_aelv_tbl(i).ae_line_type_code;
2403            source_table_tbl(j)               :=  p_aelv_tbl(i).source_table;
2404            source_id_tbl(j)                  :=  p_aelv_tbl(i).source_id;
2405            object_version_number_tbl(j)      :=  p_aelv_tbl(i).object_version_number;
2406            currency_code_tbl(j)              :=  p_aelv_tbl(i).currency_code;
2407            currency_conversion_date_tbl(j)   :=  p_aelv_tbl(i).currency_conversion_date;
2408            currency_conversion_rate_tbl(j)   :=  p_aelv_tbl(i).currency_conversion_rate;
2409            entered_dr_tbl(j)                 :=  p_aelv_tbl(i).entered_dr;
2410            entered_cr_tbl(j)                 :=  p_aelv_tbl(i).entered_cr;
2411            accounted_dr_tbl(j)               :=  p_aelv_tbl(i).accounted_dr;
2412            accounted_cr_tbl(j)               :=  p_aelv_tbl(i).accounted_cr;
2413            reference1_tbl(j)                 :=  p_aelv_tbl(i).reference1;
2414            reference2_tbl(j)                 :=  p_aelv_tbl(i).reference2;
2415            reference3_tbl(j)                 :=  p_aelv_tbl(i).reference3;
2416            reference4_tbl(j)                 :=  p_aelv_tbl(i).reference4;
2417            reference5_tbl(j)                 :=  p_aelv_tbl(i).reference5;
2418            reference6_tbl(j)                 :=  p_aelv_tbl(i).reference6;
2419            reference7_tbl(j)                 :=  p_aelv_tbl(i).reference7;
2420            reference8_tbl(j)                 :=  p_aelv_tbl(i).reference8;
2421            reference9_tbl(j)                 :=  p_aelv_tbl(i).reference9;
2422            reference10_tbl(j)                :=  p_aelv_tbl(i).reference10;
2423            description_tbl(j)                :=  p_aelv_tbl(i).description;
2424            third_party_id_tbl(j)             :=  p_aelv_tbl(i).third_party_id;
2425            third_party_sub_id_tbl(j)         :=  p_aelv_tbl(i).third_party_sub_id;
2426            stat_amount_tbl(j)                :=  p_aelv_tbl(i).stat_amount;
2427            ussgl_transaction_code_tbl(j)     :=  p_aelv_tbl(i).ussgl_transaction_code;
2428            subledger_doc_sequence_id_tbl(j)  :=  p_aelv_tbl(i).subledger_doc_sequence_id;
2429            accounting_error_code_tbl(j)      :=  p_aelv_tbl(i).accounting_error_code;
2430            gl_transfer_error_code_tbl(j)     :=  p_aelv_tbl(i).gl_transfer_error_code;
2431            gl_sl_link_id_tbl(j)              :=  p_aelv_tbl(i).gl_sl_link_id;
2432            taxable_entered_dr_tbl(j)         :=  p_aelv_tbl(i).taxable_entered_dr;
2433            taxable_entered_cr_tbl(j)         :=  p_aelv_tbl(i).taxable_entered_cr;
2434            taxable_accounted_dr_tbl(j)       :=  p_aelv_tbl(i).taxable_accounted_dr;
2435            taxable_accounted_cr_tbl(j)       :=  p_aelv_tbl(i).taxable_accounted_cr;
2436            applied_from_trx_hdr_tab_tbl(j)   :=  p_aelv_tbl(i).applied_from_trx_hdr_table;
2437            applied_from_trx_hdr_id_tbl(j)    :=  p_aelv_tbl(i).applied_from_trx_hdr_id;
2438            applied_to_trx_hdr_table_tbl(j)   :=  p_aelv_tbl(i).applied_to_trx_hdr_table;
2439            applied_to_trx_hdr_id_tbl(j)      :=  p_aelv_tbl(i).applied_to_trx_hdr_id;
2440            tax_link_id_tbl(j)                :=  p_aelv_tbl(i).tax_link_id;
2441            org_id_tbl(j)                     :=  p_aelv_tbl(i).org_id;
2442            program_id_tbl(j)                 :=  p_aelv_tbl(i).program_id;
2443            program_application_id_tbl(j)     :=  p_aelv_tbl(i).program_application_id;
2444            program_update_date_tbl(j)        :=  p_aelv_tbl(i).program_update_date;
2445            request_id_tbl(j)                 :=  p_aelv_tbl(i).request_id;
2446            created_by_tbl(j)                 :=  p_aelv_tbl(i).created_by;
2447            creation_date_tbl(j)              :=  p_aelv_tbl(i).creation_date;
2448            last_updated_by_tbl(j)            :=  p_aelv_tbl(i).last_updated_by;
2449            last_update_date_tbl(j)           :=  p_aelv_tbl(i).last_update_date;
2450            last_update_login_tbl(j)          :=  p_aelv_tbl(i).last_update_login;
2451 
2452          END LOOP;
2453 
2454          --bulk insert into okl_ae_lines
2455          FORALL i IN 1..l_tabsize
2456            INSERT INTO OKL_AE_LINES(
2457                ae_line_id,
2458                code_combination_id,
2459                ae_header_id,
2460                currency_conversion_type,
2461                org_id,
2462                ae_line_number,
2463                ae_line_type_code,
2464                source_table,
2465                source_id,
2466                object_version_number,
2467                currency_code,
2468                currency_conversion_date,
2469                currency_conversion_rate,
2470                entered_dr,
2471                entered_cr,
2472                accounted_dr,
2473                accounted_cr,
2474                reference1,
2475                reference2,
2476                reference3,
2477                reference4,
2478                reference5,
2479                reference6,
2480                reference7,
2481                reference8,
2482                reference9,
2483                reference10,
2484                description,
2485                third_party_id,
2486                third_party_sub_id,
2487                stat_amount,
2488                ussgl_transaction_code,
2489                subledger_doc_sequence_id,
2490                accounting_error_code,
2491                gl_transfer_error_code,
2492                gl_sl_link_id,
2493                taxable_entered_dr,
2494                taxable_entered_cr,
2495                taxable_accounted_dr,
2496                taxable_accounted_cr,
2497                applied_from_trx_hdr_table,
2498                applied_from_trx_hdr_id,
2499                applied_to_trx_hdr_table,
2500                applied_to_trx_hdr_id,
2501                tax_link_id,
2502                program_id,
2503                program_application_id,
2504                program_update_date,
2505                request_id,
2506                created_by,
2507                creation_date,
2508                last_updated_by,
2509                last_update_date,
2510                last_update_login,
2511                account_overlay_source_id,
2512                subledger_doc_sequence_value,
2513                tax_code_id)
2514            VALUES (
2515                ae_line_id_tbl(i),
2516                code_combination_id_tbl(i),
2517                ae_header_id_tbl(i),
2518                currency_conversion_type_tbl(i),
2519                org_id_tbl(i),
2520                ae_line_number_tbl(i),
2521                ae_line_type_code_tbl(i),
2522                source_table_tbl(i),
2523                source_id_tbl(i),
2524                object_version_number_tbl(i),
2525                currency_code_tbl(i),
2526                currency_conversion_date_tbl(i),
2527                currency_conversion_rate_tbl(i),
2528                entered_dr_tbl(i),
2529                entered_cr_tbl(i),
2530                accounted_dr_tbl(i),
2531                accounted_cr_tbl(i),
2532                reference1_tbl(i),
2533                reference2_tbl(i),
2534                reference3_tbl(i),
2535                reference4_tbl(i),
2536                reference5_tbl(i),
2537                reference6_tbl(i),
2538                reference7_tbl(i),
2539                reference8_tbl(i),
2540                reference9_tbl(i),
2541                reference10_tbl(i),
2542                description_tbl(i),
2543                third_party_id_tbl(i),
2544                third_party_sub_id_tbl(i),
2545                stat_amount_tbl(i),
2546                ussgl_transaction_code_tbl(i),
2547                subledger_doc_sequence_id_tbl(i),
2548                accounting_error_code_tbl(i),
2549                gl_transfer_error_code_tbl(i),
2550                gl_sl_link_id_tbl(i),
2551                taxable_entered_dr_tbl(i),
2552                taxable_entered_cr_tbl(i),
2553                taxable_accounted_dr_tbl(i),
2554                taxable_accounted_cr_tbl(i),
2555                applied_from_trx_hdr_tab_tbl(i),
2556                applied_from_trx_hdr_id_tbl(i),
2557                applied_to_trx_hdr_table_tbl(i),
2558                applied_to_trx_hdr_id_tbl(i),
2559                tax_link_id_tbl(i),
2560                program_id_tbl(i),
2561                program_application_id_tbl(i),
2562                program_update_date_tbl(i),
2563                request_id_tbl(i),
2564                created_by_tbl(i),
2565                creation_date_tbl(i),
2566                last_updated_by_tbl(i),
2567                last_update_date_tbl(i),
2568                last_update_login_tbl(i),
2569                account_overlay_source_id_tbl(i),
2570                subledger_doc_seq_value_tbl(i),
2571                tax_code_id_tbl(i));
2572 
2573        END IF;
2574        --set OUT params
2575        x_aelv_tbl := p_aelv_tbl;
2576 
2577      END insert_row_perf;
2578      --gboomina bug#4648697..changes for perf end
2579 
2580   ---------------------------------------------------------------------------
2581   -- PROCEDURE lock_row
2582   ---------------------------------------------------------------------------
2583   -------------------------------
2584   -- lock_row for:OKL_AE_LINES --
2585   -------------------------------
2586   PROCEDURE lock_row(
2587     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2588     x_return_status                OUT NOCOPY VARCHAR2,
2589     x_msg_count                    OUT NOCOPY NUMBER,
2590     x_msg_data                     OUT NOCOPY VARCHAR2,
2591     p_ael_rec                      IN ael_rec_type) IS
2592 
2593     E_Resource_Busy               EXCEPTION;
2594     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2595     CURSOR lock_csr (p_ael_rec IN ael_rec_type) IS
2596     SELECT OBJECT_VERSION_NUMBER
2597       FROM OKL_AE_LINES
2598      WHERE ae_line_id = p_ael_rec.ae_line_id
2599        AND OBJECT_VERSION_NUMBER = p_ael_rec.object_version_number
2600     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2601 
2602     CURSOR  lchk_csr (p_ael_rec IN ael_rec_type) IS
2603     SELECT OBJECT_VERSION_NUMBER
2604       FROM OKL_AE_LINES
2605     WHERE ae_line_id = p_ael_rec.ae_line_id;
2606     l_api_version                 CONSTANT NUMBER := 1;
2607     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_lock_row';
2608     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2609     l_object_version_number       OKL_AE_LINES.OBJECT_VERSION_NUMBER%TYPE;
2610     lc_object_version_number      OKL_AE_LINES.OBJECT_VERSION_NUMBER%TYPE;
2611     l_row_notfound                BOOLEAN := FALSE;
2612     lc_row_notfound               BOOLEAN := FALSE;
2613   BEGIN
2614     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2615                                               p_init_msg_list,
2616                                               '_PVT',
2617                                               x_return_status);
2618     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2619       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2620     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2621       RAISE Okc_Api.G_EXCEPTION_ERROR;
2622     END IF;
2623     BEGIN
2624       OPEN lock_csr(p_ael_rec);
2625       FETCH lock_csr INTO l_object_version_number;
2626       l_row_notfound := lock_csr%NOTFOUND;
2627       CLOSE lock_csr;
2628     EXCEPTION
2629       WHEN E_Resource_Busy THEN
2630         IF (lock_csr%ISOPEN) THEN
2631           CLOSE lock_csr;
2632         END IF;
2633         Okc_Api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2634         RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
2635     END;
2636 
2637     IF ( l_row_notfound ) THEN
2638       OPEN lchk_csr(p_ael_rec);
2639       FETCH lchk_csr INTO lc_object_version_number;
2640       lc_row_notfound := lchk_csr%NOTFOUND;
2641       CLOSE lchk_csr;
2642     END IF;
2643     IF (lc_row_notfound) THEN
2644       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2645       RAISE Okc_Api.G_EXCEPTION_ERROR;
2646     ELSIF lc_object_version_number > p_ael_rec.object_version_number THEN
2647       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2648       RAISE Okc_Api.G_EXCEPTION_ERROR;
2649     ELSIF lc_object_version_number <> p_ael_rec.object_version_number THEN
2650       Okc_Api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2651       RAISE Okc_Api.G_EXCEPTION_ERROR;
2652     ELSIF lc_object_version_number = -1 THEN
2653       Okc_Api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2654       RAISE Okc_Api.G_EXCEPTION_ERROR;
2655     END IF;
2656     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2657   EXCEPTION
2658     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2659       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2660       (
2661         l_api_name,
2662         G_PKG_NAME,
2663         'OKC_API.G_RET_STS_ERROR',
2664         x_msg_count,
2665         x_msg_data,
2666         '_PVT'
2667       );
2668     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2669       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2670       (
2671         l_api_name,
2672         G_PKG_NAME,
2673         'OKC_API.G_RET_STS_UNEXP_ERROR',
2674         x_msg_count,
2675         x_msg_data,
2676         '_PVT'
2677       );
2678     WHEN OTHERS THEN
2679       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2680       (
2681         l_api_name,
2682         G_PKG_NAME,
2683         'OTHERS',
2684         x_msg_count,
2685         x_msg_data,
2686         '_PVT'
2687       );
2688   END lock_row;
2689   ---------------------------------
2690   -- lock_row for:OKL_AE_LINES_V --
2691   ---------------------------------
2692   PROCEDURE lock_row(
2693     p_api_version                  IN NUMBER,
2694     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2695     x_return_status                OUT NOCOPY VARCHAR2,
2696     x_msg_count                    OUT NOCOPY NUMBER,
2697     x_msg_data                     OUT NOCOPY VARCHAR2,
2698     p_aelv_rec                     IN aelv_rec_type) IS
2699 
2700     l_api_version                 CONSTANT NUMBER := 1;
2701     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
2702     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2703     l_ael_rec                      ael_rec_type;
2704   BEGIN
2705     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
2706                                               G_PKG_NAME,
2707                                               p_init_msg_list,
2708                                               l_api_version,
2709                                               p_api_version,
2710                                               '_PVT',
2711                                               x_return_status);
2712     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2713       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2714     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2715       RAISE Okc_Api.G_EXCEPTION_ERROR;
2716     END IF;
2717     --------------------------------------
2718     -- Move VIEW record to "Child" records
2719     --------------------------------------
2720     migrate(p_aelv_rec, l_ael_rec);
2721     --------------------------------------------
2722     -- Call the LOCK_ROW for each child record
2723     --------------------------------------------
2724     lock_row(
2725       p_init_msg_list,
2726       x_return_status,
2727       x_msg_count,
2728       x_msg_data,
2729       l_ael_rec
2730     );
2731     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2732       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2733     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2734       RAISE Okc_Api.G_EXCEPTION_ERROR;
2735     END IF;
2736     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2737   EXCEPTION
2738     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2739       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2740       (
2741         l_api_name,
2742         G_PKG_NAME,
2743         'OKC_API.G_RET_STS_ERROR',
2744         x_msg_count,
2745         x_msg_data,
2746         '_PVT'
2747       );
2748     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2749       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2750       (
2751         l_api_name,
2752         G_PKG_NAME,
2753         'OKC_API.G_RET_STS_UNEXP_ERROR',
2754         x_msg_count,
2755         x_msg_data,
2756         '_PVT'
2757       );
2758     WHEN OTHERS THEN
2759       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2760       (
2761         l_api_name,
2762         G_PKG_NAME,
2763         'OTHERS',
2764         x_msg_count,
2765         x_msg_data,
2766         '_PVT'
2767       );
2768   END lock_row;
2769   --------------------------------------
2770   -- PL/SQL TBL lock_row for:AELV_TBL --
2771   --------------------------------------
2772   PROCEDURE lock_row(
2773     p_api_version                  IN NUMBER,
2774     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2775     x_return_status                OUT NOCOPY VARCHAR2,
2776     x_msg_count                    OUT NOCOPY NUMBER,
2777     x_msg_data                     OUT NOCOPY VARCHAR2,
2778     p_aelv_tbl                     IN aelv_tbl_type) IS
2779 
2780     l_api_version                 CONSTANT NUMBER := 1;
2781     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2782     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2783     i                              NUMBER := 0;
2784     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2785 
2786   BEGIN
2787     Okc_Api.init_msg_list(p_init_msg_list);
2788     -- Make sure PL/SQL table has records in it before passing
2789     IF (p_aelv_tbl.COUNT > 0) THEN
2790       i := p_aelv_tbl.FIRST;
2791       LOOP
2792         lock_row (
2793           p_api_version                  => p_api_version,
2794           p_init_msg_list                => Okc_Api.G_FALSE,
2795           x_return_status                => x_return_status,
2796           x_msg_count                    => x_msg_count,
2797           x_msg_data                     => x_msg_data,
2798           p_aelv_rec                     => p_aelv_tbl(i));
2799 
2800         -- store the highest degree of error
2801 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
2802            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
2803               l_overall_status := x_return_status;
2804            END IF;
2805 	  END IF;
2806 
2807         EXIT WHEN (i = p_aelv_tbl.LAST);
2808         i := p_aelv_tbl.NEXT(i);
2809       END LOOP;
2810 	  -- return overall status
2811 	  x_return_status := l_overall_status;
2812 
2813     END IF;
2814   EXCEPTION
2815     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
2816       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
2817       (
2818         l_api_name,
2819         G_PKG_NAME,
2820         'OKC_API.G_RET_STS_ERROR',
2821         x_msg_count,
2822         x_msg_data,
2823         '_PVT'
2824       );
2825     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2826       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2827       (
2828         l_api_name,
2829         G_PKG_NAME,
2830         'OKC_API.G_RET_STS_UNEXP_ERROR',
2831         x_msg_count,
2832         x_msg_data,
2833         '_PVT'
2834       );
2835     WHEN OTHERS THEN
2836       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
2837       (
2838         l_api_name,
2839         G_PKG_NAME,
2840         'OTHERS',
2841         x_msg_count,
2842         x_msg_data,
2843         '_PVT'
2844       );
2845   END lock_row;
2846 
2847   ---------------------------------------------------------------------------
2848   -- PROCEDURE update_row
2849   ---------------------------------------------------------------------------
2850   ---------------------------------
2851   -- update_row for:OKL_AE_LINES --
2852   ---------------------------------
2853   PROCEDURE update_row(
2854     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
2855     x_return_status                OUT NOCOPY VARCHAR2,
2856     x_msg_count                    OUT NOCOPY NUMBER,
2857     x_msg_data                     OUT NOCOPY VARCHAR2,
2858     p_ael_rec                      IN ael_rec_type,
2859     x_ael_rec                      OUT NOCOPY ael_rec_type) IS
2860 
2861     l_api_version                 CONSTANT NUMBER := 1;
2862     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_update_row';
2863     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2864     l_ael_rec                      ael_rec_type := p_ael_rec;
2865     l_def_ael_rec                  ael_rec_type;
2866     l_row_notfound                 BOOLEAN := TRUE;
2867     ----------------------------------
2868     -- FUNCTION populate_new_record --
2869     ----------------------------------
2870     FUNCTION populate_new_record (
2871       p_ael_rec	IN ael_rec_type,
2872       x_ael_rec	OUT NOCOPY ael_rec_type
2873     ) RETURN VARCHAR2 IS
2874       l_ael_rec                      ael_rec_type;
2875       l_row_notfound                 BOOLEAN := TRUE;
2876       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2877     BEGIN
2878       x_ael_rec := p_ael_rec;
2879       -- Get current database values
2880       l_ael_rec := get_rec(p_ael_rec, l_row_notfound);
2881       IF (l_row_notfound) THEN
2882         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2883       END IF;
2884       IF (x_ael_rec.ae_line_id = Okc_Api.G_MISS_NUM)
2885       THEN
2886         x_ael_rec.ae_line_id := l_ael_rec.ae_line_id;
2887       END IF;
2888       IF (x_ael_rec.code_combination_id = Okc_Api.G_MISS_NUM)
2889       THEN
2890         x_ael_rec.code_combination_id := l_ael_rec.code_combination_id;
2891       END IF;
2892       IF (x_ael_rec.AE_HEADER_ID = Okc_Api.G_MISS_NUM)
2893       THEN
2894         x_ael_rec.AE_HEADER_ID := l_ael_rec.AE_HEADER_ID;
2895       END IF;
2896       IF (x_ael_rec.currency_conversion_type = Okc_Api.G_MISS_CHAR)
2897       THEN
2898         x_ael_rec.currency_conversion_type := l_ael_rec.currency_conversion_type;
2899       END IF;
2900       IF (x_ael_rec.org_id = Okc_Api.G_MISS_NUM)
2901       THEN
2902         x_ael_rec.org_id := l_ael_rec.org_id;
2903       END IF;
2904       IF (x_ael_rec.AE_LINE_NUMBER = Okc_Api.G_MISS_NUM)
2905       THEN
2906         x_ael_rec.AE_LINE_NUMBER := l_ael_rec.AE_LINE_NUMBER;
2907       END IF;
2908       IF (x_ael_rec.AE_LINE_TYPE_CODE = Okc_Api.G_MISS_CHAR)
2909       THEN
2910         x_ael_rec.AE_LINE_TYPE_CODE := l_ael_rec.AE_LINE_TYPE_CODE;
2911       END IF;
2912       IF (x_ael_rec.source_table = Okc_Api.G_MISS_CHAR)
2913       THEN
2914         x_ael_rec.source_table := l_ael_rec.source_table;
2915       END IF;
2916       IF (x_ael_rec.source_id = Okc_Api.G_MISS_NUM)
2917       THEN
2918         x_ael_rec.source_id := l_ael_rec.source_id;
2919       END IF;
2920       IF (x_ael_rec.object_version_number = Okc_Api.G_MISS_NUM)
2921       THEN
2922         x_ael_rec.object_version_number := l_ael_rec.object_version_number;
2923       END IF;
2924       IF (x_ael_rec.currency_code = Okc_Api.G_MISS_CHAR)
2925       THEN
2926         x_ael_rec.currency_code := l_ael_rec.currency_code;
2927       END IF;
2928       IF (x_ael_rec.currency_conversion_date = Okc_Api.G_MISS_DATE)
2929       THEN
2930         x_ael_rec.currency_conversion_date := l_ael_rec.currency_conversion_date;
2931       END IF;
2932       IF (x_ael_rec.currency_conversion_rate = Okc_Api.G_MISS_NUM)
2933       THEN
2934         x_ael_rec.currency_conversion_rate := l_ael_rec.currency_conversion_rate;
2935       END IF;
2936       IF (x_ael_rec.ENTERED_DR = Okc_Api.G_MISS_NUM)
2937       THEN
2938         x_ael_rec.ENTERED_DR := l_ael_rec.ENTERED_DR;
2939       END IF;
2940       IF (x_ael_rec.ENTERED_CR = Okc_Api.G_MISS_NUM)
2941       THEN
2942         x_ael_rec.ENTERED_CR := l_ael_rec.ENTERED_CR;
2943       END IF;
2944       IF (x_ael_rec.ACCOUNTED_DR = Okc_Api.G_MISS_NUM)
2945       THEN
2946         x_ael_rec.ACCOUNTED_DR := l_ael_rec.ACCOUNTED_DR;
2947       END IF;
2948       IF (x_ael_rec.ACCOUNTED_CR = Okc_Api.G_MISS_NUM)
2949       THEN
2950         x_ael_rec.ACCOUNTED_CR := l_ael_rec.ACCOUNTED_CR;
2951       END IF;
2952       IF (x_ael_rec.reference1 = Okc_Api.G_MISS_CHAR)
2953       THEN
2954         x_ael_rec.reference1 := l_ael_rec.reference1;
2955       END IF;
2956       IF (x_ael_rec.reference2 = Okc_Api.G_MISS_CHAR)
2957       THEN
2958         x_ael_rec.reference2 := l_ael_rec.reference2;
2959       END IF;
2960       IF (x_ael_rec.reference3 = Okc_Api.G_MISS_CHAR)
2961       THEN
2962         x_ael_rec.reference3 := l_ael_rec.reference3;
2963       END IF;
2964       IF (x_ael_rec.reference4 = Okc_Api.G_MISS_CHAR)
2965       THEN
2966         x_ael_rec.reference4 := l_ael_rec.reference4;
2967       END IF;
2968       IF (x_ael_rec.reference5 = Okc_Api.G_MISS_CHAR)
2969       THEN
2970         x_ael_rec.reference5 := l_ael_rec.reference5;
2971       END IF;
2972       IF (x_ael_rec.reference6 = Okc_Api.G_MISS_CHAR)
2973       THEN
2974         x_ael_rec.reference6 := l_ael_rec.reference6;
2975       END IF;
2976       IF (x_ael_rec.reference7 = Okc_Api.G_MISS_CHAR)
2977       THEN
2978         x_ael_rec.reference7 := l_ael_rec.reference7;
2979       END IF;
2980       IF (x_ael_rec.reference8 = Okc_Api.G_MISS_CHAR)
2981       THEN
2982         x_ael_rec.reference8 := l_ael_rec.reference8;
2983       END IF;
2984       IF (x_ael_rec.reference9 = Okc_Api.G_MISS_CHAR)
2985       THEN
2986         x_ael_rec.reference9 := l_ael_rec.reference9;
2987       END IF;
2988       IF (x_ael_rec.reference10 = Okc_Api.G_MISS_CHAR)
2989       THEN
2990         x_ael_rec.reference10 := l_ael_rec.reference10;
2991       END IF;
2992       IF (x_ael_rec.description = Okc_Api.G_MISS_CHAR)
2993       THEN
2994         x_ael_rec.description := l_ael_rec.description;
2995       END IF;
2996       IF (x_ael_rec.third_party_id = Okc_Api.G_MISS_NUM)
2997       THEN
2998         x_ael_rec.third_party_id := l_ael_rec.third_party_id;
2999       END IF;
3000       IF (x_ael_rec.third_party_sub_id = Okc_Api.G_MISS_NUM)
3001       THEN
3002         x_ael_rec.third_party_sub_id := l_ael_rec.third_party_sub_id;
3003       END IF;
3004       IF (x_ael_rec.STAT_AMOUNT = Okc_Api.G_MISS_NUM)
3005       THEN
3006         x_ael_rec.STAT_AMOUNT := l_ael_rec.STAT_AMOUNT;
3007       END IF;
3008       IF (x_ael_rec.ussgl_transaction_code = Okc_Api.G_MISS_CHAR)
3009       THEN
3010         x_ael_rec.ussgl_transaction_code := l_ael_rec.ussgl_transaction_code;
3011       END IF;
3012       IF (x_ael_rec.subledger_doc_sequence_id = Okc_Api.G_MISS_NUM)
3013       THEN
3014         x_ael_rec.subledger_doc_sequence_id := l_ael_rec.subledger_doc_sequence_id;
3015       END IF;
3016       IF (x_ael_rec.accounting_error_code = Okc_Api.G_MISS_CHAR)
3017       THEN
3018         x_ael_rec.accounting_error_code := l_ael_rec.accounting_error_code;
3019       END IF;
3020       IF (x_ael_rec.gl_transfer_error_code = Okc_Api.G_MISS_CHAR)
3021       THEN
3022         x_ael_rec.gl_transfer_error_code := l_ael_rec.gl_transfer_error_code;
3023       END IF;
3024       IF (x_ael_rec.GL_SL_LINK_ID = Okc_Api.G_MISS_NUM)
3025       THEN
3026         x_ael_rec.GL_SL_LINK_ID := l_ael_rec.GL_SL_LINK_ID;
3027       END IF;
3028       IF (x_ael_rec.taxable_ENTERED_DR = Okc_Api.G_MISS_NUM)
3029       THEN
3030         x_ael_rec.taxable_ENTERED_DR := l_ael_rec.taxable_ENTERED_DR;
3031       END IF;
3032       IF (x_ael_rec.taxable_ENTERED_CR = Okc_Api.G_MISS_NUM)
3033       THEN
3034         x_ael_rec.taxable_ENTERED_CR := l_ael_rec.taxable_ENTERED_CR;
3035       END IF;
3036       IF (x_ael_rec.taxable_ACCOUNTED_DR = Okc_Api.G_MISS_NUM)
3037       THEN
3038         x_ael_rec.taxable_ACCOUNTED_DR := l_ael_rec.taxable_ACCOUNTED_DR;
3039       END IF;
3040       IF (x_ael_rec.taxable_ACCOUNTED_CR = Okc_Api.G_MISS_NUM)
3041       THEN
3042         x_ael_rec.taxable_ACCOUNTED_CR := l_ael_rec.taxable_ACCOUNTED_CR;
3043       END IF;
3044       IF (x_ael_rec.applied_from_trx_hdr_table = Okc_Api.G_MISS_CHAR)
3045       THEN
3046         x_ael_rec.applied_from_trx_hdr_table := l_ael_rec.applied_from_trx_hdr_table;
3047       END IF;
3048       IF (x_ael_rec.applied_from_trx_hdr_id = Okc_Api.G_MISS_NUM)
3049       THEN
3050         x_ael_rec.applied_from_trx_hdr_id := l_ael_rec.applied_from_trx_hdr_id;
3051       END IF;
3052       IF (x_ael_rec.applied_to_trx_hdr_table = Okc_Api.G_MISS_CHAR)
3053       THEN
3054         x_ael_rec.applied_to_trx_hdr_table := l_ael_rec.applied_to_trx_hdr_table;
3055       END IF;
3056       IF (x_ael_rec.applied_to_trx_hdr_id = Okc_Api.G_MISS_NUM)
3057       THEN
3058         x_ael_rec.applied_to_trx_hdr_id := l_ael_rec.applied_to_trx_hdr_id;
3059       END IF;
3060       IF (x_ael_rec.tax_link_id = Okc_Api.G_MISS_NUM)
3061       THEN
3062         x_ael_rec.tax_link_id := l_ael_rec.tax_link_id;
3063       END IF;
3064       IF (x_ael_rec.program_id = Okc_Api.G_MISS_NUM)
3065       THEN
3066         x_ael_rec.program_id := l_ael_rec.program_id;
3067       END IF;
3068       IF (x_ael_rec.program_application_id = Okc_Api.G_MISS_NUM)
3069       THEN
3070         x_ael_rec.program_application_id := l_ael_rec.program_application_id;
3071       END IF;
3072       IF (x_ael_rec.program_update_date = Okc_Api.G_MISS_DATE)
3073       THEN
3074         x_ael_rec.program_update_date := l_ael_rec.program_update_date;
3075       END IF;
3076       IF (x_ael_rec.request_id = Okc_Api.G_MISS_NUM)
3077       THEN
3078         x_ael_rec.request_id := l_ael_rec.request_id;
3079       END IF;
3080       IF (x_ael_rec.created_by = Okc_Api.G_MISS_NUM)
3081       THEN
3082         x_ael_rec.created_by := l_ael_rec.created_by;
3083       END IF;
3084       IF (x_ael_rec.creation_date = Okc_Api.G_MISS_DATE)
3085       THEN
3086         x_ael_rec.creation_date := l_ael_rec.creation_date;
3087       END IF;
3088       IF (x_ael_rec.last_updated_by = Okc_Api.G_MISS_NUM)
3089       THEN
3090         x_ael_rec.last_updated_by := l_ael_rec.last_updated_by;
3091       END IF;
3092       IF (x_ael_rec.last_update_date = Okc_Api.G_MISS_DATE)
3093       THEN
3094         x_ael_rec.last_update_date := l_ael_rec.last_update_date;
3095       END IF;
3096       IF (x_ael_rec.last_update_login = Okc_Api.G_MISS_NUM)
3097       THEN
3098         x_ael_rec.last_update_login := l_ael_rec.last_update_login;
3099       END IF;
3100       IF (x_ael_rec.ACCOUNT_OVERLAY_SOURCE_ID = Okc_Api.G_MISS_NUM)
3101       THEN
3102         x_ael_rec.ACCOUNT_OVERLAY_SOURCE_ID := l_ael_rec.ACCOUNT_OVERLAY_SOURCE_ID;
3103       END IF;
3104       IF (x_ael_rec.SUBLEDGER_DOC_SEQUENCE_VALUE = Okc_Api.G_MISS_NUM)
3105       THEN
3106         x_ael_rec.SUBLEDGER_DOC_SEQUENCE_VALUE := l_ael_rec.SUBLEDGER_DOC_SEQUENCE_VALUE;
3107       END IF;
3108       IF (x_ael_rec.TAX_CODE_ID = Okc_Api.G_MISS_NUM)
3109       THEN
3110         x_ael_rec.TAX_CODE_ID := l_ael_rec.TAX_CODE_ID;
3111       END IF;
3112       RETURN(l_return_status);
3113     END populate_new_record;
3114     -------------------------------------
3115     -- Set_Attributes for:OKL_AE_LINES --
3116     -------------------------------------
3117     FUNCTION Set_Attributes (
3118       p_ael_rec IN  ael_rec_type,
3119       x_ael_rec OUT NOCOPY ael_rec_type
3120     ) RETURN VARCHAR2 IS
3121       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3122     BEGIN
3123       x_ael_rec := p_ael_rec;
3124       RETURN(l_return_status);
3125     END Set_Attributes;
3126   BEGIN
3127     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
3128                                               p_init_msg_list,
3129                                               '_PVT',
3130                                               x_return_status);
3131     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3132       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3133     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3134       RAISE Okc_Api.G_EXCEPTION_ERROR;
3135     END IF;
3136     --- Setting item attributes
3137     l_return_status := Set_Attributes(
3138       p_ael_rec,                         -- IN
3139       l_ael_rec);                        -- OUT
3140     --- If any errors happen abort API
3141     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3142       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3143     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3144       RAISE Okc_Api.G_EXCEPTION_ERROR;
3145     END IF;
3146     l_return_status := populate_new_record(l_ael_rec, l_def_ael_rec);
3147     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3148       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3149     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3150       RAISE Okc_Api.G_EXCEPTION_ERROR;
3151     END IF;
3152     UPDATE  OKL_AE_LINES
3153     SET CODE_COMBINATION_ID = l_def_ael_rec.code_combination_id,
3154         AE_HEADER_ID = l_def_ael_rec.AE_HEADER_ID,
3155         CURRENCY_CONVERSION_TYPE = l_def_ael_rec.currency_conversion_type,
3156         ORG_ID = l_def_ael_rec.org_id,
3157         AE_LINE_NUMBER = l_def_ael_rec.AE_LINE_NUMBER,
3158         AE_LINE_TYPE_CODE = l_def_ael_rec.AE_LINE_TYPE_CODE,
3159         SOURCE_TABLE = l_def_ael_rec.source_table,
3160         SOURCE_ID = l_def_ael_rec.source_id,
3161         OBJECT_VERSION_NUMBER = l_def_ael_rec.object_version_number,
3162         CURRENCY_CODE = l_def_ael_rec.currency_code,
3163         CURRENCY_CONVERSION_DATE = l_def_ael_rec.currency_conversion_date,
3164         CURRENCY_CONVERSION_RATE = l_def_ael_rec.currency_conversion_rate,
3165         ENTERED_DR = l_def_ael_rec.ENTERED_DR,
3166         ENTERED_CR = l_def_ael_rec.ENTERED_CR,
3167         ACCOUNTED_DR = l_def_ael_rec.ACCOUNTED_DR,
3168         ACCOUNTED_CR = l_def_ael_rec.ACCOUNTED_CR,
3169         REFERENCE1 = l_def_ael_rec.reference1,
3170         REFERENCE2 = l_def_ael_rec.reference2,
3171         REFERENCE3 = l_def_ael_rec.reference3,
3172         REFERENCE4 = l_def_ael_rec.reference4,
3173         REFERENCE5 = l_def_ael_rec.reference5,
3174         REFERENCE6 = l_def_ael_rec.reference6,
3175         REFERENCE7 = l_def_ael_rec.reference7,
3176         REFERENCE8 = l_def_ael_rec.reference8,
3177         REFERENCE9 = l_def_ael_rec.reference9,
3178         REFERENCE10 = l_def_ael_rec.reference10,
3179         DESCRIPTION = l_def_ael_rec.description,
3180         THIRD_PARTY_ID = l_def_ael_rec.third_party_id,
3181         THIRD_PARTY_SUB_ID = l_def_ael_rec.third_party_sub_id,
3182         STAT_AMOUNT = l_def_ael_rec.STAT_AMOUNT,
3183         USSGL_TRANSACTION_CODE = l_def_ael_rec.ussgl_transaction_code,
3184         SUBLEDGER_DOC_SEQUENCE_ID = l_def_ael_rec.subledger_doc_sequence_id,
3185         ACCOUNTING_ERROR_CODE = l_def_ael_rec.accounting_error_code,
3186         GL_TRANSFER_ERROR_CODE = l_def_ael_rec.gl_transfer_error_code,
3187         GL_SL_LINK_ID = l_def_ael_rec.GL_SL_LINK_ID,
3188         TAXABLE_ENTERED_DR = l_def_ael_rec.taxable_ENTERED_DR,
3189         TAXABLE_ENTERED_CR = l_def_ael_rec.taxable_ENTERED_CR,
3190         TAXABLE_ACCOUNTED_DR = l_def_ael_rec.taxable_ACCOUNTED_DR,
3191         TAXABLE_ACCOUNTED_CR = l_def_ael_rec.taxable_ACCOUNTED_CR,
3192         APPLIED_FROM_TRX_HDR_TABLE = l_def_ael_rec.applied_from_trx_hdr_table,
3193         APPLIED_FROM_TRX_HDR_ID = l_def_ael_rec.applied_from_trx_hdr_id,
3194         APPLIED_TO_TRX_HDR_TABLE = l_def_ael_rec.applied_to_trx_hdr_table,
3195         APPLIED_TO_TRX_HDR_ID = l_def_ael_rec.applied_to_trx_hdr_id,
3196         TAX_LINK_ID = l_def_ael_rec.tax_link_id,
3197         PROGRAM_ID = l_def_ael_rec.program_id,
3198         PROGRAM_APPLICATION_ID = l_def_ael_rec.program_application_id,
3199         PROGRAM_UPDATE_DATE = l_def_ael_rec.program_update_date,
3200         REQUEST_ID = l_def_ael_rec.request_id,
3201         CREATED_BY = l_def_ael_rec.created_by,
3202         CREATION_DATE = l_def_ael_rec.creation_date,
3203         LAST_UPDATED_BY = l_def_ael_rec.last_updated_by,
3204         LAST_UPDATE_DATE = l_def_ael_rec.last_update_date,
3205         LAST_UPDATE_LOGIN = l_def_ael_rec.last_update_login,
3206 		ACCOUNT_OVERLAY_SOURCE_ID = l_def_ael_rec.ACCOUNT_OVERLAY_SOURCE_ID,
3207 		SUBLEDGER_DOC_SEQUENCE_VALUE = l_def_ael_rec.SUBLEDGER_DOC_SEQUENCE_VALUE,
3208 		TAX_CODE_ID = l_def_ael_rec.TAX_CODE_ID
3209     WHERE ae_line_id = l_def_ael_rec.ae_line_id;
3210 
3211     x_ael_rec := l_def_ael_rec;
3212     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
3213   EXCEPTION
3214     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3215       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3216       (
3217         l_api_name,
3218         G_PKG_NAME,
3219         'OKC_API.G_RET_STS_ERROR',
3220         x_msg_count,
3221         x_msg_data,
3222         '_PVT'
3223       );
3224     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3225       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3226       (
3227         l_api_name,
3228         G_PKG_NAME,
3229         'OKC_API.G_RET_STS_UNEXP_ERROR',
3230         x_msg_count,
3231         x_msg_data,
3232         '_PVT'
3233       );
3234     WHEN OTHERS THEN
3235       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3236       (
3237         l_api_name,
3238         G_PKG_NAME,
3239         'OTHERS',
3240         x_msg_count,
3241         x_msg_data,
3242         '_PVT'
3243       );
3244   END update_row;
3245   -----------------------------------
3246   -- update_row for:OKL_AE_LINES_V --
3247   -----------------------------------
3248   PROCEDURE update_row(
3249     p_api_version                  IN NUMBER,
3250     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3251     x_return_status                OUT NOCOPY VARCHAR2,
3252     x_msg_count                    OUT NOCOPY NUMBER,
3253     x_msg_data                     OUT NOCOPY VARCHAR2,
3254     p_aelv_rec                     IN aelv_rec_type,
3255     x_aelv_rec                     OUT NOCOPY aelv_rec_type) IS
3256 
3257     l_api_version                 CONSTANT NUMBER := 1;
3258     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
3259     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3260     l_aelv_rec                     aelv_rec_type := p_aelv_rec;
3261     l_def_aelv_rec                 aelv_rec_type;
3262     l_ael_rec                      ael_rec_type;
3263     lx_ael_rec                     ael_rec_type;
3264     -------------------------------
3265     -- FUNCTION fill_who_columns --
3266     -------------------------------
3267     FUNCTION fill_who_columns (
3268       p_aelv_rec	IN aelv_rec_type
3269     ) RETURN aelv_rec_type IS
3270       l_aelv_rec	aelv_rec_type := p_aelv_rec;
3271     BEGIN
3272       l_aelv_rec.LAST_UPDATE_DATE := SYSDATE;
3273       l_aelv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
3274       l_aelv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
3275       RETURN(l_aelv_rec);
3276     END fill_who_columns;
3277     ----------------------------------
3278     -- FUNCTION populate_new_record --
3279     ----------------------------------
3280     FUNCTION populate_new_record (
3281       p_aelv_rec	IN aelv_rec_type,
3282       x_aelv_rec	OUT NOCOPY aelv_rec_type
3283     ) RETURN VARCHAR2 IS
3284       l_aelv_rec                     aelv_rec_type;
3285       l_row_notfound                 BOOLEAN := TRUE;
3286       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3287     BEGIN
3288       x_aelv_rec := p_aelv_rec;
3289       -- Get current database values
3290       l_aelv_rec := get_rec(p_aelv_rec, l_row_notfound);
3291       IF (l_row_notfound) THEN
3292         l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
3293       END IF;
3294       IF (x_aelv_rec.ae_line_id = Okc_Api.G_MISS_NUM)
3295       THEN
3296         x_aelv_rec.ae_line_id := l_aelv_rec.ae_line_id;
3297       END IF;
3298       IF (x_aelv_rec.object_version_number = Okc_Api.G_MISS_NUM)
3299       THEN
3300         x_aelv_rec.object_version_number := l_aelv_rec.object_version_number;
3301       END IF;
3302       IF (x_aelv_rec.AE_HEADER_ID = Okc_Api.G_MISS_NUM)
3303       THEN
3304         x_aelv_rec.AE_HEADER_ID := l_aelv_rec.AE_HEADER_ID;
3305       END IF;
3306       IF (x_aelv_rec.currency_conversion_type = Okc_Api.G_MISS_CHAR)
3307       THEN
3308         x_aelv_rec.currency_conversion_type := l_aelv_rec.currency_conversion_type;
3309       END IF;
3310       IF (x_aelv_rec.code_combination_id = Okc_Api.G_MISS_NUM)
3311       THEN
3312         x_aelv_rec.code_combination_id := l_aelv_rec.code_combination_id;
3313       END IF;
3314       IF (x_aelv_rec.org_id = Okc_Api.G_MISS_NUM)
3315       THEN
3316         x_aelv_rec.org_id := l_aelv_rec.org_id;
3317       END IF;
3318       IF (x_aelv_rec.AE_LINE_NUMBER = Okc_Api.G_MISS_NUM)
3319       THEN
3320         x_aelv_rec.AE_LINE_NUMBER := l_aelv_rec.AE_LINE_NUMBER;
3321       END IF;
3322       IF (x_aelv_rec.AE_LINE_TYPE_CODE = Okc_Api.G_MISS_CHAR)
3323       THEN
3324         x_aelv_rec.AE_LINE_TYPE_CODE := l_aelv_rec.AE_LINE_TYPE_CODE;
3325       END IF;
3326       IF (x_aelv_rec.currency_conversion_date = Okc_Api.G_MISS_DATE)
3327       THEN
3328         x_aelv_rec.currency_conversion_date := l_aelv_rec.currency_conversion_date;
3329       END IF;
3330       IF (x_aelv_rec.currency_conversion_rate = Okc_Api.G_MISS_NUM)
3331       THEN
3332         x_aelv_rec.currency_conversion_rate := l_aelv_rec.currency_conversion_rate;
3333       END IF;
3334       IF (x_aelv_rec.ENTERED_DR = Okc_Api.G_MISS_NUM)
3335       THEN
3336         x_aelv_rec.ENTERED_DR := l_aelv_rec.ENTERED_DR;
3337       END IF;
3338       IF (x_aelv_rec.ENTERED_CR = Okc_Api.G_MISS_NUM)
3339       THEN
3340         x_aelv_rec.ENTERED_CR := l_aelv_rec.ENTERED_CR;
3341       END IF;
3342       IF (x_aelv_rec.ACCOUNTED_DR = Okc_Api.G_MISS_NUM)
3343       THEN
3344         x_aelv_rec.ACCOUNTED_DR := l_aelv_rec.ACCOUNTED_DR;
3345       END IF;
3346       IF (x_aelv_rec.ACCOUNTED_CR = Okc_Api.G_MISS_NUM)
3347       THEN
3348         x_aelv_rec.ACCOUNTED_CR := l_aelv_rec.ACCOUNTED_CR;
3349       END IF;
3350       IF (x_aelv_rec.source_table = Okc_Api.G_MISS_CHAR)
3351       THEN
3352         x_aelv_rec.source_table := l_aelv_rec.source_table;
3353       END IF;
3354       IF (x_aelv_rec.source_id = Okc_Api.G_MISS_NUM)
3355       THEN
3356         x_aelv_rec.source_id := l_aelv_rec.source_id;
3357       END IF;
3358       IF (x_aelv_rec.reference1 = Okc_Api.G_MISS_CHAR)
3359       THEN
3360         x_aelv_rec.reference1 := l_aelv_rec.reference1;
3361       END IF;
3362       IF (x_aelv_rec.reference2 = Okc_Api.G_MISS_CHAR)
3363       THEN
3364         x_aelv_rec.reference2 := l_aelv_rec.reference2;
3365       END IF;
3366       IF (x_aelv_rec.reference3 = Okc_Api.G_MISS_CHAR)
3367       THEN
3368         x_aelv_rec.reference3 := l_aelv_rec.reference3;
3369       END IF;
3370       IF (x_aelv_rec.reference4 = Okc_Api.G_MISS_CHAR)
3371       THEN
3372         x_aelv_rec.reference4 := l_aelv_rec.reference4;
3373       END IF;
3374       IF (x_aelv_rec.reference5 = Okc_Api.G_MISS_CHAR)
3375       THEN
3376         x_aelv_rec.reference5 := l_aelv_rec.reference5;
3377       END IF;
3378       IF (x_aelv_rec.reference6 = Okc_Api.G_MISS_CHAR)
3379       THEN
3380         x_aelv_rec.reference6 := l_aelv_rec.reference6;
3381       END IF;
3382       IF (x_aelv_rec.reference7 = Okc_Api.G_MISS_CHAR)
3383       THEN
3384         x_aelv_rec.reference7 := l_aelv_rec.reference7;
3385       END IF;
3386       IF (x_aelv_rec.reference8 = Okc_Api.G_MISS_CHAR)
3387       THEN
3388         x_aelv_rec.reference8 := l_aelv_rec.reference8;
3389       END IF;
3390       IF (x_aelv_rec.reference9 = Okc_Api.G_MISS_CHAR)
3391       THEN
3392         x_aelv_rec.reference9 := l_aelv_rec.reference9;
3393       END IF;
3394       IF (x_aelv_rec.reference10 = Okc_Api.G_MISS_CHAR)
3395       THEN
3396         x_aelv_rec.reference10 := l_aelv_rec.reference10;
3397       END IF;
3398       IF (x_aelv_rec.description = Okc_Api.G_MISS_CHAR)
3399       THEN
3400         x_aelv_rec.description := l_aelv_rec.description;
3401       END IF;
3402       IF (x_aelv_rec.third_party_id = Okc_Api.G_MISS_NUM)
3403       THEN
3404         x_aelv_rec.third_party_id := l_aelv_rec.third_party_id;
3405       END IF;
3406       IF (x_aelv_rec.third_party_sub_id = Okc_Api.G_MISS_NUM)
3407       THEN
3408         x_aelv_rec.third_party_sub_id := l_aelv_rec.third_party_sub_id;
3409       END IF;
3410       IF (x_aelv_rec.STAT_AMOUNT = Okc_Api.G_MISS_NUM)
3411       THEN
3412         x_aelv_rec.STAT_AMOUNT := l_aelv_rec.STAT_AMOUNT;
3413       END IF;
3414       IF (x_aelv_rec.ussgl_transaction_code = Okc_Api.G_MISS_CHAR)
3415       THEN
3416         x_aelv_rec.ussgl_transaction_code := l_aelv_rec.ussgl_transaction_code;
3417       END IF;
3418       IF (x_aelv_rec.subledger_doc_sequence_id = Okc_Api.G_MISS_NUM)
3419       THEN
3420         x_aelv_rec.subledger_doc_sequence_id := l_aelv_rec.subledger_doc_sequence_id;
3421       END IF;
3422       IF (x_aelv_rec.accounting_error_code = Okc_Api.G_MISS_CHAR)
3423       THEN
3424         x_aelv_rec.accounting_error_code := l_aelv_rec.accounting_error_code;
3425       END IF;
3426       IF (x_aelv_rec.gl_transfer_error_code = Okc_Api.G_MISS_CHAR)
3427       THEN
3428         x_aelv_rec.gl_transfer_error_code := l_aelv_rec.gl_transfer_error_code;
3429       END IF;
3430       IF (x_aelv_rec.GL_SL_LINK_ID = Okc_Api.G_MISS_NUM)
3431       THEN
3432         x_aelv_rec.GL_SL_LINK_ID := l_aelv_rec.GL_SL_LINK_ID;
3433       END IF;
3434       IF (x_aelv_rec.taxable_ENTERED_DR = Okc_Api.G_MISS_NUM)
3435       THEN
3436         x_aelv_rec.taxable_ENTERED_DR := l_aelv_rec.taxable_ENTERED_DR;
3437       END IF;
3438       IF (x_aelv_rec.taxable_ENTERED_CR = Okc_Api.G_MISS_NUM)
3439       THEN
3440         x_aelv_rec.taxable_ENTERED_CR := l_aelv_rec.taxable_ENTERED_CR;
3441       END IF;
3442       IF (x_aelv_rec.taxable_ACCOUNTED_DR = Okc_Api.G_MISS_NUM)
3443       THEN
3444         x_aelv_rec.taxable_ACCOUNTED_DR := l_aelv_rec.taxable_ACCOUNTED_DR;
3445       END IF;
3446       IF (x_aelv_rec.taxable_ACCOUNTED_CR = Okc_Api.G_MISS_NUM)
3447       THEN
3448         x_aelv_rec.taxable_ACCOUNTED_CR := l_aelv_rec.taxable_ACCOUNTED_CR;
3449       END IF;
3450       IF (x_aelv_rec.applied_from_trx_hdr_table = Okc_Api.G_MISS_CHAR)
3451       THEN
3452         x_aelv_rec.applied_from_trx_hdr_table := l_aelv_rec.applied_from_trx_hdr_table;
3453       END IF;
3454       IF (x_aelv_rec.applied_from_trx_hdr_id = Okc_Api.G_MISS_NUM)
3455       THEN
3456         x_aelv_rec.applied_from_trx_hdr_id := l_aelv_rec.applied_from_trx_hdr_id;
3457       END IF;
3458       IF (x_aelv_rec.applied_to_trx_hdr_table = Okc_Api.G_MISS_CHAR)
3459       THEN
3460         x_aelv_rec.applied_to_trx_hdr_table := l_aelv_rec.applied_to_trx_hdr_table;
3461       END IF;
3462       IF (x_aelv_rec.applied_to_trx_hdr_id = Okc_Api.G_MISS_NUM)
3463       THEN
3464         x_aelv_rec.applied_to_trx_hdr_id := l_aelv_rec.applied_to_trx_hdr_id;
3465       END IF;
3466       IF (x_aelv_rec.tax_link_id = Okc_Api.G_MISS_NUM)
3467       THEN
3468         x_aelv_rec.tax_link_id := l_aelv_rec.tax_link_id;
3469       END IF;
3470       IF (x_aelv_rec.currency_code = Okc_Api.G_MISS_CHAR)
3471       THEN
3472         x_aelv_rec.currency_code := l_aelv_rec.currency_code;
3473       END IF;
3474       IF (x_aelv_rec.program_id = Okc_Api.G_MISS_NUM)
3475       THEN
3476         x_aelv_rec.program_id := l_aelv_rec.program_id;
3477       END IF;
3478       IF (x_aelv_rec.program_application_id = Okc_Api.G_MISS_NUM)
3479       THEN
3480         x_aelv_rec.program_application_id := l_aelv_rec.program_application_id;
3481       END IF;
3482       IF (x_aelv_rec.program_update_date = Okc_Api.G_MISS_DATE)
3483       THEN
3484         x_aelv_rec.program_update_date := l_aelv_rec.program_update_date;
3485       END IF;
3486       IF (x_aelv_rec.request_id = Okc_Api.G_MISS_NUM)
3487       THEN
3488         x_aelv_rec.request_id := l_aelv_rec.request_id;
3489       END IF;
3490       IF (x_aelv_rec.created_by = Okc_Api.G_MISS_NUM)
3491       THEN
3492         x_aelv_rec.created_by := l_aelv_rec.created_by;
3493       END IF;
3494       IF (x_aelv_rec.creation_date = Okc_Api.G_MISS_DATE)
3495       THEN
3496         x_aelv_rec.creation_date := l_aelv_rec.creation_date;
3497       END IF;
3498       IF (x_aelv_rec.last_updated_by = Okc_Api.G_MISS_NUM)
3499       THEN
3500         x_aelv_rec.last_updated_by := l_aelv_rec.last_updated_by;
3501       END IF;
3502       IF (x_aelv_rec.last_update_date = Okc_Api.G_MISS_DATE)
3503       THEN
3504         x_aelv_rec.last_update_date := l_aelv_rec.last_update_date;
3505       END IF;
3506       IF (x_aelv_rec.last_update_login = Okc_Api.G_MISS_NUM)
3507       THEN
3508         x_aelv_rec.last_update_login := l_aelv_rec.last_update_login;
3509       END IF;
3510       IF (x_aelv_rec.ACCOUNT_OVERLAY_SOURCE_ID = Okc_Api.G_MISS_NUM)
3511       THEN
3512         x_aelv_rec.ACCOUNT_OVERLAY_SOURCE_ID := l_aelv_rec.ACCOUNT_OVERLAY_SOURCE_ID;
3513       END IF;
3514 	  IF (x_aelv_rec.SUBLEDGER_DOC_SEQUENCE_VALUE = Okc_Api.G_MISS_NUM)
3515       THEN
3516         x_aelv_rec.SUBLEDGER_DOC_SEQUENCE_VALUE := l_aelv_rec.SUBLEDGER_DOC_SEQUENCE_VALUE;
3517       END IF;
3518       IF (x_aelv_rec.TAX_CODE_ID = Okc_Api.G_MISS_NUM)
3519       THEN
3520         x_aelv_rec.TAX_CODE_ID := l_aelv_rec.TAX_CODE_ID;
3521       END IF;
3522 
3523       RETURN(l_return_status);
3524     END populate_new_record;
3525     ---------------------------------------
3526     -- Set_Attributes for:OKL_AE_LINES_V --
3527     ---------------------------------------
3528     FUNCTION Set_Attributes (
3529       p_aelv_rec IN  aelv_rec_type,
3530       x_aelv_rec OUT NOCOPY aelv_rec_type
3531     ) RETURN VARCHAR2 IS
3532       l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3533     BEGIN
3534       x_aelv_rec := p_aelv_rec;
3535 
3536      SELECT NVL(DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID),
3537                                            x_aelv_rec.REQUEST_ID),
3538             NVL(DECODE(Fnd_Global.PROG_APPL_ID,-1,NULL,Fnd_Global.PROG_APPL_ID),
3539                                            x_aelv_rec.PROGRAM_APPLICATION_ID),
3540             NVL(DECODE(Fnd_Global.CONC_PROGRAM_ID,-1,NULL,Fnd_Global.CONC_PROGRAM_ID),
3541                                            x_aelv_rec.PROGRAM_ID),
3542             DECODE(DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,SYSDATE),
3543                                            NULL,x_aelv_rec.PROGRAM_UPDATE_DATE,SYSDATE)
3544      INTO  x_aelv_rec.REQUEST_ID
3545           ,x_aelv_rec.PROGRAM_APPLICATION_ID
3546           ,x_aelv_rec.PROGRAM_ID
3547           ,x_aelv_rec.PROGRAM_UPDATE_DATE
3548      FROM DUAL;
3549 
3550       RETURN(l_return_status);
3551     END Set_Attributes;
3552   BEGIN
3553     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
3554                                               G_PKG_NAME,
3555                                               p_init_msg_list,
3556                                               l_api_version,
3557                                               p_api_version,
3558                                               '_PVT',
3559                                               x_return_status);
3560     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3561       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3562     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3563       RAISE Okc_Api.G_EXCEPTION_ERROR;
3564     END IF;
3565     --- Setting item attributes
3566     l_return_status := Set_Attributes(
3567       p_aelv_rec,                        -- IN
3568       l_aelv_rec);                       -- OUT
3569     --- If any errors happen abort API
3570     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3571       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3572     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3573       RAISE Okc_Api.G_EXCEPTION_ERROR;
3574     END IF;
3575     l_return_status := populate_new_record(l_aelv_rec, l_def_aelv_rec);
3576     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3577       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3578     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3579       RAISE Okc_Api.G_EXCEPTION_ERROR;
3580     END IF;
3581     l_def_aelv_rec := fill_who_columns(l_def_aelv_rec);
3582     --- Validate all non-missing attributes (Item Level Validation)
3583     l_return_status := Validate_Attributes(l_def_aelv_rec);
3584     --- If any errors happen abort API
3585     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3586       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3587     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3588       RAISE Okc_Api.G_EXCEPTION_ERROR;
3589     END IF;
3590     l_return_status := Validate_Record(l_def_aelv_rec);
3591     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3592       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3593     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3594       RAISE Okc_Api.G_EXCEPTION_ERROR;
3595     END IF;
3596 
3597     --------------------------------------
3598     -- Move VIEW record to "Child" records
3599     --------------------------------------
3600     migrate(l_def_aelv_rec, l_ael_rec);
3601     --------------------------------------------
3602     -- Call the UPDATE_ROW for each child record
3603     --------------------------------------------
3604     update_row(
3605       p_init_msg_list,
3606       x_return_status,
3607       x_msg_count,
3608       x_msg_data,
3609       l_ael_rec,
3610       lx_ael_rec
3611     );
3612     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3613       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3614     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3615       RAISE Okc_Api.G_EXCEPTION_ERROR;
3616     END IF;
3617     migrate(lx_ael_rec, l_def_aelv_rec);
3618     x_aelv_rec := l_def_aelv_rec;
3619     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
3620   EXCEPTION
3621     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3622       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3623       (
3624         l_api_name,
3625         G_PKG_NAME,
3626         'OKC_API.G_RET_STS_ERROR',
3627         x_msg_count,
3628         x_msg_data,
3629         '_PVT'
3630       );
3631     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3632       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3633       (
3634         l_api_name,
3635         G_PKG_NAME,
3636         'OKC_API.G_RET_STS_UNEXP_ERROR',
3637         x_msg_count,
3638         x_msg_data,
3639         '_PVT'
3640       );
3641     WHEN OTHERS THEN
3642       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3643       (
3644         l_api_name,
3645         G_PKG_NAME,
3646         'OTHERS',
3647         x_msg_count,
3648         x_msg_data,
3649         '_PVT'
3650       );
3651   END update_row;
3652   ----------------------------------------
3653   -- PL/SQL TBL update_row for:AELV_TBL --
3654   ----------------------------------------
3655   PROCEDURE update_row(
3656     p_api_version                  IN NUMBER,
3657     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3658     x_return_status                OUT NOCOPY VARCHAR2,
3659     x_msg_count                    OUT NOCOPY NUMBER,
3660     x_msg_data                     OUT NOCOPY VARCHAR2,
3661     p_aelv_tbl                     IN aelv_tbl_type,
3662     x_aelv_tbl                     OUT NOCOPY aelv_tbl_type) IS
3663 
3664     l_api_version                 CONSTANT NUMBER := 1;
3665     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3666     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3667     i                              NUMBER := 0;
3668     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3669 
3670   BEGIN
3671     Okc_Api.init_msg_list(p_init_msg_list);
3672     -- Make sure PL/SQL table has records in it before passing
3673     IF (p_aelv_tbl.COUNT > 0) THEN
3674       i := p_aelv_tbl.FIRST;
3675       LOOP
3676         update_row (
3677           p_api_version                  => p_api_version,
3678           p_init_msg_list                => Okc_Api.G_FALSE,
3679           x_return_status                => x_return_status,
3680           x_msg_count                    => x_msg_count,
3681           x_msg_data                     => x_msg_data,
3682           p_aelv_rec                     => p_aelv_tbl(i),
3683           x_aelv_rec                     => x_aelv_tbl(i));
3684 
3685         -- store the highest degree of error
3686 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3687            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3688               l_overall_status := x_return_status;
3689            END IF;
3690 	  END IF;
3691 
3692         EXIT WHEN (i = p_aelv_tbl.LAST);
3693         i := p_aelv_tbl.NEXT(i);
3694       END LOOP;
3695 	  -- return overall status
3696 	  x_return_status := l_overall_status;
3697 
3698     END IF;
3699   EXCEPTION
3700     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3701       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3702       (
3703         l_api_name,
3704         G_PKG_NAME,
3705         'OKC_API.G_RET_STS_ERROR',
3706         x_msg_count,
3707         x_msg_data,
3708         '_PVT'
3709       );
3710     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3711       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3712       (
3713         l_api_name,
3714         G_PKG_NAME,
3715         'OKC_API.G_RET_STS_UNEXP_ERROR',
3716         x_msg_count,
3717         x_msg_data,
3718         '_PVT'
3719       );
3720     WHEN OTHERS THEN
3721       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3722       (
3723         l_api_name,
3724         G_PKG_NAME,
3725         'OTHERS',
3726         x_msg_count,
3727         x_msg_data,
3728         '_PVT'
3729       );
3730   END update_row;
3731 
3732   ---------------------------------------------------------------------------
3733   -- PROCEDURE delete_row
3734   ---------------------------------------------------------------------------
3735   ---------------------------------
3736   -- delete_row for:OKL_AE_LINES --
3737   ---------------------------------
3738   PROCEDURE delete_row(
3739     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3740     x_return_status                OUT NOCOPY VARCHAR2,
3741     x_msg_count                    OUT NOCOPY NUMBER,
3742     x_msg_data                     OUT NOCOPY VARCHAR2,
3743     p_ael_rec                      IN ael_rec_type) IS
3744 
3745     l_api_version                 CONSTANT NUMBER := 1;
3746     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_delete_row';
3747     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3748     l_ael_rec                      ael_rec_type:= p_ael_rec;
3749     l_row_notfound                 BOOLEAN := TRUE;
3750   BEGIN
3751     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
3752                                               p_init_msg_list,
3753                                               '_PVT',
3754                                               x_return_status);
3755     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3756       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3757     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3758       RAISE Okc_Api.G_EXCEPTION_ERROR;
3759     END IF;
3760     DELETE FROM OKL_AE_LINES
3761      WHERE ae_line_id = l_ael_rec.ae_line_id;
3762 
3763     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
3764   EXCEPTION
3765     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3766       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3767       (
3768         l_api_name,
3769         G_PKG_NAME,
3770         'OKC_API.G_RET_STS_ERROR',
3771         x_msg_count,
3772         x_msg_data,
3773         '_PVT'
3774       );
3775     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3776       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3777       (
3778         l_api_name,
3779         G_PKG_NAME,
3780         'OKC_API.G_RET_STS_UNEXP_ERROR',
3781         x_msg_count,
3782         x_msg_data,
3783         '_PVT'
3784       );
3785     WHEN OTHERS THEN
3786       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3787       (
3788         l_api_name,
3789         G_PKG_NAME,
3790         'OTHERS',
3791         x_msg_count,
3792         x_msg_data,
3793         '_PVT'
3794       );
3795   END delete_row;
3796   -----------------------------------
3797   -- delete_row for:OKL_AE_LINES_V --
3798   -----------------------------------
3799   PROCEDURE delete_row(
3800     p_api_version                  IN NUMBER,
3801     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3802     x_return_status                OUT NOCOPY VARCHAR2,
3803     x_msg_count                    OUT NOCOPY NUMBER,
3804     x_msg_data                     OUT NOCOPY VARCHAR2,
3805     p_aelv_rec                     IN aelv_rec_type) IS
3806 
3807     l_api_version                 CONSTANT NUMBER := 1;
3808     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
3809     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3810     l_aelv_rec                     aelv_rec_type := p_aelv_rec;
3811     l_ael_rec                      ael_rec_type;
3812   BEGIN
3813     l_return_status := Okc_Api.START_ACTIVITY(l_api_name,
3814                                               G_PKG_NAME,
3815                                               p_init_msg_list,
3816                                               l_api_version,
3817                                               p_api_version,
3818                                               '_PVT',
3819                                               x_return_status);
3820     IF (l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3821       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3822     ELSIF (l_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3823       RAISE Okc_Api.G_EXCEPTION_ERROR;
3824     END IF;
3825     --------------------------------------
3826     -- Move VIEW record to "Child" records
3827     --------------------------------------
3828     migrate(l_aelv_rec, l_ael_rec);
3829     --------------------------------------------
3830     -- Call the DELETE_ROW for each child record
3831     --------------------------------------------
3832     delete_row(
3833       p_init_msg_list,
3834       x_return_status,
3835       x_msg_count,
3836       x_msg_data,
3837       l_ael_rec
3838     );
3839     IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
3840       RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
3841     ELSIF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
3842       RAISE Okc_Api.G_EXCEPTION_ERROR;
3843     END IF;
3844     Okc_Api.END_ACTIVITY(x_msg_count, x_msg_data);
3845   EXCEPTION
3846     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3847       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3848       (
3849         l_api_name,
3850         G_PKG_NAME,
3851         'OKC_API.G_RET_STS_ERROR',
3852         x_msg_count,
3853         x_msg_data,
3854         '_PVT'
3855       );
3856     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3857       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3858       (
3859         l_api_name,
3860         G_PKG_NAME,
3861         'OKC_API.G_RET_STS_UNEXP_ERROR',
3862         x_msg_count,
3863         x_msg_data,
3864         '_PVT'
3865       );
3866     WHEN OTHERS THEN
3867       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3868       (
3869         l_api_name,
3870         G_PKG_NAME,
3871         'OTHERS',
3872         x_msg_count,
3873         x_msg_data,
3874         '_PVT'
3875       );
3876   END delete_row;
3877 
3878   ----------------------------------------
3879   -- PL/SQL TBL delete_row for:AELV_TBL --
3880   ----------------------------------------
3881   PROCEDURE delete_row(
3882     p_api_version                  IN NUMBER,
3883     p_init_msg_list                IN VARCHAR2 DEFAULT Okc_Api.G_FALSE,
3884     x_return_status                OUT NOCOPY VARCHAR2,
3885     x_msg_count                    OUT NOCOPY NUMBER,
3886     x_msg_data                     OUT NOCOPY VARCHAR2,
3887     p_aelv_tbl                     IN aelv_tbl_type) IS
3888 
3889     l_api_version                 CONSTANT NUMBER := 1;
3890     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3891     l_return_status                VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3892     i                              NUMBER := 0;
3893     l_overall_status		     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3894 
3895   BEGIN
3896     Okc_Api.init_msg_list(p_init_msg_list);
3897     -- Make sure PL/SQL table has records in it before passing
3898     IF (p_aelv_tbl.COUNT > 0) THEN
3899       i := p_aelv_tbl.FIRST;
3900       LOOP
3901         delete_row (
3902           p_api_version                  => p_api_version,
3903           p_init_msg_list                => Okc_Api.G_FALSE,
3904           x_return_status                => x_return_status,
3905           x_msg_count                    => x_msg_count,
3906           x_msg_data                     => x_msg_data,
3907           p_aelv_rec                     => p_aelv_tbl(i));
3908 
3909         -- store the highest degree of error
3910 
3911 	  IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3912            IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3913               l_overall_status := x_return_status;
3914            END IF;
3915 	  END IF;
3916 
3917         EXIT WHEN (i = p_aelv_tbl.LAST);
3918         i := p_aelv_tbl.NEXT(i);
3919       END LOOP;
3920 	  -- return overall status
3921 	  x_return_status := l_overall_status;
3922 
3923     END IF;
3924   EXCEPTION
3925     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
3926       x_return_status := Okc_Api.HANDLE_EXCEPTIONS
3927       (
3928         l_api_name,
3929         G_PKG_NAME,
3930         'OKC_API.G_RET_STS_ERROR',
3931         x_msg_count,
3932         x_msg_data,
3933         '_PVT'
3934       );
3935     WHEN Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
3936       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3937       (
3938         l_api_name,
3939         G_PKG_NAME,
3940         'OKC_API.G_RET_STS_UNEXP_ERROR',
3941         x_msg_count,
3942         x_msg_data,
3943         '_PVT'
3944       );
3945     WHEN OTHERS THEN
3946       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
3947       (
3948         l_api_name,
3949         G_PKG_NAME,
3950         'OTHERS',
3951         x_msg_count,
3952         x_msg_data,
3953         '_PVT'
3954       );
3955   END delete_row;
3956 END Okl_Ael_Pvt;