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