[Home] [Help]
PACKAGE BODY: APPS.OKE_RLE_PVT
Source
1 PACKAGE BODY OKE_RLE_PVT AS
2 /* $Header: OKEVRLEB.pls 115.13 2002/11/20 20:43:07 who ship $ */
3
4 -- validate record
5
6 FUNCTION validate_record (
7 p_rle_rec IN rle_rec_type
8 ) RETURN VARCHAR2 IS
9 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
10 BEGIN
11
12 RETURN(l_return_status);
13
14 END validate_record;
15
16 -- validate individual attributes
17
18 FUNCTION validate_attributes(
19 p_rle_rec IN rle_rec_type
20 ) RETURN VARCHAR2 IS
21
22 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
23 x_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
24
25
26 PROCEDURE validate_k_header_id(x_return_status OUT NOCOPY VARCHAR2,
27 p_rle_rec IN rle_rec_type)IS
28
29 l_dummy_val VARCHAR2(1):='?';
30 CURSOR l_csr IS
31 SELECT 'x'
32 FROM OKE_K_HEADERS
33 WHERE K_HEADER_ID = p_rle_rec.K_HEADER_ID;
34
35 BEGIN
36
37 x_return_status := OKE_API.G_RET_STS_SUCCESS;
38
39
40 -- check required value - not null
41
42 IF ( p_rle_rec.k_header_id = OKE_API.G_MISS_NUM
43 OR p_rle_rec.k_header_id IS NULL) THEN
44 OKE_API.SET_MESSAGE(
45 p_app_name =>g_app_name,
46 p_msg_name =>g_required_value,
47 p_token1 =>g_col_name_token,
48 p_token1_value =>'K_HEADER_ID');
49
50 x_return_status := OKE_API.G_RET_STS_ERROR;
51 raise G_EXCEPTION_HALT_VALIDATION;
52 END IF;
53
54
55 OPEN l_csr;
56 FETCH l_csr INTO l_dummy_val;
57 CLOSE l_csr;
58
59 IF (l_dummy_val = '?') THEN
60 OKE_API.SET_MESSAGE(
61 p_app_name =>g_app_name,
62 p_msg_name =>g_no_parent_record,
63 p_token1 =>g_col_name_token,
64 p_token1_value =>'K_HEADER_ID',
65 p_token2 =>g_child_table_token,
66 p_token2_value =>G_VIEW,
67 p_token3 =>g_parent_table_token,
68 p_token3_value =>'OKE_K_HEADERS');
69
70 x_return_status := OKE_API.G_RET_STS_ERROR;
71 END IF;
72
73
74 EXCEPTION
75 WHEN G_EXCEPTION_HALT_VALIDATION THEN
76 NULL;
77 WHEN OTHERS THEN
78 -- store SQL error message on message stack
79 OKE_API.SET_MESSAGE(
80 p_app_name =>g_app_name,
81 p_msg_name =>G_UNEXPECTED_ERROR,
82 p_token1 =>G_SQLCODE_TOKEN,
83 p_token1_value =>SQLCODE,
84 p_token2 =>G_SQLERRM_TOKEN,
85 p_token2_value =>SQLERRM);
86 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
87
88 IF l_csr%ISOPEN THEN
89 CLOSE l_csr;
90 END IF;
91
92 END validate_k_header_id;
93
94
95 PROCEDURE validate_change_request_id(x_return_status OUT NOCOPY VARCHAR2,
96 p_rle_rec IN rle_rec_type)IS
97
98 l_dummy_val VARCHAR2(1):='?';
99 CURSOR l_csr IS
100 SELECT 'x'
101 FROM OKE_CHG_REQUESTS
102 WHERE CHG_REQUEST_ID = p_rle_rec.CHG_REQUEST_ID;
103
104 BEGIN
105 x_return_status := OKE_API.G_RET_STS_SUCCESS;
106 IF ( p_rle_rec.chg_request_id <> OKE_API.G_MISS_NUM
107 AND p_rle_rec.chg_request_id IS NOT NULL) THEN
108
109 OPEN l_csr;
110 FETCH l_csr INTO l_dummy_val;
111 CLOSE l_csr;
112
113 IF (l_dummy_val = '?') THEN
114 OKE_API.SET_MESSAGE(
115 p_app_name =>g_app_name,
116 p_msg_name =>g_no_parent_record,
117 p_token1 =>g_col_name_token,
118 p_token1_value =>'CHANGE_REQUEST_ID',
119 p_token2 =>g_child_table_token,
120 p_token2_value =>G_VIEW,
121 p_token3 =>g_parent_table_token,
122 p_token3_value =>'OKE_CHG_REQUESTS');
123
124 x_return_status := OKE_API.G_RET_STS_ERROR;
125 END IF;
126 END IF;
127 EXCEPTION
128 WHEN OTHERS THEN
129 -- store SQL error message on message stack
130 OKE_API.SET_MESSAGE(
131 p_app_name =>g_app_name,
132 p_msg_name =>G_UNEXPECTED_ERROR,
133 p_token1 =>G_SQLCODE_TOKEN,
134 p_token1_value =>SQLCODE,
135 p_token2 =>G_SQLERRM_TOKEN,
136 p_token2_value =>SQLERRM);
137 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
138
139 IF l_csr%ISOPEN THEN
140 CLOSE l_csr;
141 END IF;
142 END validate_change_request_id;
143
144
145
146
147
148 PROCEDURE validate_related_entity_id(x_return_status OUT NOCOPY VARCHAR2,
149 p_rle_rec IN rle_rec_type)IS
150
151 l_dummy_val VARCHAR2(1):='?';
152 CURSOR l_csr IS
153 SELECT 'x'
154 FROM OKE_K_HEADERS
155 WHERE K_HEADER_ID = p_rle_rec.related_entity_id;
156
157 BEGIN
158
159 x_return_status := OKE_API.G_RET_STS_SUCCESS;
160
161
162 -- check required value - not null
163
164 IF ( p_rle_rec.related_entity_id = OKE_API.G_MISS_NUM
165 OR p_rle_rec.related_entity_id IS NULL) THEN
166 OKE_API.SET_MESSAGE(
167 p_app_name =>g_app_name,
168 p_msg_name =>g_required_value,
169 p_token1 =>g_col_name_token,
170 p_token1_value =>'RELATED_ENTITY_ID');
171
172 x_return_status := OKE_API.G_RET_STS_ERROR;
173 raise G_EXCEPTION_HALT_VALIDATION;
174 END IF;
175
176
177 OPEN l_csr;
178 FETCH l_csr INTO l_dummy_val;
179 CLOSE l_csr;
180
181 IF (l_dummy_val = '?') THEN
182 OKE_API.SET_MESSAGE(
183 p_app_name =>g_app_name,
184 p_msg_name =>g_no_parent_record,
185 p_token1 =>g_col_name_token,
186 p_token1_value =>'RELATED_ENTITY_ID',
187 p_token2 =>g_child_table_token,
188 p_token2_value =>G_VIEW,
189 p_token3 =>g_parent_table_token,
190 p_token3_value =>'OKE_K_HEADERS');
191
192 x_return_status := OKE_API.G_RET_STS_ERROR;
193 END IF;
194
195
196 EXCEPTION
197 WHEN G_EXCEPTION_HALT_VALIDATION THEN
198 NULL;
199 WHEN OTHERS THEN
200 -- store SQL error message on message stack
201 OKE_API.SET_MESSAGE(
202 p_app_name =>g_app_name,
203 p_msg_name =>G_UNEXPECTED_ERROR,
204 p_token1 =>G_SQLCODE_TOKEN,
205 p_token1_value =>SQLCODE,
206 p_token2 =>G_SQLERRM_TOKEN,
207 p_token2_value =>SQLERRM);
208 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
209
210 IF l_csr%ISOPEN THEN
211 CLOSE l_csr;
212 END IF;
213
214 END validate_related_entity_id;
215
216
217 /* PROCEDURE validate_version(x_return_status OUT NOCOPY VARCHAR2,
218 p_rle_rec IN rle_rec_type)IS
219
220 l_dummy_val VARCHAR2(1):='?';
221 CURSOR l_csr IS
222 SELECT 'x'
223 FROM
224 ((Select major_version
225 From OKE_K_VERS_NUMBERS_V
226 Where chr_id = p_rle_rec.related_entity_id)
227 UNION
228 (Select major_version
229 From OKE_K_HEADERS_H
230 Where k_header_id = p_rle_rec.related_entity_id)
231 )
232 WHERE major_version = p_rle_rec.related_entity_version;
233
234
235
236 BEGIN
237
238 x_return_status := OKE_API.G_RET_STS_SUCCESS;
239
240
241 -- check required value - not null
242
243 IF ( p_rle_rec.related_entity_version = OKE_API.G_MISS_NUM
244 OR p_rle_rec.related_entity_version IS NULL) THEN
245 OKE_API.SET_MESSAGE(
246 p_app_name =>g_app_name,
247 p_msg_name =>g_required_value,
248 p_token1 =>g_col_name_token,
249 p_token1_value =>'RELATED_ENTITY_VERSION');
250
251 x_return_status := OKE_API.G_RET_STS_ERROR;
252 raise G_EXCEPTION_HALT_VALIDATION;
253 END IF;
254
255
256 OPEN l_csr;
257 FETCH l_csr INTO l_dummy_val;
258 CLOSE l_csr;
259
260 IF (l_dummy_val = '?') THEN
261 OKE_API.SET_MESSAGE(
262 p_app_name =>g_app_name,
263 p_msg_name =>g_no_parent_record,
264 p_token1 =>g_col_name_token,
265 p_token1_value =>'VERSION',
266 p_token2 =>g_child_table_token,
267 p_token2_value =>G_VIEW,
268 p_token3 =>g_parent_table_token,
269 p_token3_value =>'OKC_K_VERS_NUMBERS');
270
271 x_return_status := OKE_API.G_RET_STS_ERROR;
272 END IF;
273
274
275 EXCEPTION
276 WHEN G_EXCEPTION_HALT_VALIDATION THEN
277 NULL;
278 WHEN OTHERS THEN
279 -- store SQL error message on message stack
280 OKE_API.SET_MESSAGE(
281 p_app_name =>g_app_name,
282 p_msg_name =>G_UNEXPECTED_ERROR,
283 p_token1 =>G_SQLCODE_TOKEN,
284 p_token1_value =>SQLCODE,
285 p_token2 =>G_SQLERRM_TOKEN,
286 p_token2_value =>SQLERRM);
287 x_return_status := OKE_API.G_RET_STS_UNEXP_ERROR;
288
289 IF l_csr%ISOPEN THEN
290 CLOSE l_csr;
291 END IF;
292
293 END validate_version; */
294
295
296 BEGIN
297
298 validate_k_header_id (x_return_status => l_return_status,
299 p_rle_rec => p_rle_rec);
300 IF l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
301 IF x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR THEN
302 x_return_status := l_return_status;
303 END IF;
304 END IF;
305
306 validate_change_request_id (x_return_status => l_return_status,
307 p_rle_rec => p_rle_rec);
308 IF l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
309 IF x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR THEN
310 x_return_status := l_return_status;
311 END IF;
312 END IF;
313
314 validate_related_entity_id (x_return_status => l_return_status,
315 p_rle_rec => p_rle_rec);
316 IF l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
317 IF x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR THEN
318 x_return_status := l_return_status;
319 END IF;
320 END IF;
321
322 /* validate_version (x_return_status => l_return_status,
323 p_rle_rec => p_rle_rec);
324 IF l_return_status <> OKE_API.G_RET_STS_SUCCESS THEN
325 IF x_return_status <> OKE_API.G_RET_STS_UNEXP_ERROR THEN
326 x_return_status := l_return_status;
327 END IF;
328 END IF; */
329
330 /* call individual validation procedure */
331 -- return status to caller
332 RETURN(x_return_status);
333
334 END Validate_Attributes;
335
336 FUNCTION null_out_defaults(
337 p_rle_rec IN rle_rec_type ) RETURN rle_rec_type IS
338
339 l_rle_rec rle_rec_type := p_rle_rec;
340
341 BEGIN
342
343
344 IF l_rle_rec.K_HEADER_ID = OKE_API.G_MISS_NUM THEN
345 l_rle_rec.K_HEADER_ID := NULL;
346 END IF;
347
348 IF l_rle_rec.CHG_REQUEST_ID = OKE_API.G_MISS_NUM THEN
349 l_rle_rec.CHG_REQUEST_ID := NULL;
350 END IF;
351
352 IF l_rle_rec.RELATED_ENTITY_ID = OKE_API.G_MISS_NUM THEN
353 l_rle_rec.RELATED_ENTITY_ID := NULL;
354 END IF;
355
356 IF l_rle_rec.RELATED_ENTITY_VERSION = OKE_API.G_MISS_NUM THEN
357 l_rle_rec.RELATED_ENTITY_VERSION := NULL;
358 END IF;
359
360 IF l_rle_rec.CREATED_BY = OKE_API.G_MISS_NUM THEN
361 l_rle_rec.CREATED_BY := NULL;
362 END IF;
363
364 IF l_rle_rec.CREATION_DATE = OKE_API.G_MISS_DATE THEN
365 l_rle_rec.CREATION_DATE := NULL;
366 END IF;
367
368 IF l_rle_rec.LAST_UPDATED_BY = OKE_API.G_MISS_NUM THEN
369 l_rle_rec.LAST_UPDATED_BY := NULL;
370 END IF;
371
372 IF l_rle_rec.LAST_UPDATE_LOGIN = OKE_API.G_MISS_NUM THEN
373 l_rle_rec.LAST_UPDATE_LOGIN := NULL;
374 END IF;
375
376 IF l_rle_rec.LAST_UPDATE_DATE = OKE_API.G_MISS_DATE THEN
377 l_rle_rec.LAST_UPDATE_DATE := NULL;
378 END IF;
379
380
381 RETURN(l_rle_rec);
382
383 END null_out_defaults;
384
385
386 -- row level insert
387
388 PROCEDURE insert_row(
389 p_api_version IN NUMBER,
390 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
391 x_return_status OUT NOCOPY VARCHAR2,
392 x_msg_count OUT NOCOPY NUMBER,
393 x_msg_data OUT NOCOPY VARCHAR2,
394 p_rle_rec IN rle_rec_type,
395 x_rle_rec OUT NOCOPY rle_rec_type) IS
396
397 l_api_version CONSTANT NUMBER := 1;
398 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
399 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
400 l_rle_rec rle_rec_type;
401 l_def_rle_rec rle_rec_type;
402 lx_rle_rec rle_rec_type;
403
404
405
406 -- FUNCTION fill_who_columns --
407 -------------------------------
408 FUNCTION fill_who_columns (
409 p_rle_rec IN rle_rec_type
410 ) RETURN rle_rec_type IS
411
412 l_rle_rec rle_rec_type := p_rle_rec;
413
414 BEGIN
415
416 l_rle_rec.CREATION_DATE := SYSDATE;
417 l_rle_rec.CREATED_BY := FND_GLOBAL.USER_ID;
418 l_rle_rec.LAST_UPDATE_DATE := SYSDATE;
419 l_rle_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
420 l_rle_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
421 RETURN(l_rle_rec);
422
423 END fill_who_columns;
424
425
426
427 FUNCTION Set_Attributes (
428 p_rle_rec IN rle_rec_type,
429 x_rle_rec OUT NOCOPY rle_rec_type
430 ) RETURN VARCHAR2 IS
431 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
432 BEGIN
433 x_rle_rec := p_rle_rec;
434
435 RETURN(l_return_status);
436
437 END Set_Attributes;
438
439
440 BEGIN -- insert
441
442 l_return_status := OKE_API.START_ACTIVITY(l_api_name,
443 G_PKG_NAME,
444 p_init_msg_list,
445 l_api_version,
446 p_api_version,
447 '_PVT',
448 x_return_status);
449
450
451 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
452 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
453 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
454 RAISE OKE_API.G_EXCEPTION_ERROR;
455 END IF;
456
457
458 l_rle_rec := null_out_defaults(p_rle_rec);
459
460
461
462 --- Setting item attributes
463 l_return_status := Set_Attributes(
464 l_rle_rec, -- IN
465 l_def_rle_rec); -- OUT
466
467 --- If any errors happen abort API
468 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
469 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
470 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
471 RAISE OKE_API.G_EXCEPTION_ERROR;
472 END IF;
473
474
475 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
476 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
477 END IF;
478
479 l_def_rle_rec := fill_who_columns(l_def_rle_rec);
480
481
482 --- Validate all non-missing attributes (Item Level Validation)
483 l_return_status := Validate_Attributes(l_def_rle_rec);
484
485 --- If any errors happen abort API
486 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
487 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
488
489 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
490 RAISE OKE_API.G_EXCEPTION_ERROR;
491 END IF;
492
493
494 l_return_status := Validate_Record(l_def_rle_rec);
495
496 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
497 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
498 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
499 RAISE OKE_API.G_EXCEPTION_ERROR;
500 END IF;
501
502
503 INSERT INTO OKE_K_RELATED_ENTITIES(
504
505 K_HEADER_ID ,
506 CHG_REQUEST_ID ,
507 RELATED_ENTITY_ID ,
508 RELATED_ENTITY_VERSION,
509 CREATION_DATE ,
510 CREATED_BY ,
511 LAST_UPDATE_DATE ,
512 LAST_UPDATED_BY ,
513 LAST_UPDATE_LOGIN
514 )
515 VALUES(
516 l_def_rle_rec.K_HEADER_ID ,
517 l_def_rle_rec.CHG_REQUEST_ID ,
518 l_def_rle_rec.RELATED_ENTITY_ID ,
519 l_def_rle_rec.RELATED_ENTITY_VERSION,
520 l_def_rle_rec.CREATION_DATE ,
521 l_def_rle_rec.CREATED_BY ,
522 l_def_rle_rec.LAST_UPDATE_DATE ,
523 l_def_rle_rec.LAST_UPDATED_BY ,
524 l_def_rle_rec.LAST_UPDATE_LOGIN
525 );
526
527
528
529
530 -- Set OUT values
531 x_rle_rec := l_def_rle_rec;
532
533 SELECT rowid INTO x_rle_rec.ROW_ID
534 FROM OKE_K_RELATED_ENTITIES
535 WHERE K_HEADER_ID=x_rle_rec.K_HEADER_ID
536 AND
537 (CHG_REQUEST_ID = x_rle_rec.CHG_REQUEST_ID
538 OR
539 (CHG_REQUEST_ID IS NULL
540 AND x_rle_rec.CHG_REQUEST_ID IS NULL))
541 AND RELATED_ENTITY_ID = x_rle_rec.RELATED_ENTITY_ID
542 AND
543 (RELATED_ENTITY_VERSION = x_rle_rec.RELATED_ENTITY_VERSION
544 OR
545 (RELATED_ENTITY_VERSION IS NULL
546 AND x_rle_rec.RELATED_ENTITY_VERSION IS NULL));
547
548
549 OKE_API.END_ACTIVITY(x_msg_count, x_msg_data);
550
551 EXCEPTION
552 WHEN OKE_API.G_EXCEPTION_ERROR THEN
553 x_return_status := OKE_API.HANDLE_EXCEPTIONS
554 (
555 l_api_name,
556 G_PKG_NAME,
557 'OKE_API.G_RET_STS_ERROR',
558 x_msg_count,
559 x_msg_data,
560 '_PVT'
561 );
562 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
563 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
564 (
565 l_api_name,
566 G_PKG_NAME,
567 'OKE_API.G_RET_STS_UNEXP_ERROR',
568 x_msg_count,
569 x_msg_data,
570 '_PVT'
571 );
572 WHEN OTHERS THEN
573 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
574 (
575 l_api_name,
576 G_PKG_NAME,
577 'OTHERS',
578 x_msg_count,
579 x_msg_data,
580 '_PVT'
581 );
582 END insert_row; -- row level
583
584
585
586
587 -- table level insert
588
589 PROCEDURE insert_row(
590 p_api_version IN NUMBER,
591 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
592 x_return_status OUT NOCOPY VARCHAR2,
593 x_msg_count OUT NOCOPY NUMBER,
594 x_msg_data OUT NOCOPY VARCHAR2,
595 p_rle_tbl IN rle_tbl_type,
596 x_rle_tbl OUT NOCOPY rle_tbl_type) IS
597
598 l_api_version CONSTANT NUMBER := 1;
599 l_api_name CONSTANT VARCHAR2(30) := 'TBL_insert_row';
600 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
601 l_overall_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
602 i NUMBER := 0;
603 BEGIN
604
605 OKE_API.init_msg_list(p_init_msg_list);
606 -- Make sure PL/SQL table has records in it before passing
607 IF (p_rle_tbl.COUNT > 0) THEN
608 i := p_rle_tbl.FIRST;
609 LOOP
610 insert_row (
611 p_api_version => p_api_version,
612 p_init_msg_list => OKE_API.G_FALSE,
613 x_return_status => x_return_status,
614 x_msg_count => x_msg_count,
615 x_msg_data => x_msg_data,
616
617 p_rle_rec => p_rle_tbl(i),
618 x_rle_rec => x_rle_tbl(i));
619
620 -- store the highest degree of error
621 If x_return_status <> OKE_API.G_RET_STS_SUCCESS Then
622 If l_overall_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
623 l_overall_status := x_return_status;
624 End If;
625 End If;
626
627 EXIT WHEN (i = p_rle_tbl.LAST);
628
629 i := p_rle_tbl.NEXT(i);
630 END LOOP;
631 -- return overall status
632 x_return_status := l_overall_status;
633 END IF;
634
635 EXCEPTION
636 WHEN OKE_API.G_EXCEPTION_ERROR THEN
637 x_return_status := OKE_API.HANDLE_EXCEPTIONS
638 (
639 l_api_name,
640 G_PKG_NAME,
641 'OKE_API.G_RET_STS_ERROR',
642 x_msg_count,
643 x_msg_data,
644 '_PVT'
645 );
646 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
647 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
648 (
649 l_api_name,
650 G_PKG_NAME,
651 'OKE_API.G_RET_STS_UNEXP_ERROR',
652 x_msg_count,
653 x_msg_data,
654 '_PVT'
655 );
656 WHEN OTHERS THEN
657 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
658 (
659 l_api_name,
660 G_PKG_NAME,
661 'OTHERS',
662 x_msg_count,
663 x_msg_data,
664 '_PVT'
665 );
666 END insert_row; -- table level
667
668
669
670
671
672
673
674
675 PROCEDURE update_row(
676 p_api_version IN NUMBER,
677 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
678 x_return_status OUT NOCOPY VARCHAR2,
679 x_msg_count OUT NOCOPY NUMBER,
680 x_msg_data OUT NOCOPY VARCHAR2,
681 p_rle_rec IN rle_rec_type,
682 x_rle_rec OUT NOCOPY rle_rec_type) IS
683
684 l_api_version CONSTANT NUMBER := 1.0;
685 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
686 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
687 l_rle_rec rle_rec_type := p_rle_rec;
688 l_def_rle_rec rle_rec_type;
689 lx_rle_rec rle_rec_type;
690
691 -------------------------------
692 -- FUNCTION fill_who_columns --
693 -------------------------------
694 FUNCTION fill_who_columns (
695 p_rle_rec IN rle_rec_type
696 ) RETURN rle_rec_type IS
697
698 l_rle_rec rle_rec_type := p_rle_rec;
699
700 BEGIN
701 l_rle_rec.LAST_UPDATE_DATE := SYSDATE;
702 l_rle_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
703 l_rle_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
704 RETURN(l_rle_rec);
705 END fill_who_columns;
706
707
708
709 FUNCTION set_attributes(
710 p_rle_rec IN rle_rec_type,
711 x_rle_rec OUT NOCOPY rle_rec_type
712 ) RETURN VARCHAR2 IS
713 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
714 BEGIN
715 x_rle_rec := p_rle_rec;
716 RETURN(l_return_status);
717 END Set_Attributes;
718
719
720 BEGIN -- update row
721
722
723 l_return_status := OKE_API.START_ACTIVITY(l_api_name,
724 G_PKG_NAME,
725 p_init_msg_list,
726 l_api_version,
727 p_api_version,
728 '_PVT',
729 x_return_status);
730
731
732 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
733 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
734 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
735 RAISE OKE_API.G_EXCEPTION_ERROR;
736 END IF;
737
738
739 l_return_status := Set_Attributes(
740 p_rle_rec, -- IN
741 l_rle_rec); -- OUT
742
743 --- If any errors happen abort API
744 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
745 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
746 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
747 RAISE OKE_API.G_EXCEPTION_ERROR;
748 END IF;
749
750
751 l_def_rle_rec:=l_rle_rec;
752
753 l_def_rle_rec := fill_who_columns(l_def_rle_rec);
754
755
756 --- Validate all non-missing attributes (Item Level Validation)
757 l_return_status := Validate_Attributes(l_def_rle_rec);
758
759 --- If any errors happen abort API
760 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
761 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
762 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
763 RAISE OKE_API.G_EXCEPTION_ERROR;
764 END IF;
765
766 l_return_status := Validate_Record(l_def_rle_rec);
767 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
768 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
769 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
770 RAISE OKE_API.G_EXCEPTION_ERROR;
771 END IF;
772
773
774 UPDATE OKE_K_RELATED_ENTITIES
775 SET
776 K_HEADER_ID = l_def_rle_rec.K_HEADER_ID,
777 CHG_REQUEST_ID = l_def_rle_rec.CHG_REQUEST_ID,
778 RELATED_ENTITY_ID = l_def_rle_rec.RELATED_ENTITY_ID,
779 RELATED_ENTITY_VERSION = l_def_rle_rec.RELATED_ENTITY_VERSION,
780 CREATION_DATE = l_def_rle_rec.CREATION_DATE,
781 CREATED_BY = l_def_rle_rec.CREATED_BY,
782 LAST_UPDATE_DATE = l_def_rle_rec.LAST_UPDATE_DATE,
783 LAST_UPDATED_BY = l_def_rle_rec.LAST_UPDATED_BY,
784 LAST_UPDATE_LOGIN = l_def_rle_rec.LAST_UPDATE_LOGIN
785 WHERE
786 rowid = l_def_rle_rec.ROW_ID;
787
788 x_rle_rec := l_def_rle_rec;
789
790 OKE_API.END_ACTIVITY(x_msg_count, x_msg_data);
791
792 EXCEPTION
793 WHEN OKE_API.G_EXCEPTION_ERROR THEN
794 x_return_status := OKE_API.HANDLE_EXCEPTIONS
795 (
796 l_api_name,
797 G_PKG_NAME,
798 'OKE_API.G_RET_STS_ERROR',
799 x_msg_count,
800 x_msg_data,
801 '_PVT'
802 );
803 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
804 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
805 (
806 l_api_name,
807 G_PKG_NAME,
808 'OKE_API.G_RET_STS_UNEXP_ERROR',
809 x_msg_count,
810 x_msg_data,
811 '_PVT'
812 );
813 WHEN OTHERS THEN
814 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
815 (
816 l_api_name,
817 G_PKG_NAME,
818 'OTHERS',
819 x_msg_count,
820 x_msg_data,
821 '_PVT'
822 );
823 END update_row; -- row level update
824
825
826
827 PROCEDURE update_row(
828 p_api_version IN NUMBER,
829 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
830 x_return_status OUT NOCOPY VARCHAR2,
831 x_msg_count OUT NOCOPY NUMBER,
832 x_msg_data OUT NOCOPY VARCHAR2,
833 p_rle_tbl IN rle_tbl_type,
834 x_rle_tbl OUT NOCOPY rle_tbl_type) IS
835
836 l_api_version CONSTANT NUMBER := 1.0;
837 l_api_name CONSTANT VARCHAR2(30) := 'TBL_update_row';
838
839
840 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
841 l_overall_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
842 i NUMBER := 0;
843 BEGIN
844
845 OKE_API.init_msg_list(p_init_msg_list);
846 -- Make sure PL/SQL table has records in it before passing
847 IF (p_rle_tbl.COUNT > 0) THEN
848 i := p_rle_tbl.FIRST;
849 LOOP
850
851 update_row (
852 p_api_version => p_api_version,
853 p_init_msg_list => OKE_API.G_FALSE,
854 x_return_status => x_return_status,
855 x_msg_count => x_msg_count,
856 x_msg_data => x_msg_data,
857 p_rle_rec => p_rle_tbl(i),
858 x_rle_rec => x_rle_tbl(i));
859
860 -- store the highest degree of error
861 If x_return_status <> OKE_API.G_RET_STS_SUCCESS Then
862 If l_overall_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
863 l_overall_status := x_return_status;
864 End If;
865 End If;
866
867 EXIT WHEN (i = p_rle_tbl.LAST);
868 i := p_rle_tbl.NEXT(i);
869 END LOOP;
870 -- return overall status
871 x_return_status := l_overall_status;
872 END IF;
873
874 EXCEPTION
875 WHEN OKE_API.G_EXCEPTION_ERROR THEN
876 x_return_status := OKE_API.HANDLE_EXCEPTIONS
877 (
878 l_api_name,
879 G_PKG_NAME,
880 'OKE_API.G_RET_STS_ERROR',
881 x_msg_count,
882 x_msg_data,
883 '_PVT'
884 );
885
886 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
887 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
888 (
889 l_api_name,
890 G_PKG_NAME,
891 'OKE_API.G_RET_STS_UNEXP_ERROR',
892 x_msg_count,
893 x_msg_data,
894 '_PVT'
895 );
896 WHEN OTHERS THEN
897 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
898 (
899 l_api_name,
900 G_PKG_NAME,
901 'OTHERS',
902 x_msg_count,
903 x_msg_data,
904 '_PVT'
905 );
906 END update_row; -- table level update
907
908
909 PROCEDURE delete_row(
910 p_api_version IN NUMBER,
911 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
912 x_return_status OUT NOCOPY VARCHAR2,
913 x_msg_count OUT NOCOPY NUMBER,
914 x_msg_data OUT NOCOPY VARCHAR2,
915 p_rle_rec IN rle_rec_type) IS
916
917 l_api_version CONSTANT NUMBER := 1;
918 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
919 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
920 l_rle_rec rle_rec_type := p_rle_rec;
921
922 BEGIN
923
924 l_return_status := OKE_API.START_ACTIVITY(l_api_name,
925 p_init_msg_list,
926 '_PVT',
927 x_return_status);
928
929
930 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
931 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
932 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
933 RAISE OKE_API.G_EXCEPTION_ERROR;
934 END IF;
935
936
937 DELETE FROM OKE_K_RELATED_ENTITIES
938 WHERE rowid = p_rle_rec.ROW_ID;
939
940 OKE_API.END_ACTIVITY(x_msg_count, x_msg_data);
941
942 EXCEPTION
943 WHEN OKE_API.G_EXCEPTION_ERROR THEN
944 x_return_status := OKE_API.HANDLE_EXCEPTIONS
945 (
946 l_api_name,
947 G_PKG_NAME,
948 'OKE_API.G_RET_STS_ERROR',
949 x_msg_count,
950 x_msg_data,
951 '_PVT'
952 );
953 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
954 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
955 (
956 l_api_name,
957 G_PKG_NAME,
958 'OKE_API.G_RET_STS_UNEXP_ERROR',
959 x_msg_count,
960 x_msg_data,
961 '_PVT'
962 );
963 WHEN OTHERS THEN
964 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
965 (
966 l_api_name,
967 G_PKG_NAME,
968 'OTHERS',
969 x_msg_count,
970 x_msg_data,
971 '_PVT'
972 );
973 END delete_row;
974
975
976 -- table level delete
977
978 PROCEDURE delete_row(
979 p_api_version IN NUMBER,
980 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
981 x_return_status OUT NOCOPY VARCHAR2,
982 x_msg_count OUT NOCOPY NUMBER,
983 x_msg_data OUT NOCOPY VARCHAR2,
984 p_rle_tbl IN rle_tbl_type) IS
985
986 l_api_version CONSTANT NUMBER := 1;
987 l_api_name CONSTANT VARCHAR2(30) := 'TBL_delete_row';
988 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
989 l_overall_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
990 i NUMBER := 0;
991 BEGIN
992 OKE_API.init_msg_list(p_init_msg_list);
993
994 -- Make sure PL/SQL table has records in it before passing
995 IF (p_rle_tbl.COUNT > 0) THEN
996 i := p_rle_tbl.FIRST;
997 LOOP
998 delete_row (
999 p_api_version => p_api_version,
1000 p_init_msg_list => OKE_API.G_FALSE,
1001 x_return_status => x_return_status,
1002 x_msg_count => x_msg_count,
1003 x_msg_data => x_msg_data,
1004 p_rle_rec => p_rle_tbl(i));
1005
1006
1007
1008 -- store the highest degree of error
1009 If x_return_status <> OKE_API.G_RET_STS_SUCCESS Then
1010 If l_overall_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
1011 l_overall_status := x_return_status;
1012 End If;
1013 End If;
1014
1015 EXIT WHEN (i = p_rle_tbl.LAST);
1016 i := p_rle_tbl.NEXT(i);
1017 END LOOP;
1018
1019 -- return overall status
1020 x_return_status := l_overall_status;
1021 END IF;
1022
1023 EXCEPTION
1024 WHEN OKE_API.G_EXCEPTION_ERROR THEN
1025 x_return_status := OKE_API.HANDLE_EXCEPTIONS
1026 (
1027 l_api_name,
1028 G_PKG_NAME,
1029 'OKE_API.G_RET_STS_ERROR',
1030 x_msg_count,
1031 x_msg_data,
1032 '_PVT'
1033 );
1034 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1035 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1036 (
1037 l_api_name,
1038 G_PKG_NAME,
1039 'OKE_API.G_RET_STS_UNEXP_ERROR',
1040 x_msg_count,
1041 x_msg_data,
1042 '_PVT'
1043 );
1044 WHEN OTHERS THEN
1045 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1046 (
1047 l_api_name,
1048 G_PKG_NAME,
1049 'OTHERS',
1050 x_msg_count,
1051 x_msg_data,
1052 '_PVT'
1053 );
1054 END delete_row; -- table level delete
1055
1056
1057 -- validate row
1058
1059 PROCEDURE validate_row(
1060 p_api_version IN NUMBER,
1061 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1062 x_return_status OUT NOCOPY VARCHAR2,
1063 x_msg_count OUT NOCOPY NUMBER,
1064 x_msg_data OUT NOCOPY VARCHAR2,
1065 p_rle_rec IN rle_rec_type
1066 ) IS
1067
1068 l_api_version CONSTANT NUMBER := 1;
1069 l_api_name CONSTANT VARCHAR2(30) := 'B_validate_row';
1070 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1071 l_rle_rec rle_rec_type := p_rle_rec;
1072
1073 BEGIN
1074 l_return_status := OKE_API.START_ACTIVITY(l_api_name,
1075 G_PKG_NAME,
1076 p_init_msg_list,
1077 l_api_version,
1078 p_api_version,
1079 '_PVT',
1080 x_return_status);
1081 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
1082 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1083 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
1084
1085 RAISE OKE_API.G_EXCEPTION_ERROR;
1086 END IF;
1087 --- Validate all non-missing attributes (Item Level Validation)
1088 l_return_status := Validate_Attributes(l_rle_rec);
1089 --- If any errors happen abort API
1090 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
1091 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1092 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
1093 RAISE OKE_API.G_EXCEPTION_ERROR;
1094 END IF;
1095 l_return_status := Validate_Record(l_rle_rec);
1096
1097 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
1098 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1099 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
1100 RAISE OKE_API.G_EXCEPTION_ERROR;
1101 END IF;
1102 OKE_API.END_ACTIVITY(x_msg_count, x_msg_data);
1103 EXCEPTION
1104 WHEN OKE_API.G_EXCEPTION_ERROR THEN
1105 x_return_status := OKE_API.HANDLE_EXCEPTIONS
1106 (
1107 l_api_name,
1108 G_PKG_NAME,
1109 'OKE_API.G_RET_STS_ERROR',
1110 x_msg_count,
1111 x_msg_data,
1112 '_PVT'
1113 );
1114 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1115 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1116 (
1117 l_api_name,
1118 G_PKG_NAME,
1119 'OKE_API.G_RET_STS_UNEXP_ERROR',
1120 x_msg_count,
1121 x_msg_data,
1122 '_PVT'
1123 );
1124 WHEN OTHERS THEN
1125 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1126 (
1127 l_api_name,
1128 G_PKG_NAME,
1129 'OTHERS',
1130 x_msg_count,
1131 x_msg_data,
1132 '_PVT'
1133 );
1134 END validate_row;
1135
1136 PROCEDURE validate_row(
1137 p_api_version IN NUMBER,
1138 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1139 x_return_status OUT NOCOPY VARCHAR2,
1140 x_msg_count OUT NOCOPY NUMBER,
1141 x_msg_data OUT NOCOPY VARCHAR2,
1142 p_rle_tbl IN rle_tbl_type
1143 ) IS
1144
1145 l_api_version CONSTANT NUMBER := 1;
1146 l_api_name CONSTANT VARCHAR2(30) := 'TBL_validate_row';
1147 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1148 l_overall_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1149 i NUMBER := 0;
1150 BEGIN
1151 OKE_API.init_msg_list(p_init_msg_list);
1152 -- Make sure PL/SQL table has records in it before passing
1153 IF (p_rle_tbl.COUNT > 0) THEN
1154 i := p_rle_tbl.FIRST;
1155 LOOP
1156 validate_row (
1157 p_api_version => p_api_version,
1158 p_init_msg_list => OKE_API.G_FALSE,
1159 x_return_status => x_return_status,
1160 x_msg_count => x_msg_count,
1161 x_msg_data => x_msg_data,
1162 p_rle_rec => p_rle_tbl(i));
1163
1164 -- store the highest degree of error
1165 If x_return_status <> OKE_API.G_RET_STS_SUCCESS Then
1166 If l_overall_status <> OKE_API.G_RET_STS_UNEXP_ERROR Then
1167 l_overall_status := x_return_status;
1168 End If;
1169 End If;
1170
1171 EXIT WHEN (i = p_rle_tbl.LAST);
1172 i := p_rle_tbl.NEXT(i);
1173 END LOOP;
1174 -- return overall status
1175 x_return_status := l_overall_status;
1176 END IF;
1177
1178 EXCEPTION
1179 WHEN OKE_API.G_EXCEPTION_ERROR THEN
1180 x_return_status := OKE_API.HANDLE_EXCEPTIONS
1181 (
1182 l_api_name,
1183 G_PKG_NAME,
1184 'OKE_API.G_RET_STS_ERROR',
1185 x_msg_count,
1186 x_msg_data,
1187 '_PVT'
1188 );
1189 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1190 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1191 (
1192 l_api_name,
1193 G_PKG_NAME,
1194 'OKE_API.G_RET_STS_UNEXP_ERROR',
1195 x_msg_count,
1196 x_msg_data,
1197 '_PVT'
1198 );
1199 WHEN OTHERS THEN
1200 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1201 (
1202 l_api_name,
1203 G_PKG_NAME,
1204 'OTHERS',
1205 x_msg_count,
1206 x_msg_data,
1207 '_PVT'
1208 );
1209 END validate_row;
1210
1211
1212
1213
1214 PROCEDURE lock_row(
1215 p_api_version IN NUMBER,
1216 p_init_msg_list IN VARCHAR2 DEFAULT OKE_API.G_FALSE,
1217 x_return_status OUT NOCOPY VARCHAR2,
1218 x_msg_count OUT NOCOPY NUMBER,
1219 x_msg_data OUT NOCOPY VARCHAR2,
1220 p_rle_rec IN rle_rec_type) IS
1221
1222
1223 l_api_version CONSTANT NUMBER := 1;
1224 l_api_name CONSTANT VARCHAR2(30) := 'lock_row';
1225 l_return_status VARCHAR2(1) := OKE_API.G_RET_STS_SUCCESS;
1226 l_row_notfound BOOLEAN := FALSE;
1227
1228 l_chr_id NUMBER;
1229 l_rle_id NUMBER;
1230 l_ver_id NUMBER;
1231
1232 E_Resource_Busy EXCEPTION;
1233 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1234
1235
1236 CURSOR lock_csr (p IN rle_rec_type) IS
1237 SELECT k_header_id,related_entity_id,related_entity_version FROM oke_k_related_entities a
1238 WHERE a.rowid = p.ROW_ID
1239
1240 FOR UPDATE NOWAIT;
1241
1242
1243 BEGIN
1244 l_return_status := OKE_API.START_ACTIVITY(l_api_name,
1245 p_init_msg_list,
1246 '_PVT',
1247 x_return_status);
1248 IF (l_return_status = OKE_API.G_RET_STS_UNEXP_ERROR) THEN
1249 RAISE OKE_API.G_EXCEPTION_UNEXPECTED_ERROR;
1250 ELSIF (l_return_status = OKE_API.G_RET_STS_ERROR) THEN
1251 RAISE OKE_API.G_EXCEPTION_ERROR;
1252 END IF;
1253
1254
1255 BEGIN
1256 OPEN lock_csr(p_rle_rec);
1257 FETCH lock_csr INTO l_chr_id,l_rle_id,l_ver_id;
1258 l_row_notfound := lock_csr%NOTFOUND;
1259 CLOSE lock_csr;
1260
1261
1262 EXCEPTION
1263 WHEN E_Resource_Busy THEN
1264 IF (lock_csr%ISOPEN) THEN
1265 CLOSE lock_csr;
1266 END IF;
1267 OKE_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1268 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1269 END;
1270
1271
1272 IF (l_row_notfound) THEN
1273 OKE_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1274 RAISE OKE_API.G_EXCEPTION_ERROR;
1275 END IF;
1276
1277 OKE_API.END_ACTIVITY(x_msg_count, x_msg_data);
1278
1279 EXCEPTION
1280 WHEN OKE_API.G_EXCEPTION_ERROR THEN
1281 x_return_status := OKE_API.HANDLE_EXCEPTIONS
1282 (
1283 l_api_name,
1284 G_PKG_NAME,
1285 'OKE_API.G_RET_STS_ERROR',
1286 x_msg_count,
1287 x_msg_data,
1288 '_PVT'
1289 );
1290 WHEN OKE_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1291 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1292 (
1293 l_api_name,
1294 G_PKG_NAME,
1295 'OKE_API.G_RET_STS_UNEXP_ERROR',
1296 x_msg_count,
1297 x_msg_data,
1298 '_PVT'
1299 );
1300 WHEN OTHERS THEN
1301 x_return_status :=OKE_API.HANDLE_EXCEPTIONS
1302 (
1303 l_api_name,
1304 G_PKG_NAME,
1305 'OTHERS',
1306 x_msg_count,
1307 x_msg_data,
1308 '_PVT'
1309 );
1310 END lock_row;
1311
1312
1313 END OKE_RLE_PVT;
1314