[Home] [Help]
PACKAGE BODY: APPS.OKL_VLR_PVT
Source
1 PACKAGE BODY OKL_VLR_PVT AS
2 /* $Header: OKLSVLRB.pls 120.2 2005/07/21 00:01:49 rfedane noship $ */
3
4 -------------------------
5 -- PROCEDURE add_language
6 -------------------------
7 PROCEDURE add_language IS
8
9 BEGIN
10
11 DELETE FROM OKL_VALIDATION_RESULTS_TL T
12 WHERE NOT EXISTS (SELECT NULL FROM OKL_VALIDATION_RESULTS_B B WHERE B.ID =T.ID);
13
14 UPDATE OKL_VALIDATION_RESULTS_TL T
15 SET (VALIDATION_TEXT) =
16 (SELECT
17 B.VALIDATION_TEXT
18 FROM
19 OKL_VALIDATION_RESULTS_TL B
20 WHERE
21 B.ID = T.ID
22 AND B.LANGUAGE = T.SOURCE_LANG)
23 WHERE (T.ID, T.LANGUAGE) IN (SELECT
24 SUBT.ID,
25 SUBT.LANGUAGE
26 FROM
27 OKL_VALIDATION_RESULTS_TL SUBB,
28 OKL_VALIDATION_RESULTS_TL SUBT
29 WHERE
30 SUBB.ID = SUBT.ID
31 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
32 AND (SUBB.VALIDATION_TEXT <> SUBT.VALIDATION_TEXT
33 OR (SUBB.VALIDATION_TEXT IS NULL AND SUBT.VALIDATION_TEXT IS NOT NULL)
34 )
35 );
36
37 INSERT INTO OKL_VALIDATION_RESULTS_TL (
38 ID,
39 LANGUAGE,
40 SOURCE_LANG,
41 SFWT_FLAG,
42 CREATED_BY,
43 CREATION_DATE,
44 LAST_UPDATED_BY,
45 LAST_UPDATE_DATE,
46 LAST_UPDATE_LOGIN,
47 VALIDATION_TEXT)
48 SELECT
49 B.ID,
50 L.LANGUAGE_CODE,
51 B.SOURCE_LANG,
52 B.SFWT_FLAG,
53 B.CREATED_BY,
54 B.CREATION_DATE,
55 B.LAST_UPDATED_BY,
56 B.LAST_UPDATE_DATE,
57 B.LAST_UPDATE_LOGIN,
58 B.VALIDATION_TEXT
59 FROM OKL_VALIDATION_RESULTS_TL B, FND_LANGUAGES L
60 WHERE L.INSTALLED_FLAG IN ('I', 'B')
61 AND B.LANGUAGE = USERENV('LANG')
62 AND NOT EXISTS (
63 SELECT NULL
64 FROM OKL_VALIDATION_RESULTS_TL T
65 WHERE T.ID = B.ID
66 AND T.LANGUAGE = L.LANGUAGE_CODE
67 );
68
69 END add_language;
70
71
72 -----------------------------
73 -- FUNCTION null_out_defaults
74 -----------------------------
75 FUNCTION null_out_defaults (p_vlrv_rec IN vlrv_rec_type) RETURN vlrv_rec_type IS
76
77 l_vlrv_rec vlrv_rec_type;
78
79 BEGIN
80
81 l_vlrv_rec := p_vlrv_rec;
82
83 -- Not applicable to ID and OBJECT_VERSION_NUMBER
84
85 IF l_vlrv_rec.attribute_category = FND_API.G_MISS_CHAR THEN
86 l_vlrv_rec.attribute_category := NULL;
87 END IF;
88 IF l_vlrv_rec.attribute1 = FND_API.G_MISS_CHAR THEN
89 l_vlrv_rec.attribute1 := NULL;
90 END IF;
91 IF l_vlrv_rec.attribute2 = FND_API.G_MISS_CHAR THEN
92 l_vlrv_rec.attribute2 := NULL;
93 END IF;
94 IF l_vlrv_rec.attribute3 = FND_API.G_MISS_CHAR THEN
95 l_vlrv_rec.attribute3 := NULL;
96 END IF;
97 IF l_vlrv_rec.attribute4 = FND_API.G_MISS_CHAR THEN
98 l_vlrv_rec.attribute4 := NULL;
99 END IF;
100 IF l_vlrv_rec.attribute5 = FND_API.G_MISS_CHAR THEN
101 l_vlrv_rec.attribute5 := NULL;
102 END IF;
103 IF l_vlrv_rec.attribute6 = FND_API.G_MISS_CHAR THEN
104 l_vlrv_rec.attribute6 := NULL;
105 END IF;
106 IF l_vlrv_rec.attribute7 = FND_API.G_MISS_CHAR THEN
107 l_vlrv_rec.attribute7 := NULL;
108 END IF;
109 IF l_vlrv_rec.attribute8 = FND_API.G_MISS_CHAR THEN
110 l_vlrv_rec.attribute8 := NULL;
111 END IF;
112 IF l_vlrv_rec.attribute9 = FND_API.G_MISS_CHAR THEN
113 l_vlrv_rec.attribute9 := NULL;
114 END IF;
115 IF l_vlrv_rec.attribute10 = FND_API.G_MISS_CHAR THEN
116 l_vlrv_rec.attribute10 := NULL;
117 END IF;
118 IF l_vlrv_rec.attribute11 = FND_API.G_MISS_CHAR THEN
119 l_vlrv_rec.attribute11 := NULL;
120 END IF;
121 IF l_vlrv_rec.attribute12 = FND_API.G_MISS_CHAR THEN
122 l_vlrv_rec.attribute12 := NULL;
123 END IF;
124 IF l_vlrv_rec.attribute13 = FND_API.G_MISS_CHAR THEN
125 l_vlrv_rec.attribute13 := NULL;
126 END IF;
127 IF l_vlrv_rec.attribute14 = FND_API.G_MISS_CHAR THEN
128 l_vlrv_rec.attribute14 := NULL;
129 END IF;
130 IF l_vlrv_rec.attribute15 = FND_API.G_MISS_CHAR THEN
131 l_vlrv_rec.attribute15 := NULL;
132 END IF;
133 IF l_vlrv_rec.parent_object_code = FND_API.G_MISS_CHAR THEN
134 l_vlrv_rec.parent_object_code := NULL;
135 END IF;
136 IF l_vlrv_rec.parent_object_id = FND_API.G_MISS_NUM THEN
137 l_vlrv_rec.parent_object_id := NULL;
138 END IF;
139 IF l_vlrv_rec.validation_id = FND_API.G_MISS_NUM THEN
140 l_vlrv_rec.validation_id := NULL;
141 END IF;
142 IF l_vlrv_rec.result_code = FND_API.G_MISS_CHAR THEN
143 l_vlrv_rec.result_code := NULL;
144 END IF;
145 IF l_vlrv_rec.validation_text = FND_API.G_MISS_CHAR THEN
146 l_vlrv_rec.validation_text := NULL;
147 END IF;
148
149 RETURN l_vlrv_rec;
150
151 END null_out_defaults;
152
153
154 -------------------
155 -- FUNCTION get_rec
156 -------------------
157 FUNCTION get_rec (p_id IN NUMBER
158 ,x_return_status OUT NOCOPY VARCHAR2) RETURN vlrv_rec_type IS
159
160 l_vlrv_rec vlrv_rec_type;
161 l_prog_name VARCHAR2(61);
162
163 BEGIN
164
165 l_prog_name := G_PKG_NAME||'.get_rec';
166
167 SELECT
168 id
169 ,object_version_number
170 ,attribute_category
171 ,attribute1
172 ,attribute2
173 ,attribute3
174 ,attribute4
175 ,attribute5
176 ,attribute6
177 ,attribute7
178 ,attribute8
179 ,attribute9
180 ,attribute10
181 ,attribute11
182 ,attribute12
183 ,attribute13
184 ,attribute14
185 ,attribute15
186 ,parent_object_code
187 ,parent_object_id
188 ,validation_id
189 ,result_code
190 ,validation_text
191 INTO
192 l_vlrv_rec.id
193 ,l_vlrv_rec.object_version_number
194 ,l_vlrv_rec.attribute_category
195 ,l_vlrv_rec.attribute1
196 ,l_vlrv_rec.attribute2
197 ,l_vlrv_rec.attribute3
198 ,l_vlrv_rec.attribute4
199 ,l_vlrv_rec.attribute5
200 ,l_vlrv_rec.attribute6
201 ,l_vlrv_rec.attribute7
202 ,l_vlrv_rec.attribute8
203 ,l_vlrv_rec.attribute9
204 ,l_vlrv_rec.attribute10
205 ,l_vlrv_rec.attribute11
206 ,l_vlrv_rec.attribute12
207 ,l_vlrv_rec.attribute13
208 ,l_vlrv_rec.attribute14
209 ,l_vlrv_rec.attribute15
210 ,l_vlrv_rec.parent_object_code
211 ,l_vlrv_rec.parent_object_id
212 ,l_vlrv_rec.validation_id
213 ,l_vlrv_rec.result_code
214 ,l_vlrv_rec.validation_text
215 FROM okl_validation_results_v
216 WHERE id = p_id;
217
218 x_return_status := G_RET_STS_SUCCESS;
219 RETURN l_vlrv_rec;
220
221 EXCEPTION
222
223 WHEN OTHERS THEN
224
225 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
226 p_msg_name => G_DB_ERROR,
227 p_token1 => G_PROG_NAME_TOKEN,
228 p_token1_value => l_prog_name,
229 p_token2 => G_SQLCODE_TOKEN,
230 p_token2_value => sqlcode,
231 p_token3 => G_SQLERRM_TOKEN,
232 p_token3_value => sqlerrm);
233
234 x_return_status := G_RET_STS_UNEXP_ERROR;
235
236 END get_rec;
237
238
239 ------------------------
240 -- PROCEDURE validate_id
241 ------------------------
242 PROCEDURE validate_id (x_return_status OUT NOCOPY VARCHAR2, p_id IN NUMBER) IS
243 BEGIN
244 IF p_id IS NULL THEN
245 OKL_API.set_message(p_app_name => G_APP_NAME,
246 p_msg_name => G_COL_ERROR,
247 p_token1 => G_COL_NAME_TOKEN,
248 p_token1_value => 'id',
249 p_token2 => G_PKG_NAME_TOKEN,
250 p_token2_value => G_PKG_NAME);
251 RAISE OKL_API.G_EXCEPTION_ERROR;
252 END IF;
253 x_return_status := G_RET_STS_SUCCESS;
254 END validate_id;
255
256
257 -------------------------------------------
258 -- PROCEDURE validate_object_version_number
259 -------------------------------------------
260 PROCEDURE validate_object_version_number (x_return_status OUT NOCOPY VARCHAR2, p_object_version_number IN NUMBER) IS
261 BEGIN
262 IF p_object_version_number IS NULL THEN
263 OKL_API.set_message(p_app_name => G_APP_NAME,
264 p_msg_name => G_COL_ERROR,
265 p_token1 => G_COL_NAME_TOKEN,
266 p_token1_value => 'object_version_number',
267 p_token2 => G_PKG_NAME_TOKEN,
268 p_token2_value => G_PKG_NAME);
269 RAISE OKL_API.G_EXCEPTION_ERROR;
270 END IF;
271 x_return_status := G_RET_STS_SUCCESS;
272 END validate_object_version_number;
273
274
275 -------------------------------------------
276 -- PROCEDURE validate_parent_object_code
277 -------------------------------------------
278 PROCEDURE validate_parent_object_code (x_return_status OUT NOCOPY VARCHAR2, p_parent_object_code IN VARCHAR2) IS
279 BEGIN
280 IF p_parent_object_code IS NULL THEN
281 OKL_API.set_message(p_app_name => G_APP_NAME,
282 p_msg_name => G_COL_ERROR,
283 p_token1 => G_COL_NAME_TOKEN,
284 p_token1_value => 'parent_object_code',
285 p_token2 => G_PKG_NAME_TOKEN,
286 p_token2_value => G_PKG_NAME);
287 RAISE OKL_API.G_EXCEPTION_ERROR;
288 END IF;
289 x_return_status := G_RET_STS_SUCCESS;
290 END validate_parent_object_code;
291
292
293 -------------------------------------------
294 -- PROCEDURE validate_parent_object_id
295 -------------------------------------------
296 PROCEDURE validate_parent_object_id (x_return_status OUT NOCOPY VARCHAR2, p_parent_object_id IN NUMBER) IS
297 BEGIN
298 IF p_parent_object_id IS NULL THEN
299 OKL_API.set_message(p_app_name => G_APP_NAME,
300 p_msg_name => G_COL_ERROR,
301 p_token1 => G_COL_NAME_TOKEN,
302 p_token1_value => 'parent_object_id',
303 p_token2 => G_PKG_NAME_TOKEN,
304 p_token2_value => G_PKG_NAME);
305 RAISE OKL_API.G_EXCEPTION_ERROR;
306 END IF;
307 x_return_status := G_RET_STS_SUCCESS;
308 END validate_parent_object_id;
309
310
311 -------------------------------------------
312 -- PROCEDURE validate_validation_id
313 -------------------------------------------
314 PROCEDURE validate_validation_id (x_return_status OUT NOCOPY VARCHAR2, p_validation_id IN NUMBER) IS
315 BEGIN
316 IF p_validation_id IS NULL THEN
317 OKL_API.set_message(p_app_name => G_APP_NAME,
318 p_msg_name => G_COL_ERROR,
319 p_token1 => G_COL_NAME_TOKEN,
320 p_token1_value => 'validation_id',
321 p_token2 => G_PKG_NAME_TOKEN,
322 p_token2_value => G_PKG_NAME);
323 RAISE OKL_API.G_EXCEPTION_ERROR;
324 END IF;
325 x_return_status := G_RET_STS_SUCCESS;
326 END validate_validation_id;
327
328
329 -------------------------------------------
330 -- PROCEDURE validate_result_code
331 -------------------------------------------
332 PROCEDURE validate_result_code (x_return_status OUT NOCOPY VARCHAR2, p_result_code IN VARCHAR2) IS
333 BEGIN
334 IF p_result_code IS NULL THEN
335 OKL_API.set_message(p_app_name => G_APP_NAME,
336 p_msg_name => G_COL_ERROR,
337 p_token1 => G_COL_NAME_TOKEN,
338 p_token1_value => 'result_code',
339 p_token2 => G_PKG_NAME_TOKEN,
340 p_token2_value => G_PKG_NAME);
341 RAISE OKL_API.G_EXCEPTION_ERROR;
342 END IF;
343 x_return_status := G_RET_STS_SUCCESS;
344 END validate_result_code;
345
346
347 -------------------------------
348 -- FUNCTION validate_attributes
349 -------------------------------
350 FUNCTION validate_attributes (p_vlrv_rec IN vlrv_rec_type) RETURN VARCHAR2 IS
351
352 l_return_status VARCHAR2(1);
353
354 BEGIN
355
356 validate_id (l_return_status, p_vlrv_rec.id);
357 validate_object_version_number (l_return_status, p_vlrv_rec.object_version_number);
358 validate_parent_object_code (l_return_status, p_vlrv_rec.parent_object_code);
359 validate_parent_object_id (l_return_status, p_vlrv_rec.parent_object_id);
360 validate_validation_id (l_return_status, p_vlrv_rec.validation_id);
361 validate_result_code (l_return_status, p_vlrv_rec.result_code);
362
363 RETURN l_return_status;
364
365 END validate_attributes;
366
367 ----------------------------
368 -- PROCEDURE validate_record
369 ----------------------------
370 FUNCTION validate_record (p_vlrv_rec IN vlrv_rec_type) RETURN VARCHAR2 IS
371 l_return_status VARCHAR2(1);
372 BEGIN
373 RETURN G_RET_STS_SUCCESS;
374 END validate_record;
375
376
377 -----------------------------
378 -- PROECDURE migrate (V -> B)
379 -----------------------------
380 PROCEDURE migrate (p_from IN vlrv_rec_type, p_to IN OUT NOCOPY vlr_rec_type) IS
381
382 BEGIN
383
384 p_to.id := p_from.id;
385 p_to.object_version_number := p_from.object_version_number;
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.parent_object_code := p_from.parent_object_code;
406
403 p_to.parent_object_id := p_from.parent_object_id;
404 p_to.validation_id := p_from.validation_id;
405 p_to.result_code := p_from.result_code;
407 END migrate;
408
409
410 -----------------------------
411 -- PROCEDURE migrate (V -> TL)
412 -----------------------------
413 PROCEDURE migrate (p_from IN vlrv_rec_type, p_to IN OUT NOCOPY vlrtl_rec_type) IS
414 BEGIN
415 p_to.id := p_from.id;
416 p_to.validation_text := p_from.validation_text;
417 END migrate;
418
419
420 ---------------------------
421 -- PROCEDURE insert_row (B)
422 ---------------------------
423 PROCEDURE insert_row (x_return_status OUT NOCOPY VARCHAR2, p_vlr_rec IN vlr_rec_type) IS
424
425 l_prog_name VARCHAR2(61);
426
427 BEGIN
428
429 l_prog_name := G_PKG_NAME||'.insert_row (B)';
430
431 INSERT INTO okl_validation_results_b (
432 id
433 ,object_version_number
434 ,attribute_category
435 ,attribute1
436 ,attribute2
437 ,attribute3
438 ,attribute4
439 ,attribute5
440 ,attribute6
441 ,attribute7
442 ,attribute8
443 ,attribute9
444 ,attribute10
445 ,attribute11
446 ,attribute12
447 ,attribute13
448 ,attribute14
449 ,attribute15
450 ,created_by
451 ,creation_date
452 ,last_updated_by
453 ,last_update_date
454 ,last_update_login
455 ,parent_object_code
456 ,parent_object_id
457 ,validation_id
458 ,result_code
459 )
460 VALUES
461 (
462 p_vlr_rec.id
463 ,p_vlr_rec.object_version_number
464 ,p_vlr_rec.attribute_category
465 ,p_vlr_rec.attribute1
466 ,p_vlr_rec.attribute2
467 ,p_vlr_rec.attribute3
468 ,p_vlr_rec.attribute4
469 ,p_vlr_rec.attribute5
470 ,p_vlr_rec.attribute6
471 ,p_vlr_rec.attribute7
472 ,p_vlr_rec.attribute8
473 ,p_vlr_rec.attribute9
474 ,p_vlr_rec.attribute10
475 ,p_vlr_rec.attribute11
476 ,p_vlr_rec.attribute12
477 ,p_vlr_rec.attribute13
478 ,p_vlr_rec.attribute14
479 ,p_vlr_rec.attribute15
480 ,G_USER_ID
481 ,SYSDATE
482 ,G_USER_ID
483 ,SYSDATE
484 ,G_LOGIN_ID
485 ,p_vlr_rec.parent_object_code
486 ,p_vlr_rec.parent_object_id
487 ,p_vlr_rec.validation_id
488 ,p_vlr_rec.result_code
489 );
490
491 x_return_status := G_RET_STS_SUCCESS;
492
493 EXCEPTION
494
495 WHEN OTHERS THEN
496
497 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
498 p_msg_name => G_DB_ERROR,
499 p_token1 => G_PROG_NAME_TOKEN,
500 p_token1_value => l_prog_name,
501 p_token2 => G_SQLCODE_TOKEN,
502 p_token2_value => sqlcode,
503 p_token3 => G_SQLERRM_TOKEN,
504 p_token3_value => sqlerrm);
505
506 x_return_status := G_RET_STS_UNEXP_ERROR;
507
508 END insert_row;
509
510
511 ----------------------------
512 -- PROCEDURE insert_row (TL)
513 ----------------------------
514 PROCEDURE insert_row (x_return_status OUT NOCOPY VARCHAR2, p_vlrtl_rec IN vlrtl_rec_type) IS
515
516 CURSOR get_languages IS
517 SELECT language_code
518 FROM FND_LANGUAGES
519 WHERE INSTALLED_FLAG IN ('I', 'B');
520
521 l_sfwt_flag VARCHAR2(1);
522
523 l_prog_name VARCHAR2(61);
524
525 BEGIN
526
527 l_prog_name := G_PKG_NAME||'.insert_row (TL)';
528
529 FOR l_lang_rec IN get_languages LOOP
530
531 IF l_lang_rec.language_code = USERENV('LANG') THEN
532 l_sfwt_flag := 'N';
533 ELSE
534 l_sfwt_flag := 'Y';
535 END IF;
536
537 INSERT INTO OKL_VALIDATION_RESULTS_TL (
538 id
539 ,language
540 ,source_lang
541 ,sfwt_flag
542 ,created_by
543 ,creation_date
544 ,last_updated_by
545 ,last_update_date
546 ,last_update_login
547 ,validation_text)
548 VALUES (
549 p_vlrtl_rec.id
550 ,l_lang_rec.language_code
551 ,USERENV('LANG')
552 ,l_sfwt_flag
553 ,G_USER_ID
554 ,SYSDATE
555 ,G_USER_ID
556 ,SYSDATE
557 ,G_LOGIN_ID
558 ,p_vlrtl_rec.validation_text);
559
560 END LOOP;
561
562 x_return_status := G_RET_STS_SUCCESS;
563
564 EXCEPTION
565
566 WHEN OTHERS THEN
567
568 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
569 p_msg_name => G_DB_ERROR,
570 p_token1 => G_PROG_NAME_TOKEN,
571 p_token1_value => l_prog_name,
572 p_token2 => G_SQLCODE_TOKEN,
573 p_token2_value => sqlcode,
574 p_token3 => G_SQLERRM_TOKEN,
575 p_token3_value => sqlerrm);
576
577 x_return_status := G_RET_STS_UNEXP_ERROR;
578
579 END insert_row;
580
581
582 ---------------------------
583 -- PROCEDURE insert_row (V)
587 p_vlrv_rec IN vlrv_rec_type,
584 ---------------------------
585 PROCEDURE insert_row (
586 x_return_status OUT NOCOPY VARCHAR2,
588 x_vlrv_rec OUT NOCOPY vlrv_rec_type) IS
589
590 l_return_status VARCHAR2(1);
591
592 l_vlrv_rec vlrv_rec_type;
593 l_vlr_rec vlr_rec_type;
594 l_vlrtl_rec vlrtl_rec_type;
595
596 l_prog_name VARCHAR2(61);
597
598 BEGIN
599
600 l_prog_name := G_PKG_NAME||'.insert_row (V)';
601
602 l_vlrv_rec := null_out_defaults (p_vlrv_rec);
603
604 SELECT okl_vlr_seq.nextval INTO l_vlrv_rec.ID FROM DUAL;
605
606 l_vlrv_rec.OBJECT_VERSION_NUMBER := 1;
607
608 l_return_status := validate_attributes(l_vlrv_rec);
609
610 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
611 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
612 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
613 RAISE OKL_API.G_EXCEPTION_ERROR;
614 END IF;
615
616 l_return_status := validate_record(l_vlrv_rec);
617
618 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
619 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
620 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
621 RAISE OKL_API.G_EXCEPTION_ERROR;
622 END IF;
623
624 migrate (l_vlrv_rec, l_vlr_rec);
625 migrate (l_vlrv_rec, l_vlrtl_rec);
626
627 insert_row (x_return_status => l_return_status, p_vlr_rec => l_vlr_rec);
628
629 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
630 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
631 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
632 RAISE OKL_API.G_EXCEPTION_ERROR;
633 END IF;
634
635 insert_row (x_return_status => l_return_status, p_vlrtl_rec => l_vlrtl_rec);
636
637 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
638 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
639 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
640 RAISE OKL_API.G_EXCEPTION_ERROR;
641 END IF;
642
643 x_vlrv_rec := l_vlrv_rec;
644 x_return_status := l_return_status;
645
646 EXCEPTION
647
648 WHEN OKL_API.G_EXCEPTION_ERROR THEN
649
650 x_return_status := G_RET_STS_ERROR;
651
652 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
653
654 x_return_status := G_RET_STS_UNEXP_ERROR;
655
656 WHEN OTHERS THEN
657
658 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
659 p_msg_name => G_DB_ERROR,
660 p_token1 => G_PROG_NAME_TOKEN,
661 p_token1_value => l_prog_name,
662 p_token2 => G_SQLCODE_TOKEN,
663 p_token2_value => sqlcode,
664 p_token3 => G_SQLERRM_TOKEN,
665 p_token3_value => sqlerrm);
666
667 x_return_status := G_RET_STS_UNEXP_ERROR;
668
669 END insert_row;
670
671
672 -----------------------------
673 -- PROCEDURE insert_row (REC)
674 -----------------------------
675 PROCEDURE insert_row(
676 p_api_version IN NUMBER,
677 p_init_msg_list IN VARCHAR2,
678 x_return_status OUT NOCOPY VARCHAR2,
679 x_msg_count OUT NOCOPY NUMBER,
680 x_msg_data OUT NOCOPY VARCHAR2,
681 p_vlrv_rec IN vlrv_rec_type,
682 x_vlrv_rec OUT NOCOPY vlrv_rec_type) IS
683
684 l_return_status VARCHAR2(1);
685
686 l_prog_name VARCHAR2(61);
687
688 BEGIN
689
690 l_prog_name := G_PKG_NAME||'.insert_row (REC)';
691
692 IF p_init_msg_list = G_TRUE THEN
693 FND_MSG_PUB.initialize;
694 END IF;
695
696 insert_row (x_return_status => l_return_status,
697 p_vlrv_rec => p_vlrv_rec,
698 x_vlrv_rec => x_vlrv_rec);
699
700 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
701 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
702 ELSIF l_return_status = G_RET_STS_ERROR THEN
703 RAISE OKL_API.G_EXCEPTION_ERROR;
704 END IF;
705
706 x_return_status := l_return_status;
707
708 EXCEPTION
709
710 WHEN OKL_API.G_EXCEPTION_ERROR THEN
711
712 x_return_status := G_RET_STS_ERROR;
713
714 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
715
716 x_return_status := G_RET_STS_UNEXP_ERROR;
717
718 WHEN OTHERS THEN
719
720 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
721 p_msg_name => G_DB_ERROR,
722 p_token1 => G_PROG_NAME_TOKEN,
723 p_token1_value => l_prog_name,
724 p_token2 => G_SQLCODE_TOKEN,
725 p_token2_value => sqlcode,
726 p_token3 => G_SQLERRM_TOKEN,
727 p_token3_value => sqlerrm);
728
729 x_return_status := G_RET_STS_UNEXP_ERROR;
730
731 END insert_row;
732
733
734 -----------------------------
735 -- PROCEDURE insert_row (TBL)
736 -----------------------------
737 PROCEDURE insert_row(
738 p_api_version IN NUMBER,
739 p_init_msg_list IN VARCHAR2,
740 x_return_status OUT NOCOPY VARCHAR2,
744 x_vlrv_tbl OUT NOCOPY vlrv_tbl_type) IS
741 x_msg_count OUT NOCOPY NUMBER,
742 x_msg_data OUT NOCOPY VARCHAR2,
743 p_vlrv_tbl IN vlrv_tbl_type,
745
746 l_return_status VARCHAR2(1);
747 i BINARY_INTEGER;
748
749 l_prog_name VARCHAR2(61);
750
751 BEGIN
752
753 l_prog_name := G_PKG_NAME||'.insert_row (TBL)';
754
755 IF p_init_msg_list = G_TRUE THEN
756 FND_MSG_PUB.initialize;
757 END IF;
758
759 IF (p_vlrv_tbl.COUNT > 0) THEN
760 i := p_vlrv_tbl.FIRST;
761 LOOP
762 IF p_vlrv_tbl.EXISTS(i) THEN
763
764 insert_row (x_return_status => l_return_status,
765 p_vlrv_rec => p_vlrv_tbl(i),
766 x_vlrv_rec => x_vlrv_tbl(i));
767
768 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
769 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
770 ELSIF l_return_status = G_RET_STS_ERROR THEN
771 RAISE OKL_API.G_EXCEPTION_ERROR;
772 END IF;
773
774 EXIT WHEN (i = p_vlrv_tbl.LAST);
775 i := p_vlrv_tbl.NEXT(i);
776
777 END IF;
778
779 END LOOP;
780
781 ELSE
782
783 l_return_status := G_RET_STS_SUCCESS;
784
785 END IF;
786
787 x_return_status := l_return_status;
788
789 EXCEPTION
790
791 WHEN OKL_API.G_EXCEPTION_ERROR THEN
792
793 x_return_status := G_RET_STS_ERROR;
794
795 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
796
797 x_return_status := G_RET_STS_UNEXP_ERROR;
798
799 WHEN OTHERS THEN
800
801 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
802 p_msg_name => G_DB_ERROR,
803 p_token1 => G_PROG_NAME_TOKEN,
804 p_token1_value => l_prog_name,
805 p_token2 => G_SQLCODE_TOKEN,
806 p_token2_value => sqlcode,
807 p_token3 => G_SQLERRM_TOKEN,
808 p_token3_value => sqlerrm);
809
810 x_return_status := G_RET_STS_UNEXP_ERROR;
811
812 END insert_row;
813
814
815 ---------------------
816 -- PROCEDURE lock_row
817 ---------------------
818 PROCEDURE lock_row (x_return_status OUT NOCOPY VARCHAR2, p_vlr_rec IN vlr_rec_type) IS
819
820 E_Resource_Busy EXCEPTION;
821
822 PRAGMA EXCEPTION_INIT (E_Resource_Busy, -00054);
823
824 CURSOR lock_csr IS
825 SELECT OBJECT_VERSION_NUMBER
826 FROM OKL_VALIDATION_RESULTS_B
827 WHERE ID = p_vlr_rec.id
828 AND OBJECT_VERSION_NUMBER = p_vlr_rec.object_version_number
829 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
830
831 CURSOR lchk_csr IS
832 SELECT OBJECT_VERSION_NUMBER
833 FROM OKL_VALIDATION_RESULTS_B
834 WHERE ID = p_vlr_rec.id;
835
836 l_object_version_number NUMBER;
837 lc_object_version_number NUMBER;
838
839 l_prog_name VARCHAR2(61);
840
841 BEGIN
842
843 l_prog_name := G_PKG_NAME||'.lock_row';
844
845 BEGIN
846 OPEN lock_csr;
847 FETCH lock_csr INTO l_object_version_number;
848 CLOSE lock_csr;
849 EXCEPTION
850 WHEN E_Resource_Busy THEN
851
852 IF (lock_csr%ISOPEN) THEN
853 CLOSE lock_csr;
854 END IF;
855 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
856 p_msg_name => G_OVN_ERROR2,
857 p_token1 => G_PROG_NAME_TOKEN,
858 p_token1_value => l_prog_name);
859 RAISE OKL_API.G_EXCEPTION_ERROR;
860 END;
861
862 IF l_object_version_number IS NULL THEN
863
864 OPEN lchk_csr;
865 FETCH lchk_csr INTO lc_object_version_number;
866 CLOSE lchk_csr;
867
868 IF lc_object_version_number IS NULL THEN
869
870 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
871 p_msg_name => G_OVN_ERROR3,
872 p_token1 => G_PROG_NAME_TOKEN,
873 p_token1_value => l_prog_name);
874
875 ELSIF lc_object_version_number <> p_vlr_rec.object_version_number THEN
876
877 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
878 p_msg_name => G_OVN_ERROR,
879 p_token1 => G_PROG_NAME_TOKEN,
880 p_token1_value => l_prog_name);
881
882 END IF;
883
884 RAISE OKL_API.G_EXCEPTION_ERROR;
885
886 END IF;
887
888 x_return_status := G_RET_STS_SUCCESS;
889
890 EXCEPTION
891
892 WHEN OKL_API.G_EXCEPTION_ERROR THEN
893
894 x_return_status := G_RET_STS_ERROR;
895
896 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
897
898 x_return_status := G_RET_STS_UNEXP_ERROR;
899
900 WHEN OTHERS THEN
901
902 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
903 p_msg_name => G_DB_ERROR,
904 p_token1 => G_PROG_NAME_TOKEN,
905 p_token1_value => l_prog_name,
906 p_token2 => G_SQLCODE_TOKEN,
910
907 p_token2_value => sqlcode,
908 p_token3 => G_SQLERRM_TOKEN,
909 p_token3_value => sqlerrm);
911 x_return_status := G_RET_STS_UNEXP_ERROR;
912
913 END lock_row;
914
915
916 ---------------------------
917 -- PROCEDURE update_row (B)
918 ---------------------------
919 PROCEDURE update_row(x_return_status OUT NOCOPY VARCHAR2, p_vlr_rec IN vlr_rec_type) IS
920
921 l_return_status VARCHAR2(1);
922
923 l_prog_name VARCHAR2(61);
924
925 BEGIN
926
927 l_prog_name := G_PKG_NAME||'.update_row (B)';
928
929 lock_row (x_return_status => l_return_status, p_vlr_rec => p_vlr_rec);
930
931 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
932 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
933 ELSIF l_return_status = G_RET_STS_ERROR THEN
934 RAISE OKL_API.G_EXCEPTION_ERROR;
935 END IF;
936
937 UPDATE okl_validation_results_b
938 SET
939 object_version_number = p_vlr_rec.object_version_number+1
940 ,attribute_category = p_vlr_rec.attribute_category
941 ,attribute1 = p_vlr_rec.attribute1
942 ,attribute2 = p_vlr_rec.attribute2
943 ,attribute3 = p_vlr_rec.attribute3
944 ,attribute4 = p_vlr_rec.attribute4
945 ,attribute5 = p_vlr_rec.attribute5
946 ,attribute6 = p_vlr_rec.attribute6
947 ,attribute7 = p_vlr_rec.attribute7
948 ,attribute8 = p_vlr_rec.attribute8
949 ,attribute9 = p_vlr_rec.attribute9
950 ,attribute10 = p_vlr_rec.attribute10
951 ,attribute11 = p_vlr_rec.attribute11
952 ,attribute12 = p_vlr_rec.attribute12
953 ,attribute13 = p_vlr_rec.attribute13
954 ,attribute14 = p_vlr_rec.attribute14
955 ,attribute15 = p_vlr_rec.attribute15
956 ,parent_object_code = p_vlr_rec.parent_object_code
957 ,parent_object_id = p_vlr_rec.parent_object_id
958 ,validation_id = p_vlr_rec.validation_id
959 ,result_code = p_vlr_rec.result_code
960 WHERE id = p_vlr_rec.id;
961
962 x_return_status := l_return_status;
963
964 EXCEPTION
965
966 WHEN OKL_API.G_EXCEPTION_ERROR THEN
967 x_return_status := G_RET_STS_ERROR;
968
969 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
970 x_return_status := G_RET_STS_UNEXP_ERROR;
971
972 WHEN OTHERS THEN
973 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
974 p_msg_name => G_DB_ERROR,
975 p_token1 => G_PROG_NAME_TOKEN,
976 p_token1_value => l_prog_name,
977 p_token2 => G_SQLCODE_TOKEN,
978 p_token2_value => sqlcode,
979 p_token3 => G_SQLERRM_TOKEN,
980 p_token3_value => sqlerrm);
981
982 x_return_status := G_RET_STS_UNEXP_ERROR;
983
984 END update_row;
985
986
987 ----------------------------
988 -- PROCEDURE update_row (TL)
989 ----------------------------
990 PROCEDURE update_row(x_return_status OUT NOCOPY VARCHAR2, p_vlrtl_rec IN vlrtl_rec_type) IS
991
992 l_prog_name VARCHAR2(61);
993
994 BEGIN
995
996 l_prog_name := G_PKG_NAME||'.update_row (TL)';
997
998 UPDATE OKL_VALIDATION_RESULTS_TL
999 SET
1000 source_lang = USERENV('LANG')
1001 ,sfwt_flag = 'Y'
1002 ,last_updated_by = G_USER_ID
1003 ,last_update_date = SYSDATE
1004 ,last_update_login = G_LOGIN_ID
1005 ,validation_text = p_vlrtl_rec.validation_text
1006 WHERE ID = p_vlrtl_rec.id;
1007
1008 UPDATE OKL_VALIDATION_RESULTS_TL
1009 SET SFWT_FLAG = 'N'
1010 WHERE ID = p_vlrtl_rec.id
1011 AND SOURCE_LANG = LANGUAGE;
1012
1013 x_return_status := G_RET_STS_SUCCESS;
1014
1015 EXCEPTION
1016
1017 WHEN OTHERS THEN
1018
1019 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1020 p_msg_name => G_DB_ERROR,
1021 p_token1 => G_PROG_NAME_TOKEN,
1022 p_token1_value => l_prog_name,
1023 p_token2 => G_SQLCODE_TOKEN,
1024 p_token2_value => sqlcode,
1025 p_token3 => G_SQLERRM_TOKEN,
1026 p_token3_value => sqlerrm);
1027
1028 x_return_status := G_RET_STS_UNEXP_ERROR;
1029
1030 END update_row;
1031
1032
1033 ---------------------------
1034 -- PROCEDURE update_row (V)
1035 ---------------------------
1036 PROCEDURE update_row (
1037 x_return_status OUT NOCOPY VARCHAR2,
1038 p_vlrv_rec IN vlrv_rec_type,
1039 x_vlrv_rec OUT NOCOPY vlrv_rec_type) IS
1040
1041 l_prog_name VARCHAR2(61);
1042
1043 l_return_status VARCHAR2(1);
1044 l_vlrv_rec vlrv_rec_type;
1045 l_vlr_rec vlr_rec_type;
1046 l_vlrtl_rec vlrtl_rec_type;
1047
1048 ----------------------
1049 -- populate_new_record
1050 ----------------------
1051 FUNCTION populate_new_record (p_vlrv_rec IN vlrv_rec_type,
1052 x_vlrv_rec OUT NOCOPY vlrv_rec_type) RETURN VARCHAR2 IS
1053
1054 l_prog_name VARCHAR2(61) := G_PKG_NAME||'.populate_new_record';
1055 l_return_status VARCHAR2(1);
1056 l_db_vlrv_rec vlrv_rec_type;
1057
1058 BEGIN
1059
1063 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1060 x_vlrv_rec := p_vlrv_rec;
1061 l_db_vlrv_rec := get_rec (p_vlrv_rec.id, l_return_status);
1062
1064 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1065 ELSIF l_return_status = G_RET_STS_ERROR THEN
1066 RAISE OKL_API.G_EXCEPTION_ERROR;
1067 END IF;
1068
1069 IF x_vlrv_rec.attribute_category = FND_API.G_MISS_CHAR THEN
1070 x_vlrv_rec.attribute_category := l_db_vlrv_rec.attribute_category;
1071 END IF;
1072 IF x_vlrv_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1073 x_vlrv_rec.attribute1 := l_db_vlrv_rec.attribute1;
1074 END IF;
1075 IF x_vlrv_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1076 x_vlrv_rec.attribute2 := l_db_vlrv_rec.attribute2;
1077 END IF;
1078 IF x_vlrv_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1079 x_vlrv_rec.attribute3 := l_db_vlrv_rec.attribute3;
1080 END IF;
1081 IF x_vlrv_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1082 x_vlrv_rec.attribute4 := l_db_vlrv_rec.attribute4;
1083 END IF;
1084 IF x_vlrv_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1085 x_vlrv_rec.attribute5 := l_db_vlrv_rec.attribute5;
1086 END IF;
1087 IF x_vlrv_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1088 x_vlrv_rec.attribute6 := l_db_vlrv_rec.attribute6;
1089 END IF;
1090 IF x_vlrv_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1091 x_vlrv_rec.attribute7 := l_db_vlrv_rec.attribute7;
1092 END IF;
1093 IF x_vlrv_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1094 x_vlrv_rec.attribute8 := l_db_vlrv_rec.attribute8;
1095 END IF;
1096 IF x_vlrv_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1097 x_vlrv_rec.attribute9 := l_db_vlrv_rec.attribute9;
1098 END IF;
1099 IF x_vlrv_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1100 x_vlrv_rec.attribute10 := l_db_vlrv_rec.attribute10;
1101 END IF;
1102 IF x_vlrv_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1103 x_vlrv_rec.attribute11 := l_db_vlrv_rec.attribute11;
1104 END IF;
1105 IF x_vlrv_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1106 x_vlrv_rec.attribute12 := l_db_vlrv_rec.attribute12;
1107 END IF;
1108 IF x_vlrv_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1109 x_vlrv_rec.attribute13 := l_db_vlrv_rec.attribute13;
1110 END IF;
1111 IF x_vlrv_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1112 x_vlrv_rec.attribute14 := l_db_vlrv_rec.attribute14;
1113 END IF;
1114 IF x_vlrv_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1115 x_vlrv_rec.attribute15 := l_db_vlrv_rec.attribute15;
1116 END IF;
1117 IF x_vlrv_rec.parent_object_code = FND_API.G_MISS_CHAR THEN
1118 x_vlrv_rec.parent_object_code := l_db_vlrv_rec.parent_object_code;
1119 END IF;
1120 IF x_vlrv_rec.parent_object_id = FND_API.G_MISS_NUM THEN
1121 x_vlrv_rec.parent_object_id := l_db_vlrv_rec.parent_object_id;
1122 END IF;
1123 IF x_vlrv_rec.validation_id = FND_API.G_MISS_NUM THEN
1124 x_vlrv_rec.validation_id := l_db_vlrv_rec.validation_id;
1125 END IF;
1126 IF x_vlrv_rec.result_code = FND_API.G_MISS_CHAR THEN
1127 x_vlrv_rec.result_code := l_db_vlrv_rec.result_code;
1128 END IF;
1129 IF x_vlrv_rec.validation_text = FND_API.G_MISS_CHAR THEN
1130 x_vlrv_rec.validation_text := l_db_vlrv_rec.validation_text;
1131 END IF;
1132
1133 RETURN l_return_status;
1134
1135 EXCEPTION
1136
1137 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1138
1139 x_return_status := G_RET_STS_ERROR;
1140
1141 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1142
1143 x_return_status := G_RET_STS_UNEXP_ERROR;
1144
1145 WHEN OTHERS THEN
1146
1147 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1148 p_msg_name => G_DB_ERROR,
1149 p_token1 => G_PROG_NAME_TOKEN,
1150 p_token1_value => l_prog_name,
1151 p_token2 => G_SQLCODE_TOKEN,
1152 p_token2_value => sqlcode,
1153 p_token3 => G_SQLERRM_TOKEN,
1154 p_token3_value => sqlerrm);
1155
1156 x_return_status := G_RET_STS_UNEXP_ERROR;
1157
1158 END populate_new_record;
1159
1160 BEGIN
1161
1162 l_prog_name := G_PKG_NAME||'.update_row (V)';
1163
1164 l_return_status := populate_new_record (p_vlrv_rec, l_vlrv_rec);
1165
1166 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
1167 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1168 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
1169 RAISE OKL_API.G_EXCEPTION_ERROR;
1170 END IF;
1171
1172 l_return_status := validate_attributes (l_vlrv_rec);
1173
1174 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
1175 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1176 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
1177 RAISE OKL_API.G_EXCEPTION_ERROR;
1178 END IF;
1179
1180 l_return_status := validate_record (l_vlrv_rec);
1181
1182 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
1183 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1184 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
1185 RAISE OKL_API.G_EXCEPTION_ERROR;
1186 END IF;
1187
1188 migrate (l_vlrv_rec, l_vlr_rec);
1189 migrate (l_vlrv_rec, l_vlrtl_rec);
1190
1191 update_row (x_return_status => l_return_status, p_vlr_rec => l_vlr_rec);
1192
1193 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
1194 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1195 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
1196 RAISE OKL_API.G_EXCEPTION_ERROR;
1200
1197 END IF;
1198
1199 update_row (x_return_status => l_return_status, p_vlrtl_rec => l_vlrtl_rec);
1201 IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
1202 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1203 ELSIF (l_return_status = G_RET_STS_ERROR) THEN
1204 RAISE OKL_API.G_EXCEPTION_ERROR;
1205 END IF;
1206
1207 x_return_status := l_return_status;
1208 x_vlrv_rec := l_vlrv_rec;
1209
1210 EXCEPTION
1211
1212 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1213
1214 x_return_status := G_RET_STS_ERROR;
1215
1216 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1217
1218 x_return_status := G_RET_STS_UNEXP_ERROR;
1219
1220 WHEN OTHERS THEN
1221
1222 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1223 p_msg_name => G_DB_ERROR,
1224 p_token1 => G_PROG_NAME_TOKEN,
1225 p_token1_value => l_prog_name,
1226 p_token2 => G_SQLCODE_TOKEN,
1227 p_token2_value => sqlcode,
1228 p_token3 => G_SQLERRM_TOKEN,
1229 p_token3_value => sqlerrm);
1230
1231 x_return_status := G_RET_STS_UNEXP_ERROR;
1232
1233 END update_row;
1234
1235
1236 -----------------------------
1237 -- PROCEDURE update_row (REC)
1238 -----------------------------
1239 PROCEDURE update_row(
1240 p_api_version IN NUMBER,
1241 p_init_msg_list IN VARCHAR2,
1242 x_return_status OUT NOCOPY VARCHAR2,
1243 x_msg_count OUT NOCOPY NUMBER,
1244 x_msg_data OUT NOCOPY VARCHAR2,
1245 p_vlrv_rec IN vlrv_rec_type,
1246 x_vlrv_rec OUT NOCOPY vlrv_rec_type) IS
1247
1248 l_return_status VARCHAR2(1);
1249
1250 l_prog_name VARCHAR2(61);
1251
1252 BEGIN
1253
1254 l_prog_name := G_PKG_NAME||'.update_row (REC)';
1255
1256 IF p_init_msg_list = G_TRUE THEN
1257 FND_MSG_PUB.initialize;
1258 END IF;
1259
1260 update_row (x_return_status => l_return_status,
1261 p_vlrv_rec => p_vlrv_rec,
1262 x_vlrv_rec => x_vlrv_rec);
1263
1264 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1265 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1266 ELSIF l_return_status = G_RET_STS_ERROR THEN
1267 RAISE OKL_API.G_EXCEPTION_ERROR;
1268 END IF;
1269
1270 x_return_status := l_return_status;
1271
1272 EXCEPTION
1273
1274 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1275
1276 x_return_status := G_RET_STS_ERROR;
1277
1278 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1279
1280 x_return_status := G_RET_STS_UNEXP_ERROR;
1281
1282 WHEN OTHERS THEN
1283
1284 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1285 p_msg_name => G_DB_ERROR,
1286 p_token1 => G_PROG_NAME_TOKEN,
1287 p_token1_value => l_prog_name,
1288 p_token2 => G_SQLCODE_TOKEN,
1289 p_token2_value => sqlcode,
1290 p_token3 => G_SQLERRM_TOKEN,
1291 p_token3_value => sqlerrm);
1292
1293 x_return_status := G_RET_STS_UNEXP_ERROR;
1294
1295 END update_row;
1296
1297
1298 -----------------------------
1299 -- PROCEDURE update_row (TBL)
1300 -----------------------------
1301 PROCEDURE update_row(
1302 p_api_version IN NUMBER,
1303 p_init_msg_list IN VARCHAR2,
1304 x_return_status OUT NOCOPY VARCHAR2,
1305 x_msg_count OUT NOCOPY NUMBER,
1306 x_msg_data OUT NOCOPY VARCHAR2,
1307 p_vlrv_tbl IN vlrv_tbl_type,
1308 x_vlrv_tbl OUT NOCOPY vlrv_tbl_type) IS
1309
1310 l_return_status VARCHAR2(1);
1311 i BINARY_INTEGER;
1312 l_prog_name VARCHAR2(61);
1313
1314 BEGIN
1315
1316 l_prog_name := G_PKG_NAME||'.update_row (TBL)';
1317
1318 IF p_init_msg_list = G_TRUE THEN
1319 FND_MSG_PUB.initialize;
1320 END IF;
1321
1322 x_vlrv_tbl := p_vlrv_tbl;
1323
1324 IF (p_vlrv_tbl.COUNT > 0) THEN
1325
1326 i := p_vlrv_tbl.FIRST;
1327
1328 LOOP
1329
1330 IF p_vlrv_tbl.EXISTS(i) THEN
1331 update_row (x_return_status => l_return_status,
1332 p_vlrv_rec => p_vlrv_tbl(i),
1333 x_vlrv_rec => x_vlrv_tbl(i));
1334
1335 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1336 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1337 ELSIF l_return_status = G_RET_STS_ERROR THEN
1338 RAISE OKL_API.G_EXCEPTION_ERROR;
1339 END IF;
1340
1341 EXIT WHEN (i = p_vlrv_tbl.LAST);
1342 i := p_vlrv_tbl.NEXT(i);
1343
1344 END IF;
1345
1346 END LOOP;
1347
1348 ELSE
1349
1350 l_return_status := G_RET_STS_SUCCESS;
1351
1352 END IF;
1353
1354 x_return_status := l_return_status;
1355
1356 EXCEPTION
1357
1358 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1359
1360 x_return_status := G_RET_STS_ERROR;
1361
1365
1362 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1363
1364 x_return_status := G_RET_STS_UNEXP_ERROR;
1366 WHEN OTHERS THEN
1367
1368 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1369 p_msg_name => G_DB_ERROR,
1370 p_token1 => G_PROG_NAME_TOKEN,
1371 p_token1_value => l_prog_name,
1372 p_token2 => G_SQLCODE_TOKEN,
1373 p_token2_value => sqlcode,
1374 p_token3 => G_SQLERRM_TOKEN,
1375 p_token3_value => sqlerrm);
1376
1377 x_return_status := G_RET_STS_UNEXP_ERROR;
1378
1379 END update_row;
1380
1381
1382 -----------------
1383 -- delete_row (V)
1384 -----------------
1385 PROCEDURE delete_row(
1386 x_return_status OUT NOCOPY VARCHAR2,
1387 p_id IN NUMBER) IS
1388
1389 l_prog_name VARCHAR2(61);
1390
1391 BEGIN
1392
1393 l_prog_name := G_PKG_NAME||'.delete_row (V)';
1394
1395 DELETE FROM OKL_VALIDATION_RESULTS_B WHERE id = p_id;
1396 DELETE FROM OKL_VALIDATION_RESULTS_TL WHERE id = p_id;
1397
1398 x_return_status := G_RET_STS_SUCCESS;
1399
1400 EXCEPTION
1401
1402 WHEN OTHERS THEN
1403
1404 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1405 p_msg_name => G_DB_ERROR,
1406 p_token1 => G_PROG_NAME_TOKEN,
1407 p_token1_value => l_prog_name,
1408 p_token2 => G_SQLCODE_TOKEN,
1409 p_token2_value => sqlcode,
1410 p_token3 => G_SQLERRM_TOKEN,
1411 p_token3_value => sqlerrm);
1412
1413 x_return_status := G_RET_STS_UNEXP_ERROR;
1414
1415 END delete_row;
1416
1417
1418 -----------------------------
1419 -- PROCEDURE delete_row (REC)
1420 -----------------------------
1421 PROCEDURE delete_row(
1422 p_api_version IN NUMBER,
1423 p_init_msg_list IN VARCHAR2,
1424 x_return_status OUT NOCOPY VARCHAR2,
1425 x_msg_count OUT NOCOPY NUMBER,
1426 x_msg_data OUT NOCOPY VARCHAR2,
1427 p_vlrv_rec IN vlrv_rec_type) IS
1428
1429 l_return_status VARCHAR2(1);
1430
1431 l_prog_name VARCHAR2(61);
1432
1433 BEGIN
1434
1435 l_prog_name := G_PKG_NAME||'.delete_row (REC)';
1436
1437 IF p_init_msg_list = G_TRUE THEN
1438 FND_MSG_PUB.initialize;
1439 END IF;
1440
1441 delete_row (x_return_status => l_return_status,
1442 p_id => p_vlrv_rec.id);
1443
1444 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1445 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1446 ELSIF l_return_status = G_RET_STS_ERROR THEN
1447 RAISE OKL_API.G_EXCEPTION_ERROR;
1448 END IF;
1449
1450 x_return_status := l_return_status;
1451
1452 EXCEPTION
1453
1454 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1455
1456 x_return_status := G_RET_STS_ERROR;
1457
1458 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1459
1460 x_return_status := G_RET_STS_UNEXP_ERROR;
1461
1462 WHEN OTHERS THEN
1463
1464 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1465 p_msg_name => G_DB_ERROR,
1466 p_token1 => G_PROG_NAME_TOKEN,
1467 p_token1_value => l_prog_name,
1468 p_token2 => G_SQLCODE_TOKEN,
1469 p_token2_value => sqlcode,
1470 p_token3 => G_SQLERRM_TOKEN,
1471 p_token3_value => sqlerrm);
1472
1473 x_return_status := G_RET_STS_UNEXP_ERROR;
1474
1475 END delete_row;
1476
1477
1478 -------------------
1479 -- delete_row (TBL)
1480 -------------------
1481 PROCEDURE delete_row(
1482 p_api_version IN NUMBER,
1483 p_init_msg_list IN VARCHAR2,
1484 x_return_status OUT NOCOPY VARCHAR2,
1485 x_msg_count OUT NOCOPY NUMBER,
1486 x_msg_data OUT NOCOPY VARCHAR2,
1487 p_vlrv_tbl IN vlrv_tbl_type) IS
1488
1489 l_return_status VARCHAR2(1);
1490 i BINARY_INTEGER;
1491
1492 l_prog_name VARCHAR2(61);
1493
1494 BEGIN
1495
1496 l_prog_name := G_PKG_NAME||'.delete_row (TBL)';
1497
1498 IF p_init_msg_list = G_TRUE THEN
1499 FND_MSG_PUB.initialize;
1500 END IF;
1501
1502 IF (p_vlrv_tbl.COUNT > 0) THEN
1503
1504 i := p_vlrv_tbl.FIRST;
1505
1506 LOOP
1507
1508 IF p_vlrv_tbl.EXISTS(i) THEN
1509
1510 delete_row (x_return_status => l_return_status,
1511 p_id => p_vlrv_tbl(i).id);
1512
1513 IF l_return_status = G_RET_STS_UNEXP_ERROR THEN
1514 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1515 ELSIF l_return_status = G_RET_STS_ERROR THEN
1516 RAISE OKL_API.G_EXCEPTION_ERROR;
1517 END IF;
1518
1519 EXIT WHEN (i = p_vlrv_tbl.LAST);
1520 i := p_vlrv_tbl.NEXT(i);
1521
1522 END IF;
1523
1524 END LOOP;
1525
1526 ELSE
1527
1528 l_return_status := G_RET_STS_SUCCESS;
1529
1530 END IF;
1531
1532 x_return_status := l_return_status;
1533
1534 EXCEPTION
1535
1536 WHEN OTHERS THEN
1537
1538 OKL_API.SET_MESSAGE (p_app_name => G_APP_NAME,
1539 p_msg_name => G_DB_ERROR,
1540 p_token1 => G_PROG_NAME_TOKEN,
1541 p_token1_value => l_prog_name,
1542 p_token2 => G_SQLCODE_TOKEN,
1543 p_token2_value => sqlcode,
1544 p_token3 => G_SQLERRM_TOKEN,
1545 p_token3_value => sqlerrm);
1546
1547 x_return_status := G_RET_STS_UNEXP_ERROR;
1548
1549 END delete_row;
1550
1551
1552 END OKL_VLR_PVT;