DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_LLN_PVT

Source


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