[Home] [Help]
PACKAGE BODY: APPS.OKL_ATL_PVT
Source
1 PACKAGE BODY OKL_ATL_PVT AS
2 /* $Header: OKLSATLB.pls 120.5 2007/02/15 08:14:44 zrehman noship $ */
3
4 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
5 G_ITEM_NOT_FOUND_ERROR EXCEPTION;
6
7 ---------------------------------------------------------------------------
8 -- PROCEDURE validate_avl_id
9 ---------------------------------------------------------------------------
10 PROCEDURE validate_avl_id(
11 x_return_status OUT NOCOPY VARCHAR2,
12 p_atlv_rec IN atlv_rec_type
13 ) IS
14
15 CURSOR okl_atlv_tmpl_pk_csr (v_avl_id IN NUMBER) IS
16 SELECT '1'
17 FROM OKL_AE_TEMPLATES
18 WHERE id = v_avl_id;
19
20 l_dummy VARCHAR2(1);
21 l_row_notfound BOOLEAN := TRUE;
22
23 BEGIN
24
25 x_return_status := OKC_API.G_RET_STS_SUCCESS;
26
27 IF (p_atlv_rec.avl_id IS NULL) OR (p_atlv_rec.avl_id = OKC_API.G_MISS_NUM) THEN
28 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
29 p_msg_name => g_required_value,
30 p_token1 => g_col_name_token,
31 p_token1_value => 'AVL_ID');
32
33 x_return_status := OKC_API.G_RET_STS_ERROR;
34 RAISE G_EXCEPTION_HALT_VALIDATION;
35 ELSE
36 x_return_status := OKC_API.G_RET_STS_SUCCESS;
37 END IF;
38
39 OPEN okl_atlv_tmpl_pk_csr(p_atlv_rec.AVL_ID);
40 FETCH okl_atlv_tmpl_pk_csr INTO l_dummy;
41 l_row_notfound := okl_atlv_tmpl_pk_csr%NOTFOUND;
42 CLOSE okl_atlv_tmpl_pk_csr;
43 IF (l_row_notfound) THEN
44 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'AVL_ID');
45 RAISE g_item_not_found_error;
46 END IF;
47
48 EXCEPTION
49 WHEN G_EXCEPTION_HALT_VALIDATION THEN
50 NULL;
51 WHEN g_item_not_found_error THEN
52 x_return_status := OKC_API.G_RET_STS_ERROR;
53 WHEN OTHERS THEN
54 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
55 p_msg_name => g_required_value,
56 p_token1 => g_sqlcode_token,
57 p_token1_value => SQLCODE,
58 p_token2 => g_sqlerrm_token,
59 p_token2_value => SQLERRM);
60 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
61 END validate_avl_id;
62
63 ---------------------------------------------------------------------------
64 -- PROCEDURE validate_ae_line_type
65 -- 04/27/2001 Inserted by Robin Edwin for not null validation
66 -- 12/12/2002 Changed by Kanti Jinger to remove the mandatory validation. Now the
67 -- line type is validated only when its values is not null
68 ---------------------------------------------------------------------------
69 PROCEDURE validate_ae_line_type(
70 x_return_status OUT NOCOPY VARCHAR2,
71 p_atlv_rec IN atlv_rec_type
72 ) IS
73
74 l_lookup_code VARCHAR2(1);
75 l_row_notfound BOOLEAN := TRUE;
76 l_dummy VARCHAR2(1);
77
78 BEGIN
79 x_return_status := OKC_API.G_RET_STS_SUCCESS;
80
81 IF (p_atlv_rec.ae_line_type IS NOT NULL) AND
82 (p_atlv_rec.ae_line_type <> OKC_API.G_MISS_CHAR) THEN
83 l_dummy :=
84 OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE
85 (p_lookup_type => 'OKL_AE_LINE_TYPE',
86 p_lookup_code => p_atlv_rec.ae_line_type);
87
88 IF (l_dummy = OKL_API.G_FALSE) THEN
89 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'AE_LINE_TYPE');
90 x_return_status := OKC_API.G_RET_STS_ERROR;
91 RAISE G_EXCEPTION_HALT_VALIDATION;
92 END IF;
93
94 END IF;
95
96 EXCEPTION
97 WHEN G_EXCEPTION_HALT_VALIDATION THEN
98 NULL;
99 WHEN OTHERS THEN
100 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
101 p_msg_name => g_required_value,
102 p_token1 => g_sqlcode_token,
103 p_token1_value => SQLCODE,
104 p_token2 => g_sqlerrm_token,
105 p_token2_value => SQLERRM);
106 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
107 END validate_ae_line_type;
108
109 ---------------------------------------------------------------------------
110 -- PROCEDURE validate_crd_code
111 -- 04/27/2001 Inserted by Robin Edwin for not null validation
112 ---------------------------------------------------------------------------
113 PROCEDURE validate_crd_code(
114 x_return_status OUT NOCOPY VARCHAR2,
115 p_atlv_rec IN atlv_rec_type
116 ) IS
117
118 l_lookup_code VARCHAR2(1);
119 l_row_notfound BOOLEAN := TRUE;
120 l_app_id NUMBER := 101;
121 l_view_app_id NUMBER := 101;
122 l_dummy VARCHAR2(1);
123
124 BEGIN
125 x_return_status := OKC_API.G_RET_STS_SUCCESS;
126
127 IF (p_atlv_rec.crd_code IS NULL) OR (p_atlv_rec.crd_code = OKC_API.G_MISS_CHAR) THEN
128 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
129 p_msg_name => g_required_value,
130 p_token1 => g_col_name_token,
131 p_token1_value => 'CRD_CODE');
132 x_return_status := OKC_API.G_RET_STS_ERROR;
133 RAISE G_EXCEPTION_HALT_VALIDATION;
134 ELSE
135 l_dummy :=
136 OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(p_lookup_type => 'CR_DR',
137 p_lookup_code => p_atlv_rec.crd_code,
138 p_app_id => l_app_id,
139 p_view_app_id => l_view_app_id);
140 IF (l_dummy = OKL_API.G_FALSE) THEN
141 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CRD_CODE');
142 x_return_status := OKC_API.G_RET_STS_ERROR;
143 RAISE G_EXCEPTION_HALT_VALIDATION;
144 END IF;
145
146
147 END IF;
148
149
150 EXCEPTION
151 WHEN G_EXCEPTION_HALT_VALIDATION THEN
152 NULL;
153 WHEN g_item_not_found_error THEN
154 x_return_status := OKC_API.G_RET_STS_ERROR;
155 WHEN OTHERS THEN
156 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
157 p_msg_name => g_required_value,
158 p_token1 => g_sqlcode_token,
159 p_token1_value => SQLCODE,
160 p_token2 => g_sqlerrm_token,
161 p_token2_value => SQLERRM);
162 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
163 END validate_crd_code;
164
165 -- Commented by zrehman for Bug #5686162 15-Feb-2007 start
166 /*
167 ---------------------------------------------------------------------------
168 -- PROCEDURE validate_percentage
169 ---------------------------------------------------------------------------
170 PROCEDURE validate_percentage(
171 x_return_status OUT NOCOPY VARCHAR2,
172 p_atlv_rec IN atlv_rec_type
173 ) IS
174 l_dummy VARCHAR2(1);
175 l_app_id NUMBER := 0;
176 l_view_App_id NUMBER := 0;
177
178 BEGIN
179 x_return_status := OKC_API.G_RET_STS_SUCCESS;
180
181 IF (p_atlv_rec.percentage IS NULL) OR
182 (p_atlv_rec.percentage = OKC_API.G_MISS_NUM) THEN
183 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
184 p_msg_name => g_required_value,
185 p_token1 => g_col_name_token,
186 p_token1_value => 'PERCENTAGE');
187
188 x_return_status := OKC_API.G_RET_STS_ERROR;
189 RAISE G_EXCEPTION_HALT_VALIDATION;
190
191 ELSE
192
193 IF (p_atlv_rec.PERCENTAGE > 100) OR (p_atlv_rec.PERCENTAGE < 0) THEN
194
195 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'PERCENTAGE');
196 x_return_status := OKC_API.G_RET_STS_ERROR;
197 RAISE G_EXCEPTION_HALT_VALIDATION;
198
199 END IF;
200
201 END IF;
202
203 EXCEPTION
204 WHEN G_EXCEPTION_HALT_VALIDATION THEN
205 NULL;
206 WHEN OTHERS THEN
207 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
208 p_msg_name => g_required_value,
209 p_token1 => g_sqlcode_token,
210 p_token1_value => SQLCODE,
211 p_token2 => g_sqlerrm_token,
212 p_token2_value => SQLERRM);
213 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
214
215 END validate_percentage;
216 */
217 -- Commented by zrehman for Bug #5686162 15-Feb-2007 end
218
219
220 ---------------------------------------------------------------------------
221 -- PROCEDURE validate_account_builder_yn
222 -- 04/27/2001 Inserted by Robin Edwin for not null validation
223 ---------------------------------------------------------------------------
224 PROCEDURE validate_account_builder_yn(
225 x_return_status OUT NOCOPY VARCHAR2,
226 p_atlv_rec IN atlv_rec_type
227 ) IS
228 l_dummy VARCHAR2(1);
229 l_app_id NUMBER := 0;
230 l_view_App_id NUMBER := 0;
231
232 BEGIN
233 x_return_status := OKC_API.G_RET_STS_SUCCESS;
234
235 IF (p_atlv_rec.account_builder_yn IS NULL) OR
236 (p_atlv_rec.account_builder_yn = OKC_API.G_MISS_CHAR) THEN
237 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
238 p_msg_name => g_required_value,
239 p_token1 => g_col_name_token,
240 p_token1_value => 'ACCOUNT_BUILDER_YN');
241
242 x_return_status := OKC_API.G_RET_STS_ERROR;
243 RAISE G_EXCEPTION_HALT_VALIDATION;
244 ELSE
245 l_dummy :=
246 OKL_ACCOUNTING_UTIL.VALIDATE_LOOKUP_CODE(p_lookup_type => 'YES_NO',
247 p_lookup_code => p_atlv_rec.account_builder_yn,
248 p_app_id => l_app_id,
249 p_view_app_id => l_view_app_id);
250 IF (l_dummy = OKL_API.G_FALSE) THEN
251 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'ACCOUNT_BUILDER_YN');
252 x_return_status := OKC_API.G_RET_STS_ERROR;
253 RAISE G_EXCEPTION_HALT_VALIDATION;
254 END IF;
255
256 END IF;
257 EXCEPTION
258 WHEN G_EXCEPTION_HALT_VALIDATION THEN
259 NULL;
260 WHEN OTHERS THEN
261 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
262 p_msg_name => g_required_value,
263 p_token1 => g_sqlcode_token,
264 p_token1_value => SQLCODE,
265 p_token2 => g_sqlerrm_token,
266 p_token2_value => SQLERRM);
267 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
268 END validate_account_builder_yn;
269
270 ---------------------------------------------------------------------------
271 -- PROCEDURE validate_code_combination_id
272 -- 04/27/2001 Inserted by Robin Edwin for not null validation
273 ---------------------------------------------------------------------------
274 PROCEDURE validate_code_combination_id(
275 x_return_status OUT NOCOPY VARCHAR2,
276 p_atlv_rec IN atlv_rec_type
277 ) IS
278 l_fetch_flag VARCHAR2(1) := okl_api.g_true;
279
280 BEGIN
281
282 x_return_status := OKC_API.G_RET_STS_SUCCESS;
283 IF (p_atlv_rec.CODE_COMBINATION_ID IS NOT NULL) AND
284 (p_atlv_rec.CODE_COMBINATION_ID <> OKC_API.G_MISS_NUM) THEN
285
286 l_fetch_flag := OKL_ACCOUNTING_UTIL.VALIDATE_GL_CCID (p_atlv_rec.code_combination_id);
287 IF l_fetch_flag = okl_api.g_false THEN
288 Okc_Api.SET_MESSAGE(p_app_name => g_app_name,
289 p_msg_name => g_invalid_value,
290 p_token1 => g_col_name_token,
291 p_token1_value => 'CODE_COMBINATION_ID');
292 x_return_status := Okc_Api.G_RET_STS_ERROR;
293 RAISE G_EXCEPTION_HALT_VALIDATION;
294 END IF;
295 END IF;
296
297 EXCEPTION
298 WHEN G_EXCEPTION_HALT_VALIDATION THEN
299 NULL;
300 WHEN OTHERS THEN
301 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
302 p_msg_name => g_required_value,
303 p_token1 => g_sqlcode_token,
304 p_token1_value => SQLCODE,
305 p_token2 => g_sqlerrm_token,
306 p_token2_value => SQLERRM);
307 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
308 END validate_code_combination_id;
309
310 ---------------------------------------------------------------------------
311 -- PROCEDURE validate_CCID_BUILDER
312 ---------------------------------------------------------------------------
313 PROCEDURE Validate_CCID_BUILDER(x_return_status OUT NOCOPY VARCHAR2,
314 p_atlv_rec IN atlv_rec_type)
315 IS
316
317 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
318 l_unq_tbl OKC_UTIL.unq_tbl_type;
319 l_atlv_status VARCHAR2(1);
320 l_row_found BOOLEAN := FALSE;
321
322 BEGIN
323
324 -- initialize return status
325 x_return_status := OKC_API.G_RET_STS_SUCCESS;
326
327 -- If CCID is NULL and Account_Builder_YN is N then raise Error
328
329 IF ((p_atlv_rec.CODE_COMBINATION_ID IS NULL) OR
330 (p_atlv_rec.CODE_COMBINATION_ID = OKC_API.G_MISS_NUM))
331 AND
332 (p_atlv_rec.ACCOUNT_BUILDER_YN = 'N')
333 THEN
334 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
335 p_msg_name => 'OKL_CCID_OR_BUILDER_REQD');
336 x_return_status := OKC_API.G_RET_STS_ERROR;
337 RAISE G_EXCEPTION_HALT_VALIDATION;
338
339 END IF;
340
341 -- Removed the validation by santonyr on 22-Sep-2004
342 -- to fix bug 3901209
343
344 /*
345
346 -- If CCID is given then Account Builder YN cannot be 'Y'
347
348 IF ((p_atlv_rec.CODE_COMBINATION_ID IS NOT NULL) AND
349 (p_atlv_rec.CODE_COMBINATION_ID <> OKC_API.G_MISS_NUM))
350 AND
351 (p_atlv_rec.ACCOUNT_BUILDER_YN = 'Y' )
352 THEN
353 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
354 p_msg_name => 'OKL_GIVE_CCID_OR_BUILDER');
355 x_return_status := OKC_API.G_RET_STS_ERROR;
356 RAISE G_EXCEPTION_HALT_VALIDATION;
357
358 END IF;
359
360 */
361
362
363 -- If CCID is given then percentage should also be given
364
365 IF ((p_atlv_rec.CODE_COMBINATION_ID IS NOT NULL) AND
366 (p_atlv_rec.CODE_COMBINATION_ID <> OKC_API.G_MISS_NUM))
367 AND
368 ((p_atlv_rec.PERCENTAGE IS NULL) OR (p_atlv_rec.PERCENTAGE = OKC_API.G_MISS_NUM)) THEN
369
370 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
371 p_msg_name => 'OKL_GIVE_PERCENT_FOR_CCID');
372 x_return_status := OKC_API.G_RET_STS_ERROR;
373
374 RAISE G_EXCEPTION_HALT_VALIDATION;
375
376 END IF;
377
378
379
380 EXCEPTION
381 WHEN G_EXCEPTION_HALT_VALIDATION THEN
382 -- no processing necessary; validation can continue
383 -- with the next column
384 NULL;
385
386 WHEN OTHERS THEN
387 -- store SQL error message on message stack for caller
388 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
389 p_msg_name => g_unexpected_error,
390 p_token1 => g_sqlcode_token,
391 p_token1_value => SQLCODE,
392 p_token2 => g_sqlerrm_token,
393 p_token2_value => SQLERRM);
394
395 -- notify caller of an UNEXPECTED error
396 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
397
398 END Validate_CCID_BUILDER;
399
400 ---------------------------------------------------------------------------
401 -- FUNCTION get_seq_id
402 ---------------------------------------------------------------------------
403 FUNCTION get_seq_id RETURN NUMBER IS
404 BEGIN
405 RETURN(okc_p_util.raw_to_number(sys_guid()));
406 END get_seq_id;
407
408 ---------------------------------------------------------------------------
409 -- PROCEDURE qc
410 ---------------------------------------------------------------------------
411 PROCEDURE qc IS
412 BEGIN
413 NULL;
414 END qc;
415
416 ---------------------------------------------------------------------------
417 -- PROCEDURE change_version
418 ---------------------------------------------------------------------------
419 PROCEDURE change_version IS
420 BEGIN
421 NULL;
422 END change_version;
423
424 ---------------------------------------------------------------------------
425 -- PROCEDURE api_copy
426 ---------------------------------------------------------------------------
427 PROCEDURE api_copy IS
428 BEGIN
429 NULL;
430 END api_copy;
431
432 ---------------------------------------------------------------------------
433 -- FUNCTION get_rec for: OKL_AE_TMPT_LNES
434 ---------------------------------------------------------------------------
435 FUNCTION get_rec (
436 p_atl_rec IN atl_rec_type,
437 x_no_data_found OUT NOCOPY BOOLEAN
438 ) RETURN atl_rec_type IS
439 CURSOR okl_ae_tmpt_lnes_pk_csr (p_id IN NUMBER) IS
440 SELECT
441 ID,
442 SEQUENCE_NUMBER,
443 AVL_ID,
444 CODE_COMBINATION_ID,
445 AE_LINE_TYPE,
446 CRD_CODE,
447 ACCOUNT_BUILDER_YN,
448 OBJECT_VERSION_NUMBER,
449 DESCRIPTION,
450 PERCENTAGE,
451 ORG_ID,
452 ATTRIBUTE_CATEGORY,
453 ATTRIBUTE1,
454 ATTRIBUTE2,
455 ATTRIBUTE3,
456 ATTRIBUTE4,
457 ATTRIBUTE5,
458 ATTRIBUTE6,
459 ATTRIBUTE7,
460 ATTRIBUTE8,
461 ATTRIBUTE9,
462 ATTRIBUTE10,
463 ATTRIBUTE11,
464 ATTRIBUTE12,
465 ATTRIBUTE13,
466 ATTRIBUTE14,
467 ATTRIBUTE15,
468 CREATED_BY,
469 CREATION_DATE,
470 LAST_UPDATED_BY,
471 LAST_UPDATE_DATE,
472 LAST_UPDATE_LOGIN
473 FROM Okl_Ae_Tmpt_Lnes
474 WHERE okl_ae_tmpt_lnes.id = p_id;
475 l_okl_ae_tmpt_lnes_pk okl_ae_tmpt_lnes_pk_csr%ROWTYPE;
476 l_atl_rec atl_rec_type;
477 BEGIN
478 x_no_data_found := TRUE;
479 -- Get current database values
480 OPEN okl_ae_tmpt_lnes_pk_csr (p_atl_rec.id);
481 FETCH okl_ae_tmpt_lnes_pk_csr INTO
482 l_atl_rec.ID,
483 l_atl_rec.SEQUENCE_NUMBER,
484 l_atl_rec.AVL_ID,
485 l_atl_rec.CODE_COMBINATION_ID,
486 l_atl_rec.AE_LINE_TYPE,
487 l_atl_rec.CRD_CODE,
488 l_atl_rec.ACCOUNT_BUILDER_YN,
489 l_atl_rec.OBJECT_VERSION_NUMBER,
490 l_atl_rec.DESCRIPTION,
491 l_atl_rec.PERCENTAGE,
492 l_atl_rec.ORG_ID,
493 l_atl_rec.ATTRIBUTE_CATEGORY,
494 l_atl_rec.ATTRIBUTE1,
495 l_atl_rec.ATTRIBUTE2,
496 l_atl_rec.ATTRIBUTE3,
497 l_atl_rec.ATTRIBUTE4,
498 l_atl_rec.ATTRIBUTE5,
499 l_atl_rec.ATTRIBUTE6,
500 l_atl_rec.ATTRIBUTE7,
501 l_atl_rec.ATTRIBUTE8,
502 l_atl_rec.ATTRIBUTE9,
503 l_atl_rec.ATTRIBUTE10,
504 l_atl_rec.ATTRIBUTE11,
505 l_atl_rec.ATTRIBUTE12,
506 l_atl_rec.ATTRIBUTE13,
507 l_atl_rec.ATTRIBUTE14,
508 l_atl_rec.ATTRIBUTE15,
509 l_atl_rec.CREATED_BY,
510 l_atl_rec.CREATION_DATE,
511 l_atl_rec.LAST_UPDATED_BY,
512 l_atl_rec.LAST_UPDATE_DATE,
513 l_atl_rec.LAST_UPDATE_LOGIN;
514 x_no_data_found := okl_ae_tmpt_lnes_pk_csr%NOTFOUND;
515 CLOSE okl_ae_tmpt_lnes_pk_csr;
516 RETURN(l_atl_rec);
517 END get_rec;
518
519 FUNCTION get_rec (
520 p_atl_rec IN atl_rec_type
521 ) RETURN atl_rec_type IS
522 l_row_notfound BOOLEAN := TRUE;
523 BEGIN
524 RETURN(get_rec(p_atl_rec, l_row_notfound));
525 END get_rec;
526 ---------------------------------------------------------------------------
527 -- FUNCTION get_rec for: OKL_AE_TMPT_LNES_V
528 ---------------------------------------------------------------------------
529 FUNCTION get_rec (
530 p_atlv_rec IN atlv_rec_type,
531 x_no_data_found OUT NOCOPY BOOLEAN
532 ) RETURN atlv_rec_type IS
533 CURSOR okl_atlv_pk_csr (p_id IN NUMBER) IS
534 SELECT
535 ID,
536 OBJECT_VERSION_NUMBER,
537 AVL_ID,
538 CRD_CODE,
539 CODE_COMBINATION_ID,
540 AE_LINE_TYPE,
541 SEQUENCE_NUMBER,
542 DESCRIPTION,
543 PERCENTAGE,
544 ACCOUNT_BUILDER_YN,
545 ATTRIBUTE_CATEGORY,
546 ATTRIBUTE1,
547 ATTRIBUTE2,
548 ATTRIBUTE3,
549 ATTRIBUTE4,
550 ATTRIBUTE5,
551 ATTRIBUTE6,
552 ATTRIBUTE7,
553 ATTRIBUTE8,
554 ATTRIBUTE9,
555 ATTRIBUTE10,
556 ATTRIBUTE11,
557 ATTRIBUTE12,
558 ATTRIBUTE13,
559 ATTRIBUTE14,
560 ATTRIBUTE15,
561 ORG_ID,
562 CREATED_BY,
563 CREATION_DATE,
564 LAST_UPDATED_BY,
565 LAST_UPDATE_DATE,
566 LAST_UPDATE_LOGIN
567 FROM OKL_AE_TMPT_LNES
568 WHERE OKL_AE_TMPT_LNES.id = p_id;
569 l_okl_atlv_pk okl_atlv_pk_csr%ROWTYPE;
570 l_atlv_rec atlv_rec_type;
571 BEGIN
572 x_no_data_found := TRUE;
573 -- Get current database values
574 OPEN okl_atlv_pk_csr (p_atlv_rec.id);
575 FETCH okl_atlv_pk_csr INTO
576 l_atlv_rec.ID,
577 l_atlv_rec.OBJECT_VERSION_NUMBER,
578 l_atlv_rec.AVL_ID,
579 l_atlv_rec.CRD_CODE,
580 l_atlv_rec.CODE_COMBINATION_ID,
581 l_atlv_rec.AE_LINE_TYPE,
582 l_atlv_rec.SEQUENCE_NUMBER,
583 l_atlv_rec.DESCRIPTION,
584 l_atlv_rec.PERCENTAGE,
585 l_atlv_rec.ACCOUNT_BUILDER_YN,
586 l_atlv_rec.ATTRIBUTE_CATEGORY,
587 l_atlv_rec.ATTRIBUTE1,
588 l_atlv_rec.ATTRIBUTE2,
589 l_atlv_rec.ATTRIBUTE3,
590 l_atlv_rec.ATTRIBUTE4,
591 l_atlv_rec.ATTRIBUTE5,
592 l_atlv_rec.ATTRIBUTE6,
593 l_atlv_rec.ATTRIBUTE7,
594 l_atlv_rec.ATTRIBUTE8,
595 l_atlv_rec.ATTRIBUTE9,
596 l_atlv_rec.ATTRIBUTE10,
597 l_atlv_rec.ATTRIBUTE11,
598 l_atlv_rec.ATTRIBUTE12,
599 l_atlv_rec.ATTRIBUTE13,
600 l_atlv_rec.ATTRIBUTE14,
601 l_atlv_rec.ATTRIBUTE15,
602 l_atlv_rec.ORG_ID,
603 l_atlv_rec.CREATED_BY,
604 l_atlv_rec.CREATION_DATE,
605 l_atlv_rec.LAST_UPDATED_BY,
606 l_atlv_rec.LAST_UPDATE_DATE,
607 l_atlv_rec.LAST_UPDATE_LOGIN;
608 x_no_data_found := okl_atlv_pk_csr%NOTFOUND;
609 CLOSE okl_atlv_pk_csr;
610 RETURN(l_atlv_rec);
611 END get_rec;
612
613 FUNCTION get_rec (
614 p_atlv_rec IN atlv_rec_type
615 ) RETURN atlv_rec_type IS
616 l_row_notfound BOOLEAN := TRUE;
617 BEGIN
618 RETURN(get_rec(p_atlv_rec, l_row_notfound));
619 END get_rec;
620
621 --------------------------------------------------------
622 -- FUNCTION null_out_defaults for: OKL_AE_TMPT_LNES_V --
623 --------------------------------------------------------
624 FUNCTION null_out_defaults (
625 p_atlv_rec IN atlv_rec_type
626 ) RETURN atlv_rec_type IS
627 l_atlv_rec atlv_rec_type := p_atlv_rec;
628 BEGIN
629 IF (l_atlv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
630 l_atlv_rec.object_version_number := NULL;
631 END IF;
632 IF (l_atlv_rec.avl_id = OKC_API.G_MISS_NUM) THEN
633 l_atlv_rec.avl_id := NULL;
634 END IF;
635 IF (l_atlv_rec.crd_code = OKC_API.G_MISS_CHAR) THEN
636 l_atlv_rec.crd_code := NULL;
637 END IF;
638 IF (l_atlv_rec.code_combination_id = OKC_API.G_MISS_NUM) THEN
639 l_atlv_rec.code_combination_id := NULL;
640 END IF;
641 IF (l_atlv_rec.ae_line_type = OKC_API.G_MISS_CHAR) THEN
642 l_atlv_rec.ae_line_type := NULL;
643 END IF;
644 IF (l_atlv_rec.sequence_number = OKC_API.G_MISS_NUM) THEN
645 l_atlv_rec.sequence_number := NULL;
646 END IF;
647 IF (l_atlv_rec.description = OKC_API.G_MISS_CHAR) THEN
648 l_atlv_rec.description := NULL;
649 END IF;
650 IF (l_atlv_rec.percentage = OKC_API.G_MISS_NUM) THEN
651 l_atlv_rec.percentage := NULL;
652 END IF;
653 IF (l_atlv_rec.account_builder_yn = OKC_API.G_MISS_CHAR) THEN
654 l_atlv_rec.account_builder_yn := NULL;
655 END IF;
656 IF (l_atlv_rec.attribute_category = OKC_API.G_MISS_CHAR) THEN
657 l_atlv_rec.attribute_category := NULL;
658 END IF;
659 IF (l_atlv_rec.attribute1 = OKC_API.G_MISS_CHAR) THEN
660 l_atlv_rec.attribute1 := NULL;
661 END IF;
662 IF (l_atlv_rec.attribute2 = OKC_API.G_MISS_CHAR) THEN
663 l_atlv_rec.attribute2 := NULL;
664 END IF;
665 IF (l_atlv_rec.attribute3 = OKC_API.G_MISS_CHAR) THEN
666 l_atlv_rec.attribute3 := NULL;
667 END IF;
668 IF (l_atlv_rec.attribute4 = OKC_API.G_MISS_CHAR) THEN
669 l_atlv_rec.attribute4 := NULL;
670 END IF;
671 IF (l_atlv_rec.attribute5 = OKC_API.G_MISS_CHAR) THEN
672 l_atlv_rec.attribute5 := NULL;
673 END IF;
674 IF (l_atlv_rec.attribute6 = OKC_API.G_MISS_CHAR) THEN
675 l_atlv_rec.attribute6 := NULL;
676 END IF;
677 IF (l_atlv_rec.attribute7 = OKC_API.G_MISS_CHAR) THEN
678 l_atlv_rec.attribute7 := NULL;
679 END IF;
680 IF (l_atlv_rec.attribute8 = OKC_API.G_MISS_CHAR) THEN
681 l_atlv_rec.attribute8 := NULL;
682 END IF;
683 IF (l_atlv_rec.attribute9 = OKC_API.G_MISS_CHAR) THEN
684 l_atlv_rec.attribute9 := NULL;
685 END IF;
686 IF (l_atlv_rec.attribute10 = OKC_API.G_MISS_CHAR) THEN
687 l_atlv_rec.attribute10 := NULL;
688 END IF;
689 IF (l_atlv_rec.attribute11 = OKC_API.G_MISS_CHAR) THEN
690 l_atlv_rec.attribute11 := NULL;
691 END IF;
692 IF (l_atlv_rec.attribute12 = OKC_API.G_MISS_CHAR) THEN
693 l_atlv_rec.attribute12 := NULL;
694 END IF;
695 IF (l_atlv_rec.attribute13 = OKC_API.G_MISS_CHAR) THEN
696 l_atlv_rec.attribute13 := NULL;
697 END IF;
698 IF (l_atlv_rec.attribute14 = OKC_API.G_MISS_CHAR) THEN
699 l_atlv_rec.attribute14 := NULL;
700 END IF;
701 IF (l_atlv_rec.attribute15 = OKC_API.G_MISS_CHAR) THEN
702 l_atlv_rec.attribute15 := NULL;
703 END IF;
704 IF (l_atlv_rec.org_id = OKC_API.G_MISS_NUM) THEN
705 l_atlv_rec.org_id := NULL;
706 END IF;
707 IF (l_atlv_rec.created_by = OKC_API.G_MISS_NUM) THEN
708 l_atlv_rec.created_by := NULL;
709 END IF;
710 IF (l_atlv_rec.creation_date = OKC_API.G_MISS_DATE) THEN
711 l_atlv_rec.creation_date := NULL;
712 END IF;
713 IF (l_atlv_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
714 l_atlv_rec.last_updated_by := NULL;
715 END IF;
716 IF (l_atlv_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
717 l_atlv_rec.last_update_date := NULL;
718 END IF;
719 IF (l_atlv_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
720 l_atlv_rec.last_update_login := NULL;
721 END IF;
722 RETURN(l_atlv_rec);
723 END null_out_defaults;
724 ---------------------------------------------------------------------------
725 -- PROCEDURE Validate_Attributes
726 ---------------------------------------------------------------------------
727 ------------------------------------------------
728 -- Validate_Attributes for:OKL_AE_TMPT_LNES_V --
729 ------------------------------------------------
730 FUNCTION Validate_Attributes (
731 p_atlv_rec IN atlv_rec_type
732 ) RETURN VARCHAR2 IS
733 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
734 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
735 BEGIN
736
737
738 IF (p_atlv_rec.id = OKC_API.G_MISS_NUM) OR
739 (p_atlv_rec.id IS NULL)
740 THEN
741 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
742 l_return_status := OKC_API.G_RET_STS_ERROR;
743 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
744 x_return_status := l_return_status;
745 END IF;
746 END IF;
747
748 IF (p_atlv_rec.object_version_number = OKC_API.G_MISS_NUM) OR
749 (p_atlv_rec.object_version_number IS NULL)
750 THEN
751 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
752 l_return_status := OKC_API.G_RET_STS_ERROR;
753 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
754 x_return_status := l_return_status;
755 END IF;
756 END IF;
757
758 IF (p_atlv_rec.sequence_number = OKC_API.G_MISS_NUM) OR
759 (p_atlv_rec.sequence_number IS NULL)
760 THEN
761 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'sequence_number');
762 l_return_status := OKC_API.G_RET_STS_ERROR;
763 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
764 x_return_status := l_return_status;
765 END IF;
766 END IF;
767
768 validate_avl_id(x_return_status => l_return_status, p_atlv_rec => p_atlv_rec);
769 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
770 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
771 x_return_status := l_return_status;
772 END IF;
773 END IF;
774
775 validate_ae_line_type(x_return_status => l_return_status, p_atlv_rec => p_atlv_rec);
776 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
777 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
778 x_return_status := l_return_status;
779 END IF;
780 END IF;
781
782 validate_crd_code(x_return_status => l_return_status, p_atlv_rec => p_atlv_rec);
783 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
784 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
785 x_return_status := l_return_status;
786 END IF;
787 END IF;
788 -- Commented by zrehman for Bug #5686162 15-Feb-2007
789 /*
790 validate_percentage(x_return_status => l_return_status, p_atlv_rec => p_atlv_rec);
791 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
792 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
793 x_return_status := l_return_status;
794 END IF;
795 END IF;
796 */
797 -- Commented by zrehman for Bug #5686162 15-Feb-2007
798
799 validate_account_builder_yn(x_return_status => l_return_status, p_atlv_rec => p_atlv_rec);
800 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
801 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
802 x_return_status := l_return_status;
803 END IF;
804 END IF;
805
806 validate_code_combination_id(x_return_status => l_return_status, p_atlv_rec => p_atlv_rec);
807 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
808 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
809 x_return_status := l_return_status;
810 END IF;
811 END IF;
812
813
814 RETURN(x_return_status);
815
816 EXCEPTION
817 WHEN OTHERS THEN
818 -- store SQL error message on message stack for caller
819 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
820 p_msg_name => g_unexpected_error,
821 p_token1 => g_sqlcode_token,
822 p_token1_value => SQLCODE,
823 p_token2 => g_sqlerrm_token,
824 p_token2_value => SQLERRM);
825
826 --notify caller of an UNEXPECTED error
827 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
828
829 --return status to caller
830 RETURN x_return_status;
831
832 END Validate_Attributes;
833
834 ---------------------------------------------------------------------------
835 -- PROCEDURE Validate_Record
836 ---------------------------------------------------------------------------
837 --------------------------------------------
838 -- Validate_Record for:OKL_AE_TMPT_LNES_V --
839 --------------------------------------------
840 FUNCTION Validate_Record (
841 p_atlv_rec IN atlv_rec_type
842 ) RETURN VARCHAR2 IS
843 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
844 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
845
846 BEGIN
847
848 -- Validate_CCID_BUILDER
849 Validate_CCID_Builder(x_return_status, p_atlv_rec);
850 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
851 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
852 -- need to leave
853 l_return_status := x_return_status;
854 RAISE G_EXCEPTION_HALT_VALIDATION;
855 ELSE
856 -- record that there was an error
857 l_return_status := x_return_status;
858 END IF;
859 END IF;
860
861 RETURN(l_return_status);
862
863 EXCEPTION
864 WHEN G_EXCEPTION_HALT_VALIDATION THEN
865 -- exit with return status
866 NULL;
867 RETURN (l_return_status);
868
869 WHEN OTHERS THEN
870 -- store SQL error message on message stack for caller
871 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
872 p_msg_name => g_unexpected_error,
873 p_token1 => g_sqlcode_token,
874 p_token1_value => SQLCODE,
875 p_token2 => g_sqlerrm_token,
876 p_token2_value => SQLERRM);
877 -- notify caller of an UNEXPECTED error
878 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
879 RETURN(l_return_status);
880 END Validate_Record;
881
882 ---------------------------------------------------------------------------
883 -- PROCEDURE Migrate
884 ---------------------------------------------------------------------------
885 PROCEDURE migrate (
886 p_from IN atlv_rec_type,
887 p_to IN OUT NOCOPY atl_rec_type
888 ) IS
889 BEGIN
890 p_to.id := p_from.id;
891 p_to.sequence_number := p_from.sequence_number;
892 p_to.avl_id := p_from.avl_id;
893 p_to.code_combination_id := p_from.code_combination_id;
894 p_to.ae_line_type := p_from.ae_line_type;
895 p_to.crd_code := p_from.crd_code;
896 p_to.account_builder_yn := p_from.account_builder_yn;
897 p_to.object_version_number := p_from.object_version_number;
898 p_to.description := p_from.description;
899 p_to.percentage := p_from.percentage;
900 p_to.org_id := p_from.org_id;
901 p_to.attribute_category := p_from.attribute_category;
902 p_to.attribute1 := p_from.attribute1;
903 p_to.attribute2 := p_from.attribute2;
904 p_to.attribute3 := p_from.attribute3;
905 p_to.attribute4 := p_from.attribute4;
906 p_to.attribute5 := p_from.attribute5;
907 p_to.attribute6 := p_from.attribute6;
908 p_to.attribute7 := p_from.attribute7;
909 p_to.attribute8 := p_from.attribute8;
910 p_to.attribute9 := p_from.attribute9;
911 p_to.attribute10 := p_from.attribute10;
912 p_to.attribute11 := p_from.attribute11;
913 p_to.attribute12 := p_from.attribute12;
914 p_to.attribute13 := p_from.attribute13;
915 p_to.attribute14 := p_from.attribute14;
916 p_to.attribute15 := p_from.attribute15;
917 p_to.created_by := p_from.created_by;
918 p_to.creation_date := p_from.creation_date;
919 p_to.last_updated_by := p_from.last_updated_by;
920 p_to.last_update_date := p_from.last_update_date;
921 p_to.last_update_login := p_from.last_update_login;
922 END migrate;
923 PROCEDURE migrate (
924 p_from IN atl_rec_type,
925 p_to OUT NOCOPY atlv_rec_type
926 ) IS
927 BEGIN
928 p_to.id := p_from.id;
929 p_to.sequence_number := p_from.sequence_number;
930 p_to.avl_id := p_from.avl_id;
931 p_to.code_combination_id := p_from.code_combination_id;
932 p_to.ae_line_type := p_from.ae_line_type;
933 p_to.crd_code := p_from.crd_code;
934 p_to.account_builder_yn := p_from.account_builder_yn;
935 p_to.object_version_number := p_from.object_version_number;
936 p_to.description := p_from.description;
937 p_to.percentage := p_from.percentage;
938 p_to.org_id := p_from.org_id;
939 p_to.attribute_category := p_from.attribute_category;
940 p_to.attribute1 := p_from.attribute1;
941 p_to.attribute2 := p_from.attribute2;
942 p_to.attribute3 := p_from.attribute3;
943 p_to.attribute4 := p_from.attribute4;
944 p_to.attribute5 := p_from.attribute5;
945 p_to.attribute6 := p_from.attribute6;
946 p_to.attribute7 := p_from.attribute7;
947 p_to.attribute8 := p_from.attribute8;
948 p_to.attribute9 := p_from.attribute9;
949 p_to.attribute10 := p_from.attribute10;
950 p_to.attribute11 := p_from.attribute11;
951 p_to.attribute12 := p_from.attribute12;
952 p_to.attribute13 := p_from.attribute13;
953 p_to.attribute14 := p_from.attribute14;
954 p_to.attribute15 := p_from.attribute15;
955 p_to.created_by := p_from.created_by;
956 p_to.creation_date := p_from.creation_date;
957 p_to.last_updated_by := p_from.last_updated_by;
958 p_to.last_update_date := p_from.last_update_date;
959 p_to.last_update_login := p_from.last_update_login;
960 END migrate;
961
962 ---------------------------------------------------------------------------
963 -- PROCEDURE validate_row
964 ---------------------------------------------------------------------------
965 -----------------------------------------
966 -- validate_row for:OKL_AE_TMPT_LNES_V --
967 -----------------------------------------
968 PROCEDURE validate_row(
969 p_api_version IN NUMBER,
970 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
971 x_return_status OUT NOCOPY VARCHAR2,
972 x_msg_count OUT NOCOPY NUMBER,
973 x_msg_data OUT NOCOPY VARCHAR2,
974 p_atlv_rec IN atlv_rec_type) IS
975
976 l_api_version CONSTANT NUMBER := 1;
977 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
978 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
979 l_atlv_rec atlv_rec_type := p_atlv_rec;
980 l_atl_rec atl_rec_type;
981 BEGIN
982 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
983 G_PKG_NAME,
984 p_init_msg_list,
985 l_api_version,
986 p_api_version,
987 '_PVT',
988 x_return_status);
989 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
990 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
991 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
992 RAISE OKC_API.G_EXCEPTION_ERROR;
993 END IF;
994 --- Validate all non-missing attributes (Item Level Validation)
995 l_return_status := Validate_Attributes(l_atlv_rec);
996 --- If any errors happen abort API
997 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
998 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
999 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1000 RAISE OKC_API.G_EXCEPTION_ERROR;
1001 END IF;
1002 l_return_status := Validate_Record(l_atlv_rec);
1003 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1004 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1005 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1006 RAISE OKC_API.G_EXCEPTION_ERROR;
1007 END IF;
1008 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1009 EXCEPTION
1010 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1011 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1012 (
1013 l_api_name,
1014 G_PKG_NAME,
1015 'OKC_API.G_RET_STS_ERROR',
1016 x_msg_count,
1017 x_msg_data,
1018 '_PVT'
1019 );
1020 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1021 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1022 (
1023 l_api_name,
1024 G_PKG_NAME,
1025 'OKC_API.G_RET_STS_UNEXP_ERROR',
1026 x_msg_count,
1027 x_msg_data,
1028 '_PVT'
1029 );
1030 WHEN OTHERS THEN
1031 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1032 (
1033 l_api_name,
1034 G_PKG_NAME,
1035 'OTHERS',
1036 x_msg_count,
1037 x_msg_data,
1038 '_PVT'
1039 );
1040 END validate_row;
1041 ------------------------------------------
1042 -- PL/SQL TBL validate_row for:ATLV_TBL --
1043 ------------------------------------------
1044 PROCEDURE validate_row(
1045 p_api_version IN NUMBER,
1046 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1047 x_return_status OUT NOCOPY VARCHAR2,
1048 x_msg_count OUT NOCOPY NUMBER,
1049 x_msg_data OUT NOCOPY VARCHAR2,
1050 p_atlv_tbl IN atlv_tbl_type) IS
1051
1052 l_api_version CONSTANT NUMBER := 1;
1053 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1054 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1055 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1056 i NUMBER := 0;
1057 BEGIN
1058 OKC_API.init_msg_list(p_init_msg_list);
1059 -- Make sure PL/SQL table has records in it before passing
1060 IF (p_atlv_tbl.COUNT > 0) THEN
1061 i := p_atlv_tbl.FIRST;
1062 LOOP
1063 validate_row (
1064 p_api_version => p_api_version,
1065 p_init_msg_list => OKC_API.G_FALSE,
1066 x_return_status => x_return_status,
1067 x_msg_count => x_msg_count,
1068 x_msg_data => x_msg_data,
1069 p_atlv_rec => p_atlv_tbl(i));
1070
1071 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1072 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1073 l_overall_status := x_return_status;
1074 END IF;
1075 END IF;
1076
1077 EXIT WHEN (i = p_atlv_tbl.LAST);
1078 i := p_atlv_tbl.NEXT(i);
1079 END LOOP;
1080 x_return_status := l_overall_status;
1081
1082 END IF;
1083 EXCEPTION
1084 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1085 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1086 (
1087 l_api_name,
1088 G_PKG_NAME,
1089 'OKC_API.G_RET_STS_ERROR',
1090 x_msg_count,
1091 x_msg_data,
1092 '_PVT'
1093 );
1094 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1095 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1096 (
1097 l_api_name,
1098 G_PKG_NAME,
1099 'OKC_API.G_RET_STS_UNEXP_ERROR',
1100 x_msg_count,
1101 x_msg_data,
1102 '_PVT'
1103 );
1104 WHEN OTHERS THEN
1105 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1106 (
1107 l_api_name,
1108 G_PKG_NAME,
1109 'OTHERS',
1110 x_msg_count,
1111 x_msg_data,
1112 '_PVT'
1113 );
1114 END validate_row;
1115
1116 ---------------------------------------------------------------------------
1117 -- PROCEDURE insert_row
1118 ---------------------------------------------------------------------------
1119 -------------------------------------
1120 -- insert_row for:OKL_AE_TMPT_LNES --
1121 -------------------------------------
1122 PROCEDURE insert_row(
1123 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1124 x_return_status OUT NOCOPY VARCHAR2,
1125 x_msg_count OUT NOCOPY NUMBER,
1126 x_msg_data OUT NOCOPY VARCHAR2,
1127 p_atl_rec IN atl_rec_type,
1128 x_atl_rec OUT NOCOPY atl_rec_type) IS
1129
1130 l_api_version CONSTANT NUMBER := 1;
1131 l_api_name CONSTANT VARCHAR2(30) := 'LNES_insert_row';
1132 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1133 l_atl_rec atl_rec_type := p_atl_rec;
1134 l_def_atl_rec atl_rec_type;
1135 l_org_id VARCHAR2(10);
1136
1137 -----------------------------------------
1138 -- Set_Attributes for:OKL_AE_TMPT_LNES --
1139 -----------------------------------------
1140 FUNCTION Set_Attributes (
1141 p_atl_rec IN atl_rec_type,
1142 x_atl_rec OUT NOCOPY atl_rec_type
1143 ) RETURN VARCHAR2 IS
1144 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1145 BEGIN
1146 x_atl_rec := p_atl_rec;
1147 RETURN(l_return_status);
1148 END Set_Attributes;
1149 BEGIN
1150 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1151 p_init_msg_list,
1152 '_PVT',
1153 x_return_status);
1154 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1155 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1156 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1157 RAISE OKC_API.G_EXCEPTION_ERROR;
1158 END IF;
1159
1160
1161 --- Setting item attributes
1162 l_return_status := Set_Attributes(
1163 p_atl_rec, -- IN
1164 l_atl_rec); -- OUT
1165 --- If any errors happen abort API
1166 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1167 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1168 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1169 RAISE OKC_API.G_EXCEPTION_ERROR;
1170 END IF;
1171
1172 -- Added by zrehman for Bug #5686162 15-Feb-2007 start
1173 -- This was as per directive from management in the SLA Uptake solution design review.
1174 l_atl_rec.percentage := 100;
1175 -- Added by zrehman for Bug #5686162 15-Feb-2007 end
1176
1177 INSERT INTO OKL_AE_TMPT_LNES(
1178 id,
1179 sequence_number,
1180 avl_id,
1181 code_combination_id,
1182 ae_line_type,
1183 crd_code,
1184 account_builder_yn,
1185 object_version_number,
1186 description,
1187 percentage,
1188 org_id,
1189 attribute_category,
1190 attribute1,
1191 attribute2,
1192 attribute3,
1193 attribute4,
1194 attribute5,
1195 attribute6,
1196 attribute7,
1197 attribute8,
1198 attribute9,
1199 attribute10,
1200 attribute11,
1201 attribute12,
1202 attribute13,
1203 attribute14,
1204 attribute15,
1205 created_by,
1206 creation_date,
1207 last_updated_by,
1208 last_update_date,
1209 last_update_login)
1210 VALUES (
1211 l_atl_rec.id,
1212 l_atl_rec.sequence_number,
1213 l_atl_rec.avl_id,
1214 l_atl_rec.code_combination_id,
1215 l_atl_rec.ae_line_type,
1216 l_atl_rec.crd_code,
1217 l_atl_rec.account_builder_yn,
1218 l_atl_rec.object_version_number,
1219 l_atl_rec.description,
1220 l_atl_rec.percentage,
1221 l_org_id,
1222 l_atl_rec.attribute_category,
1223 l_atl_rec.attribute1,
1224 l_atl_rec.attribute2,
1225 l_atl_rec.attribute3,
1226 l_atl_rec.attribute4,
1227 l_atl_rec.attribute5,
1228 l_atl_rec.attribute6,
1229 l_atl_rec.attribute7,
1230 l_atl_rec.attribute8,
1231 l_atl_rec.attribute9,
1232 l_atl_rec.attribute10,
1233 l_atl_rec.attribute11,
1234 l_atl_rec.attribute12,
1235 l_atl_rec.attribute13,
1236 l_atl_rec.attribute14,
1237 l_atl_rec.attribute15,
1238 l_atl_rec.created_by,
1239 l_atl_rec.creation_date,
1240 l_atl_rec.last_updated_by,
1241 l_atl_rec.last_update_date,
1242 l_atl_rec.last_update_login);
1243 -- Set OUT values
1244 x_atl_rec := l_atl_rec;
1245 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1246 EXCEPTION
1247 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1248 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1249 (
1250 l_api_name,
1251 G_PKG_NAME,
1252 'OKC_API.G_RET_STS_ERROR',
1253 x_msg_count,
1254 x_msg_data,
1255 '_PVT'
1256 );
1257 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1258 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1259 (
1260 l_api_name,
1261 G_PKG_NAME,
1262 'OKC_API.G_RET_STS_UNEXP_ERROR',
1263 x_msg_count,
1264 x_msg_data,
1265 '_PVT'
1266 );
1267 WHEN OTHERS THEN
1268 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1269 (
1270 l_api_name,
1271 G_PKG_NAME,
1272 'OTHERS',
1273 x_msg_count,
1274 x_msg_data,
1275 '_PVT'
1276 );
1277 END insert_row;
1278 ---------------------------------------
1279 -- insert_row for:OKL_AE_TMPT_LNES_V --
1280 ---------------------------------------
1281 PROCEDURE insert_row(
1282 p_api_version IN NUMBER,
1283 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1284 x_return_status OUT NOCOPY VARCHAR2,
1285 x_msg_count OUT NOCOPY NUMBER,
1286 x_msg_data OUT NOCOPY VARCHAR2,
1287 p_atlv_rec IN atlv_rec_type,
1288 x_atlv_rec OUT NOCOPY atlv_rec_type) IS
1289
1290 l_api_version CONSTANT NUMBER := 1;
1291 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1292 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1293 l_atlv_rec atlv_rec_type;
1294 l_def_atlv_rec atlv_rec_type;
1295 l_atl_rec atl_rec_type;
1296 lx_atl_rec atl_rec_type;
1297 -------------------------------
1298 -- FUNCTION fill_who_columns --
1299 -------------------------------
1300 FUNCTION fill_who_columns (
1301 p_atlv_rec IN atlv_rec_type
1302 ) RETURN atlv_rec_type IS
1303 l_atlv_rec atlv_rec_type := p_atlv_rec;
1304 BEGIN
1305 l_atlv_rec.CREATION_DATE := SYSDATE;
1306 l_atlv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1307 l_atlv_rec.LAST_UPDATE_DATE := SYSDATE;
1308 l_atlv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1309 l_atlv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1310 RETURN(l_atlv_rec);
1311 END fill_who_columns;
1312 -------------------------------------------
1313 -- Set_Attributes for:OKL_AE_TMPT_LNES_V --
1314 -------------------------------------------
1315 FUNCTION Set_Attributes (
1316 p_atlv_rec IN atlv_rec_type,
1317 x_atlv_rec OUT NOCOPY atlv_rec_type
1318 ) RETURN VARCHAR2 IS
1319 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1320 l_max_seq NUMBER;
1321
1322 CURSOR atl_csr(v_avl_id NUMBER) IS
1323 SELECT nvl(MAX(sequence_number),0)
1324 FROM OKL_AE_TMPT_LNES
1325 WHERE AVL_ID = v_avl_id;
1326
1327
1328 BEGIN
1329
1330 x_atlv_rec := p_atlv_rec;
1331 x_atlv_rec.OBJECT_VERSION_NUMBER := 1;
1332 x_atlv_rec.ORG_ID := MO_GLOBAL.GET_CURRENT_ORG_ID();
1333
1334 OPEN atl_csr(x_atlv_rec.AVL_ID);
1335 FETCH atl_csr INTO l_max_seq;
1336 CLOSE atl_csr;
1337
1338 IF (l_max_seq) = 0 THEN
1339 x_atlv_rec.sequence_number := 1;
1340 ELSE
1341 x_atlv_rec.sequence_number := l_max_seq + 1;
1342 END IF;
1343
1344 RETURN(l_return_status);
1345 END Set_Attributes;
1346 BEGIN
1347 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1348 G_PKG_NAME,
1349 p_init_msg_list,
1350 l_api_version,
1351 p_api_version,
1352 '_PVT',
1353 x_return_status);
1354 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1355 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1356 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1357 RAISE OKC_API.G_EXCEPTION_ERROR;
1358 END IF;
1359 l_atlv_rec := null_out_defaults(p_atlv_rec);
1360 -- Set primary key value
1361 l_atlv_rec.ID := get_seq_id;
1362 --- Setting item attributes
1363 l_return_status := Set_Attributes(
1364 l_atlv_rec, -- IN
1365 l_def_atlv_rec); -- OUT
1366 --- If any errors happen abort API
1367 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1368 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1369 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1370 RAISE OKC_API.G_EXCEPTION_ERROR;
1371 END IF;
1372 l_def_atlv_rec := fill_who_columns(l_def_atlv_rec);
1373 --- Validate all non-missing attributes (Item Level Validation)
1374 l_return_status := Validate_Attributes(l_def_atlv_rec);
1375 --- If any errors happen abort API
1376 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1377 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1378 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1379 RAISE OKC_API.G_EXCEPTION_ERROR;
1380 END IF;
1381 l_return_status := Validate_Record(l_def_atlv_rec);
1382 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1383 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1384 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1385 RAISE OKC_API.G_EXCEPTION_ERROR;
1386 END IF;
1387 --------------------------------------
1388 -- Move VIEW record to "Child" records
1389 --------------------------------------
1390 migrate(l_def_atlv_rec, l_atl_rec);
1391 --------------------------------------------
1392 -- Call the INSERT_ROW for each child record
1393 --------------------------------------------
1394 insert_row(
1395 p_init_msg_list,
1396 x_return_status,
1397 x_msg_count,
1398 x_msg_data,
1399 l_atl_rec,
1400 lx_atl_rec
1401 );
1402 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1403 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1404 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1405 RAISE OKC_API.G_EXCEPTION_ERROR;
1406 END IF;
1407 migrate(lx_atl_rec, l_def_atlv_rec);
1408 -- Set OUT values
1409 x_atlv_rec := l_def_atlv_rec;
1410 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1411 EXCEPTION
1412 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1413 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1414 (
1415 l_api_name,
1416 G_PKG_NAME,
1417 'OKC_API.G_RET_STS_ERROR',
1418 x_msg_count,
1419 x_msg_data,
1420 '_PVT'
1421 );
1422 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1423 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1424 (
1425 l_api_name,
1426 G_PKG_NAME,
1427 'OKC_API.G_RET_STS_UNEXP_ERROR',
1428 x_msg_count,
1429 x_msg_data,
1430 '_PVT'
1431 );
1432 WHEN OTHERS THEN
1433 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1434 (
1435 l_api_name,
1436 G_PKG_NAME,
1437 'OTHERS',
1438 x_msg_count,
1439 x_msg_data,
1440 '_PVT'
1441 );
1442 END insert_row;
1443 ----------------------------------------
1444 -- PL/SQL TBL insert_row for:ATLV_TBL --
1445 ----------------------------------------
1446 PROCEDURE insert_row(
1447 p_api_version IN NUMBER,
1448 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1449 x_return_status OUT NOCOPY VARCHAR2,
1450 x_msg_count OUT NOCOPY NUMBER,
1451 x_msg_data OUT NOCOPY VARCHAR2,
1452 p_atlv_tbl IN atlv_tbl_type,
1453 x_atlv_tbl OUT NOCOPY atlv_tbl_type) IS
1454
1455 l_api_version CONSTANT NUMBER := 1;
1456 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1457 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1458 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1459 i NUMBER := 0;
1460 BEGIN
1461 OKC_API.init_msg_list(p_init_msg_list);
1462 -- Make sure PL/SQL table has records in it before passing
1463 IF (p_atlv_tbl.COUNT > 0) THEN
1464 i := p_atlv_tbl.FIRST;
1465 LOOP
1466 insert_row (
1467 p_api_version => p_api_version,
1468 p_init_msg_list => OKC_API.G_FALSE,
1469 x_return_status => x_return_status,
1470 x_msg_count => x_msg_count,
1471 x_msg_data => x_msg_data,
1472 p_atlv_rec => p_atlv_tbl(i),
1473 x_atlv_rec => x_atlv_tbl(i));
1474
1475 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1476 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1477 l_overall_status := x_return_status;
1478 END IF;
1479 END IF;
1480
1481 EXIT WHEN (i = p_atlv_tbl.LAST);
1482 i := p_atlv_tbl.NEXT(i);
1483 END LOOP;
1484 x_return_status := l_overall_status;
1485 END IF;
1486 EXCEPTION
1487 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1488 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1489 (
1490 l_api_name,
1491 G_PKG_NAME,
1492 'OKC_API.G_RET_STS_ERROR',
1493 x_msg_count,
1494 x_msg_data,
1495 '_PVT'
1496 );
1497 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1498 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1499 (
1500 l_api_name,
1501 G_PKG_NAME,
1502 'OKC_API.G_RET_STS_UNEXP_ERROR',
1503 x_msg_count,
1504 x_msg_data,
1505 '_PVT'
1506 );
1507 WHEN OTHERS THEN
1508 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1509 (
1510 l_api_name,
1511 G_PKG_NAME,
1512 'OTHERS',
1513 x_msg_count,
1514 x_msg_data,
1515 '_PVT'
1516 );
1517 END insert_row;
1518
1519 ---------------------------------------------------------------------------
1520 -- PROCEDURE lock_row
1521 ---------------------------------------------------------------------------
1522 -----------------------------------
1523 -- lock_row for:OKL_AE_TMPT_LNES --
1524 -----------------------------------
1525 PROCEDURE lock_row(
1526 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1527 x_return_status OUT NOCOPY VARCHAR2,
1528 x_msg_count OUT NOCOPY NUMBER,
1529 x_msg_data OUT NOCOPY VARCHAR2,
1530 p_atl_rec IN atl_rec_type) IS
1531
1532 E_Resource_Busy EXCEPTION;
1533 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1534 CURSOR lock_csr (p_atl_rec IN atl_rec_type) IS
1535 SELECT OBJECT_VERSION_NUMBER
1536 FROM OKL_AE_TMPT_LNES
1537 WHERE ID = p_atl_rec.id
1538 AND OBJECT_VERSION_NUMBER = p_atl_rec.object_version_number
1539 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1540
1541 CURSOR lchk_csr (p_atl_rec IN atl_rec_type) IS
1542 SELECT OBJECT_VERSION_NUMBER
1543 FROM OKL_AE_TMPT_LNES
1544 WHERE ID = p_atl_rec.id;
1545 l_api_version CONSTANT NUMBER := 1;
1546 l_api_name CONSTANT VARCHAR2(30) := 'LNES_lock_row';
1547 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1548 l_object_version_number OKL_AE_TMPT_LNES.OBJECT_VERSION_NUMBER%TYPE;
1549 lc_object_version_number OKL_AE_TMPT_LNES.OBJECT_VERSION_NUMBER%TYPE;
1550 l_row_notfound BOOLEAN := FALSE;
1551 lc_row_notfound BOOLEAN := FALSE;
1552 BEGIN
1553 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1554 p_init_msg_list,
1555 '_PVT',
1556 x_return_status);
1557 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1558 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1559 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1560 RAISE OKC_API.G_EXCEPTION_ERROR;
1561 END IF;
1562 BEGIN
1563 OPEN lock_csr(p_atl_rec);
1564 FETCH lock_csr INTO l_object_version_number;
1565 l_row_notfound := lock_csr%NOTFOUND;
1566 CLOSE lock_csr;
1567 EXCEPTION
1568 WHEN E_Resource_Busy THEN
1569 IF (lock_csr%ISOPEN) THEN
1570 CLOSE lock_csr;
1571 END IF;
1572 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1573 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1574 END;
1575
1576 IF ( l_row_notfound ) THEN
1577 OPEN lchk_csr(p_atl_rec);
1578 FETCH lchk_csr INTO lc_object_version_number;
1579 lc_row_notfound := lchk_csr%NOTFOUND;
1580 CLOSE lchk_csr;
1581 END IF;
1582 IF (lc_row_notfound) THEN
1583 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1584 RAISE OKC_API.G_EXCEPTION_ERROR;
1585 ELSIF lc_object_version_number > p_atl_rec.object_version_number THEN
1586 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1587 RAISE OKC_API.G_EXCEPTION_ERROR;
1588 ELSIF lc_object_version_number <> p_atl_rec.object_version_number THEN
1589 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1590 RAISE OKC_API.G_EXCEPTION_ERROR;
1591 ELSIF lc_object_version_number = -1 THEN
1592 OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1593 RAISE OKC_API.G_EXCEPTION_ERROR;
1594 END IF;
1595 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1596 EXCEPTION
1597 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1598 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1599 (
1600 l_api_name,
1601 G_PKG_NAME,
1602 'OKC_API.G_RET_STS_ERROR',
1603 x_msg_count,
1604 x_msg_data,
1605 '_PVT'
1606 );
1607 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1608 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1609 (
1610 l_api_name,
1611 G_PKG_NAME,
1612 'OKC_API.G_RET_STS_UNEXP_ERROR',
1613 x_msg_count,
1614 x_msg_data,
1615 '_PVT'
1616 );
1617 WHEN OTHERS THEN
1618 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1619 (
1620 l_api_name,
1621 G_PKG_NAME,
1622 'OTHERS',
1623 x_msg_count,
1624 x_msg_data,
1625 '_PVT'
1626 );
1627 END lock_row;
1628 -------------------------------------
1629 -- lock_row for:OKL_AE_TMPT_LNES_V --
1630 -------------------------------------
1631 PROCEDURE lock_row(
1632 p_api_version IN NUMBER,
1633 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1634 x_return_status OUT NOCOPY VARCHAR2,
1635 x_msg_count OUT NOCOPY NUMBER,
1636 x_msg_data OUT NOCOPY VARCHAR2,
1637 p_atlv_rec IN atlv_rec_type) IS
1638
1639 l_api_version CONSTANT NUMBER := 1;
1640 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
1641 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1642 l_atl_rec atl_rec_type;
1643 BEGIN
1644 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1645 G_PKG_NAME,
1646 p_init_msg_list,
1647 l_api_version,
1648 p_api_version,
1649 '_PVT',
1650 x_return_status);
1651 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1652 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1653 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1654 RAISE OKC_API.G_EXCEPTION_ERROR;
1655 END IF;
1656 --------------------------------------
1657 -- Move VIEW record to "Child" records
1658 --------------------------------------
1659 migrate(p_atlv_rec, l_atl_rec);
1660 --------------------------------------------
1661 -- Call the LOCK_ROW for each child record
1662 --------------------------------------------
1663 lock_row(
1664 p_init_msg_list,
1665 x_return_status,
1666 x_msg_count,
1667 x_msg_data,
1668 l_atl_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 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1676 EXCEPTION
1677 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1678 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1679 (
1680 l_api_name,
1681 G_PKG_NAME,
1682 'OKC_API.G_RET_STS_ERROR',
1683 x_msg_count,
1684 x_msg_data,
1685 '_PVT'
1686 );
1687 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1688 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1689 (
1690 l_api_name,
1691 G_PKG_NAME,
1692 'OKC_API.G_RET_STS_UNEXP_ERROR',
1693 x_msg_count,
1694 x_msg_data,
1695 '_PVT'
1696 );
1697 WHEN OTHERS THEN
1698 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1699 (
1700 l_api_name,
1701 G_PKG_NAME,
1702 'OTHERS',
1703 x_msg_count,
1704 x_msg_data,
1705 '_PVT'
1706 );
1707 END lock_row;
1708 --------------------------------------
1709 -- PL/SQL TBL lock_row for:ATLV_TBL --
1710 --------------------------------------
1711 PROCEDURE lock_row(
1712 p_api_version IN NUMBER,
1713 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1714 x_return_status OUT NOCOPY VARCHAR2,
1715 x_msg_count OUT NOCOPY NUMBER,
1716 x_msg_data OUT NOCOPY VARCHAR2,
1717 p_atlv_tbl IN atlv_tbl_type) IS
1718
1719 l_api_version CONSTANT NUMBER := 1;
1720 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
1721 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1722 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1723 i NUMBER := 0;
1724 BEGIN
1725 OKC_API.init_msg_list(p_init_msg_list);
1726 -- Make sure PL/SQL table has records in it before passing
1727 IF (p_atlv_tbl.COUNT > 0) THEN
1728 i := p_atlv_tbl.FIRST;
1729 LOOP
1730 lock_row (
1731 p_api_version => p_api_version,
1732 p_init_msg_list => OKC_API.G_FALSE,
1733 x_return_status => x_return_status,
1734 x_msg_count => x_msg_count,
1735 x_msg_data => x_msg_data,
1736 p_atlv_rec => p_atlv_tbl(i));
1737 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1738 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1739 l_overall_status := x_return_status;
1740 END IF;
1741 END IF;
1742 EXIT WHEN (i = p_atlv_tbl.LAST);
1743 i := p_atlv_tbl.NEXT(i);
1744 END LOOP;
1745 x_return_status := l_overall_status;
1746 END IF;
1747 EXCEPTION
1748 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1749 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1750 (
1751 l_api_name,
1752 G_PKG_NAME,
1753 'OKC_API.G_RET_STS_ERROR',
1754 x_msg_count,
1755 x_msg_data,
1756 '_PVT'
1757 );
1758 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1759 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1760 (
1761 l_api_name,
1762 G_PKG_NAME,
1763 'OKC_API.G_RET_STS_UNEXP_ERROR',
1764 x_msg_count,
1765 x_msg_data,
1766 '_PVT'
1767 );
1768 WHEN OTHERS THEN
1769 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1770 (
1771 l_api_name,
1772 G_PKG_NAME,
1773 'OTHERS',
1774 x_msg_count,
1775 x_msg_data,
1776 '_PVT'
1777 );
1778 END lock_row;
1779
1780 ---------------------------------------------------------------------------
1781 -- PROCEDURE update_row
1782 ---------------------------------------------------------------------------
1783 -------------------------------------
1784 -- update_row for:OKL_AE_TMPT_LNES --
1785 -------------------------------------
1786 PROCEDURE update_row(
1787 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1788 x_return_status OUT NOCOPY VARCHAR2,
1789 x_msg_count OUT NOCOPY NUMBER,
1790 x_msg_data OUT NOCOPY VARCHAR2,
1791 p_atl_rec IN atl_rec_type,
1792 x_atl_rec OUT NOCOPY atl_rec_type) IS
1793
1794 l_api_version CONSTANT NUMBER := 1;
1795 l_api_name CONSTANT VARCHAR2(30) := 'LNES_update_row';
1796 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1797 l_atl_rec atl_rec_type := p_atl_rec;
1798 l_def_atl_rec atl_rec_type;
1799 l_row_notfound BOOLEAN := TRUE;
1800 ----------------------------------
1801 -- FUNCTION populate_new_record --
1802 ----------------------------------
1803 FUNCTION populate_new_record (
1804 p_atl_rec IN atl_rec_type,
1805 x_atl_rec OUT NOCOPY atl_rec_type
1806 ) RETURN VARCHAR2 IS
1807 l_atl_rec atl_rec_type;
1808 l_row_notfound BOOLEAN := TRUE;
1809 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1810 BEGIN
1811 x_atl_rec := p_atl_rec;
1812 -- Get current database values
1813 l_atl_rec := get_rec(p_atl_rec, l_row_notfound);
1814 IF (l_row_notfound) THEN
1815 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1816 END IF;
1817 IF (x_atl_rec.id = OKC_API.G_MISS_NUM)
1818 THEN
1819 x_atl_rec.id := l_atl_rec.id;
1820 END IF;
1821 IF (x_atl_rec.sequence_number = OKC_API.G_MISS_NUM)
1822 THEN
1823 x_atl_rec.sequence_number := l_atl_rec.sequence_number;
1824 END IF;
1825 IF (x_atl_rec.avl_id = OKC_API.G_MISS_NUM)
1826 THEN
1827 x_atl_rec.avl_id := l_atl_rec.avl_id;
1828 END IF;
1829 IF (x_atl_rec.code_combination_id = OKC_API.G_MISS_NUM)
1830 THEN
1831 x_atl_rec.code_combination_id := l_atl_rec.code_combination_id;
1832 END IF;
1833 IF (x_atl_rec.ae_line_type = OKC_API.G_MISS_CHAR)
1834 THEN
1835 x_atl_rec.ae_line_type := l_atl_rec.ae_line_type;
1836 END IF;
1837 IF (x_atl_rec.crd_code = OKC_API.G_MISS_CHAR)
1838 THEN
1839 x_atl_rec.crd_code := l_atl_rec.crd_code;
1840 END IF;
1841 IF (x_atl_rec.account_builder_yn = OKC_API.G_MISS_CHAR)
1842 THEN
1843 x_atl_rec.account_builder_yn := l_atl_rec.account_builder_yn;
1844 END IF;
1845 IF (x_atl_rec.object_version_number = OKC_API.G_MISS_NUM)
1846 THEN
1847 x_atl_rec.object_version_number := l_atl_rec.object_version_number;
1848 END IF;
1849 IF (x_atl_rec.description = OKC_API.G_MISS_CHAR)
1850 THEN
1851 x_atl_rec.description := l_atl_rec.description;
1852 END IF;
1853 IF (x_atl_rec.percentage = OKC_API.G_MISS_NUM)
1854 THEN
1855 x_atl_rec.percentage := l_atl_rec.percentage;
1856 END IF;
1857 IF (x_atl_rec.org_id = OKC_API.G_MISS_NUM)
1858 THEN
1859 x_atl_rec.org_id := l_atl_rec.org_id;
1860 END IF;
1861 IF (x_atl_rec.attribute_category = OKC_API.G_MISS_CHAR)
1862 THEN
1863 x_atl_rec.attribute_category := l_atl_rec.attribute_category;
1864 END IF;
1865 IF (x_atl_rec.attribute1 = OKC_API.G_MISS_CHAR)
1866 THEN
1867 x_atl_rec.attribute1 := l_atl_rec.attribute1;
1868 END IF;
1869 IF (x_atl_rec.attribute2 = OKC_API.G_MISS_CHAR)
1870 THEN
1871 x_atl_rec.attribute2 := l_atl_rec.attribute2;
1872 END IF;
1873 IF (x_atl_rec.attribute3 = OKC_API.G_MISS_CHAR)
1874 THEN
1875 x_atl_rec.attribute3 := l_atl_rec.attribute3;
1876 END IF;
1877 IF (x_atl_rec.attribute4 = OKC_API.G_MISS_CHAR)
1878 THEN
1879 x_atl_rec.attribute4 := l_atl_rec.attribute4;
1880 END IF;
1881 IF (x_atl_rec.attribute5 = OKC_API.G_MISS_CHAR)
1882 THEN
1883 x_atl_rec.attribute5 := l_atl_rec.attribute5;
1884 END IF;
1885 IF (x_atl_rec.attribute6 = OKC_API.G_MISS_CHAR)
1886 THEN
1887 x_atl_rec.attribute6 := l_atl_rec.attribute6;
1888 END IF;
1889 IF (x_atl_rec.attribute7 = OKC_API.G_MISS_CHAR)
1890 THEN
1891 x_atl_rec.attribute7 := l_atl_rec.attribute7;
1892 END IF;
1893 IF (x_atl_rec.attribute8 = OKC_API.G_MISS_CHAR)
1894 THEN
1895 x_atl_rec.attribute8 := l_atl_rec.attribute8;
1896 END IF;
1897 IF (x_atl_rec.attribute9 = OKC_API.G_MISS_CHAR)
1898 THEN
1899 x_atl_rec.attribute9 := l_atl_rec.attribute9;
1900 END IF;
1901 IF (x_atl_rec.attribute10 = OKC_API.G_MISS_CHAR)
1902 THEN
1903 x_atl_rec.attribute10 := l_atl_rec.attribute10;
1904 END IF;
1905 IF (x_atl_rec.attribute11 = OKC_API.G_MISS_CHAR)
1906 THEN
1907 x_atl_rec.attribute11 := l_atl_rec.attribute11;
1908 END IF;
1909 IF (x_atl_rec.attribute12 = OKC_API.G_MISS_CHAR)
1910 THEN
1911 x_atl_rec.attribute12 := l_atl_rec.attribute12;
1912 END IF;
1913 IF (x_atl_rec.attribute13 = OKC_API.G_MISS_CHAR)
1914 THEN
1915 x_atl_rec.attribute13 := l_atl_rec.attribute13;
1916 END IF;
1917 IF (x_atl_rec.attribute14 = OKC_API.G_MISS_CHAR)
1918 THEN
1919 x_atl_rec.attribute14 := l_atl_rec.attribute14;
1920 END IF;
1921 IF (x_atl_rec.attribute15 = OKC_API.G_MISS_CHAR)
1922 THEN
1923 x_atl_rec.attribute15 := l_atl_rec.attribute15;
1924 END IF;
1925 IF (x_atl_rec.created_by = OKC_API.G_MISS_NUM)
1926 THEN
1927 x_atl_rec.created_by := l_atl_rec.created_by;
1928 END IF;
1929 IF (x_atl_rec.creation_date = OKC_API.G_MISS_DATE)
1930 THEN
1931 x_atl_rec.creation_date := l_atl_rec.creation_date;
1932 END IF;
1933 IF (x_atl_rec.last_updated_by = OKC_API.G_MISS_NUM)
1934 THEN
1935 x_atl_rec.last_updated_by := l_atl_rec.last_updated_by;
1936 END IF;
1937 IF (x_atl_rec.last_update_date = OKC_API.G_MISS_DATE)
1938 THEN
1939 x_atl_rec.last_update_date := l_atl_rec.last_update_date;
1940 END IF;
1941 IF (x_atl_rec.last_update_login = OKC_API.G_MISS_NUM)
1942 THEN
1943 x_atl_rec.last_update_login := l_atl_rec.last_update_login;
1944 END IF;
1945 RETURN(l_return_status);
1946 END populate_new_record;
1947 -----------------------------------------
1948 -- Set_Attributes for:OKL_AE_TMPT_LNES --
1949 -----------------------------------------
1950 FUNCTION Set_Attributes (
1951 p_atl_rec IN atl_rec_type,
1952 x_atl_rec OUT NOCOPY atl_rec_type
1953 ) RETURN VARCHAR2 IS
1954 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1955 BEGIN
1956 x_atl_rec := p_atl_rec;
1957 RETURN(l_return_status);
1958 END Set_Attributes;
1959 BEGIN
1960 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1961 p_init_msg_list,
1962 '_PVT',
1963 x_return_status);
1964 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1965 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1966 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1967 RAISE OKC_API.G_EXCEPTION_ERROR;
1968 END IF;
1969 --- Setting item attributes
1970 l_return_status := Set_Attributes(
1971 p_atl_rec, -- IN
1972 l_atl_rec); -- OUT
1973 --- If any errors happen abort API
1974 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1975 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1976 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1977 RAISE OKC_API.G_EXCEPTION_ERROR;
1978 END IF;
1979 l_return_status := populate_new_record(l_atl_rec, l_def_atl_rec);
1980 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1981 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1982 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1983 RAISE OKC_API.G_EXCEPTION_ERROR;
1984 END IF;
1985 UPDATE OKL_AE_TMPT_LNES
1986 SET SEQUENCE_NUMBER = l_def_atl_rec.sequence_number,
1987 AVL_ID = l_def_atl_rec.avl_id,
1988 CODE_COMBINATION_ID = l_def_atl_rec.code_combination_id,
1989 AE_LINE_TYPE = l_def_atl_rec.ae_line_type,
1990 CRD_CODE = l_def_atl_rec.crd_code,
1991 ACCOUNT_BUILDER_YN = l_def_atl_rec.account_builder_yn,
1992 OBJECT_VERSION_NUMBER = l_def_atl_rec.object_version_number,
1993 DESCRIPTION = l_def_atl_rec.description,
1994 PERCENTAGE = l_def_atl_rec.percentage,
1995 ORG_ID = l_def_atl_rec.org_id,
1996 ATTRIBUTE_CATEGORY = l_def_atl_rec.attribute_category,
1997 ATTRIBUTE1 = l_def_atl_rec.attribute1,
1998 ATTRIBUTE2 = l_def_atl_rec.attribute2,
1999 ATTRIBUTE3 = l_def_atl_rec.attribute3,
2000 ATTRIBUTE4 = l_def_atl_rec.attribute4,
2001 ATTRIBUTE5 = l_def_atl_rec.attribute5,
2002 ATTRIBUTE6 = l_def_atl_rec.attribute6,
2003 ATTRIBUTE7 = l_def_atl_rec.attribute7,
2004 ATTRIBUTE8 = l_def_atl_rec.attribute8,
2005 ATTRIBUTE9 = l_def_atl_rec.attribute9,
2006 ATTRIBUTE10 = l_def_atl_rec.attribute10,
2007 ATTRIBUTE11 = l_def_atl_rec.attribute11,
2008 ATTRIBUTE12 = l_def_atl_rec.attribute12,
2009 ATTRIBUTE13 = l_def_atl_rec.attribute13,
2010 ATTRIBUTE14 = l_def_atl_rec.attribute14,
2011 ATTRIBUTE15 = l_def_atl_rec.attribute15,
2012 CREATED_BY = l_def_atl_rec.created_by,
2013 CREATION_DATE = l_def_atl_rec.creation_date,
2014 LAST_UPDATED_BY = l_def_atl_rec.last_updated_by,
2015 LAST_UPDATE_DATE = l_def_atl_rec.last_update_date,
2016 LAST_UPDATE_LOGIN = l_def_atl_rec.last_update_login
2017 WHERE ID = l_def_atl_rec.id;
2018
2019 x_atl_rec := l_def_atl_rec;
2020 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2021 EXCEPTION
2022 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2023 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2024 (
2025 l_api_name,
2026 G_PKG_NAME,
2027 'OKC_API.G_RET_STS_ERROR',
2028 x_msg_count,
2029 x_msg_data,
2030 '_PVT'
2031 );
2032 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2033 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2034 (
2035 l_api_name,
2036 G_PKG_NAME,
2037 'OKC_API.G_RET_STS_UNEXP_ERROR',
2038 x_msg_count,
2039 x_msg_data,
2040 '_PVT'
2041 );
2042 WHEN OTHERS THEN
2043 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2044 (
2045 l_api_name,
2046 G_PKG_NAME,
2047 'OTHERS',
2048 x_msg_count,
2049 x_msg_data,
2050 '_PVT'
2051 );
2052 END update_row;
2053 ---------------------------------------
2054 -- update_row for:OKL_AE_TMPT_LNES_V --
2055 ---------------------------------------
2056 PROCEDURE update_row(
2057 p_api_version IN NUMBER,
2058 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2059 x_return_status OUT NOCOPY VARCHAR2,
2060 x_msg_count OUT NOCOPY NUMBER,
2061 x_msg_data OUT NOCOPY VARCHAR2,
2062 p_atlv_rec IN atlv_rec_type,
2063 x_atlv_rec OUT NOCOPY atlv_rec_type) IS
2064
2065 l_api_version CONSTANT NUMBER := 1;
2066 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2067 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2068 l_atlv_rec atlv_rec_type := p_atlv_rec;
2069 l_def_atlv_rec atlv_rec_type;
2070 l_atl_rec atl_rec_type;
2071 lx_atl_rec atl_rec_type;
2072 -------------------------------
2073 -- FUNCTION fill_who_columns --
2074 -------------------------------
2075 FUNCTION fill_who_columns (
2076 p_atlv_rec IN atlv_rec_type
2077 ) RETURN atlv_rec_type IS
2078 l_atlv_rec atlv_rec_type := p_atlv_rec;
2079 BEGIN
2080 l_atlv_rec.LAST_UPDATE_DATE := SYSDATE;
2081 l_atlv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2082 l_atlv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2083 RETURN(l_atlv_rec);
2084 END fill_who_columns;
2085 ----------------------------------
2086 -- FUNCTION populate_new_record --
2087 ----------------------------------
2088 FUNCTION populate_new_record (
2089 p_atlv_rec IN atlv_rec_type,
2090 x_atlv_rec OUT NOCOPY atlv_rec_type
2091 ) RETURN VARCHAR2 IS
2092 l_atlv_rec atlv_rec_type;
2093 l_row_notfound BOOLEAN := TRUE;
2094 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2095 BEGIN
2096 x_atlv_rec := p_atlv_rec;
2097 -- Get current database values
2098 l_atlv_rec := get_rec(p_atlv_rec, l_row_notfound);
2099 IF (l_row_notfound) THEN
2100 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2101 END IF;
2102 IF (x_atlv_rec.id = OKC_API.G_MISS_NUM)
2103 THEN
2104 x_atlv_rec.id := l_atlv_rec.id;
2105 END IF;
2106 IF (x_atlv_rec.object_version_number = OKC_API.G_MISS_NUM)
2107 THEN
2108 x_atlv_rec.object_version_number := l_atlv_rec.object_version_number;
2109 END IF;
2110 IF (x_atlv_rec.avl_id = OKC_API.G_MISS_NUM)
2111 THEN
2112 x_atlv_rec.avl_id := l_atlv_rec.avl_id;
2113 END IF;
2114 IF (x_atlv_rec.crd_code = OKC_API.G_MISS_CHAR)
2115 THEN
2116 x_atlv_rec.crd_code := l_atlv_rec.crd_code;
2117 END IF;
2118 IF (x_atlv_rec.code_combination_id = OKC_API.G_MISS_NUM)
2119 THEN
2120 x_atlv_rec.code_combination_id := l_atlv_rec.code_combination_id;
2121 END IF;
2122 IF (x_atlv_rec.ae_line_type = OKC_API.G_MISS_CHAR)
2123 THEN
2124 x_atlv_rec.ae_line_type := l_atlv_rec.ae_line_type;
2125 END IF;
2126 IF (x_atlv_rec.sequence_number = OKC_API.G_MISS_NUM)
2127 THEN
2128 x_atlv_rec.sequence_number := l_atlv_rec.sequence_number;
2129 END IF;
2130 IF (x_atlv_rec.description = OKC_API.G_MISS_CHAR)
2131 THEN
2132 x_atlv_rec.description := l_atlv_rec.description;
2133 END IF;
2134 IF (x_atlv_rec.percentage = OKC_API.G_MISS_NUM)
2135 THEN
2136 x_atlv_rec.percentage := l_atlv_rec.percentage;
2137 END IF;
2138 IF (x_atlv_rec.account_builder_yn = OKC_API.G_MISS_CHAR)
2139 THEN
2140 x_atlv_rec.account_builder_yn := l_atlv_rec.account_builder_yn;
2141 END IF;
2142 IF (x_atlv_rec.attribute_category = OKC_API.G_MISS_CHAR)
2143 THEN
2144 x_atlv_rec.attribute_category := l_atlv_rec.attribute_category;
2145 END IF;
2146 IF (x_atlv_rec.attribute1 = OKC_API.G_MISS_CHAR)
2147 THEN
2148 x_atlv_rec.attribute1 := l_atlv_rec.attribute1;
2149 END IF;
2150 IF (x_atlv_rec.attribute2 = OKC_API.G_MISS_CHAR)
2151 THEN
2152 x_atlv_rec.attribute2 := l_atlv_rec.attribute2;
2153 END IF;
2154 IF (x_atlv_rec.attribute3 = OKC_API.G_MISS_CHAR)
2155 THEN
2156 x_atlv_rec.attribute3 := l_atlv_rec.attribute3;
2157 END IF;
2158 IF (x_atlv_rec.attribute4 = OKC_API.G_MISS_CHAR)
2159 THEN
2160 x_atlv_rec.attribute4 := l_atlv_rec.attribute4;
2161 END IF;
2162 IF (x_atlv_rec.attribute5 = OKC_API.G_MISS_CHAR)
2163 THEN
2164 x_atlv_rec.attribute5 := l_atlv_rec.attribute5;
2165 END IF;
2166 IF (x_atlv_rec.attribute6 = OKC_API.G_MISS_CHAR)
2167 THEN
2168 x_atlv_rec.attribute6 := l_atlv_rec.attribute6;
2169 END IF;
2170 IF (x_atlv_rec.attribute7 = OKC_API.G_MISS_CHAR)
2171 THEN
2172 x_atlv_rec.attribute7 := l_atlv_rec.attribute7;
2173 END IF;
2174 IF (x_atlv_rec.attribute8 = OKC_API.G_MISS_CHAR)
2175 THEN
2176 x_atlv_rec.attribute8 := l_atlv_rec.attribute8;
2177 END IF;
2178 IF (x_atlv_rec.attribute9 = OKC_API.G_MISS_CHAR)
2179 THEN
2180 x_atlv_rec.attribute9 := l_atlv_rec.attribute9;
2181 END IF;
2182 IF (x_atlv_rec.attribute10 = OKC_API.G_MISS_CHAR)
2183 THEN
2184 x_atlv_rec.attribute10 := l_atlv_rec.attribute10;
2185 END IF;
2186 IF (x_atlv_rec.attribute11 = OKC_API.G_MISS_CHAR)
2187 THEN
2188 x_atlv_rec.attribute11 := l_atlv_rec.attribute11;
2189 END IF;
2190 IF (x_atlv_rec.attribute12 = OKC_API.G_MISS_CHAR)
2191 THEN
2192 x_atlv_rec.attribute12 := l_atlv_rec.attribute12;
2193 END IF;
2194 IF (x_atlv_rec.attribute13 = OKC_API.G_MISS_CHAR)
2195 THEN
2196 x_atlv_rec.attribute13 := l_atlv_rec.attribute13;
2197 END IF;
2198 IF (x_atlv_rec.attribute14 = OKC_API.G_MISS_CHAR)
2199 THEN
2200 x_atlv_rec.attribute14 := l_atlv_rec.attribute14;
2201 END IF;
2202 IF (x_atlv_rec.attribute15 = OKC_API.G_MISS_CHAR)
2203 THEN
2204 x_atlv_rec.attribute15 := l_atlv_rec.attribute15;
2205 END IF;
2206 IF (x_atlv_rec.org_id = OKC_API.G_MISS_NUM)
2207 THEN
2208 x_atlv_rec.org_id := l_atlv_rec.org_id;
2209 END IF;
2210 IF (x_atlv_rec.created_by = OKC_API.G_MISS_NUM)
2211 THEN
2212 x_atlv_rec.created_by := l_atlv_rec.created_by;
2213 END IF;
2214 IF (x_atlv_rec.creation_date = OKC_API.G_MISS_DATE)
2215 THEN
2216 x_atlv_rec.creation_date := l_atlv_rec.creation_date;
2217 END IF;
2218 IF (x_atlv_rec.last_updated_by = OKC_API.G_MISS_NUM)
2219 THEN
2220 x_atlv_rec.last_updated_by := l_atlv_rec.last_updated_by;
2221 END IF;
2222 IF (x_atlv_rec.last_update_date = OKC_API.G_MISS_DATE)
2223 THEN
2224 x_atlv_rec.last_update_date := l_atlv_rec.last_update_date;
2225 END IF;
2226 IF (x_atlv_rec.last_update_login = OKC_API.G_MISS_NUM)
2227 THEN
2228 x_atlv_rec.last_update_login := l_atlv_rec.last_update_login;
2229 END IF;
2230 RETURN(l_return_status);
2231 END populate_new_record;
2232 -------------------------------------------
2233 -- Set_Attributes for:OKL_AE_TMPT_LNES_V --
2234 -------------------------------------------
2235 FUNCTION Set_Attributes (
2236 p_atlv_rec IN atlv_rec_type,
2237 x_atlv_rec OUT NOCOPY atlv_rec_type
2238 ) RETURN VARCHAR2 IS
2239 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2240 BEGIN
2241 x_atlv_rec := p_atlv_rec;
2242 RETURN(l_return_status);
2243 END Set_Attributes;
2244 BEGIN
2245 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2246 G_PKG_NAME,
2247 p_init_msg_list,
2248 l_api_version,
2249 p_api_version,
2250 '_PVT',
2251 x_return_status);
2252 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2253 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2254 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2255 RAISE OKC_API.G_EXCEPTION_ERROR;
2256 END IF;
2257 --- Setting item attributes
2258 l_return_status := Set_Attributes(
2259 p_atlv_rec, -- IN
2260 l_atlv_rec); -- OUT
2261 --- If any errors happen abort API
2262 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2263 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2264 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2265 RAISE OKC_API.G_EXCEPTION_ERROR;
2266 END IF;
2267 l_return_status := populate_new_record(l_atlv_rec, l_def_atlv_rec);
2268 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2269 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2270 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2271 RAISE OKC_API.G_EXCEPTION_ERROR;
2272 END IF;
2273 l_def_atlv_rec := fill_who_columns(l_def_atlv_rec);
2274 --- Validate all non-missing attributes (Item Level Validation)
2275 l_return_status := Validate_Attributes(l_def_atlv_rec);
2276 --- If any errors happen abort API
2277 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2278 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2279 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2280 RAISE OKC_API.G_EXCEPTION_ERROR;
2281 END IF;
2282 l_return_status := Validate_Record(l_def_atlv_rec);
2283 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2284 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2285 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2286 RAISE OKC_API.G_EXCEPTION_ERROR;
2287 END IF;
2288
2289 --------------------------------------
2290 -- Move VIEW record to "Child" records
2291 --------------------------------------
2292 migrate(l_def_atlv_rec, l_atl_rec);
2293 --------------------------------------------
2294 -- Call the UPDATE_ROW for each child record
2295 --------------------------------------------
2296 update_row(
2297 p_init_msg_list,
2298 x_return_status,
2299 x_msg_count,
2300 x_msg_data,
2301 l_atl_rec,
2302 lx_atl_rec
2303 );
2304 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2305 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2306 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2307 RAISE OKC_API.G_EXCEPTION_ERROR;
2308 END IF;
2309 migrate(lx_atl_rec, l_def_atlv_rec);
2310 x_atlv_rec := l_def_atlv_rec;
2311 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2312 EXCEPTION
2313 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2314 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2315 (
2316 l_api_name,
2317 G_PKG_NAME,
2318 'OKC_API.G_RET_STS_ERROR',
2319 x_msg_count,
2320 x_msg_data,
2321 '_PVT'
2322 );
2323 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2324 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2325 (
2326 l_api_name,
2327 G_PKG_NAME,
2328 'OKC_API.G_RET_STS_UNEXP_ERROR',
2329 x_msg_count,
2330 x_msg_data,
2331 '_PVT'
2332 );
2333 WHEN OTHERS THEN
2334 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2335 (
2336 l_api_name,
2337 G_PKG_NAME,
2338 'OTHERS',
2339 x_msg_count,
2340 x_msg_data,
2341 '_PVT'
2342 );
2343 END update_row;
2344 ----------------------------------------
2345 -- PL/SQL TBL update_row for:ATLV_TBL --
2346 ----------------------------------------
2347 PROCEDURE update_row(
2348 p_api_version IN NUMBER,
2349 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2350 x_return_status OUT NOCOPY VARCHAR2,
2351 x_msg_count OUT NOCOPY NUMBER,
2352 x_msg_data OUT NOCOPY VARCHAR2,
2353 p_atlv_tbl IN atlv_tbl_type,
2354 x_atlv_tbl OUT NOCOPY atlv_tbl_type) IS
2355
2356 l_api_version CONSTANT NUMBER := 1;
2357 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2358 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2359 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2360 i NUMBER := 0;
2361 BEGIN
2362 OKC_API.init_msg_list(p_init_msg_list);
2363 -- Make sure PL/SQL table has records in it before passing
2364 IF (p_atlv_tbl.COUNT > 0) THEN
2365 i := p_atlv_tbl.FIRST;
2366 LOOP
2367 update_row (
2368 p_api_version => p_api_version,
2369 p_init_msg_list => OKC_API.G_FALSE,
2370 x_return_status => x_return_status,
2371 x_msg_count => x_msg_count,
2372 x_msg_data => x_msg_data,
2373 p_atlv_rec => p_atlv_tbl(i),
2374 x_atlv_rec => x_atlv_tbl(i));
2375 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2376 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2377 l_overall_status := x_return_status;
2378 END IF;
2379 END IF;
2380 EXIT WHEN (i = p_atlv_tbl.LAST);
2381 i := p_atlv_tbl.NEXT(i);
2382 END LOOP;
2383 x_return_status := l_overall_status;
2384 END IF;
2385 EXCEPTION
2386 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2387 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2388 (
2389 l_api_name,
2390 G_PKG_NAME,
2391 'OKC_API.G_RET_STS_ERROR',
2392 x_msg_count,
2393 x_msg_data,
2394 '_PVT'
2395 );
2396 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2397 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2398 (
2399 l_api_name,
2400 G_PKG_NAME,
2401 'OKC_API.G_RET_STS_UNEXP_ERROR',
2402 x_msg_count,
2403 x_msg_data,
2404 '_PVT'
2405 );
2406 WHEN OTHERS THEN
2407 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2408 (
2409 l_api_name,
2410 G_PKG_NAME,
2411 'OTHERS',
2412 x_msg_count,
2413 x_msg_data,
2414 '_PVT'
2415 );
2416 END update_row;
2417
2418 ---------------------------------------------------------------------------
2419 -- PROCEDURE delete_row
2420 ---------------------------------------------------------------------------
2421 -------------------------------------
2422 -- delete_row for:OKL_AE_TMPT_LNES --
2423 -------------------------------------
2424 PROCEDURE delete_row(
2425 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2426 x_return_status OUT NOCOPY VARCHAR2,
2427 x_msg_count OUT NOCOPY NUMBER,
2428 x_msg_data OUT NOCOPY VARCHAR2,
2429 p_atl_rec IN atl_rec_type) IS
2430
2431 l_api_version CONSTANT NUMBER := 1;
2432 l_api_name CONSTANT VARCHAR2(30) := 'LNES_delete_row';
2433 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2434 l_atl_rec atl_rec_type:= p_atl_rec;
2435 l_row_notfound BOOLEAN := TRUE;
2436 BEGIN
2437 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2438 p_init_msg_list,
2439 '_PVT',
2440 x_return_status);
2441 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2442 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2443 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2444 RAISE OKC_API.G_EXCEPTION_ERROR;
2445 END IF;
2446 DELETE FROM OKL_AE_TMPT_LNES
2447 WHERE ID = l_atl_rec.id;
2448
2449 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2450 EXCEPTION
2451 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2452 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2453 (
2454 l_api_name,
2455 G_PKG_NAME,
2456 'OKC_API.G_RET_STS_ERROR',
2457 x_msg_count,
2458 x_msg_data,
2459 '_PVT'
2460 );
2461 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2462 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2463 (
2464 l_api_name,
2465 G_PKG_NAME,
2466 'OKC_API.G_RET_STS_UNEXP_ERROR',
2467 x_msg_count,
2468 x_msg_data,
2469 '_PVT'
2470 );
2471 WHEN OTHERS THEN
2472 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2473 (
2474 l_api_name,
2475 G_PKG_NAME,
2476 'OTHERS',
2477 x_msg_count,
2478 x_msg_data,
2479 '_PVT'
2480 );
2481 END delete_row;
2482 ---------------------------------------
2483 -- delete_row for:OKL_AE_TMPT_LNES_V --
2484 ---------------------------------------
2485 PROCEDURE delete_row(
2486 p_api_version IN NUMBER,
2487 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2488 x_return_status OUT NOCOPY VARCHAR2,
2489 x_msg_count OUT NOCOPY NUMBER,
2490 x_msg_data OUT NOCOPY VARCHAR2,
2491 p_atlv_rec IN atlv_rec_type) IS
2492
2493 l_api_version CONSTANT NUMBER := 1;
2494 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
2495 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2496 l_atlv_rec atlv_rec_type := p_atlv_rec;
2497 l_atl_rec atl_rec_type;
2498 BEGIN
2499 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2500 G_PKG_NAME,
2501 p_init_msg_list,
2502 l_api_version,
2503 p_api_version,
2504 '_PVT',
2505 x_return_status);
2506 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2507 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2508 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2509 RAISE OKC_API.G_EXCEPTION_ERROR;
2510 END IF;
2511 --------------------------------------
2512 -- Move VIEW record to "Child" records
2513 --------------------------------------
2514 migrate(l_atlv_rec, l_atl_rec);
2515 --------------------------------------------
2516 -- Call the DELETE_ROW for each child record
2517 --------------------------------------------
2518 delete_row(
2519 p_init_msg_list,
2520 x_return_status,
2521 x_msg_count,
2522 x_msg_data,
2523 l_atl_rec
2524 );
2525 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2526 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2527 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2528 RAISE OKC_API.G_EXCEPTION_ERROR;
2529 END IF;
2530 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2531 EXCEPTION
2532 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2533 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2534 (
2535 l_api_name,
2536 G_PKG_NAME,
2537 'OKC_API.G_RET_STS_ERROR',
2538 x_msg_count,
2539 x_msg_data,
2540 '_PVT'
2541 );
2542 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2543 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2544 (
2545 l_api_name,
2546 G_PKG_NAME,
2547 'OKC_API.G_RET_STS_UNEXP_ERROR',
2548 x_msg_count,
2549 x_msg_data,
2550 '_PVT'
2551 );
2552 WHEN OTHERS THEN
2553 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2554 (
2555 l_api_name,
2556 G_PKG_NAME,
2557 'OTHERS',
2558 x_msg_count,
2559 x_msg_data,
2560 '_PVT'
2561 );
2562 END delete_row;
2563 ----------------------------------------
2564 -- PL/SQL TBL delete_row for:ATLV_TBL --
2565 ----------------------------------------
2566 PROCEDURE delete_row(
2567 p_api_version IN NUMBER,
2568 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2569 x_return_status OUT NOCOPY VARCHAR2,
2570 x_msg_count OUT NOCOPY NUMBER,
2571 x_msg_data OUT NOCOPY VARCHAR2,
2572 p_atlv_tbl IN atlv_tbl_type) IS
2573
2574 l_api_version CONSTANT NUMBER := 1;
2575 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2576 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2577 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2578 i NUMBER := 0;
2579 BEGIN
2580 OKC_API.init_msg_list(p_init_msg_list);
2581 -- Make sure PL/SQL table has records in it before passing
2582 IF (p_atlv_tbl.COUNT > 0) THEN
2583 i := p_atlv_tbl.FIRST;
2584 LOOP
2585 delete_row (
2586 p_api_version => p_api_version,
2587 p_init_msg_list => OKC_API.G_FALSE,
2588 x_return_status => x_return_status,
2589 x_msg_count => x_msg_count,
2590 x_msg_data => x_msg_data,
2591 p_atlv_rec => p_atlv_tbl(i));
2592 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2593 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2594 l_overall_status := x_return_status;
2595 END IF;
2596 END IF;
2597 EXIT WHEN (i = p_atlv_tbl.LAST);
2598 i := p_atlv_tbl.NEXT(i);
2599 END LOOP;
2600 x_return_status := l_overall_status;
2601 END IF;
2602 EXCEPTION
2603 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2604 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2605 (
2606 l_api_name,
2607 G_PKG_NAME,
2608 'OKC_API.G_RET_STS_ERROR',
2609 x_msg_count,
2610 x_msg_data,
2611 '_PVT'
2612 );
2613 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2614 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2615 (
2616 l_api_name,
2617 G_PKG_NAME,
2618 'OKC_API.G_RET_STS_UNEXP_ERROR',
2619 x_msg_count,
2620 x_msg_data,
2621 '_PVT'
2622 );
2623 WHEN OTHERS THEN
2624 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2625 (
2626 l_api_name,
2627 G_PKG_NAME,
2628 'OTHERS',
2629 x_msg_count,
2630 x_msg_data,
2631 '_PVT'
2632 );
2633 END delete_row;
2634 END OKL_ATL_PVT;