[Home] [Help]
PACKAGE BODY: APPS.OKL_PAM_PVT
Source
1 PACKAGE BODY okl_pam_pvt AS
2 /* $Header: OKLSPAMB.pls 120.5 2006/07/13 12:59:32 adagur noship $ */
3
4 -- The lock_row and the validate_row procedures are not available.
5
6 g_no_parent_record CONSTANT VARCHAR2(200) := 'OKC_NO_PARENT_RECORD';
7 g_unexpected_error CONSTANT VARCHAR2(200) := 'OKC_CONTRACTS_UNEXPECTED_ERROR';
8 g_sqlerrm_token CONSTANT VARCHAR2(200) := 'SQLerrm';
9 g_sqlcode_token CONSTANT VARCHAR2(200) := 'SQLcode';
10 g_exception_halt_validation EXCEPTION;
11
12 PROCEDURE api_copy IS
13
14 BEGIN
15 NULL;
16 END api_copy;
17
18 PROCEDURE change_version IS
19
20 BEGIN
21 NULL;
22 END change_version;
23
24 ---------------------------------------------------------------------------
25 -- PROCEDURE add_language
26 ---------------------------------------------------------------------------
27
28 PROCEDURE add_language IS
29
30 BEGIN
31
32 DELETE FROM OKL_FE_ADJ_MAT_ALL_TL t
33 WHERE NOT EXISTS(SELECT NULL
34 FROM OKL_FE_ADJ_MAT_ALL_B b
35 WHERE b.adj_mat_id = t.adj_mat_id);
36
37 UPDATE OKL_FE_ADJ_MAT_ALL_TL t
38 SET(adj_mat_desc) = (SELECT
39 -- LANGUAGE,
40
41 -- B.LANGUAGE,
42
43 b.adj_mat_desc
44 FROM OKL_FE_ADJ_MAT_ALL_TL b
45 WHERE b.adj_mat_id = t.adj_mat_id
46 AND b.language = t.source_lang)
47 WHERE (t.adj_mat_id, t.language) IN(SELECT subt.adj_mat_id ,subt.language
48 FROM OKL_FE_ADJ_MAT_ALL_TL subb ,OKL_FE_ADJ_MAT_ALL_TL subt
49 WHERE subb.adj_mat_id = subt.adj_mat_id AND subb.language = subt.language AND ( -- SUBB.LANGUAGE <> SUBT.LANGUAGE OR
50 subb.adj_mat_desc <> subt.adj_mat_desc OR (subb.language IS NOT NULL
51 AND subt.language IS NULL)
52 OR (subb.adj_mat_desc IS NULL AND subt.adj_mat_desc IS NOT NULL)));
53
54 INSERT INTO OKL_FE_ADJ_MAT_ALL_TL
55 (adj_mat_id
56 ,language
57 ,source_lang
58 ,sfwt_flag
59 ,adj_mat_desc)
60 SELECT b.adj_mat_id
61 ,l.language_code
62 ,b.source_lang
63 ,b.sfwt_flag
64 ,b.adj_mat_desc
65 FROM OKL_FE_ADJ_MAT_ALL_TL b
66 ,fnd_languages l
67 WHERE l.installed_flag IN('I', 'B')
68 AND b.language = userenv('LANG')
69 AND NOT EXISTS(SELECT NULL
70 FROM OKL_FE_ADJ_MAT_ALL_TL t
71 WHERE t.adj_mat_id = b.adj_mat_id AND t.language = l.language_code);
72
73 END add_language;
74
75
76 --------------------------------------------------------------------------------
77 -- Procedure get_rec for OKL_FE_ADJ_MAT_ALL_B
78 --------------------------------------------------------------------------------
79
80 FUNCTION get_rec(p_pamb_rec IN okl_pamb_rec
81 ,x_no_data_found OUT NOCOPY BOOLEAN) RETURN okl_pamb_rec IS
82
83 CURSOR pamb_pk_csr(p_id IN NUMBER) IS
84 SELECT adj_mat_id
85 ,adj_mat_name
86 ,object_version_number
87 ,org_id
88 ,currency_code
89 ,adj_mat_type_code
90 ,orig_adj_mat_id
91 ,sts_code
92 ,effective_from_date
93 ,effective_to_date
94 ,attribute_category
95 ,attribute1
96 ,attribute2
97 ,attribute3
98 ,attribute4
99 ,attribute5
100 ,attribute6
101 ,attribute7
102 ,attribute8
103 ,attribute9
104 ,attribute10
105 ,attribute11
106 ,attribute12
107 ,attribute13
108 ,attribute14
109 ,attribute15
110 ,created_by
111 ,creation_date
112 ,last_updated_by
113 ,last_update_date
114 ,last_update_login
115 FROM okl_fe_adj_mat_all_b
116 WHERE okl_fe_adj_mat_all_b.adj_mat_id = p_id;
117 l_pamb_pk pamb_pk_csr%ROWTYPE;
118 l_pamb_rec okl_pamb_rec;
119
120 BEGIN
121 x_no_data_found := true;
122
123 --Get current data base values
124
125 OPEN pamb_pk_csr(p_pamb_rec.adj_mat_id);
126 FETCH pamb_pk_csr INTO l_pamb_rec.adj_mat_id
127 ,l_pamb_rec.adj_mat_name
128 ,l_pamb_rec.object_version_number
129 ,l_pamb_rec.org_id
130 ,l_pamb_rec.currency_code
131 ,l_pamb_rec.adj_mat_type_code
132 ,l_pamb_rec.orig_adj_mat_id
133 ,l_pamb_rec.sts_code
134 ,l_pamb_rec.effective_from_date
135 ,l_pamb_rec.effective_to_date
136 ,l_pamb_rec.attribute_category
137 ,l_pamb_rec.attribute1
138 ,l_pamb_rec.attribute2
139 ,l_pamb_rec.attribute3
140 ,l_pamb_rec.attribute4
141 ,l_pamb_rec.attribute5
142 ,l_pamb_rec.attribute6
143 ,l_pamb_rec.attribute7
144 ,l_pamb_rec.attribute8
145 ,l_pamb_rec.attribute9
146 ,l_pamb_rec.attribute10
147 ,l_pamb_rec.attribute11
148 ,l_pamb_rec.attribute12
149 ,l_pamb_rec.attribute13
150 ,l_pamb_rec.attribute14
151 ,l_pamb_rec.attribute15
152 ,l_pamb_rec.created_by
153 ,l_pamb_rec.creation_date
154 ,l_pamb_rec.last_updated_by
155 ,l_pamb_rec.last_update_date
156 ,l_pamb_rec.last_update_login ;
157 x_no_data_found := pamb_pk_csr%NOTFOUND;
158 CLOSE pamb_pk_csr;
159 RETURN(l_pamb_rec);
160 END get_rec;
161
162 FUNCTION get_rec(p_pamb_rec IN okl_pamb_rec) RETURN okl_pamb_rec IS
163 l_row_notfound BOOLEAN := true;
164
165 BEGIN
166 RETURN(get_rec(p_pamb_rec
167 ,l_row_notfound));
168 END get_rec;
169
170 --------------------------------------------------------------------------------
171 -- Procedure get_rec forOKL_FE_ADJ_MAT_ALL_TL
172 --------------------------------------------------------------------------------
173
174 FUNCTION get_rec(p_pamtl_rec IN okl_pamtl_rec
175 ,x_no_data_found OUT NOCOPY BOOLEAN) RETURN okl_pamtl_rec IS
176
177 CURSOR pamtl_pk_csr(p_id IN NUMBER
178 ,p_language IN VARCHAR2) IS
179 SELECT adj_mat_id
180 ,adj_mat_desc
181 ,language
182 ,source_lang
183 ,sfwt_flag
184 ,created_by
185 ,creation_date
186 ,last_updated_by
187 ,last_update_date
188 ,last_update_login
189 FROM okl_fe_adj_mat_all_tl
190 WHERE okl_fe_adj_mat_all_tl.adj_mat_id = p_id
191 AND okl_fe_adj_mat_all_tl.language = p_language;
192 l_pamtl_pk pamtl_pk_csr%ROWTYPE;
193 l_pamtl_rec okl_pamtl_rec;
194
195 BEGIN
196 x_no_data_found := true;
197
198 --Get current data base values
199
200 OPEN pamtl_pk_csr(p_pamtl_rec.adj_mat_id
201 ,p_pamtl_rec.language);
202 FETCH pamtl_pk_csr INTO l_pamtl_rec.adj_mat_id
203 ,l_pamtl_rec.adj_mat_desc
204 ,l_pamtl_rec.language
205 ,l_pamtl_rec.source_lang
206 ,l_pamtl_rec.sfwt_flag
207 ,l_pamtl_rec.created_by
208 ,l_pamtl_rec.creation_date
209 ,l_pamtl_rec.last_updated_by
210 ,l_pamtl_rec.last_update_date
211 ,l_pamtl_rec.last_update_login ;
212 x_no_data_found := pamtl_pk_csr%NOTFOUND;
213 CLOSE pamtl_pk_csr;
214 RETURN(l_pamtl_rec);
215 END get_rec;
216
217 FUNCTION get_rec(p_pamtl_rec IN okl_pamtl_rec) RETURN okl_pamtl_rec IS
218 l_row_notfound BOOLEAN := true;
219
220 BEGIN
221 RETURN(get_rec(p_pamtl_rec
222 ,l_row_notfound));
223 END get_rec;
224
225 --------------------------------------------------------------------------------
226 -- Procedure get_rec for OKL_FE_ADJ_MAT_V
227 --------------------------------------------------------------------------------
228
229 FUNCTION get_rec(p_pamv_rec IN okl_pamv_rec
230 ,x_no_data_found OUT NOCOPY BOOLEAN) RETURN okl_pamv_rec IS
231
232 CURSOR pamv_pk_csr(p_id IN NUMBER) IS
233 SELECT adj_mat_id
234 ,object_version_number
235 ,org_id
236 ,currency_code
237 ,adj_mat_type_code
238 ,orig_adj_mat_id
239 ,sts_code
240 ,effective_from_date
241 ,effective_to_date
242 ,attribute_category
243 ,attribute1
244 ,attribute2
245 ,attribute3
246 ,attribute4
247 ,attribute5
248 ,attribute6
249 ,attribute7
250 ,attribute8
251 ,attribute9
252 ,attribute10
253 ,attribute11
254 ,attribute12
255 ,attribute13
256 ,attribute14
257 ,attribute15
258 ,created_by
259 ,creation_date
260 ,last_updated_by
261 ,last_update_date
262 ,last_update_login
263 ,adj_mat_name
264 ,adj_mat_desc
265 FROM okl_fe_adj_mat_v
266 WHERE okl_fe_adj_mat_v.adj_mat_id = p_id;
267 l_pamv_pk pamv_pk_csr%ROWTYPE;
268 l_pamv_rec okl_pamv_rec;
269
270 BEGIN
271 x_no_data_found := true;
272
273 --Get current data base values
274
275 OPEN pamv_pk_csr(p_pamv_rec.adj_mat_id);
276 FETCH pamv_pk_csr INTO l_pamv_rec.adj_mat_id
277 ,l_pamv_rec.object_version_number
278 ,l_pamv_rec.org_id
279 ,l_pamv_rec.currency_code
280 ,l_pamv_rec.adj_mat_type_code
281 ,l_pamv_rec.orig_adj_mat_id
282 ,l_pamv_rec.sts_code
283 ,l_pamv_rec.effective_from_date
284 ,l_pamv_rec.effective_to_date
285 ,l_pamv_rec.attribute_category
286 ,l_pamv_rec.attribute1
287 ,l_pamv_rec.attribute2
288 ,l_pamv_rec.attribute3
289 ,l_pamv_rec.attribute4
290 ,l_pamv_rec.attribute5
291 ,l_pamv_rec.attribute6
292 ,l_pamv_rec.attribute7
293 ,l_pamv_rec.attribute8
294 ,l_pamv_rec.attribute9
295 ,l_pamv_rec.attribute10
296 ,l_pamv_rec.attribute11
297 ,l_pamv_rec.attribute12
298 ,l_pamv_rec.attribute13
299 ,l_pamv_rec.attribute14
300 ,l_pamv_rec.attribute15
301 ,l_pamv_rec.created_by
302 ,l_pamv_rec.creation_date
303 ,l_pamv_rec.last_updated_by
304 ,l_pamv_rec.last_update_date
305 ,l_pamv_rec.last_update_login
306 ,l_pamv_rec.adj_mat_name
307 ,l_pamv_rec.adj_mat_desc ;
308 x_no_data_found := pamv_pk_csr%NOTFOUND;
309 CLOSE pamv_pk_csr;
310 RETURN(l_pamv_rec);
311 END get_rec;
312
313 FUNCTION get_rec(p_pamv_rec IN okl_pamv_rec) RETURN okl_pamv_rec IS
314 l_row_notfound BOOLEAN := true;
315
316 BEGIN
317 RETURN(get_rec(p_pamv_rec
318 ,l_row_notfound));
319 END get_rec;
320
321 --------------------------------------------------------------------------------
322 -- Procedure migrate
323 --------------------------------------------------------------------------------
324
325 PROCEDURE migrate(p_from IN okl_pamv_rec
326 ,p_to IN OUT NOCOPY okl_pamb_rec) IS
327
328 BEGIN
329 p_to.adj_mat_id := p_from.adj_mat_id;
330 p_to.adj_mat_name := p_from.adj_mat_name;
331 p_to.object_version_number := p_from.object_version_number;
332 p_to.org_id := p_from.org_id;
333 p_to.currency_code := p_from.currency_code;
334 p_to.adj_mat_type_code := p_from.adj_mat_type_code;
335 p_to.orig_adj_mat_id := p_from.orig_adj_mat_id;
336 p_to.sts_code := p_from.sts_code;
337 p_to.effective_from_date := p_from.effective_from_date;
338 p_to.effective_to_date := p_from.effective_to_date;
339 p_to.attribute_category := p_from.attribute_category;
340 p_to.attribute1 := p_from.attribute1;
341 p_to.attribute2 := p_from.attribute2;
342 p_to.attribute3 := p_from.attribute3;
343 p_to.attribute4 := p_from.attribute4;
344 p_to.attribute5 := p_from.attribute5;
345 p_to.attribute6 := p_from.attribute6;
346 p_to.attribute7 := p_from.attribute7;
347 p_to.attribute8 := p_from.attribute8;
348 p_to.attribute9 := p_from.attribute9;
349 p_to.attribute10 := p_from.attribute10;
350 p_to.attribute11 := p_from.attribute11;
351 p_to.attribute12 := p_from.attribute12;
352 p_to.attribute13 := p_from.attribute13;
353 p_to.attribute14 := p_from.attribute14;
354 p_to.attribute15 := p_from.attribute15;
355 p_to.created_by := p_from.created_by;
356 p_to.creation_date := p_from.creation_date;
357 p_to.last_updated_by := p_from.last_updated_by;
358 p_to.last_update_date := p_from.last_update_date;
359 p_to.last_update_login := p_from.last_update_login;
360 END migrate;
361
362 PROCEDURE migrate(p_from IN okl_pamb_rec
363 ,p_to IN OUT NOCOPY okl_pamv_rec) IS
364
365 BEGIN
366 p_to.adj_mat_id := p_from.adj_mat_id;
367 p_to.adj_mat_name := p_from.adj_mat_name;
368 p_to.object_version_number := p_from.object_version_number;
369 p_to.org_id := p_from.org_id;
370 p_to.currency_code := p_from.currency_code;
371 p_to.adj_mat_type_code := p_from.adj_mat_type_code;
372 p_to.orig_adj_mat_id := p_from.orig_adj_mat_id;
373 p_to.sts_code := p_from.sts_code;
374 p_to.effective_from_date := p_from.effective_from_date;
375 p_to.effective_to_date := p_from.effective_to_date;
376 p_to.attribute_category := p_from.attribute_category;
377 p_to.attribute1 := p_from.attribute1;
378 p_to.attribute2 := p_from.attribute2;
379 p_to.attribute3 := p_from.attribute3;
380 p_to.attribute4 := p_from.attribute4;
381 p_to.attribute5 := p_from.attribute5;
382 p_to.attribute6 := p_from.attribute6;
383 p_to.attribute7 := p_from.attribute7;
384 p_to.attribute8 := p_from.attribute8;
385 p_to.attribute9 := p_from.attribute9;
386 p_to.attribute10 := p_from.attribute10;
387 p_to.attribute11 := p_from.attribute11;
388 p_to.attribute12 := p_from.attribute12;
389 p_to.attribute13 := p_from.attribute13;
390 p_to.attribute14 := p_from.attribute14;
391 p_to.attribute15 := p_from.attribute15;
392 p_to.created_by := p_from.created_by;
393 p_to.creation_date := p_from.creation_date;
394 p_to.last_updated_by := p_from.last_updated_by;
395 p_to.last_update_date := p_from.last_update_date;
396 p_to.last_update_login := p_from.last_update_login;
397 END migrate;
398
399 PROCEDURE migrate(p_from IN okl_pamv_rec
400 ,p_to IN OUT NOCOPY okl_pamtl_rec) IS
401
402 BEGIN
403 p_to.adj_mat_id := p_from.adj_mat_id;
404 p_to.adj_mat_desc := p_from.adj_mat_desc;
405 p_to.created_by := p_from.created_by;
406 p_to.creation_date := p_from.creation_date;
407 p_to.last_updated_by := p_from.last_updated_by;
408 p_to.last_update_date := p_from.last_update_date;
409 p_to.last_update_login := p_from.last_update_login;
410 END migrate;
411
412 PROCEDURE migrate(p_from IN okl_pamtl_rec
413 ,p_to IN OUT NOCOPY okl_pamv_rec) IS
414
415 BEGIN
416 p_to.adj_mat_id := p_from.adj_mat_id;
417 p_to.adj_mat_desc := p_from.adj_mat_desc;
418 p_to.created_by := p_from.created_by;
419 p_to.creation_date := p_from.creation_date;
420 p_to.last_updated_by := p_from.last_updated_by;
421 p_to.last_update_date := p_from.last_update_date;
422 p_to.last_update_login := p_from.last_update_login;
423 END migrate;
424
425 FUNCTION null_out_defaults(p_pamv_rec IN okl_pamv_rec) RETURN okl_pamv_rec IS
426 l_pamv_rec okl_pamv_rec := p_pamv_rec;
427
428 BEGIN
429
430 IF (l_pamv_rec.adj_mat_id = okl_api.g_miss_num) THEN
431 l_pamv_rec.adj_mat_id := NULL;
432 END IF;
433
434 IF (l_pamv_rec.adj_mat_name = okl_api.g_miss_char) THEN
435 l_pamv_rec.adj_mat_name := NULL;
436 END IF;
437
438 IF (l_pamv_rec.object_version_number = okl_api.g_miss_num) THEN
439 l_pamv_rec.object_version_number := NULL;
440 END IF;
441
442 IF (l_pamv_rec.org_id = okl_api.g_miss_num) THEN
443 l_pamv_rec.org_id := NULL;
444 END IF;
445
446 IF (l_pamv_rec.currency_code = okl_api.g_miss_char) THEN
447 l_pamv_rec.currency_code := NULL;
448 END IF;
449
450 IF (l_pamv_rec.adj_mat_type_code = okl_api.g_miss_char) THEN
451 l_pamv_rec.adj_mat_type_code := NULL;
452 END IF;
453
454 IF (l_pamv_rec.orig_adj_mat_id = okl_api.g_miss_num) THEN
455 l_pamv_rec.orig_adj_mat_id := NULL;
456 END IF;
457
458 IF (l_pamv_rec.sts_code = okl_api.g_miss_char) THEN
459 l_pamv_rec.sts_code := NULL;
460 END IF;
461
462 IF (l_pamv_rec.effective_from_date = okl_api.g_miss_date) THEN
463 l_pamv_rec.effective_from_date := NULL;
464 END IF;
465
466 IF (l_pamv_rec.effective_to_date = okl_api.g_miss_date) THEN
467 l_pamv_rec.effective_to_date := NULL;
468 END IF;
469
470 IF (l_pamv_rec.attribute_category = okl_api.g_miss_char) THEN
471 l_pamv_rec.attribute_category := NULL;
472 END IF;
473
474 IF (l_pamv_rec.attribute1 = okl_api.g_miss_char) THEN
475 l_pamv_rec.attribute1 := NULL;
476 END IF;
477
478 IF (l_pamv_rec.attribute2 = okl_api.g_miss_char) THEN
479 l_pamv_rec.attribute2 := NULL;
480 END IF;
481
482 IF (l_pamv_rec.attribute3 = okl_api.g_miss_char) THEN
483 l_pamv_rec.attribute3 := NULL;
484 END IF;
485
486 IF (l_pamv_rec.attribute4 = okl_api.g_miss_char) THEN
487 l_pamv_rec.attribute4 := NULL;
488 END IF;
489
490 IF (l_pamv_rec.attribute5 = okl_api.g_miss_char) THEN
491 l_pamv_rec.attribute5 := NULL;
492 END IF;
493
494 IF (l_pamv_rec.attribute6 = okl_api.g_miss_char) THEN
495 l_pamv_rec.attribute6 := NULL;
496 END IF;
497
498 IF (l_pamv_rec.attribute7 = okl_api.g_miss_char) THEN
499 l_pamv_rec.attribute7 := NULL;
500 END IF;
501
502 IF (l_pamv_rec.attribute8 = okl_api.g_miss_char) THEN
503 l_pamv_rec.attribute8 := NULL;
504 END IF;
505
506 IF (l_pamv_rec.attribute9 = okl_api.g_miss_char) THEN
507 l_pamv_rec.attribute9 := NULL;
508 END IF;
509
510 IF (l_pamv_rec.attribute10 = okl_api.g_miss_char) THEN
511 l_pamv_rec.attribute10 := NULL;
512 END IF;
513
514 IF (l_pamv_rec.attribute11 = okl_api.g_miss_char) THEN
515 l_pamv_rec.attribute11 := NULL;
516 END IF;
517
518 IF (l_pamv_rec.attribute12 = okl_api.g_miss_char) THEN
519 l_pamv_rec.attribute12 := NULL;
520 END IF;
521
522 IF (l_pamv_rec.attribute13 = okl_api.g_miss_char) THEN
523 l_pamv_rec.attribute13 := NULL;
524 END IF;
525
526 IF (l_pamv_rec.attribute14 = okl_api.g_miss_char) THEN
527 l_pamv_rec.attribute14 := NULL;
528 END IF;
529
530 IF (l_pamv_rec.attribute15 = okl_api.g_miss_char) THEN
531 l_pamv_rec.attribute15 := NULL;
532 END IF;
533
534 IF (l_pamv_rec.created_by = okl_api.g_miss_num) THEN
535 l_pamv_rec.created_by := NULL;
536 END IF;
537
538 IF (l_pamv_rec.creation_date = okl_api.g_miss_date) THEN
539 l_pamv_rec.creation_date := NULL;
540 END IF;
541
542 IF (l_pamv_rec.last_updated_by = okl_api.g_miss_num) THEN
543 l_pamv_rec.last_updated_by := NULL;
544 END IF;
545
546 IF (l_pamv_rec.last_update_date = okl_api.g_miss_date) THEN
547 l_pamv_rec.last_update_date := NULL;
548 END IF;
549
550 IF (l_pamv_rec.last_update_login = okl_api.g_miss_num) THEN
551 l_pamv_rec.last_update_login := NULL;
552 END IF;
553
554 IF (l_pamv_rec.adj_mat_name = okl_api.g_miss_char) THEN
555 l_pamv_rec.adj_mat_name := NULL;
556 END IF;
557
558 IF (l_pamv_rec.adj_mat_desc = okl_api.g_miss_char) THEN
559 l_pamv_rec.adj_mat_desc := NULL;
560 END IF;
561 RETURN(l_pamv_rec);
562 END null_out_defaults;
563
564 ---------------------------------------------------------------------------
565 -- PROCEDURE lock_row
566 ---------------------------------------------------------------------------
567 ---------------------------------------
568 -- lock_row_b --
569 ---------------------------------------
570
571 PROCEDURE lock_row(p_init_msg_list IN VARCHAR2
572 ,x_return_status OUT NOCOPY VARCHAR2
573 ,x_msg_count OUT NOCOPY NUMBER
574 ,x_msg_data OUT NOCOPY VARCHAR2
575 ,p_pamb_rec IN okl_pamb_rec) IS
576 e_resource_busy EXCEPTION;
577
578 PRAGMA EXCEPTION_INIT(e_resource_busy, - 00054);
579
580 CURSOR lock_csr(p_pamb_rec IN okl_pamb_rec) IS
581 SELECT object_version_number
582 FROM okl_fe_adj_mat_all_b
583 WHERE adj_mat_id = p_pamb_rec.adj_mat_id
584 AND object_version_number = p_pamb_rec.object_version_number
585 FOR UPDATE OF object_version_number NOWAIT;
586
587 CURSOR lchk_csr(p_pamb_rec IN okl_pamb_rec) IS
588 SELECT object_version_number
589 FROM okl_fe_adj_mat_all_b
590 WHERE adj_mat_id = p_pamb_rec.adj_mat_id;
591 l_api_version CONSTANT NUMBER := 1;
592 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
593 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
594 l_object_version_number okl_fe_resi_cat_all_b.object_version_number%TYPE;
595 lc_object_version_number okl_fe_resi_cat_all_b.object_version_number%TYPE;
596 l_row_notfound BOOLEAN := false;
597 lc_row_notfound BOOLEAN := false;
598
599 BEGIN
600 l_return_status := okl_api.start_activity(l_api_name
601 ,p_init_msg_list
602 ,'_PVT'
603 ,x_return_status);
604
605 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
606 RAISE okl_api.g_exception_unexpected_error;
607 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
608 RAISE okl_api.g_exception_error;
609 END IF;
610
611 BEGIN
612 OPEN lock_csr(p_pamb_rec);
613 FETCH lock_csr INTO l_object_version_number ;
614 l_row_notfound := lock_csr%NOTFOUND;
615 CLOSE lock_csr;
616 EXCEPTION
617 WHEN e_resource_busy THEN
618
619 IF (lock_csr%ISOPEN) THEN
620 CLOSE lock_csr;
621 END IF;
622 okl_api.set_message(g_fnd_app
623 ,g_form_unable_to_reserve_rec);
624 RAISE app_exceptions.record_lock_exception;
625 END;
626
627 IF (l_row_notfound) THEN
628 OPEN lchk_csr(p_pamb_rec);
629 FETCH lchk_csr INTO lc_object_version_number ;
630 lc_row_notfound := lchk_csr%NOTFOUND;
631 CLOSE lchk_csr;
632 END IF;
633
634 IF (lc_row_notfound) THEN
635 okl_api.set_message(g_fnd_app
636 ,g_form_record_deleted);
637 RAISE okl_api.g_exception_error;
638 ELSIF lc_object_version_number > p_pamb_rec.object_version_number THEN
639 okl_api.set_message(g_fnd_app
640 ,g_form_record_changed);
641 RAISE okl_api.g_exception_error;
642 ELSIF lc_object_version_number <> p_pamb_rec.object_version_number THEN
643 okl_api.set_message(g_fnd_app
644 ,g_form_record_changed);
645 RAISE okl_api.g_exception_error;
646 ELSIF lc_object_version_number = - 1 THEN
647 okl_api.set_message(g_app_name
648 ,g_record_logically_deleted);
649 RAISE okl_api.g_exception_error;
650 END IF;
651 okl_api.end_activity(x_msg_count
652 ,x_msg_data);
653 EXCEPTION
654 WHEN g_exception_halt_validation THEN
655 x_return_status := okl_api.handle_exceptions(l_api_name
656 ,g_pkg_name
657 ,'OKL_API.G_RET_STS_ERROR'
658 ,x_msg_count
659 ,x_msg_data
660 ,'_PVT');
661 WHEN okl_api.g_exception_error THEN
662 x_return_status := okl_api.handle_exceptions(l_api_name
663 ,g_pkg_name
664 ,'OKL_API.G_RET_STS_ERROR'
665 ,x_msg_count
666 ,x_msg_data
667 ,'_PVT');
668 WHEN okl_api.g_exception_unexpected_error THEN
669 x_return_status := okl_api.handle_exceptions(l_api_name
670 ,g_pkg_name
671 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
672 ,x_msg_count
673 ,x_msg_data
674 ,'_PVT');
675 WHEN OTHERS THEN
676 x_return_status := okl_api.handle_exceptions(l_api_name
677 ,g_pkg_name
678 ,'OTHERS'
679 ,x_msg_count
680 ,x_msg_data
681 ,'_PVT');
682 END lock_row;
683
684 ----------------------------------------
685 -- lock_row_tl --
686 ----------------------------------------
687
688 PROCEDURE lock_row(p_init_msg_list IN VARCHAR2
689 ,x_return_status OUT NOCOPY VARCHAR2
690 ,x_msg_count OUT NOCOPY NUMBER
691 ,x_msg_data OUT NOCOPY VARCHAR2
692 ,p_pamtl_rec IN okl_pamtl_rec) IS
693 e_resource_busy EXCEPTION;
694
695 PRAGMA EXCEPTION_INIT(e_resource_busy, - 00054);
696
697 CURSOR lock_csr(p_pamtl_rec IN okl_pamtl_rec) IS
698 SELECT *
699 FROM okl_fe_adj_mat_all_tl
700 WHERE adj_mat_id = p_pamtl_rec.adj_mat_id
701 FOR UPDATE NOWAIT;
702 l_api_version CONSTANT NUMBER := 1;
703 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
704 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
705 l_lock_var lock_csr%ROWTYPE;
706 l_row_notfound BOOLEAN := false;
707 lc_row_notfound BOOLEAN := false;
708
709 BEGIN
710 l_return_status := okl_api.start_activity(l_api_name
711 ,p_init_msg_list
712 ,'_PVT'
713 ,x_return_status);
714
715 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
716 RAISE okl_api.g_exception_unexpected_error;
717 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
718 RAISE okl_api.g_exception_error;
719 END IF;
720
721 BEGIN
722 OPEN lock_csr(p_pamtl_rec);
723 FETCH lock_csr INTO l_lock_var ;
724 l_row_notfound := lock_csr%NOTFOUND;
725 CLOSE lock_csr;
726 EXCEPTION
727 WHEN e_resource_busy THEN
728
729 IF (lock_csr%ISOPEN) THEN
730 CLOSE lock_csr;
731 END IF;
732 okl_api.set_message(g_fnd_app
733 ,g_form_unable_to_reserve_rec);
734 RAISE app_exceptions.record_lock_exception;
735 END;
736
737 IF (l_row_notfound) THEN
738 okl_api.set_message(g_fnd_app
739 ,g_form_record_deleted);
740 RAISE okl_api.g_exception_error;
741 END IF;
742 okl_api.end_activity(x_msg_count
743 ,x_msg_data);
744 EXCEPTION
745 WHEN g_exception_halt_validation THEN
746 x_return_status := okl_api.handle_exceptions(l_api_name
747 ,g_pkg_name
748 ,'OKL_API.G_RET_STS_ERROR'
749 ,x_msg_count
750 ,x_msg_data
751 ,'_PVT');
752 WHEN okl_api.g_exception_error THEN
753 x_return_status := okl_api.handle_exceptions(l_api_name
754 ,g_pkg_name
755 ,'OKL_API.G_RET_STS_ERROR'
756 ,x_msg_count
757 ,x_msg_data
758 ,'_PVT');
759 WHEN okl_api.g_exception_unexpected_error THEN
760 x_return_status := okl_api.handle_exceptions(l_api_name
761 ,g_pkg_name
762 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
763 ,x_msg_count
764 ,x_msg_data
765 ,'_PVT');
766 WHEN OTHERS THEN
767 x_return_status := okl_api.handle_exceptions(l_api_name
768 ,g_pkg_name
769 ,'OTHERS'
770 ,x_msg_count
771 ,x_msg_data
772 ,'_PVT');
773 END lock_row;
774
775 ---------------------------------------
776 -- lock_row_v --
777 ---------------------------------------
778
779 PROCEDURE lock_row(p_api_version IN NUMBER
780 ,p_init_msg_list IN VARCHAR2
781 ,x_return_status OUT NOCOPY VARCHAR2
782 ,x_msg_count OUT NOCOPY NUMBER
783 ,x_msg_data OUT NOCOPY VARCHAR2
784 ,p_pamv_rec IN okl_pamv_rec) IS
785 l_api_version CONSTANT NUMBER := 1;
786 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
787 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
788 l_pamb_rec okl_pamb_rec;
789 l_pamtl_rec okl_pamtl_rec;
790
791 BEGIN
792 l_return_status := okl_api.start_activity(l_api_name
793 ,g_pkg_name
794 ,p_init_msg_list
795 ,l_api_version
796 ,p_api_version
797 ,'_PVT'
798 ,x_return_status);
799
800 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
801 RAISE okl_api.g_exception_unexpected_error;
802 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
803 RAISE okl_api.g_exception_error;
804 END IF;
805
806 --------------------------------------
807 -- Move VIEW record to "Child" records
808 --------------------------------------
809
810 migrate(p_pamv_rec
811 ,l_pamb_rec);
812 migrate(p_pamv_rec
813 ,l_pamtl_rec);
814
815 --------------------------------------------
816 -- Call the LOCK_ROW for each child record
817 --------------------------------------------
818
819 lock_row(p_init_msg_list
820 ,x_return_status
821 ,x_msg_count
822 ,x_msg_data
823 ,l_pamb_rec);
824
825 IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
826 RAISE okl_api.g_exception_unexpected_error;
827 ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
828 RAISE okl_api.g_exception_error;
829 END IF;
830 lock_row(p_init_msg_list
831 ,x_return_status
832 ,x_msg_count
833 ,x_msg_data
834 ,l_pamtl_rec);
835
836 IF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
837 RAISE okl_api.g_exception_unexpected_error;
838 ELSIF (x_return_status = okl_api.g_ret_sts_error) THEN
839 RAISE okl_api.g_exception_error;
840 END IF;
841 okl_api.end_activity(x_msg_count
842 ,x_msg_data);
843 EXCEPTION
844 WHEN g_exception_halt_validation THEN
845 x_return_status := okl_api.handle_exceptions(l_api_name
846 ,g_pkg_name
847 ,'OKL_API.G_RET_STS_ERROR'
848 ,x_msg_count
849 ,x_msg_data
850 ,'_PVT');
851 WHEN okl_api.g_exception_error THEN
852 x_return_status := okl_api.handle_exceptions(l_api_name
853 ,g_pkg_name
854 ,'OKL_API.G_RET_STS_ERROR'
855 ,x_msg_count
856 ,x_msg_data
857 ,'_PVT');
858 WHEN okl_api.g_exception_unexpected_error THEN
859 x_return_status := okl_api.handle_exceptions(l_api_name
860 ,g_pkg_name
861 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
862 ,x_msg_count
863 ,x_msg_data
864 ,'_PVT');
865 WHEN OTHERS THEN
866 x_return_status := okl_api.handle_exceptions(l_api_name
867 ,g_pkg_name
868 ,'OTHERS'
869 ,x_msg_count
870 ,x_msg_data
871 ,'_PVT');
872 END lock_row;
873
874 --------------------------------------
875 -- PL/SQL TBL lock_row_tbl --
876 --------------------------------------
877
878 PROCEDURE lock_row(p_api_version IN NUMBER
879 ,p_init_msg_list IN VARCHAR2
880 ,x_return_status OUT NOCOPY VARCHAR2
881 ,x_msg_count OUT NOCOPY NUMBER
882 ,x_msg_data OUT NOCOPY VARCHAR2
883 ,p_pamv_tbl IN okl_pamv_tbl) IS
884 l_api_version CONSTANT NUMBER := 1;
885 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
886 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
887
888 -- Begin Post-Generation Change
889 -- overall error status
890
891 l_overall_status VARCHAR2(1) := okl_api.g_ret_sts_success;
892
893 -- End Post-Generation Change
894
895 i NUMBER := 0;
896
897 BEGIN
898 okl_api.init_msg_list(p_init_msg_list);
899
900 -- Make sure PL/SQL table has records in it before passing
901
902 IF (p_pamv_tbl.COUNT > 0) THEN
903 i := p_pamv_tbl.FIRST;
904
905 LOOP
906 lock_row(p_api_version => p_api_version
907 ,p_init_msg_list => okl_api.g_false
908 ,x_return_status => x_return_status
909 ,x_msg_count => x_msg_count
910 ,x_msg_data => x_msg_data
911 ,p_pamv_rec => p_pamv_tbl(i));
912
913 -- Begin Post-Generation Change
914 -- store the highest degree of error
915
916 IF x_return_status <> okl_api.g_ret_sts_success THEN
917 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
918 l_overall_status := x_return_status;
919 END IF;
920 END IF;
921
922 -- End Post-Generation Change
923
924 EXIT WHEN(i = p_pamv_tbl.LAST);
925 i := p_pamv_tbl.next(i);
926 END LOOP;
927
928 -- Begin Post-Generation Change
929 -- return overall status
930
931 x_return_status := l_overall_status;
932
933 -- End Post-Generation Change
934
935 END IF;
936
937 EXCEPTION
938 WHEN g_exception_halt_validation THEN
939 x_return_status := okl_api.handle_exceptions(l_api_name
940 ,g_pkg_name
941 ,'OKL_API.G_RET_STS_ERROR'
942 ,x_msg_count
943 ,x_msg_data
944 ,'_PVT');
945 WHEN okl_api.g_exception_error THEN
946 x_return_status := okl_api.handle_exceptions(l_api_name
947 ,g_pkg_name
948 ,'OKL_API.G_RET_STS_ERROR'
949 ,x_msg_count
950 ,x_msg_data
951 ,'_PVT');
952 WHEN okl_api.g_exception_unexpected_error THEN
953 x_return_status := okl_api.handle_exceptions(l_api_name
954 ,g_pkg_name
955 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
956 ,x_msg_count
957 ,x_msg_data
958 ,'_PVT');
959 WHEN OTHERS THEN
960 x_return_status := okl_api.handle_exceptions(l_api_name
961 ,g_pkg_name
962 ,'OTHERS'
963 ,x_msg_count
964 ,x_msg_data
965 ,'_PVT');
966 END lock_row;
967
968 -- get the sequence id
969
970 FUNCTION get_seq_id RETURN NUMBER IS
971
972 BEGIN
973 RETURN(okc_p_util.raw_to_number(sys_guid()));
974 END get_seq_id;
975
976 -- validation of Adjusment Matrix Id
977
978 FUNCTION validate_adj_mat_id(p_adj_mat_id IN NUMBER) RETURN VARCHAR2 IS
979 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
980
981 BEGIN
982
983 -- ADJ_MAT_ID is a required field
984
985 IF (p_adj_mat_id IS NULL OR p_adj_mat_id = okl_api.g_miss_num) THEN
986 okl_api.set_message(p_app_name => g_app_name
987 ,p_msg_name => g_required_value
988 ,p_token1 => g_col_name_token
989 ,p_token1_value => 'ADJ_MAT_ID');
990
991 -- notify caller of an error
992
993 l_return_status := okl_api.g_ret_sts_error;
994
995 -- halt further validation of this column
996
997 RAISE g_exception_halt_validation;
998 END IF;
999 RETURN(l_return_status);
1000 EXCEPTION
1001 WHEN g_exception_halt_validation THEN
1002
1003 -- no proccessing required. Validation can continue with the next column
1004
1005 NULL;
1006 WHEN OTHERS THEN
1007
1008 -- store SQL error message on message stack for caller
1009
1010 okl_api.set_message(p_app_name => g_app_name
1011 ,p_msg_name => g_unexpected_error
1012 ,p_token1 => g_sqlcode_token
1013 ,p_token1_value => sqlcode
1014 ,p_token2 => g_sqlerrm_token
1015 ,p_token2_value => sqlerrm);
1016
1017 -- notify caller of an UNEXPECTED error
1018
1019 l_return_status := okl_api.g_ret_sts_unexp_error;
1020 RETURN(l_return_status);
1021 END validate_adj_mat_id;
1022
1023 -- Validation of the org Id
1024
1025 FUNCTION validate_org_id(p_org_id IN NUMBER) RETURN VARCHAR2 IS
1026 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1027
1028 BEGIN
1029
1030 -- data is required
1031
1032 IF (p_org_id IS NULL) OR (p_org_id = okl_api.g_miss_num) THEN
1033 okl_api.set_message(p_app_name => g_app_name
1034 ,p_msg_name => g_required_value
1035 ,p_token1 => g_col_name_token
1036 ,p_token1_value => 'org_id');
1037 x_return_status := okl_api.g_ret_sts_error;
1038
1039 -- halt further validation of this column
1040
1041 RAISE g_exception_halt_validation;
1042 END IF;
1043
1044 -- check org id validity using the generic function okl_util.check_org_id()
1045
1046 x_return_status := okl_util.check_org_id(TO_CHAR(p_org_id));
1047
1048 IF (x_return_status = okl_api.g_ret_sts_error) THEN
1049 okl_api.set_message(p_app_name => g_app_name
1050 ,p_msg_name => g_invalid_value
1051 ,p_token1 => g_col_name_token
1052 ,p_token1_value => 'org_id');
1053
1054 -- notify caller of an error
1055
1056 RAISE g_exception_halt_validation;
1057 ELSIF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
1058
1059 -- notify caller of an error
1060
1061 RAISE g_exception_halt_validation;
1062 END IF;
1063 RETURN(x_return_status);
1064 EXCEPTION
1065 WHEN g_exception_halt_validation THEN
1066
1067 -- No action necessary. Validation can continue to next attribute/column
1068
1069 RETURN(x_return_status);
1070 WHEN OTHERS THEN
1071
1072 -- store SQL error message on message stack for caller
1073
1074 okl_api.set_message(p_app_name => g_app_name
1075 ,p_msg_name => g_unexpected_error
1076 ,p_token1 => g_sqlcode_token
1077 ,p_token1_value => sqlcode
1078 ,p_token2 => g_sqlerrm_token
1079 ,p_token2_value => sqlerrm);
1080
1081 -- notify caller of an UNEXPECTED error
1082
1083 x_return_status := okl_api.g_ret_sts_unexp_error;
1084 RETURN(x_return_status);
1085 END validate_org_id;
1086
1087 -- Validation of the currency code
1088
1089 FUNCTION validate_currency_code(p_currency_code IN VARCHAR2) RETURN VARCHAR2 IS
1090
1091 -- initialize the return status
1092
1093 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1094
1095 BEGIN
1096
1097 -- data is required
1098
1099 IF (p_currency_code IS NULL) OR (p_currency_code = okl_api.g_miss_char) THEN
1100 okl_api.set_message(p_app_name => g_app_name
1101 ,p_msg_name => g_required_value
1102 ,p_token1 => g_col_name_token
1103 ,p_token1_value => 'currency_code');
1104
1105 -- halt further validation of this column
1106
1107 RAISE g_exception_halt_validation;
1108 END IF;
1109
1110 -- check from currency values using the generic okl_util.validate_currency_code
1111
1112 x_return_status := okl_accounting_util.validate_currency_code(p_currency_code);
1113
1114 IF (x_return_status <> okl_api.g_true) THEN
1115 okl_api.set_message(p_app_name => g_app_name
1116 ,p_msg_name => g_invalid_value
1117 ,p_token1 => g_col_name_token
1118 ,p_token1_value => 'currency_code');
1119
1120 -- halt further validation of this column
1121
1122 RAISE g_exception_halt_validation;
1123 END IF;
1124 RETURN(x_return_status);
1125 EXCEPTION
1126 WHEN g_exception_halt_validation THEN
1127 x_return_status := okl_api.g_ret_sts_error;
1128 RETURN(x_return_status);
1129 WHEN OTHERS THEN
1130
1131 -- store SQL error message on message stack for caller
1132
1133 okl_api.set_message(p_app_name => g_app_name
1134 ,p_msg_name => g_unexpected_error
1135 ,p_token1 => g_sqlcode_token
1136 ,p_token1_value => sqlcode
1137 ,p_token2 => g_sqlerrm_token
1138 ,p_token2_value => sqlerrm);
1139
1140 -- notify caller of an UNEXPECTED error
1141
1142 x_return_status := okl_api.g_ret_sts_unexp_error;
1143 RETURN(x_return_status);
1144 END validate_currency_code;
1145
1146 FUNCTION validate_adj_mat_type_code(p_adj_mat_type_code IN VARCHAR2) RETURN VARCHAR2 IS
1147 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1148
1149 BEGIN
1150
1151 IF (p_adj_mat_type_code IS NULL) OR (p_adj_mat_type_code = okl_api.g_miss_char) THEN
1152 okl_api.set_message(p_app_name => g_app_name
1153 ,p_msg_name => g_required_value
1154 ,p_token1 => g_col_name_token
1155 ,p_token1_value => 'ADJ_MAT_TYPE_CODE');
1156
1157 -- notify caller of an error
1158
1159 x_return_status := okl_api.g_ret_sts_error;
1160
1161 -- halt further validation of this column
1162
1163 RAISE g_exception_halt_validation;
1164 END IF;
1165
1166 -- Lookup Code Validation
1167
1168 x_return_status := okl_util.check_lookup_code(p_lookup_type => 'OKL_ADJ_MAT_TYPES'
1169 ,p_lookup_code => p_adj_mat_type_code);
1170
1171 IF (x_return_status = okl_api.g_ret_sts_error) THEN
1172 okl_api.set_message(p_app_name => g_app_name
1173 ,p_msg_name => g_invalid_value
1174 ,p_token1 => g_col_name_token
1175 ,p_token1_value => 'ADJ_MAT_TYPE_CODE'); -- notify caller of an error
1176 RAISE g_exception_halt_validation;
1177 ELSIF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
1178
1179 -- notify caller of an error
1180
1181 x_return_status := okl_api.g_ret_sts_unexp_error;
1182 RAISE g_exception_halt_validation;
1183 END IF;
1184 RETURN(x_return_status);
1185 EXCEPTION
1186 WHEN g_exception_halt_validation THEN
1187
1188 -- no processing necessary; validation can continue
1189 -- with the next column
1190
1191 RETURN(x_return_status);
1192 WHEN OTHERS THEN
1193
1194 -- store SQL error message on message stack for caller
1195
1196 okl_api.set_message(p_app_name => g_app_name
1197 ,p_msg_name => g_unexpected_error
1198 ,p_token1 => g_sqlcode_token
1199 ,p_token1_value => sqlcode
1200 ,p_token2 => g_sqlerrm_token
1201 ,p_token2_value => sqlerrm);
1202
1203 -- notify caller of an UNEXPECTED error
1204
1205 x_return_status := okl_api.g_ret_sts_unexp_error;
1206 RETURN(x_return_status);
1207 END validate_adj_mat_type_code;
1208
1209 FUNCTION validate_orig_adj_mat_id(p_orig_adj_mat_id IN NUMBER) RETURN VARCHAR2 IS
1210 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1211
1212 CURSOR adj_matrix_exists_csr IS
1213 SELECT 'x'
1214 FROM okl_fe_adj_mat_all_b
1215 WHERE adj_mat_id = p_orig_adj_mat_id;
1216 l_dummy_var VARCHAR2(1) := '?';
1217
1218 BEGIN
1219
1220 IF (p_orig_adj_mat_id IS NOT NULL AND p_orig_adj_mat_id <> okl_api.g_miss_num) THEN
1221 OPEN adj_matrix_exists_csr;
1222 FETCH adj_matrix_exists_csr INTO l_dummy_var ;
1223 CLOSE adj_matrix_exists_csr;
1224
1225 -- if l_dummy_var is still set to default, data was not found
1226
1227 IF (l_dummy_var = '?') THEN
1228 okl_api.set_message(p_app_name => g_app_name
1229 ,p_msg_name => g_invalid_value
1230 ,p_token1 => g_col_name_token
1231 ,p_token1_value => 'ORIG_ADJ_MAT_ID');
1232
1233 -- notify caller of an error
1234
1235 x_return_status := okl_api.g_ret_sts_error;
1236 RAISE g_exception_halt_validation;
1237 END IF;
1238 END IF;
1239 RETURN x_return_status;
1240 EXCEPTION
1241 WHEN g_exception_halt_validation THEN
1242
1243 -- no processing necessary; validation can continue
1244 -- with the next column
1245
1246 RETURN x_return_status;
1247 WHEN OTHERS THEN
1248
1249 -- store SQL error message on message stack for caller
1250
1251 okl_api.set_message(p_app_name => g_app_name
1252 ,p_msg_name => g_unexpected_error
1253 ,p_token1 => g_sqlcode_token
1254 ,p_token1_value => sqlcode
1255 ,p_token2 => g_sqlerrm_token
1256 ,p_token2_value => sqlerrm);
1257
1258 -- notify caller of an UNEXPECTED error
1259
1260 x_return_status := okl_api.g_ret_sts_unexp_error;
1261
1262 -- verify that cursor was closed
1263
1264 IF adj_matrix_exists_csr%ISOPEN THEN
1265 CLOSE adj_matrix_exists_csr;
1266 END IF;
1267 RETURN x_return_status;
1268 END validate_orig_adj_mat_id;
1269
1270 FUNCTION validate_sts_code(p_sts_code IN VARCHAR2) RETURN VARCHAR2 IS
1271
1272 --initialize the Return Status
1273
1274 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1275
1276 BEGIN
1277
1278 -- Column is mandatory
1279
1280 IF (p_sts_code IS NULL OR p_sts_code = okl_api.g_miss_char) THEN
1281 okl_api.set_message(p_app_name => g_app_name
1282 ,p_msg_name => g_required_value
1283 ,p_token1 => g_col_name_token
1284 ,p_token1_value => 'sts_code');
1285
1286 -- notify caller of an error
1287
1288 x_return_status := okl_api.g_ret_sts_error;
1289 RAISE g_exception_halt_validation;
1290 END IF;
1291
1292 -- Lookup Code Validation
1293
1294 x_return_status := okl_util.check_lookup_code(p_lookup_type => 'OKL_PRC_STATUS'
1295 ,p_lookup_code => p_sts_code);
1296
1297 IF (x_return_status = okl_api.g_ret_sts_error) THEN
1298 okl_api.set_message(p_app_name => g_app_name
1299 ,p_msg_name => g_invalid_value
1300 ,p_token1 => g_col_name_token
1301 ,p_token1_value => 'sts_code'); -- notify caller of an error
1302 RAISE g_exception_halt_validation;
1303 ELSIF (x_return_status = okl_api.g_ret_sts_unexp_error) THEN
1304
1305 -- notify caller of an error
1306
1307 x_return_status := okl_api.g_ret_sts_unexp_error;
1308 RAISE g_exception_halt_validation;
1309 END IF;
1310 RETURN x_return_status;
1311 EXCEPTION
1312 WHEN g_exception_halt_validation THEN
1313
1314 -- no processing necessary; validation can continue
1315 -- with the next column
1316
1317 RETURN x_return_status;
1318 WHEN OTHERS THEN
1319
1320 -- store SQL error message on message stack for caller
1321
1322 okl_api.set_message(p_app_name => g_app_name
1323 ,p_msg_name => g_unexpected_error
1324 ,p_token1 => g_sqlcode_token
1325 ,p_token1_value => sqlcode
1326 ,p_token2 => g_sqlerrm_token
1327 ,p_token2_value => sqlerrm);
1328
1329 -- notify caller of an UNEXPECTED error
1330
1331 x_return_status := okl_api.g_ret_sts_unexp_error;
1332 RETURN x_return_status;
1333 END validate_sts_code;
1334
1335 FUNCTION validate_effective_from_date(p_effective_from_date IN DATE) RETURN VARCHAR2 IS
1336
1337 -- initialize the return status
1338
1339 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1340
1341 BEGIN
1342
1343 IF (p_effective_from_date IS NULL OR p_effective_from_date = okl_api.g_miss_date) THEN
1344 okl_api.set_message(p_app_name => g_app_name
1345 ,p_msg_name => g_required_value
1346 ,p_token1 => g_col_name_token
1347 ,p_token1_value => 'EFFECTIVE_FROM_DATE');
1348
1349 -- notify caller of an error
1350
1351 x_return_status := okl_api.g_ret_sts_error;
1352 RAISE g_exception_halt_validation;
1353 END IF;
1354 RETURN x_return_status;
1355 EXCEPTION
1356 WHEN g_exception_halt_validation THEN
1357
1358 -- no processing necessary; validation can continue
1359 -- with the next column
1360
1361 RETURN x_return_status;
1362 WHEN OTHERS THEN
1363
1364 -- store SQL error message on message stack for caller
1365
1366 okl_api.set_message(p_app_name => g_app_name
1367 ,p_msg_name => g_unexpected_error
1368 ,p_token1 => g_sqlcode_token
1369 ,p_token1_value => sqlcode
1370 ,p_token2 => g_sqlerrm_token
1371 ,p_token2_value => sqlerrm);
1372
1373 -- notify caller of an UNEXPECTED error
1374
1375 x_return_status := okl_api.g_ret_sts_unexp_error;
1376 RETURN x_return_status;
1377 END validate_effective_from_date;
1378
1379 FUNCTION validate_attributes(p_pamv_rec IN okl_pamv_rec) RETURN VARCHAR2 IS
1380 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1381 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1382
1383 BEGIN
1384
1385 -- validate the adjustment matrix id
1386
1387 l_return_status := validate_adj_mat_id(p_pamv_rec.adj_mat_id);
1388
1389 -- store the highest degree of error
1390
1391 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1392 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1393 x_return_status := l_return_status;
1394 END IF;
1395 END IF;
1396
1397 -- validate the org_id
1398
1399 l_return_status := validate_org_id(p_pamv_rec.org_id);
1400
1401 -- store the highest degree of error
1402
1403 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1404 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1405 x_return_status := l_return_status;
1406 END IF;
1407 END IF;
1408
1409 -- validate the currency code
1410
1411 l_return_status := validate_currency_code(p_pamv_rec.currency_code);
1412
1413 -- store the highest degree of error
1414
1415 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1416 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1417 x_return_status := l_return_status;
1418 END IF;
1419 END IF;
1420
1421 -- validate the Adjustment matrix type
1422
1423 l_return_status := validate_adj_mat_type_code(p_pamv_rec.adj_mat_type_code);
1424
1425 -- store the highest degree of error
1426
1427 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1428 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1429 x_return_status := l_return_status;
1430 END IF;
1431 END IF;
1432
1433 -- validate the Adjusment matrix Id used for duplicate
1434
1435 l_return_status := validate_orig_adj_mat_id(p_pamv_rec.orig_adj_mat_id);
1436
1437 -- store the highest degree of error
1438
1439 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1440 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1441 x_return_status := l_return_status;
1442 END IF;
1443 END IF;
1444
1445 -- validate the status of the header
1446
1447 l_return_status := validate_sts_code(p_pamv_rec.sts_code);
1448
1449 -- store the highest degree of error
1450
1451 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1452 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1453 x_return_status := l_return_status;
1454 END IF;
1455 END IF;
1456
1457 -- validate the effective from date
1458
1459 l_return_status := validate_effective_from_date(p_pamv_rec.effective_from_date);
1460
1461 -- store the highest degree of error
1462
1463 IF (l_return_status <> okl_api.g_ret_sts_success) THEN
1464 IF (x_return_status <> okl_api.g_ret_sts_unexp_error) THEN
1465 x_return_status := l_return_status;
1466 END IF;
1467 END IF;
1468 RETURN(x_return_status);
1469 END validate_attributes;
1470
1471 FUNCTION validate_record(p_pamv_rec IN okl_pamv_rec) RETURN VARCHAR2 IS
1472 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1473 x_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1474
1475 BEGIN
1476
1477 IF (p_pamv_rec.effective_to_date IS NOT NULL) THEN
1478 IF (p_pamv_rec.effective_from_date > p_pamv_rec.effective_to_date) THEN
1479 okl_api.set_message(p_app_name => g_app_name
1480 ,p_msg_name => 'OKL_INVALID_EFFECTIVE_TO');
1481 x_return_status := okl_api.g_ret_sts_error;
1482 END IF;
1483 END IF;
1484 RETURN x_return_status;
1485 EXCEPTION
1486 WHEN g_exception_halt_validation THEN
1487 NULL;
1488 x_return_status := okl_api.g_ret_sts_error;
1489 RETURN x_return_status;
1490 WHEN OTHERS THEN
1491
1492 -- store SQL error message on message stack for caller
1493
1494 okl_api.set_message(p_app_name => g_app_name
1495 ,p_msg_name => g_unexpected_error
1496 ,p_token1 => g_sqlcode_token
1497 ,p_token1_value => sqlcode
1498 ,p_token2 => g_sqlerrm_token
1499 ,p_token2_value => sqlerrm);
1500
1501 -- notify caller of an UNEXPECTED error
1502
1503 x_return_status := okl_api.g_ret_sts_error;
1504 RETURN(x_return_status);
1505 END validate_record;
1506
1507 --------------------------------------------------------------------------------
1508 -- Procedure insert_row_b
1509 --------------------------------------------------------------------------------
1510
1511 PROCEDURE insert_row(p_api_version IN NUMBER
1512 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
1513 ,x_return_status OUT NOCOPY VARCHAR2
1514 ,x_msg_count OUT NOCOPY NUMBER
1515 ,x_msg_data OUT NOCOPY VARCHAR2
1516 ,p_pamb_rec IN okl_pamb_rec
1517 ,x_pamb_rec OUT NOCOPY okl_pamb_rec) IS
1518 l_api_version CONSTANT NUMBER := 1;
1519 l_api_name CONSTANT VARCHAR2(30) := 'insert_row';
1520 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1521 l_pamb_rec okl_pamb_rec := p_pamb_rec;
1522
1523 FUNCTION set_attributes(p_pamb_rec IN okl_pamb_rec
1524 ,x_pamb_rec OUT NOCOPY okl_pamb_rec) RETURN VARCHAR2 IS
1525 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1526
1527 BEGIN
1528 x_pamb_rec := p_pamb_rec;
1529 RETURN(l_return_status);
1530 END set_attributes;
1531
1532 BEGIN
1533 l_return_status := okl_api.start_activity(l_api_name
1534 ,g_pkg_name
1535 ,p_init_msg_list
1536 ,l_api_version
1537 ,p_api_version
1538 ,'_PVT'
1539 ,x_return_status);
1540
1541 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1542 RAISE okl_api.g_exception_unexpected_error;
1543 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1544 RAISE okl_api.g_exception_error;
1545 END IF;
1546
1547 --Setting Item Attributes
1548
1549 l_return_status := set_attributes(p_pamb_rec
1550 ,l_pamb_rec);
1551
1552 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1553 RAISE okl_api.g_exception_unexpected_error;
1554 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1555 RAISE okl_api.g_exception_error;
1556 END IF;
1557
1558 INSERT INTO okl_fe_adj_mat_all_b
1559 (adj_mat_id
1560 ,adj_mat_name
1561 ,object_version_number
1562 ,org_id
1563 ,currency_code
1564 ,adj_mat_type_code
1565 ,orig_adj_mat_id
1566 ,sts_code
1567 ,effective_from_date
1568 ,effective_to_date
1569 ,attribute_category
1570 ,attribute1
1571 ,attribute2
1572 ,attribute3
1573 ,attribute4
1574 ,attribute5
1575 ,attribute6
1576 ,attribute7
1577 ,attribute8
1578 ,attribute9
1579 ,attribute10
1580 ,attribute11
1581 ,attribute12
1582 ,attribute13
1583 ,attribute14
1584 ,attribute15
1585 ,created_by
1586 ,creation_date
1587 ,last_updated_by
1588 ,last_update_date
1589 ,last_update_login)
1590 VALUES (l_pamb_rec.adj_mat_id
1591 ,l_pamb_rec.adj_mat_name
1592 ,l_pamb_rec.object_version_number
1593 ,l_pamb_rec.org_id
1594 ,l_pamb_rec.currency_code
1595 ,l_pamb_rec.adj_mat_type_code
1596 ,l_pamb_rec.orig_adj_mat_id
1597 ,l_pamb_rec.sts_code
1598 ,l_pamb_rec.effective_from_date
1599 ,l_pamb_rec.effective_to_date
1600 ,l_pamb_rec.attribute_category
1601 ,l_pamb_rec.attribute1
1602 ,l_pamb_rec.attribute2
1603 ,l_pamb_rec.attribute3
1604 ,l_pamb_rec.attribute4
1605 ,l_pamb_rec.attribute5
1606 ,l_pamb_rec.attribute6
1607 ,l_pamb_rec.attribute7
1608 ,l_pamb_rec.attribute8
1609 ,l_pamb_rec.attribute9
1610 ,l_pamb_rec.attribute10
1611 ,l_pamb_rec.attribute11
1612 ,l_pamb_rec.attribute12
1613 ,l_pamb_rec.attribute13
1614 ,l_pamb_rec.attribute14
1615 ,l_pamb_rec.attribute15
1616 ,l_pamb_rec.created_by
1617 ,l_pamb_rec.creation_date
1618 ,l_pamb_rec.last_updated_by
1619 ,l_pamb_rec.last_update_date
1620 ,l_pamb_rec.last_update_login);
1621
1622 --Set OUT Values
1623
1624 x_pamb_rec := l_pamb_rec;
1625 okl_api.end_activity(x_msg_count
1626 ,x_msg_data);
1627 EXCEPTION
1628 WHEN g_exception_halt_validation THEN
1629
1630 -- No action necessary. Validation can continue to next attribute/column
1631
1632 NULL;
1633 WHEN okl_api.g_exception_error THEN
1634 x_return_status := okl_api.handle_exceptions(l_api_name
1635 ,g_pkg_name
1636 ,'OKL_API.G_RET_STS_ERROR'
1637 ,x_msg_count
1638 ,x_msg_data
1639 ,'_PVT');
1640 WHEN okl_api.g_exception_unexpected_error THEN
1641 x_return_status := okl_api.handle_exceptions(l_api_name
1642 ,g_pkg_name
1643 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1644 ,x_msg_count
1645 ,x_msg_data
1646 ,'_PVT');
1647 WHEN OTHERS THEN
1648 x_return_status := okl_api.handle_exceptions(l_api_name
1649 ,g_pkg_name
1650 ,'OTHERS'
1651 ,x_msg_count
1652 ,x_msg_data
1653 ,'_PVT');
1654 END insert_row;
1655
1656 --------------------------------------------------------------------------------
1657 -- Procedure insert_row_tl
1658 --------------------------------------------------------------------------------
1659
1660 PROCEDURE insert_row(p_api_version IN NUMBER
1661 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
1662 ,x_return_status OUT NOCOPY VARCHAR2
1663 ,x_msg_count OUT NOCOPY NUMBER
1664 ,x_msg_data OUT NOCOPY VARCHAR2
1665 ,p_pamtl_rec IN okl_pamtl_rec
1666 ,x_pamtl_rec OUT NOCOPY okl_pamtl_rec) IS
1667 l_api_version CONSTANT NUMBER := 1;
1668 l_api_name CONSTANT VARCHAR2(30) := 'insert_row';
1669 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1670 l_pamtl_rec okl_pamtl_rec := p_pamtl_rec;
1671
1672 CURSOR get_languages IS
1673 SELECT *
1674 FROM fnd_languages
1675 WHERE installed_flag IN('I', 'B');
1676
1677 FUNCTION set_attributes(p_pamtl_rec IN okl_pamtl_rec
1678 ,x_pamtl_rec OUT NOCOPY okl_pamtl_rec) RETURN VARCHAR2 IS
1679 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1680
1681 BEGIN
1682 x_pamtl_rec := p_pamtl_rec;
1683 x_pamtl_rec.language := USERENV('LANG');
1684 x_pamtl_rec.source_lang := USERENV('LANG');
1685 x_pamtl_rec.sfwt_flag := 'N';
1686 RETURN(l_return_status);
1687 END set_attributes;
1688
1689 BEGIN
1690 l_return_status := okl_api.start_activity(l_api_name
1691 ,g_pkg_name
1692 ,p_init_msg_list
1693 ,l_api_version
1694 ,p_api_version
1695 ,'_PVT'
1696 ,x_return_status);
1697
1698 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1699 RAISE okl_api.g_exception_unexpected_error;
1700 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1701 RAISE okl_api.g_exception_error;
1702 END IF;
1703
1704 --Setting Item Attributes
1705
1706 l_return_status := set_attributes(p_pamtl_rec
1707 ,l_pamtl_rec);
1708
1709 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1710 RAISE okl_api.g_exception_unexpected_error;
1711 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1712 RAISE okl_api.g_exception_error;
1713 END IF;
1714
1715 FOR l_lang_rec IN get_languages LOOP
1716 l_pamtl_rec.language := l_lang_rec.language_code;
1717
1718 INSERT INTO okl_fe_adj_mat_all_tl
1719 (adj_mat_id
1720 ,adj_mat_desc
1721 ,language
1722 ,source_lang
1723 ,sfwt_flag
1724 ,created_by
1725 ,creation_date
1726 ,last_updated_by
1727 ,last_update_date
1728 ,last_update_login)
1729 VALUES (l_pamtl_rec.adj_mat_id
1730 ,l_pamtl_rec.adj_mat_desc
1731 ,l_pamtl_rec.language
1732 ,l_pamtl_rec.source_lang
1733 ,l_pamtl_rec.sfwt_flag
1734 ,l_pamtl_rec.created_by
1735 ,l_pamtl_rec.creation_date
1736 ,l_pamtl_rec.last_updated_by
1737 ,l_pamtl_rec.last_update_date
1738 ,l_pamtl_rec.last_update_login);
1739
1740 END LOOP;
1741
1742 --Set OUT Values
1743
1744 x_pamtl_rec := l_pamtl_rec;
1745 okl_api.end_activity(x_msg_count
1746 ,x_msg_data);
1747 EXCEPTION
1748 WHEN g_exception_halt_validation THEN
1749
1750 -- No action necessary. Validation can continue to next attribute/column
1751
1752 NULL;
1753 WHEN okl_api.g_exception_error THEN
1754 x_return_status := okl_api.handle_exceptions(l_api_name
1755 ,g_pkg_name
1756 ,'OKL_API.G_RET_STS_ERROR'
1757 ,x_msg_count
1758 ,x_msg_data
1759 ,'_PVT');
1760 WHEN okl_api.g_exception_unexpected_error THEN
1761 x_return_status := okl_api.handle_exceptions(l_api_name
1762 ,g_pkg_name
1763 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1764 ,x_msg_count
1765 ,x_msg_data
1766 ,'_PVT');
1767 WHEN OTHERS THEN
1768 x_return_status := okl_api.handle_exceptions(l_api_name
1769 ,g_pkg_name
1770 ,'OTHERS'
1771 ,x_msg_count
1772 ,x_msg_data
1773 ,'_PVT');
1774 END insert_row;
1775
1776 --------------------------------------------------------------------------------
1777 -- Procedure insert_row_v
1778 --------------------------------------------------------------------------------
1779
1780 PROCEDURE insert_row(p_api_version IN NUMBER
1781 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
1782 ,x_return_status OUT NOCOPY VARCHAR2
1783 ,x_msg_count OUT NOCOPY NUMBER
1784 ,x_msg_data OUT NOCOPY VARCHAR2
1785 ,p_pamv_rec IN okl_pamv_rec
1786 ,x_pamv_rec OUT NOCOPY okl_pamv_rec) IS
1787 l_api_version CONSTANT NUMBER := 1;
1788 l_api_name CONSTANT VARCHAR2(30) := 'v_insert_row';
1789 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1790 l_pamv_rec okl_pamv_rec;
1791 l_def_pamv_rec okl_pamv_rec;
1792 l_pamb_rec okl_pamb_rec;
1793 lx_pamb_rec okl_pamb_rec;
1794 l_pamtl_rec okl_pamtl_rec;
1795 lx_pamtl_rec okl_pamtl_rec;
1796
1797 FUNCTION fill_who_columns(p_pamv_rec IN okl_pamv_rec) RETURN okl_pamv_rec IS
1798 l_pamv_rec okl_pamv_rec := p_pamv_rec;
1799
1800 BEGIN
1801 l_pamv_rec.creation_date := SYSDATE;
1802 l_pamv_rec.created_by := fnd_global.user_id;
1803 l_pamv_rec.last_update_date := SYSDATE;
1804 l_pamv_rec.last_updated_by := fnd_global.user_id;
1805 l_pamv_rec.last_update_login := fnd_global.login_id;
1806 RETURN(l_pamv_rec);
1807 END fill_who_columns;
1808
1809 FUNCTION set_attributes(p_pamv_rec IN okl_pamv_rec
1810 ,x_pamv_rec OUT NOCOPY okl_pamv_rec) RETURN VARCHAR2 IS
1811 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1812
1813 BEGIN
1814 x_pamv_rec := p_pamv_rec;
1815 x_pamv_rec.object_version_number := 1;
1816 x_pamv_rec.org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
1817 RETURN(l_return_status);
1818 END set_attributes;
1819
1820 BEGIN
1821 l_return_status := okl_api.start_activity(l_api_name
1822 ,g_pkg_name
1823 ,p_init_msg_list
1824 ,l_api_version
1825 ,p_api_version
1826 ,'_PVT'
1827 ,x_return_status);
1828
1829 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1830 RAISE okl_api.g_exception_unexpected_error;
1831 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1832 RAISE okl_api.g_exception_error;
1833 END IF;
1834 l_pamv_rec := null_out_defaults(p_pamv_rec);
1835
1836 -- Set Primary key value
1837
1838 l_pamv_rec.adj_mat_id := get_seq_id;
1839
1840 --Setting Item Attributes
1841
1842 l_return_status := set_attributes(l_pamv_rec
1843 ,l_def_pamv_rec);
1844
1845 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1846 RAISE okl_api.g_exception_unexpected_error;
1847 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1848 RAISE okl_api.g_exception_error;
1849 END IF;
1850 l_def_pamv_rec := fill_who_columns(l_def_pamv_rec);
1851 l_return_status := validate_attributes(l_def_pamv_rec);
1852
1853 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1854 RAISE okl_api.g_exception_unexpected_error;
1855 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1856 RAISE okl_api.g_exception_error;
1857 END IF;
1858 l_return_status := validate_record(l_def_pamv_rec);
1859
1860 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1861 RAISE okl_api.g_exception_unexpected_error;
1862 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1863 RAISE okl_api.g_exception_error;
1864 END IF;
1865 migrate(l_def_pamv_rec
1866 ,l_pamb_rec);
1867 migrate(l_def_pamv_rec
1868 ,l_pamtl_rec);
1869 insert_row(p_api_version
1870 ,p_init_msg_list
1871 ,x_return_status
1872 ,x_msg_count
1873 ,x_msg_data
1874 ,l_pamb_rec
1875 ,lx_pamb_rec);
1876
1877 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1878 RAISE okl_api.g_exception_unexpected_error;
1879 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1880 RAISE okl_api.g_exception_error;
1881 END IF;
1882 migrate(lx_pamb_rec
1883 ,l_def_pamv_rec);
1884 insert_row(p_api_version
1885 ,p_init_msg_list
1886 ,x_return_status
1887 ,x_msg_count
1888 ,x_msg_data
1889 ,l_pamtl_rec
1890 ,lx_pamtl_rec);
1891
1892 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
1893 RAISE okl_api.g_exception_unexpected_error;
1894 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
1895 RAISE okl_api.g_exception_error;
1896 END IF;
1897 migrate(lx_pamtl_rec
1898 ,l_def_pamv_rec);
1899
1900 --Set OUT Values
1901
1902 x_pamv_rec := l_def_pamv_rec;
1903 okl_api.end_activity(x_msg_count
1904 ,x_msg_data);
1905 EXCEPTION
1906 WHEN g_exception_halt_validation THEN
1907
1908 -- No action necessary. Validation can continue to next attribute/column
1909
1910 NULL;
1911 WHEN okl_api.g_exception_error THEN
1912 x_return_status := okl_api.handle_exceptions(l_api_name
1913 ,g_pkg_name
1914 ,'OKL_API.G_RET_STS_ERROR'
1915 ,x_msg_count
1916 ,x_msg_data
1917 ,'_PVT');
1918 WHEN okl_api.g_exception_unexpected_error THEN
1919 x_return_status := okl_api.handle_exceptions(l_api_name
1920 ,g_pkg_name
1921 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1922 ,x_msg_count
1923 ,x_msg_data
1924 ,'_PVT');
1925 WHEN OTHERS THEN
1926 x_return_status := okl_api.handle_exceptions(l_api_name
1927 ,g_pkg_name
1928 ,'OTHERS'
1929 ,x_msg_count
1930 ,x_msg_data
1931 ,'_PVT');
1932 END insert_row;
1933
1934 --------------------------------------------------------------------------------
1935 -- Procedure insert_row_tbl
1936 --------------------------------------------------------------------------------
1937
1938 PROCEDURE insert_row(p_api_version IN NUMBER
1939 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
1940 ,x_return_status OUT NOCOPY VARCHAR2
1941 ,x_msg_count OUT NOCOPY NUMBER
1942 ,x_msg_data OUT NOCOPY VARCHAR2
1943 ,p_pamv_tbl IN okl_pamv_tbl
1944 ,x_pamv_tbl OUT NOCOPY okl_pamv_tbl) IS
1945 l_api_version CONSTANT NUMBER := 1;
1946 l_api_name CONSTANT VARCHAR2(30) := 'v_insert_row';
1947 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1948 i NUMBER := 0;
1949 l_overall_status VARCHAR2(1) := okl_api.g_ret_sts_success;
1950
1951 BEGIN
1952 okl_api.init_msg_list(p_init_msg_list);
1953
1954 -- Make sure PL/SQL table has records in it before passing
1955
1956 IF (p_pamv_tbl.COUNT > 0) THEN
1957 i := p_pamv_tbl.FIRST;
1958
1959 LOOP
1960 insert_row(p_api_version => p_api_version
1961 ,p_init_msg_list => okl_api.g_false
1962 ,x_return_status => x_return_status
1963 ,x_msg_count => x_msg_count
1964 ,x_msg_data => x_msg_data
1965 ,p_pamv_rec => p_pamv_tbl(i)
1966 ,x_pamv_rec => x_pamv_tbl(i));
1967 IF x_return_status <> okl_api.g_ret_sts_success THEN
1968 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
1969 l_overall_status := x_return_status;
1970 END IF;
1971 END IF;
1972 EXIT WHEN(i = p_pamv_tbl.LAST);
1973 i := p_pamv_tbl.next(i);
1974 END LOOP;
1975 x_return_status := l_overall_status;
1976 END IF;
1977
1978 EXCEPTION
1979 WHEN g_exception_halt_validation THEN
1980
1981 -- No action necessary. Validation can continue to next attribute/column
1982
1983 NULL;
1984 WHEN okl_api.g_exception_error THEN
1985 x_return_status := okl_api.handle_exceptions(l_api_name
1986 ,g_pkg_name
1987 ,'OKL_API.G_RET_STS_ERROR'
1988 ,x_msg_count
1989 ,x_msg_data
1990 ,'_PVT');
1991 WHEN okl_api.g_exception_unexpected_error THEN
1992 x_return_status := okl_api.handle_exceptions(l_api_name
1993 ,g_pkg_name
1994 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1995 ,x_msg_count
1996 ,x_msg_data
1997 ,'_PVT');
1998 WHEN OTHERS THEN
1999 x_return_status := okl_api.handle_exceptions(l_api_name
2000 ,g_pkg_name
2001 ,'OTHERS'
2002 ,x_msg_count
2003 ,x_msg_data
2004 ,'_PVT');
2005 END insert_row;
2006
2007 --------------------------------------------------------------------------------
2008 -- Procedure update_row_b
2009 --------------------------------------------------------------------------------
2010
2011 PROCEDURE update_row(p_api_version IN NUMBER
2012 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2013 ,x_return_status OUT NOCOPY VARCHAR2
2014 ,x_msg_count OUT NOCOPY NUMBER
2015 ,x_msg_data OUT NOCOPY VARCHAR2
2016 ,p_pamb_rec IN okl_pamb_rec
2017 ,x_pamb_rec OUT NOCOPY okl_pamb_rec) IS
2018 l_api_version CONSTANT NUMBER := 1;
2019 l_api_name CONSTANT VARCHAR2(30) := 'update_row';
2020 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2021 l_pamb_rec okl_pamb_rec := p_pamb_rec;
2022 l_def_pamb_rec okl_pamb_rec;
2023 l_row_notfound BOOLEAN := true;
2024
2025 FUNCTION set_attributes(p_pamb_rec IN okl_pamb_rec
2026 ,x_pamb_rec OUT NOCOPY okl_pamb_rec) RETURN VARCHAR2 IS
2027 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2028
2029 BEGIN
2030 x_pamb_rec := p_pamb_rec;
2031 RETURN(l_return_status);
2032 END set_attributes;
2033
2034 BEGIN
2035 l_return_status := okl_api.start_activity(l_api_name
2036 ,g_pkg_name
2037 ,p_init_msg_list
2038 ,l_api_version
2039 ,p_api_version
2040 ,'_PVT'
2041 ,x_return_status);
2042
2043 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2044 RAISE okl_api.g_exception_unexpected_error;
2045 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2046 RAISE okl_api.g_exception_error;
2047 END IF;
2048
2049 --Setting Item Attributes
2050
2051 l_return_status := set_attributes(p_pamb_rec
2052 ,l_def_pamb_rec);
2053
2054 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2055 RAISE okl_api.g_exception_unexpected_error;
2056 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2057 RAISE okl_api.g_exception_error;
2058 END IF;
2059
2060 UPDATE okl_fe_adj_mat_all_b
2061 SET adj_mat_id = l_def_pamb_rec.adj_mat_id
2062 ,adj_mat_name = l_def_pamb_rec.adj_mat_name
2063 ,object_version_number = l_def_pamb_rec.object_version_number + 1
2064 ,org_id = l_def_pamb_rec.org_id
2065 ,currency_code = l_def_pamb_rec.currency_code
2066 ,adj_mat_type_code = l_def_pamb_rec.adj_mat_type_code
2067 ,orig_adj_mat_id = l_def_pamb_rec.orig_adj_mat_id
2068 ,sts_code = l_def_pamb_rec.sts_code
2069 ,effective_from_date = l_def_pamb_rec.effective_from_date
2070 ,effective_to_date = l_def_pamb_rec.effective_to_date
2071 ,attribute_category = l_def_pamb_rec.attribute_category
2072 ,attribute1 = l_def_pamb_rec.attribute1
2073 ,attribute2 = l_def_pamb_rec.attribute2
2074 ,attribute3 = l_def_pamb_rec.attribute3
2075 ,attribute4 = l_def_pamb_rec.attribute4
2076 ,attribute5 = l_def_pamb_rec.attribute5
2077 ,attribute6 = l_def_pamb_rec.attribute6
2078 ,attribute7 = l_def_pamb_rec.attribute7
2079 ,attribute8 = l_def_pamb_rec.attribute8
2080 ,attribute9 = l_def_pamb_rec.attribute9
2081 ,attribute10 = l_def_pamb_rec.attribute10
2082 ,attribute11 = l_def_pamb_rec.attribute11
2083 ,attribute12 = l_def_pamb_rec.attribute12
2084 ,attribute13 = l_def_pamb_rec.attribute13
2085 ,attribute14 = l_def_pamb_rec.attribute14
2086 ,attribute15 = l_def_pamb_rec.attribute15
2087 ,created_by = l_def_pamb_rec.created_by
2088 ,creation_date = l_def_pamb_rec.creation_date
2089 ,last_updated_by = l_def_pamb_rec.last_updated_by
2090 ,last_update_date = l_def_pamb_rec.last_update_date
2091 ,last_update_login = l_def_pamb_rec.last_update_login
2092 WHERE adj_mat_id = l_def_pamb_rec.adj_mat_id;
2093
2094 --Set OUT Values
2095
2096 x_pamb_rec := l_pamb_rec;
2097 okl_api.end_activity(x_msg_count
2098 ,x_msg_data);
2099 EXCEPTION
2100 WHEN g_exception_halt_validation THEN
2101
2102 -- No action necessary. Validation can continue to next attribute/column
2103
2104 NULL;
2105 WHEN okl_api.g_exception_error THEN
2106 x_return_status := okl_api.handle_exceptions(l_api_name
2107 ,g_pkg_name
2108 ,'OKL_API.G_RET_STS_ERROR'
2109 ,x_msg_count
2110 ,x_msg_data
2111 ,'_PVT');
2112 WHEN okl_api.g_exception_unexpected_error THEN
2113 x_return_status := okl_api.handle_exceptions(l_api_name
2114 ,g_pkg_name
2115 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2116 ,x_msg_count
2117 ,x_msg_data
2118 ,'_PVT');
2119 WHEN OTHERS THEN
2120 x_return_status := okl_api.handle_exceptions(l_api_name
2121 ,g_pkg_name
2122 ,'OTHERS'
2123 ,x_msg_count
2124 ,x_msg_data
2125 ,'_PVT');
2126 END update_row;
2127
2128 --------------------------------------------------------------------------------
2129 -- Procedure update_row_tl
2130 --------------------------------------------------------------------------------
2131
2132 PROCEDURE update_row(p_api_version IN NUMBER
2133 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2134 ,x_return_status OUT NOCOPY VARCHAR2
2135 ,x_msg_count OUT NOCOPY NUMBER
2136 ,x_msg_data OUT NOCOPY VARCHAR2
2137 ,p_pamtl_rec IN okl_pamtl_rec
2138 ,x_pamtl_rec OUT NOCOPY okl_pamtl_rec) IS
2139 l_api_version CONSTANT NUMBER := 1;
2140 l_api_name CONSTANT VARCHAR2(30) := 'update_row';
2141 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2142 l_pamtl_rec okl_pamtl_rec := p_pamtl_rec;
2143 l_def_pamtl_rec okl_pamtl_rec;
2144 l_row_notfound BOOLEAN := true;
2145
2146 FUNCTION set_attributes(p_pamtl_rec IN okl_pamtl_rec
2147 ,x_pamtl_rec OUT NOCOPY okl_pamtl_rec) RETURN VARCHAR2 IS
2148 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2149
2150 BEGIN
2151 x_pamtl_rec := p_pamtl_rec;
2152 x_pamtl_rec.language := USERENV('LANG');
2153 x_pamtl_rec.source_lang := USERENV('LANG');
2154 x_pamtl_rec.sfwt_flag := 'N';
2155 RETURN(l_return_status);
2156 END set_attributes;
2157
2158 BEGIN
2159 l_return_status := okl_api.start_activity(l_api_name
2160 ,g_pkg_name
2161 ,p_init_msg_list
2162 ,l_api_version
2163 ,p_api_version
2164 ,'_PVT'
2165 ,x_return_status);
2166
2167 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2168 RAISE okl_api.g_exception_unexpected_error;
2169 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2170 RAISE okl_api.g_exception_error;
2171 END IF;
2172
2173 --Setting Item Attributes
2174
2175 l_return_status := set_attributes(p_pamtl_rec
2176 ,l_def_pamtl_rec);
2177
2178 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2179 RAISE okl_api.g_exception_unexpected_error;
2180 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2181 RAISE okl_api.g_exception_error;
2182 END IF;
2183
2184 UPDATE okl_fe_adj_mat_all_tl
2185 SET adj_mat_id = l_def_pamtl_rec.adj_mat_id
2186 ,adj_mat_desc = l_def_pamtl_rec.adj_mat_desc
2187 ,language = l_def_pamtl_rec.language
2188 ,source_lang = l_def_pamtl_rec.source_lang
2189 ,sfwt_flag = l_def_pamtl_rec.sfwt_flag
2190 ,created_by = l_def_pamtl_rec.created_by
2191 ,creation_date = l_def_pamtl_rec.creation_date
2192 ,last_updated_by = l_def_pamtl_rec.last_updated_by
2193 ,last_update_date = l_def_pamtl_rec.last_update_date
2194 ,last_update_login = l_def_pamtl_rec.last_update_login
2195 WHERE adj_mat_id = l_def_pamtl_rec.adj_mat_id
2196 AND language = l_def_pamtl_rec.language;
2197
2198 UPDATE okl_fe_adj_mat_all_tl
2199 SET sfwt_flag = 'Y'
2200 WHERE adj_mat_id = l_def_pamtl_rec.adj_mat_id
2201 AND source_lang <> USERENV('LANG');
2202
2203 --Set OUT Values
2204
2205 x_pamtl_rec := l_pamtl_rec;
2206 okl_api.end_activity(x_msg_count
2207 ,x_msg_data);
2208 EXCEPTION
2209 WHEN g_exception_halt_validation THEN
2210
2211 -- No action necessary. Validation can continue to next attribute/column
2212
2213 NULL;
2214 WHEN okl_api.g_exception_error THEN
2215 x_return_status := okl_api.handle_exceptions(l_api_name
2216 ,g_pkg_name
2217 ,'OKL_API.G_RET_STS_ERROR'
2218 ,x_msg_count
2219 ,x_msg_data
2220 ,'_PVT');
2221 WHEN okl_api.g_exception_unexpected_error THEN
2222 x_return_status := okl_api.handle_exceptions(l_api_name
2223 ,g_pkg_name
2224 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2225 ,x_msg_count
2226 ,x_msg_data
2227 ,'_PVT');
2228 WHEN OTHERS THEN
2229 x_return_status := okl_api.handle_exceptions(l_api_name
2230 ,g_pkg_name
2231 ,'OTHERS'
2232 ,x_msg_count
2233 ,x_msg_data
2234 ,'_PVT');
2235 END update_row;
2236
2237 --------------------------------------------------------------------------------
2238 -- Procedure insert_row_v
2239 --------------------------------------------------------------------------------
2240
2241 PROCEDURE update_row(p_api_version IN NUMBER
2242 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2243 ,x_return_status OUT NOCOPY VARCHAR2
2244 ,x_msg_count OUT NOCOPY NUMBER
2245 ,x_msg_data OUT NOCOPY VARCHAR2
2246 ,p_pamv_rec IN okl_pamv_rec
2247 ,x_pamv_rec OUT NOCOPY okl_pamv_rec) IS
2248 l_api_version CONSTANT NUMBER := 1;
2249 l_api_name CONSTANT VARCHAR2(30) := 'v_insert_row';
2250 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2251 l_pamv_rec okl_pamv_rec := p_pamv_rec;
2252 l_def_pamv_rec okl_pamv_rec;
2253 lx_pamv_rec okl_pamv_rec;
2254 l_pamb_rec okl_pamb_rec;
2255 lx_pamb_rec okl_pamb_rec;
2256 l_pamtl_rec okl_pamtl_rec;
2257 lx_pamtl_rec okl_pamtl_rec;
2258
2259 FUNCTION fill_who_columns(p_pamv_rec IN okl_pamv_rec) RETURN okl_pamv_rec IS
2260 l_pamv_rec okl_pamv_rec := p_pamv_rec;
2261
2262 BEGIN
2263 l_pamv_rec.last_update_date := SYSDATE;
2264 l_pamv_rec.last_updated_by := fnd_global.user_id;
2265 l_pamv_rec.last_update_login := fnd_global.login_id;
2266 RETURN(l_pamv_rec);
2267 END fill_who_columns;
2268
2269 FUNCTION populate_new_record(p_pamv_rec IN okl_pamv_rec
2270 ,x_pamv_rec OUT NOCOPY okl_pamv_rec) RETURN VARCHAR2 IS
2271 l_pamv_rec okl_pamv_rec;
2272 l_row_notfound BOOLEAN := true;
2273 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2274
2275 BEGIN
2276 x_pamv_rec := p_pamv_rec;
2277
2278 --Get current database values
2279
2280 l_pamv_rec := get_rec(p_pamv_rec
2281 ,l_row_notfound);
2282
2283 IF (l_row_notfound) THEN
2284 l_return_status := okl_api.g_ret_sts_unexp_error;
2285 END IF;
2286
2287 IF (x_pamv_rec.adj_mat_id IS NULL) THEN
2288 x_pamv_rec.adj_mat_id := l_pamv_rec.adj_mat_id;
2289 END IF;
2290
2291 IF (x_pamv_rec.object_version_number IS NULL) THEN
2292 x_pamv_rec.object_version_number := l_pamv_rec.object_version_number;
2293 END IF;
2294
2295 IF (x_pamv_rec.org_id IS NULL) THEN
2296 x_pamv_rec.org_id := l_pamv_rec.org_id;
2297 END IF;
2298
2299 IF (x_pamv_rec.currency_code IS NULL) THEN
2300 x_pamv_rec.currency_code := l_pamv_rec.currency_code;
2301 END IF;
2302
2303 IF (x_pamv_rec.adj_mat_type_code IS NULL) THEN
2304 x_pamv_rec.adj_mat_type_code := l_pamv_rec.adj_mat_type_code;
2305 END IF;
2306
2307 IF (x_pamv_rec.orig_adj_mat_id IS NULL) THEN
2308 x_pamv_rec.orig_adj_mat_id := l_pamv_rec.orig_adj_mat_id;
2309 END IF;
2310
2311 IF (x_pamv_rec.sts_code IS NULL) THEN
2312 x_pamv_rec.sts_code := l_pamv_rec.sts_code;
2313 END IF;
2314
2315 IF (x_pamv_rec.effective_from_date IS NULL) THEN
2316 x_pamv_rec.effective_from_date := l_pamv_rec.effective_from_date;
2317 END IF;
2318
2319 IF (x_pamv_rec.effective_to_date IS NULL) THEN
2320 x_pamv_rec.effective_to_date := l_pamv_rec.effective_to_date;
2321 END IF;
2322
2323 IF (x_pamv_rec.attribute_category IS NULL) THEN
2324 x_pamv_rec.attribute_category := l_pamv_rec.attribute_category;
2325 END IF;
2326
2327 IF (x_pamv_rec.attribute1 IS NULL) THEN
2328 x_pamv_rec.attribute1 := l_pamv_rec.attribute1;
2329 END IF;
2330
2331 IF (x_pamv_rec.attribute2 IS NULL) THEN
2332 x_pamv_rec.attribute2 := l_pamv_rec.attribute2;
2333 END IF;
2334
2335 IF (x_pamv_rec.attribute3 IS NULL) THEN
2336 x_pamv_rec.attribute3 := l_pamv_rec.attribute3;
2337 END IF;
2338
2339 IF (x_pamv_rec.attribute4 IS NULL) THEN
2340 x_pamv_rec.attribute4 := l_pamv_rec.attribute4;
2341 END IF;
2342
2343 IF (x_pamv_rec.attribute5 IS NULL) THEN
2344 x_pamv_rec.attribute5 := l_pamv_rec.attribute5;
2345 END IF;
2346
2347 IF (x_pamv_rec.attribute6 IS NULL) THEN
2348 x_pamv_rec.attribute6 := l_pamv_rec.attribute6;
2349 END IF;
2350
2351 IF (x_pamv_rec.attribute7 IS NULL) THEN
2352 x_pamv_rec.attribute7 := l_pamv_rec.attribute7;
2353 END IF;
2354
2355 IF (x_pamv_rec.attribute8 IS NULL) THEN
2356 x_pamv_rec.attribute8 := l_pamv_rec.attribute8;
2357 END IF;
2358
2359 IF (x_pamv_rec.attribute9 IS NULL) THEN
2360 x_pamv_rec.attribute9 := l_pamv_rec.attribute9;
2361 END IF;
2362
2363 IF (x_pamv_rec.attribute10 IS NULL) THEN
2364 x_pamv_rec.attribute10 := l_pamv_rec.attribute10;
2365 END IF;
2366
2367 IF (x_pamv_rec.attribute11 IS NULL) THEN
2368 x_pamv_rec.attribute11 := l_pamv_rec.attribute11;
2369 END IF;
2370
2371 IF (x_pamv_rec.attribute12 IS NULL) THEN
2372 x_pamv_rec.attribute12 := l_pamv_rec.attribute12;
2373 END IF;
2374
2375 IF (x_pamv_rec.attribute13 IS NULL) THEN
2376 x_pamv_rec.attribute13 := l_pamv_rec.attribute13;
2377 END IF;
2378
2379 IF (x_pamv_rec.attribute14 IS NULL) THEN
2380 x_pamv_rec.attribute14 := l_pamv_rec.attribute14;
2381 END IF;
2382
2383 IF (x_pamv_rec.attribute15 IS NULL) THEN
2384 x_pamv_rec.attribute15 := l_pamv_rec.attribute15;
2385 END IF;
2386
2387 IF (x_pamv_rec.created_by IS NULL) THEN
2388 x_pamv_rec.created_by := l_pamv_rec.created_by;
2389 END IF;
2390
2391 IF (x_pamv_rec.creation_date IS NULL) THEN
2392 x_pamv_rec.creation_date := l_pamv_rec.creation_date;
2393 END IF;
2394
2395 IF (x_pamv_rec.last_updated_by IS NULL) THEN
2396 x_pamv_rec.last_updated_by := l_pamv_rec.last_updated_by;
2397 END IF;
2398
2399 IF (x_pamv_rec.last_update_date IS NULL) THEN
2400 x_pamv_rec.last_update_date := l_pamv_rec.last_update_date;
2401 END IF;
2402
2403 IF (x_pamv_rec.last_update_login IS NULL) THEN
2404 x_pamv_rec.last_update_login := l_pamv_rec.last_update_login;
2405 END IF;
2406
2407 IF (x_pamv_rec.adj_mat_name IS NULL) THEN
2408 x_pamv_rec.adj_mat_name := l_pamv_rec.adj_mat_name;
2409 END IF;
2410
2411 IF (x_pamv_rec.adj_mat_desc IS NULL) THEN
2412 x_pamv_rec.adj_mat_desc := l_pamv_rec.adj_mat_desc;
2413 END IF;
2414 RETURN(l_return_status);
2415 END populate_new_record;
2416
2417 FUNCTION set_attributes(p_pamv_rec IN okl_pamv_rec
2418 ,x_pamv_rec OUT NOCOPY okl_pamv_rec) RETURN VARCHAR2 IS
2419 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2420
2421 BEGIN
2422 x_pamv_rec := p_pamv_rec;
2423 RETURN(l_return_status);
2424 END set_attributes;
2425
2426 BEGIN
2427 l_return_status := okl_api.start_activity(l_api_name
2428 ,g_pkg_name
2429 ,p_init_msg_list
2430 ,l_api_version
2431 ,p_api_version
2432 ,'_PVT'
2433 ,x_return_status);
2434
2435 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2436 RAISE okl_api.g_exception_unexpected_error;
2437 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2438 RAISE okl_api.g_exception_error;
2439 END IF;
2440
2441 --Setting Item Attributes
2442
2443 l_return_status := set_attributes(l_pamv_rec
2444 ,lx_pamv_rec);
2445
2446 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2447 RAISE okl_api.g_exception_unexpected_error;
2448 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2449 RAISE okl_api.g_exception_error;
2450 END IF;
2451 l_return_status := populate_new_record(lx_pamv_rec
2452 ,l_def_pamv_rec);
2453
2454 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2455 RAISE okl_api.g_exception_unexpected_error;
2456 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2457 RAISE okl_api.g_exception_error;
2458 END IF;
2459 l_def_pamv_rec := null_out_defaults(l_def_pamv_rec);
2460
2461 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2462 RAISE okl_api.g_exception_unexpected_error;
2463 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2464 RAISE okl_api.g_exception_error;
2465 END IF;
2466 l_def_pamv_rec := fill_who_columns(l_def_pamv_rec);
2467 l_return_status := validate_attributes(l_def_pamv_rec);
2468
2469 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2470 RAISE okl_api.g_exception_unexpected_error;
2471 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2472 RAISE okl_api.g_exception_error;
2473 END IF;
2474 l_return_status := validate_record(l_def_pamv_rec);
2475
2476 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2477 RAISE okl_api.g_exception_unexpected_error;
2478 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2479 RAISE okl_api.g_exception_error;
2480 END IF;
2481
2482 --lock the row
2483
2484 lock_row(p_api_version => l_api_version
2485 ,p_init_msg_list => okl_api.g_false
2486 ,x_return_status => l_return_status
2487 ,x_msg_count => x_msg_count
2488 ,x_msg_data => x_msg_data
2489 ,p_pamv_rec => l_def_pamv_rec);
2490
2491 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2492 RAISE okl_api.g_exception_unexpected_error;
2493 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2494 RAISE okl_api.g_exception_error;
2495 END IF;
2496 migrate(l_def_pamv_rec
2497 ,l_pamb_rec);
2498 migrate(l_def_pamv_rec
2499 ,l_pamtl_rec);
2500 update_row(p_api_version
2501 ,p_init_msg_list
2502 ,x_return_status
2503 ,x_msg_count
2504 ,x_msg_data
2505 ,l_pamb_rec
2506 ,lx_pamb_rec);
2507
2508 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2509 RAISE okl_api.g_exception_unexpected_error;
2510 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2511 RAISE okl_api.g_exception_error;
2512 END IF;
2513 migrate(lx_pamb_rec
2514 ,l_def_pamv_rec);
2515 update_row(p_api_version
2516 ,p_init_msg_list
2517 ,x_return_status
2518 ,x_msg_count
2519 ,x_msg_data
2520 ,l_pamtl_rec
2521 ,lx_pamtl_rec);
2522
2523 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2524 RAISE okl_api.g_exception_unexpected_error;
2525 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2526 RAISE okl_api.g_exception_error;
2527 END IF;
2528 migrate(lx_pamtl_rec
2529 ,l_def_pamv_rec);
2530
2531 --Set OUT Values
2532
2533 x_pamv_rec := l_def_pamv_rec;
2534 okl_api.end_activity(x_msg_count
2535 ,x_msg_data);
2536 EXCEPTION
2537 WHEN g_exception_halt_validation THEN
2538
2539 -- No action necessary. Validation can continue to next attribute/column
2540
2541 NULL;
2542 WHEN okl_api.g_exception_error THEN
2543 x_return_status := okl_api.handle_exceptions(l_api_name
2544 ,g_pkg_name
2545 ,'OKL_API.G_RET_STS_ERROR'
2546 ,x_msg_count
2547 ,x_msg_data
2548 ,'_PVT');
2549 WHEN okl_api.g_exception_unexpected_error THEN
2550 x_return_status := okl_api.handle_exceptions(l_api_name
2551 ,g_pkg_name
2552 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2553 ,x_msg_count
2554 ,x_msg_data
2555 ,'_PVT');
2556 WHEN OTHERS THEN
2557 x_return_status := okl_api.handle_exceptions(l_api_name
2558 ,g_pkg_name
2559 ,'OTHERS'
2560 ,x_msg_count
2561 ,x_msg_data
2562 ,'_PVT');
2563 END update_row;
2564
2565 --------------------------------------------------------------------------------
2566 -- Procedure insert_row_tbl
2567 --------------------------------------------------------------------------------
2568
2569 PROCEDURE update_row(p_api_version IN NUMBER
2570 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2571 ,x_return_status OUT NOCOPY VARCHAR2
2572 ,x_msg_count OUT NOCOPY NUMBER
2573 ,x_msg_data OUT NOCOPY VARCHAR2
2574 ,p_pamv_tbl IN okl_pamv_tbl
2575 ,x_pamv_tbl OUT NOCOPY okl_pamv_tbl) IS
2576 l_api_version CONSTANT NUMBER := 1;
2577 l_api_name CONSTANT VARCHAR2(30) := 'v_update_row';
2578 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2579 i NUMBER := 0;
2580 l_overall_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2581
2582 BEGIN
2583 okl_api.init_msg_list(p_init_msg_list);
2584
2585 -- Make sure PL/SQL table has records in it before passing
2586
2587 IF (p_pamv_tbl.COUNT > 0) THEN
2588 i := p_pamv_tbl.FIRST;
2589
2590 LOOP
2591 update_row(p_api_version => p_api_version
2592 ,p_init_msg_list => okl_api.g_false
2593 ,x_return_status => x_return_status
2594 ,x_msg_count => x_msg_count
2595 ,x_msg_data => x_msg_data
2596 ,p_pamv_rec => p_pamv_tbl(i)
2597 ,x_pamv_rec => x_pamv_tbl(i));
2598 IF x_return_status <> okl_api.g_ret_sts_success THEN
2599 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
2600 l_overall_status := x_return_status;
2601 END IF;
2602 END IF;
2603 EXIT WHEN(i = p_pamv_tbl.LAST);
2604 i := p_pamv_tbl.next(i);
2605 END LOOP;
2606 x_return_status := l_overall_status;
2607 END IF;
2608
2609 EXCEPTION
2610 WHEN g_exception_halt_validation THEN
2611
2612 -- No action necessary. Validation can continue to next attribute/column
2613
2614 NULL;
2615 WHEN okl_api.g_exception_error THEN
2616 x_return_status := okl_api.handle_exceptions(l_api_name
2617 ,g_pkg_name
2618 ,'OKL_API.G_RET_STS_ERROR'
2619 ,x_msg_count
2620 ,x_msg_data
2621 ,'_PVT');
2622 WHEN okl_api.g_exception_unexpected_error THEN
2623 x_return_status := okl_api.handle_exceptions(l_api_name
2624 ,g_pkg_name
2625 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2626 ,x_msg_count
2627 ,x_msg_data
2628 ,'_PVT');
2629 WHEN OTHERS THEN
2630 x_return_status := okl_api.handle_exceptions(l_api_name
2631 ,g_pkg_name
2632 ,'OTHERS'
2633 ,x_msg_count
2634 ,x_msg_data
2635 ,'_PVT');
2636 END update_row;
2637
2638 --------------------------------------------------------------------------------
2639 -- Procedure delete_row_b
2640 --------------------------------------------------------------------------------
2641
2642 PROCEDURE delete_row(p_api_version IN NUMBER
2643 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2644 ,x_return_status OUT NOCOPY VARCHAR2
2645 ,x_msg_count OUT NOCOPY NUMBER
2646 ,x_msg_data OUT NOCOPY VARCHAR2
2647 ,p_pamb_rec IN okl_pamb_rec) IS
2648 l_api_version CONSTANT NUMBER := 1;
2649 l_api_name CONSTANT VARCHAR2(30) := 'delete_row';
2650 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2651 l_pamb_rec okl_pamb_rec := p_pamb_rec;
2652 l_row_notfound BOOLEAN := true;
2653
2654 BEGIN
2655 l_return_status := okl_api.start_activity(l_api_name
2656 ,g_pkg_name
2657 ,p_init_msg_list
2658 ,l_api_version
2659 ,p_api_version
2660 ,'_PVT'
2661 ,x_return_status);
2662
2663 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2664 RAISE okl_api.g_exception_unexpected_error;
2665 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2666 RAISE okl_api.g_exception_error;
2667 END IF;
2668
2669 DELETE FROM okl_fe_adj_mat_all_b
2670 WHERE adj_mat_id = l_pamb_rec.adj_mat_id;
2671
2672 EXCEPTION
2673 WHEN g_exception_halt_validation THEN
2674
2675 -- No action necessary. Validation can continue to next attribute/column
2676
2677 NULL;
2678 WHEN okl_api.g_exception_error THEN
2679 x_return_status := okl_api.handle_exceptions(l_api_name
2680 ,g_pkg_name
2681 ,'OKL_API.G_RET_STS_ERROR'
2682 ,x_msg_count
2683 ,x_msg_data
2684 ,'_PVT');
2685 WHEN okl_api.g_exception_unexpected_error THEN
2686 x_return_status := okl_api.handle_exceptions(l_api_name
2687 ,g_pkg_name
2688 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2689 ,x_msg_count
2690 ,x_msg_data
2691 ,'_PVT');
2692 WHEN OTHERS THEN
2693 x_return_status := okl_api.handle_exceptions(l_api_name
2694 ,g_pkg_name
2695 ,'OTHERS'
2696 ,x_msg_count
2697 ,x_msg_data
2698 ,'_PVT');
2699 END delete_row;
2700
2701 --------------------------------------------------------------------------------
2702 -- Procedure delete_row_tl
2703 --------------------------------------------------------------------------------
2704
2705 PROCEDURE delete_row(p_api_version IN NUMBER
2706 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2707 ,x_return_status OUT NOCOPY VARCHAR2
2708 ,x_msg_count OUT NOCOPY NUMBER
2709 ,x_msg_data OUT NOCOPY VARCHAR2
2710 ,p_pamtl_rec IN okl_pamtl_rec) IS
2711 l_api_version CONSTANT NUMBER := 1;
2712 l_api_name CONSTANT VARCHAR2(30) := 'delete_row';
2713 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2714 l_pamtl_rec okl_pamtl_rec := p_pamtl_rec;
2715 l_row_notfound BOOLEAN := true;
2716
2717 FUNCTION set_attributes(p_pamtl_rec IN okl_pamtl_rec
2718 ,x_pamtl_rec OUT NOCOPY okl_pamtl_rec) RETURN VARCHAR2 IS
2719 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2720
2721 BEGIN
2722 x_pamtl_rec := p_pamtl_rec;
2723 x_pamtl_rec.language := USERENV('LANG');
2724 x_pamtl_rec.source_lang := USERENV('LANG');
2725 RETURN(l_return_status);
2726 END set_attributes;
2727
2728 BEGIN
2729 l_return_status := okl_api.start_activity(l_api_name
2730 ,g_pkg_name
2731 ,p_init_msg_list
2732 ,l_api_version
2733 ,p_api_version
2734 ,'_PVT'
2735 ,x_return_status);
2736
2737 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2738 RAISE okl_api.g_exception_unexpected_error;
2739 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2740 RAISE okl_api.g_exception_error;
2741 END IF;
2742
2743 --Setting Item Attributes
2744
2745 l_return_status := set_attributes(p_pamtl_rec
2746 ,l_pamtl_rec);
2747
2748 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2749 RAISE okl_api.g_exception_unexpected_error;
2750 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2751 RAISE okl_api.g_exception_error;
2752 END IF;
2753
2754 DELETE FROM okl_fe_adj_mat_all_tl
2755 WHERE adj_mat_id = l_pamtl_rec.adj_mat_id;
2756
2757 EXCEPTION
2758 WHEN g_exception_halt_validation THEN
2759
2760 -- No action necessary. Validation can continue to next attribute/column
2761
2762 NULL;
2763 WHEN okl_api.g_exception_error THEN
2764 x_return_status := okl_api.handle_exceptions(l_api_name
2765 ,g_pkg_name
2766 ,'OKL_API.G_RET_STS_ERROR'
2767 ,x_msg_count
2768 ,x_msg_data
2769 ,'_PVT');
2770 WHEN okl_api.g_exception_unexpected_error THEN
2771 x_return_status := okl_api.handle_exceptions(l_api_name
2772 ,g_pkg_name
2773 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2774 ,x_msg_count
2775 ,x_msg_data
2776 ,'_PVT');
2777 WHEN OTHERS THEN
2778 x_return_status := okl_api.handle_exceptions(l_api_name
2779 ,g_pkg_name
2780 ,'OTHERS'
2781 ,x_msg_count
2782 ,x_msg_data
2783 ,'_PVT');
2784 END delete_row;
2785
2786 --------------------------------------------------------------------------------
2787 -- Procedure delete_row_v
2788 --------------------------------------------------------------------------------
2789
2790 PROCEDURE delete_row(p_api_version IN NUMBER
2791 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2792 ,x_return_status OUT NOCOPY VARCHAR2
2793 ,x_msg_count OUT NOCOPY NUMBER
2794 ,x_msg_data OUT NOCOPY VARCHAR2
2795 ,p_pamv_rec IN okl_pamv_rec) IS
2796 l_api_version CONSTANT NUMBER := 1;
2797 l_api_name CONSTANT VARCHAR2(30) := 'v_delete_row';
2798 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2799 l_pamv_rec okl_pamv_rec := p_pamv_rec;
2800 l_pamb_rec okl_pamb_rec;
2801 l_pamtl_rec okl_pamtl_rec;
2802
2803 BEGIN
2804 l_return_status := okl_api.start_activity(l_api_name
2805 ,g_pkg_name
2806 ,p_init_msg_list
2807 ,l_api_version
2808 ,p_api_version
2809 ,'_PVT'
2810 ,x_return_status);
2811
2812 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2813 RAISE okl_api.g_exception_unexpected_error;
2814 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2815 RAISE okl_api.g_exception_error;
2816 END IF;
2817 migrate(l_pamv_rec
2818 ,l_pamb_rec);
2819 migrate(l_pamv_rec
2820 ,l_pamtl_rec);
2821 delete_row(p_api_version
2822 ,p_init_msg_list
2823 ,x_return_status
2824 ,x_msg_count
2825 ,x_msg_data
2826 ,l_pamb_rec);
2827
2828 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2829 RAISE okl_api.g_exception_unexpected_error;
2830 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2831 RAISE okl_api.g_exception_error;
2832 END IF;
2833 delete_row(p_api_version
2834 ,p_init_msg_list
2835 ,x_return_status
2836 ,x_msg_count
2837 ,x_msg_data
2838 ,l_pamtl_rec);
2839
2840 IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
2841 RAISE okl_api.g_exception_unexpected_error;
2842 ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
2843 RAISE okl_api.g_exception_error;
2844 END IF;
2845 okl_api.end_activity(x_msg_count
2846 ,x_msg_data);
2847 EXCEPTION
2848 WHEN g_exception_halt_validation THEN
2849
2850 -- No action necessary. Validation can continue to next attribute/column
2851
2852 NULL;
2853 WHEN okl_api.g_exception_error THEN
2854 x_return_status := okl_api.handle_exceptions(l_api_name
2855 ,g_pkg_name
2856 ,'OKL_API.G_RET_STS_ERROR'
2857 ,x_msg_count
2858 ,x_msg_data
2859 ,'_PVT');
2860 WHEN okl_api.g_exception_unexpected_error THEN
2861 x_return_status := okl_api.handle_exceptions(l_api_name
2862 ,g_pkg_name
2863 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2864 ,x_msg_count
2865 ,x_msg_data
2866 ,'_PVT');
2867 WHEN OTHERS THEN
2868 x_return_status := okl_api.handle_exceptions(l_api_name
2869 ,g_pkg_name
2870 ,'OTHERS'
2871 ,x_msg_count
2872 ,x_msg_data
2873 ,'_PVT');
2874 END delete_row;
2875
2876 --------------------------------------------------------------------------------
2877 -- Procedure delete_row_tbl
2878 --------------------------------------------------------------------------------
2879
2880 PROCEDURE delete_row(p_api_version IN NUMBER
2881 ,p_init_msg_list IN VARCHAR2 DEFAULT okl_api.g_false
2882 ,x_return_status OUT NOCOPY VARCHAR2
2883 ,x_msg_count OUT NOCOPY NUMBER
2884 ,x_msg_data OUT NOCOPY VARCHAR2
2885 ,p_pamv_tbl IN okl_pamv_tbl) IS
2886 l_api_version CONSTANT NUMBER := 1;
2887 l_api_name CONSTANT VARCHAR2(30) := 'v_delete_row';
2888 l_return_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2889 i NUMBER := 0;
2890 l_overall_status VARCHAR2(1) := okl_api.g_ret_sts_success;
2891
2892 BEGIN
2893 okl_api.init_msg_list(p_init_msg_list);
2894
2895 -- Make sure PL/SQL table has records in it before passing
2896
2897 IF (p_pamv_tbl.COUNT > 0) THEN
2898 i := p_pamv_tbl.FIRST;
2899
2900 LOOP
2901 delete_row(p_api_version => p_api_version
2902 ,p_init_msg_list => okl_api.g_false
2903 ,x_return_status => x_return_status
2904 ,x_msg_count => x_msg_count
2905 ,x_msg_data => x_msg_data
2906 ,p_pamv_rec => p_pamv_tbl(i));
2907 IF x_return_status <> okl_api.g_ret_sts_success THEN
2908 IF l_overall_status <> okl_api.g_ret_sts_unexp_error THEN
2909 l_overall_status := x_return_status;
2910 END IF;
2911 END IF;
2912 EXIT WHEN(i = p_pamv_tbl.LAST);
2913 i := p_pamv_tbl.next(i);
2914 END LOOP;
2915 x_return_status := l_overall_status;
2916 END IF;
2917
2918 EXCEPTION
2919 WHEN g_exception_halt_validation THEN
2920
2921 -- No action necessary. Validation can continue to next attribute/column
2922
2923 NULL;
2924 WHEN okl_api.g_exception_error THEN
2925 x_return_status := okl_api.handle_exceptions(l_api_name
2926 ,g_pkg_name
2927 ,'OKL_API.G_RET_STS_ERROR'
2928 ,x_msg_count
2929 ,x_msg_data
2930 ,'_PVT');
2931 WHEN okl_api.g_exception_unexpected_error THEN
2932 x_return_status := okl_api.handle_exceptions(l_api_name
2933 ,g_pkg_name
2934 ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2935 ,x_msg_count
2936 ,x_msg_data
2937 ,'_PVT');
2938 WHEN OTHERS THEN
2939 x_return_status := okl_api.handle_exceptions(l_api_name
2940 ,g_pkg_name
2941 ,'OTHERS'
2942 ,x_msg_count
2943 ,x_msg_data
2944 ,'_PVT');
2945 END delete_row;
2946
2947 END okl_pam_pvt;