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