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