DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ASE_PVT

Source


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