DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TAB_PVT

Source


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