[Home] [Help]
PACKAGE BODY: APPS.OKL_CLS_PVT
Source
1 PACKAGE BODY Okl_Cls_Pvt AS
2 /* $Header: OKLSCLSB.pls 115.3 2002/05/10 08:32:29 pkm ship $ */
3
4 ---------------------------------------------------------------------------
5 -- PROCEDURE validate_id
6 ---------------------------------------------------------------------------
7 PROCEDURE validate_id (p_clsv_rec IN clsv_rec_type,
8 x_return_status OUT NOCOPY VARCHAR2) IS
9
10 BEGIN
11 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
12 --Check for Null
13 IF p_clsv_rec.id = Okl_Api.G_MISS_NUM OR
14 p_clsv_rec.id IS NULL
15 THEN
16
17 x_return_status := Okl_Api.G_RET_STS_ERROR;
18 --set error message in message stack
19 Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
20 p_msg_name => G_REQUIRED_VALUE,
21 p_token1 => G_COL_NAME_TOKEN,
22 p_token1_value => 'id');
23 RAISE G_EXCEPTION_HALT_VALIDATION;
24
25 END IF;
26 END validate_id;
27
28 ---------------------------------------------------------------------------
29 -- PROCEDURE validate_object_version_number
30 ---------------------------------------------------------------------------
31 PROCEDURE validate_object_version_number (p_clsv_rec IN clsv_rec_type,
32 x_return_status OUT NOCOPY VARCHAR2) IS
33
34 BEGIN
35 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
36 --Check for Null
37 IF p_clsv_rec.object_version_number = Okl_Api.G_MISS_NUM OR
38 p_clsv_rec.object_version_number IS NULL
39 THEN
40
41 x_return_status := Okl_Api.G_RET_STS_ERROR;
42 --set error message in message stack
43 Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
44 p_msg_name => G_REQUIRED_VALUE,
45 p_token1 => G_COL_NAME_TOKEN,
46 p_token1_value => 'object_version_number');
47 RAISE G_EXCEPTION_HALT_VALIDATION;
48
49 END IF;
50 END validate_object_version_number;
51
52 ---------------------------------------------------------------------------
53 -- PROCEDURE validate_crn_id
54 ---------------------------------------------------------------------------
55 PROCEDURE validate_crn_id (p_clsv_rec IN clsv_rec_type,
56 x_return_status OUT NOCOPY VARCHAR2) IS
57
58 l_dummy_var VARCHAR2(1) := '0';
59
60 CURSOR l_crn_id_csr IS
61 SELECT '1'
62 FROM OKL_CRITERIA_B
63 WHERE id = p_clsv_rec.crn_id;
64
65 BEGIN
66 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
67
68 --Check for Null
69 IF p_clsv_rec.crn_id = Okl_Api.G_MISS_NUM OR
70 p_clsv_rec.crn_id IS NULL
71 THEN
72 x_return_status := Okl_Api.G_RET_STS_ERROR;
73 --set error message in message stack
74 Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
75 p_msg_name => G_REQUIRED_VALUE,
76 p_token1 => G_COL_NAME_TOKEN,
77 p_token1_value => 'crn_id');
78 RAISE G_EXCEPTION_HALT_VALIDATION;
79 END IF;
80
81 -- Validate Foreign Key
82 OPEN l_crn_id_csr;
83 FETCH l_crn_id_csr INTO l_dummy_var;
84 CLOSE l_crn_id_csr;
85
86 IF (l_dummy_var <> '1') THEN
87 x_return_status := Okl_Api.G_RET_STS_ERROR;
88 Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
89 p_msg_name => G_NO_PARENT_RECORD,
90 p_token1 => G_COL_NAME_TOKEN,
91 p_token1_value => 'CRN_ID_FOR',
92 p_token2 => G_CHILD_TABLE_TOKEN,
93 p_token2_value => G_VIEW,
94 p_token3 => G_PARENT_TABLE_TOKEN,
95 p_token3_value => 'OKL_CRTRN_LNSTYLS_V');
96
97 RAISE G_EXCEPTION_HALT_VALIDATION;
98 END IF;
99 END validate_crn_id;
100
101 ---------------------------------------------------------------------------
102 -- PROCEDURE validate_lse_id
103 ---------------------------------------------------------------------------
104 PROCEDURE validate_lse_id (p_clsv_rec IN clsv_rec_type,
105 x_return_status OUT NOCOPY VARCHAR2) IS
106
107 l_dummy_var VARCHAR2(1) := '0';
108
109 CURSOR l_lse_id_csr IS
110 SELECT '1'
111 FROM OKC_LINE_STYLES_B
112 WHERE id = p_clsv_rec.crn_id;
113
114 BEGIN
115 x_return_status := Okl_Api.G_RET_STS_SUCCESS;
116
117 --Check for Null
118 IF p_clsv_rec.lse_id = Okl_Api.G_MISS_NUM OR
119 p_clsv_rec.lse_id IS NULL
120 THEN
121 x_return_status := Okl_Api.G_RET_STS_ERROR;
122 --set error message in message stack
123 Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
124 p_msg_name => G_REQUIRED_VALUE,
125 p_token1 => G_COL_NAME_TOKEN,
126 p_token1_value => 'lse_id');
127 RAISE G_EXCEPTION_HALT_VALIDATION;
128 END IF;
129
130 -- Validate Foreign Key
131 OPEN l_lse_id_csr;
132 FETCH l_lse_id_csr INTO l_dummy_var;
133 CLOSE l_lse_id_csr;
134
135 IF (l_dummy_var <> '1') THEN
136 x_return_status := Okl_Api.G_RET_STS_ERROR;
137 Okl_Api.SET_MESSAGE(p_app_name => G_APP_NAME,
138 p_msg_name => G_NO_PARENT_RECORD,
139 p_token1 => G_COL_NAME_TOKEN,
140 p_token1_value => 'LSE_ID_FOR',
141 p_token2 => G_CHILD_TABLE_TOKEN,
142 p_token2_value => G_VIEW,
143 p_token3 => G_PARENT_TABLE_TOKEN,
144 p_token3_value => 'OKL_CRTRN_LNSTYLS_V');
145
146 RAISE G_EXCEPTION_HALT_VALIDATION;
147 END IF;
148 END validate_lse_id;
149
150
151 ---------------------------------------------------------------------------
152 -- FUNCTION get_seq_id
153 ---------------------------------------------------------------------------
154 FUNCTION get_seq_id RETURN NUMBER IS
155 BEGIN
156 RETURN(Okc_P_Util.raw_to_number(sys_guid()));
157 END get_seq_id;
158
159 ---------------------------------------------------------------------------
160 -- PROCEDURE qc
161 ---------------------------------------------------------------------------
162 PROCEDURE qc IS
163 BEGIN
164 NULL;
165 END qc;
166
167 ---------------------------------------------------------------------------
168 -- PROCEDURE change_version
169 ---------------------------------------------------------------------------
170 PROCEDURE change_version IS
171 BEGIN
172 NULL;
173 END change_version;
174
175 ---------------------------------------------------------------------------
176 -- PROCEDURE api_copy
177 ---------------------------------------------------------------------------
178 PROCEDURE api_copy IS
179 BEGIN
180 NULL;
181 END api_copy;
182
183 ---------------------------------------------------------------------------
184 -- FUNCTION get_rec for: OKL_CRTRN_LNSTYLS
185 ---------------------------------------------------------------------------
186 FUNCTION get_rec (
187 p_cls_rec IN cls_rec_type,
188 x_no_data_found OUT NOCOPY BOOLEAN
189 ) RETURN cls_rec_type IS
190 CURSOR cls_pk_csr (p_id IN NUMBER) IS
191 SELECT
192 ID,
193 CRN_ID,
194 LSE_ID,
195 OBJECT_VERSION_NUMBER,
196 ATTRIBUTE_CATEGORY,
197 ATTRIBUTE1,
198 ATTRIBUTE2,
199 ATTRIBUTE3,
200 ATTRIBUTE4,
201 ATTRIBUTE5,
202 ATTRIBUTE6,
203 ATTRIBUTE7,
204 ATTRIBUTE8,
205 ATTRIBUTE9,
206 ATTRIBUTE10,
207 ATTRIBUTE11,
208 ATTRIBUTE12,
209 ATTRIBUTE13,
210 ATTRIBUTE14,
211 ATTRIBUTE15,
212 CREATED_BY,
213 CREATION_DATE,
214 LAST_UPDATED_BY,
215 LAST_UPDATE_DATE,
216 LAST_UPDATE_LOGIN
217 FROM Okl_Crtrn_Lnstyls
218 WHERE okl_crtrn_lnstyls.id = p_id;
219 l_cls_pk cls_pk_csr%ROWTYPE;
220 l_cls_rec cls_rec_type;
221 BEGIN
222 x_no_data_found := TRUE;
223 -- Get current database values
224 OPEN cls_pk_csr (p_cls_rec.id);
225 FETCH cls_pk_csr INTO
226 l_cls_rec.ID,
227 l_cls_rec.CRN_ID,
228 l_cls_rec.LSE_ID,
229 l_cls_rec.OBJECT_VERSION_NUMBER,
230 l_cls_rec.ATTRIBUTE_CATEGORY,
231 l_cls_rec.ATTRIBUTE1,
232 l_cls_rec.ATTRIBUTE2,
233 l_cls_rec.ATTRIBUTE3,
234 l_cls_rec.ATTRIBUTE4,
235 l_cls_rec.ATTRIBUTE5,
236 l_cls_rec.ATTRIBUTE6,
237 l_cls_rec.ATTRIBUTE7,
238 l_cls_rec.ATTRIBUTE8,
239 l_cls_rec.ATTRIBUTE9,
240 l_cls_rec.ATTRIBUTE10,
241 l_cls_rec.ATTRIBUTE11,
242 l_cls_rec.ATTRIBUTE12,
243 l_cls_rec.ATTRIBUTE13,
244 l_cls_rec.ATTRIBUTE14,
245 l_cls_rec.ATTRIBUTE15,
246 l_cls_rec.CREATED_BY,
247 l_cls_rec.CREATION_DATE,
248 l_cls_rec.LAST_UPDATED_BY,
249 l_cls_rec.LAST_UPDATE_DATE,
250 l_cls_rec.LAST_UPDATE_LOGIN;
251 x_no_data_found := cls_pk_csr%NOTFOUND;
252 CLOSE cls_pk_csr;
253 RETURN(l_cls_rec);
254 END get_rec;
255
256 FUNCTION get_rec (
257 p_cls_rec IN cls_rec_type
258 ) RETURN cls_rec_type IS
259 l_row_notfound BOOLEAN := TRUE;
260 BEGIN
261 RETURN(get_rec(p_cls_rec, l_row_notfound));
262 END get_rec;
263 ---------------------------------------------------------------------------
264 -- FUNCTION get_rec for: OKL_CRTRN_LNSTYLS_V
265 ---------------------------------------------------------------------------
266 FUNCTION get_rec (
267 p_clsv_rec IN clsv_rec_type,
268 x_no_data_found OUT NOCOPY BOOLEAN
269 ) RETURN clsv_rec_type IS
270 CURSOR okl_clsv_pk_csr (p_id IN NUMBER) IS
271 SELECT
272 ID,
273 OBJECT_VERSION_NUMBER,
274 CRN_ID,
275 LSE_ID,
276 ATTRIBUTE_CATEGORY,
277 ATTRIBUTE1,
278 ATTRIBUTE2,
279 ATTRIBUTE3,
280 ATTRIBUTE4,
281 ATTRIBUTE5,
282 ATTRIBUTE6,
283 ATTRIBUTE7,
284 ATTRIBUTE8,
285 ATTRIBUTE9,
286 ATTRIBUTE10,
287 ATTRIBUTE11,
288 ATTRIBUTE12,
289 ATTRIBUTE13,
290 ATTRIBUTE14,
291 ATTRIBUTE15,
292 CREATED_BY,
293 CREATION_DATE,
294 LAST_UPDATED_BY,
295 LAST_UPDATE_DATE,
296 LAST_UPDATE_LOGIN
297 FROM Okl_Crtrn_Lnstyls_V
298 WHERE okl_crtrn_lnstyls_v.id = p_id;
299 l_okl_clsv_pk okl_clsv_pk_csr%ROWTYPE;
300 l_clsv_rec clsv_rec_type;
301 BEGIN
302 x_no_data_found := TRUE;
303 -- Get current database values
304 OPEN okl_clsv_pk_csr (p_clsv_rec.id);
305 FETCH okl_clsv_pk_csr INTO
306 l_clsv_rec.ID,
307 l_clsv_rec.OBJECT_VERSION_NUMBER,
308 l_clsv_rec.CRN_ID,
309 l_clsv_rec.LSE_ID,
310 l_clsv_rec.ATTRIBUTE_CATEGORY,
311 l_clsv_rec.ATTRIBUTE1,
312 l_clsv_rec.ATTRIBUTE2,
313 l_clsv_rec.ATTRIBUTE3,
314 l_clsv_rec.ATTRIBUTE4,
315 l_clsv_rec.ATTRIBUTE5,
316 l_clsv_rec.ATTRIBUTE6,
317 l_clsv_rec.ATTRIBUTE7,
318 l_clsv_rec.ATTRIBUTE8,
319 l_clsv_rec.ATTRIBUTE9,
320 l_clsv_rec.ATTRIBUTE10,
321 l_clsv_rec.ATTRIBUTE11,
322 l_clsv_rec.ATTRIBUTE12,
323 l_clsv_rec.ATTRIBUTE13,
324 l_clsv_rec.ATTRIBUTE14,
325 l_clsv_rec.ATTRIBUTE15,
326 l_clsv_rec.CREATED_BY,
327 l_clsv_rec.CREATION_DATE,
328 l_clsv_rec.LAST_UPDATED_BY,
329 l_clsv_rec.LAST_UPDATE_DATE,
330 l_clsv_rec.LAST_UPDATE_LOGIN;
331 x_no_data_found := okl_clsv_pk_csr%NOTFOUND;
332 CLOSE okl_clsv_pk_csr;
333 RETURN(l_clsv_rec);
334 END get_rec;
335
336 FUNCTION get_rec (
337 p_clsv_rec IN clsv_rec_type
338 ) RETURN clsv_rec_type IS
339 l_row_notfound BOOLEAN := TRUE;
340 BEGIN
341 RETURN(get_rec(p_clsv_rec, l_row_notfound));
342 END get_rec;
343
344 ---------------------------------------------------------
345 -- FUNCTION null_out_defaults for: OKL_CRTRN_LNSTYLS_V --
346 ---------------------------------------------------------
347 FUNCTION null_out_defaults (
348 p_clsv_rec IN clsv_rec_type
349 ) RETURN clsv_rec_type IS
350 l_clsv_rec clsv_rec_type := p_clsv_rec;
351 BEGIN
352 IF (l_clsv_rec.object_version_number = okl_api.G_MISS_NUM) THEN
353 l_clsv_rec.object_version_number := NULL;
354 END IF;
355 IF (l_clsv_rec.crn_id = okl_api.G_MISS_NUM) THEN
356 l_clsv_rec.crn_id := NULL;
357 END IF;
358 IF (l_clsv_rec.lse_id = okl_api.G_MISS_NUM) THEN
359 l_clsv_rec.lse_id := NULL;
360 END IF;
361 IF (l_clsv_rec.attribute_category = okl_api.G_MISS_CHAR) THEN
362 l_clsv_rec.attribute_category := NULL;
363 END IF;
364 IF (l_clsv_rec.attribute1 = okl_api.G_MISS_CHAR) THEN
365 l_clsv_rec.attribute1 := NULL;
366 END IF;
367 IF (l_clsv_rec.attribute2 = okl_api.G_MISS_CHAR) THEN
368 l_clsv_rec.attribute2 := NULL;
369 END IF;
370 IF (l_clsv_rec.attribute3 = okl_api.G_MISS_CHAR) THEN
371 l_clsv_rec.attribute3 := NULL;
372 END IF;
373 IF (l_clsv_rec.attribute4 = okl_api.G_MISS_CHAR) THEN
374 l_clsv_rec.attribute4 := NULL;
375 END IF;
376 IF (l_clsv_rec.attribute5 = okl_api.G_MISS_CHAR) THEN
377 l_clsv_rec.attribute5 := NULL;
378 END IF;
379 IF (l_clsv_rec.attribute6 = okl_api.G_MISS_CHAR) THEN
380 l_clsv_rec.attribute6 := NULL;
381 END IF;
382 IF (l_clsv_rec.attribute7 = okl_api.G_MISS_CHAR) THEN
383 l_clsv_rec.attribute7 := NULL;
384 END IF;
385 IF (l_clsv_rec.attribute8 = okl_api.G_MISS_CHAR) THEN
386 l_clsv_rec.attribute8 := NULL;
387 END IF;
388 IF (l_clsv_rec.attribute9 = okl_api.G_MISS_CHAR) THEN
389 l_clsv_rec.attribute9 := NULL;
390 END IF;
391 IF (l_clsv_rec.attribute10 = okl_api.G_MISS_CHAR) THEN
392 l_clsv_rec.attribute10 := NULL;
393 END IF;
394 IF (l_clsv_rec.attribute11 = okl_api.G_MISS_CHAR) THEN
395 l_clsv_rec.attribute11 := NULL;
396 END IF;
397 IF (l_clsv_rec.attribute12 = okl_api.G_MISS_CHAR) THEN
398 l_clsv_rec.attribute12 := NULL;
399 END IF;
400 IF (l_clsv_rec.attribute13 = okl_api.G_MISS_CHAR) THEN
401 l_clsv_rec.attribute13 := NULL;
402 END IF;
403 IF (l_clsv_rec.attribute14 = okl_api.G_MISS_CHAR) THEN
404 l_clsv_rec.attribute14 := NULL;
405 END IF;
406 IF (l_clsv_rec.attribute15 = okl_api.G_MISS_CHAR) THEN
407 l_clsv_rec.attribute15 := NULL;
408 END IF;
409 IF (l_clsv_rec.created_by = okl_api.G_MISS_NUM) THEN
410 l_clsv_rec.created_by := NULL;
411 END IF;
412 IF (l_clsv_rec.creation_date = okl_api.G_MISS_DATE) THEN
413 l_clsv_rec.creation_date := NULL;
414 END IF;
415 IF (l_clsv_rec.last_updated_by = okl_api.G_MISS_NUM) THEN
416 l_clsv_rec.last_updated_by := NULL;
417 END IF;
418 IF (l_clsv_rec.last_update_date = okl_api.G_MISS_DATE) THEN
419 l_clsv_rec.last_update_date := NULL;
420 END IF;
421 IF (l_clsv_rec.last_update_login = okl_api.G_MISS_NUM) THEN
422 l_clsv_rec.last_update_login := NULL;
423 END IF;
424 RETURN(l_clsv_rec);
425 END null_out_defaults;
426 ---------------------------------------------------------------------------
427 -- PROCEDURE Validate_Attributes
428 ---------------------------------------------------------------------------
429 -------------------------------------------------
430 -- Validate_Attributes for:OKL_CRTRN_LNSTYLS_V --
431 -------------------------------------------------
432 FUNCTION Validate_Attributes (
433 p_clsv_rec IN clsv_rec_type
434 ) RETURN VARCHAR2 IS
435 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
436 -- TAPI postgen 05/23/2001
437 x_return_status VARCHAR2(1) := Okl_Api.G_RET_STS_SUCCESS;
438 -- End TAPI postgen 05/23/2001
439 BEGIN
440 -- TAPI postgen 05/23/2001
441 validate_id(p_clsv_rec, x_return_status);
442 IF (x_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
443 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
444 l_return_status := x_return_status;
445 RAISE G_EXCEPTION_HALT_VALIDATION;
446 ELSE
447 l_return_status := x_return_status; -- record that there was an error
448 END IF;
449 END IF;
450
451 validate_object_version_number(p_clsv_rec, x_return_status);
452 IF (x_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
453 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
454 l_return_status := x_return_status;
455 RAISE G_EXCEPTION_HALT_VALIDATION;
456 ELSE
457 l_return_status := x_return_status; -- record that there was an error
458 END IF;
459 END IF;
460
461 validate_crn_id(p_clsv_rec, x_return_status);
462 IF (x_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
463 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
464 l_return_status := x_return_status;
465 RAISE G_EXCEPTION_HALT_VALIDATION;
466 ELSE
467 l_return_status := x_return_status; -- record that there was an error
468 END IF;
469 END IF;
470
471 validate_lse_id(p_clsv_rec, x_return_status);
472 IF (x_return_status <> Okl_Api.G_RET_STS_SUCCESS) THEN
473 IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
474 l_return_status := x_return_status;
475 RAISE G_EXCEPTION_HALT_VALIDATION;
476 ELSE
477 l_return_status := x_return_status; -- record that there was an error
478 END IF;
479 END IF;
480 -- End TAPI postgen 05/23/2001
481
482 RETURN(l_return_status);
483 END Validate_Attributes;
484
485 ---------------------------------------------------------------------------
486 -- PROCEDURE Validate_Record
487 ---------------------------------------------------------------------------
488 ---------------------------------------------
489 -- Validate_Record for:OKL_CRTRN_LNSTYLS_V --
490 ---------------------------------------------
491 FUNCTION Validate_Record (
492 p_clsv_rec IN clsv_rec_type
493 ) RETURN VARCHAR2 IS
494 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
495 BEGIN
496 RETURN (l_return_status);
497 END Validate_Record;
498
499 ---------------------------------------------------------------------------
500 -- PROCEDURE Migrate
501 ---------------------------------------------------------------------------
502 PROCEDURE migrate (
503 p_from IN clsv_rec_type,
504 p_to OUT NOCOPY cls_rec_type
505 ) IS
506 BEGIN
507 p_to.id := p_from.id;
508 p_to.crn_id := p_from.crn_id;
509 p_to.lse_id := p_from.lse_id;
510 p_to.object_version_number := p_from.object_version_number;
511 p_to.attribute_category := p_from.attribute_category;
512 p_to.attribute1 := p_from.attribute1;
513 p_to.attribute2 := p_from.attribute2;
514 p_to.attribute3 := p_from.attribute3;
515 p_to.attribute4 := p_from.attribute4;
516 p_to.attribute5 := p_from.attribute5;
517 p_to.attribute6 := p_from.attribute6;
518 p_to.attribute7 := p_from.attribute7;
519 p_to.attribute8 := p_from.attribute8;
520 p_to.attribute9 := p_from.attribute9;
521 p_to.attribute10 := p_from.attribute10;
522 p_to.attribute11 := p_from.attribute11;
523 p_to.attribute12 := p_from.attribute12;
524 p_to.attribute13 := p_from.attribute13;
525 p_to.attribute14 := p_from.attribute14;
526 p_to.attribute15 := p_from.attribute15;
527 p_to.created_by := p_from.created_by;
528 p_to.creation_date := p_from.creation_date;
529 p_to.last_updated_by := p_from.last_updated_by;
530 p_to.last_update_date := p_from.last_update_date;
531 p_to.last_update_login := p_from.last_update_login;
532 END migrate;
533 PROCEDURE migrate (
534 p_from IN cls_rec_type,
535 p_to OUT NOCOPY clsv_rec_type
536 ) IS
537 BEGIN
538 p_to.id := p_from.id;
539 p_to.crn_id := p_from.crn_id;
540 p_to.lse_id := p_from.lse_id;
541 p_to.object_version_number := p_from.object_version_number;
542 p_to.attribute_category := p_from.attribute_category;
543 p_to.attribute1 := p_from.attribute1;
544 p_to.attribute2 := p_from.attribute2;
545 p_to.attribute3 := p_from.attribute3;
546 p_to.attribute4 := p_from.attribute4;
547 p_to.attribute5 := p_from.attribute5;
548 p_to.attribute6 := p_from.attribute6;
549 p_to.attribute7 := p_from.attribute7;
550 p_to.attribute8 := p_from.attribute8;
551 p_to.attribute9 := p_from.attribute9;
552 p_to.attribute10 := p_from.attribute10;
553 p_to.attribute11 := p_from.attribute11;
554 p_to.attribute12 := p_from.attribute12;
555 p_to.attribute13 := p_from.attribute13;
556 p_to.attribute14 := p_from.attribute14;
557 p_to.attribute15 := p_from.attribute15;
558 p_to.created_by := p_from.created_by;
559 p_to.creation_date := p_from.creation_date;
560 p_to.last_updated_by := p_from.last_updated_by;
561 p_to.last_update_date := p_from.last_update_date;
562 p_to.last_update_login := p_from.last_update_login;
563 END migrate;
564
565 ---------------------------------------------------------------------------
566 -- PROCEDURE validate_row
567 ---------------------------------------------------------------------------
568 ------------------------------------------
569 -- validate_row for:OKL_CRTRN_LNSTYLS_V --
570 ------------------------------------------
571 PROCEDURE validate_row(
572 p_api_version IN NUMBER,
573 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
574 x_return_status OUT NOCOPY VARCHAR2,
575 x_msg_count OUT NOCOPY NUMBER,
576 x_msg_data OUT NOCOPY VARCHAR2,
577 p_clsv_rec IN clsv_rec_type) IS
578
579 l_api_version CONSTANT NUMBER := 1;
580 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
581 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
582 l_clsv_rec clsv_rec_type := p_clsv_rec;
583 l_cls_rec cls_rec_type;
584 BEGIN
585 l_return_status := okl_api.START_ACTIVITY(l_api_name,
586 G_PKG_NAME,
587 p_init_msg_list,
588 l_api_version,
589 p_api_version,
590 '_PVT',
591 x_return_status);
592 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
593 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
594 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
595 RAISE okl_api.G_EXCEPTION_ERROR;
596 END IF;
597 --- Validate all non-missing attributes (Item Level Validation)
598 l_return_status := Validate_Attributes(l_clsv_rec);
599 --- If any errors happen abort API
600 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
601 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
602 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
603 RAISE okl_api.G_EXCEPTION_ERROR;
604 END IF;
605 l_return_status := Validate_Record(l_clsv_rec);
606 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
607 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
608 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
609 RAISE okl_api.G_EXCEPTION_ERROR;
610 END IF;
611 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
612 EXCEPTION
613 WHEN okl_api.G_EXCEPTION_ERROR THEN
614 x_return_status := okl_api.HANDLE_EXCEPTIONS
615 (
616 l_api_name,
617 G_PKG_NAME,
618 'okl_api.G_RET_STS_ERROR',
619 x_msg_count,
620 x_msg_data,
621 '_PVT'
622 );
623 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
624 x_return_status :=okl_api.HANDLE_EXCEPTIONS
625 (
626 l_api_name,
627 G_PKG_NAME,
628 'okl_api.G_RET_STS_UNEXP_ERROR',
629 x_msg_count,
630 x_msg_data,
631 '_PVT'
632 );
633 WHEN OTHERS THEN
634 x_return_status :=okl_api.HANDLE_EXCEPTIONS
635 (
636 l_api_name,
637 G_PKG_NAME,
638 'OTHERS',
639 x_msg_count,
640 x_msg_data,
641 '_PVT'
642 );
643 END validate_row;
644 ------------------------------------------
645 -- PL/SQL TBL validate_row for:CLSV_TBL --
646 ------------------------------------------
647 PROCEDURE validate_row(
648 p_api_version IN NUMBER,
649 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
650 x_return_status OUT NOCOPY VARCHAR2,
651 x_msg_count OUT NOCOPY NUMBER,
652 x_msg_data OUT NOCOPY VARCHAR2,
653 p_clsv_tbl IN clsv_tbl_type) IS
654
655 l_api_version CONSTANT NUMBER := 1;
656 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
657 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
658 i NUMBER := 0;
659 BEGIN
660 okl_api.init_msg_list(p_init_msg_list);
661 -- Make sure PL/SQL table has records in it before passing
662 IF (p_clsv_tbl.COUNT > 0) THEN
663 i := p_clsv_tbl.FIRST;
664 LOOP
665 validate_row (
666 p_api_version => p_api_version,
667 p_init_msg_list => okl_api.G_FALSE,
668 x_return_status => x_return_status,
669 x_msg_count => x_msg_count,
670 x_msg_data => x_msg_data,
671 p_clsv_rec => p_clsv_tbl(i));
672 EXIT WHEN (i = p_clsv_tbl.LAST);
673 i := p_clsv_tbl.NEXT(i);
674 END LOOP;
675 END IF;
676 EXCEPTION
677 WHEN okl_api.G_EXCEPTION_ERROR THEN
678 x_return_status := okl_api.HANDLE_EXCEPTIONS
679 (
680 l_api_name,
681 G_PKG_NAME,
682 'okl_api.G_RET_STS_ERROR',
683 x_msg_count,
684 x_msg_data,
685 '_PVT'
686 );
687 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
688 x_return_status :=okl_api.HANDLE_EXCEPTIONS
689 (
690 l_api_name,
691 G_PKG_NAME,
692 'okl_api.G_RET_STS_UNEXP_ERROR',
693 x_msg_count,
694 x_msg_data,
695 '_PVT'
696 );
697 WHEN OTHERS THEN
698 x_return_status :=okl_api.HANDLE_EXCEPTIONS
699 (
700 l_api_name,
701 G_PKG_NAME,
702 'OTHERS',
703 x_msg_count,
704 x_msg_data,
705 '_PVT'
706 );
707 END validate_row;
708
709 ---------------------------------------------------------------------------
710 -- PROCEDURE insert_row
711 ---------------------------------------------------------------------------
712 --------------------------------------
713 -- insert_row for:OKL_CRTRN_LNSTYLS --
714 --------------------------------------
715 PROCEDURE insert_row(
716 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
717 x_return_status OUT NOCOPY VARCHAR2,
718 x_msg_count OUT NOCOPY NUMBER,
719 x_msg_data OUT NOCOPY VARCHAR2,
720 p_cls_rec IN cls_rec_type,
721 x_cls_rec OUT NOCOPY cls_rec_type) IS
722
723 l_api_version CONSTANT NUMBER := 1;
724 l_api_name CONSTANT VARCHAR2(30) := 'LNSTYLS_insert_row';
725 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
726 l_cls_rec cls_rec_type := p_cls_rec;
727 l_def_cls_rec cls_rec_type;
728 ------------------------------------------
729 -- Set_Attributes for:OKL_CRTRN_LNSTYLS --
730 ------------------------------------------
731 FUNCTION Set_Attributes (
732 p_cls_rec IN cls_rec_type,
733 x_cls_rec OUT NOCOPY cls_rec_type
734 ) RETURN VARCHAR2 IS
735 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
736 BEGIN
737 x_cls_rec := p_cls_rec;
738 RETURN(l_return_status);
739 END Set_Attributes;
740 BEGIN
741 l_return_status := okl_api.START_ACTIVITY(l_api_name,
742 p_init_msg_list,
743 '_PVT',
744 x_return_status);
745 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
746 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
747 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
748 RAISE okl_api.G_EXCEPTION_ERROR;
749 END IF;
750 --- Setting item attributes
751 l_return_status := Set_Attributes(
752 p_cls_rec, -- IN
753 l_cls_rec); -- OUT
754 --- If any errors happen abort API
755 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
756 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
757 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
758 RAISE okl_api.G_EXCEPTION_ERROR;
759 END IF;
760 INSERT INTO OKL_CRTRN_LNSTYLS(
761 id,
762 crn_id,
763 lse_id,
764 object_version_number,
765 attribute_category,
766 attribute1,
767 attribute2,
768 attribute3,
769 attribute4,
770 attribute5,
771 attribute6,
772 attribute7,
773 attribute8,
774 attribute9,
775 attribute10,
776 attribute11,
777 attribute12,
778 attribute13,
779 attribute14,
780 attribute15,
781 created_by,
782 creation_date,
783 last_updated_by,
784 last_update_date,
785 last_update_login)
786 VALUES (
787 l_cls_rec.id,
788 l_cls_rec.crn_id,
789 l_cls_rec.lse_id,
790 l_cls_rec.object_version_number,
791 l_cls_rec.attribute_category,
792 l_cls_rec.attribute1,
793 l_cls_rec.attribute2,
794 l_cls_rec.attribute3,
795 l_cls_rec.attribute4,
796 l_cls_rec.attribute5,
797 l_cls_rec.attribute6,
798 l_cls_rec.attribute7,
799 l_cls_rec.attribute8,
800 l_cls_rec.attribute9,
801 l_cls_rec.attribute10,
802 l_cls_rec.attribute11,
803 l_cls_rec.attribute12,
804 l_cls_rec.attribute13,
805 l_cls_rec.attribute14,
806 l_cls_rec.attribute15,
807 l_cls_rec.created_by,
808 l_cls_rec.creation_date,
809 l_cls_rec.last_updated_by,
810 l_cls_rec.last_update_date,
811 l_cls_rec.last_update_login);
812 -- Set OUT values
813 x_cls_rec := l_cls_rec;
814 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
815 EXCEPTION
816 WHEN okl_api.G_EXCEPTION_ERROR THEN
817 x_return_status := okl_api.HANDLE_EXCEPTIONS
818 (
819 l_api_name,
820 G_PKG_NAME,
821 'okl_api.G_RET_STS_ERROR',
822 x_msg_count,
823 x_msg_data,
824 '_PVT'
825 );
826 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
827 x_return_status :=okl_api.HANDLE_EXCEPTIONS
828 (
829 l_api_name,
830 G_PKG_NAME,
831 'okl_api.G_RET_STS_UNEXP_ERROR',
832 x_msg_count,
833 x_msg_data,
834 '_PVT'
835 );
836 WHEN OTHERS THEN
837 x_return_status :=okl_api.HANDLE_EXCEPTIONS
838 (
839 l_api_name,
840 G_PKG_NAME,
841 'OTHERS',
842 x_msg_count,
843 x_msg_data,
844 '_PVT'
845 );
846 END insert_row;
847 ----------------------------------------
848 -- insert_row for:OKL_CRTRN_LNSTYLS_V --
849 ----------------------------------------
850 PROCEDURE insert_row(
851 p_api_version IN NUMBER,
852 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
853 x_return_status OUT NOCOPY VARCHAR2,
854 x_msg_count OUT NOCOPY NUMBER,
855 x_msg_data OUT NOCOPY VARCHAR2,
856 p_clsv_rec IN clsv_rec_type,
857 x_clsv_rec OUT NOCOPY clsv_rec_type) IS
858
859 l_api_version CONSTANT NUMBER := 1;
860 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
861 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
862 l_clsv_rec clsv_rec_type;
863 l_def_clsv_rec clsv_rec_type;
864 l_cls_rec cls_rec_type;
865 lx_cls_rec cls_rec_type;
866 -------------------------------
867 -- FUNCTION fill_who_columns --
868 -------------------------------
869 FUNCTION fill_who_columns (
870 p_clsv_rec IN clsv_rec_type
871 ) RETURN clsv_rec_type IS
872 l_clsv_rec clsv_rec_type := p_clsv_rec;
873 BEGIN
874 l_clsv_rec.CREATION_DATE := SYSDATE;
875 l_clsv_rec.CREATED_BY := Fnd_Global.USER_ID;
876 l_clsv_rec.LAST_UPDATE_DATE := SYSDATE;
877 l_clsv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
878 l_clsv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
879 RETURN(l_clsv_rec);
880 END fill_who_columns;
881 --------------------------------------------
882 -- Set_Attributes for:OKL_CRTRN_LNSTYLS_V --
883 --------------------------------------------
884 FUNCTION Set_Attributes (
885 p_clsv_rec IN clsv_rec_type,
886 x_clsv_rec OUT NOCOPY clsv_rec_type
887 ) RETURN VARCHAR2 IS
888 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
889 BEGIN
890 x_clsv_rec := p_clsv_rec;
891 x_clsv_rec.OBJECT_VERSION_NUMBER := 1;
892 RETURN(l_return_status);
893 END Set_Attributes;
894 BEGIN
895 l_return_status := okl_api.START_ACTIVITY(l_api_name,
896 G_PKG_NAME,
897 p_init_msg_list,
898 l_api_version,
899 p_api_version,
900 '_PVT',
901 x_return_status);
902 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
903 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
904 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
905 RAISE okl_api.G_EXCEPTION_ERROR;
906 END IF;
907 l_clsv_rec := null_out_defaults(p_clsv_rec);
908 -- Set primary key value
909 l_clsv_rec.ID := get_seq_id;
910 --- Setting item attributes
911 l_return_status := Set_Attributes(
912 l_clsv_rec, -- IN
913 l_def_clsv_rec); -- OUT
914 --- If any errors happen abort API
915 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
916 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
917 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
918 RAISE okl_api.G_EXCEPTION_ERROR;
919 END IF;
920 l_def_clsv_rec := fill_who_columns(l_def_clsv_rec);
921 --- Validate all non-missing attributes (Item Level Validation)
922 l_return_status := Validate_Attributes(l_def_clsv_rec);
923 --- If any errors happen abort API
924 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
925 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
926 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
927 RAISE okl_api.G_EXCEPTION_ERROR;
928 END IF;
929 l_return_status := Validate_Record(l_def_clsv_rec);
930 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
931 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
932 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
933 RAISE okl_api.G_EXCEPTION_ERROR;
934 END IF;
935 --------------------------------------
936 -- Move VIEW record to "Child" records
937 --------------------------------------
938 migrate(l_def_clsv_rec, l_cls_rec);
939 --------------------------------------------
940 -- Call the INSERT_ROW for each child record
941 --------------------------------------------
942 insert_row(
943 p_init_msg_list,
944 x_return_status,
945 x_msg_count,
946 x_msg_data,
947 l_cls_rec,
948 lx_cls_rec
949 );
950 IF (x_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
951 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
952 ELSIF (x_return_status = okl_api.G_RET_STS_ERROR) THEN
953 RAISE okl_api.G_EXCEPTION_ERROR;
954 END IF;
955 migrate(lx_cls_rec, l_def_clsv_rec);
956 -- Set OUT values
957 x_clsv_rec := l_def_clsv_rec;
958 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
959 EXCEPTION
960 WHEN okl_api.G_EXCEPTION_ERROR THEN
961 x_return_status := okl_api.HANDLE_EXCEPTIONS
962 (
963 l_api_name,
964 G_PKG_NAME,
965 'okl_api.G_RET_STS_ERROR',
966 x_msg_count,
967 x_msg_data,
968 '_PVT'
969 );
970 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
971 x_return_status :=okl_api.HANDLE_EXCEPTIONS
972 (
973 l_api_name,
974 G_PKG_NAME,
975 'okl_api.G_RET_STS_UNEXP_ERROR',
976 x_msg_count,
977 x_msg_data,
978 '_PVT'
979 );
980 WHEN OTHERS THEN
981 x_return_status :=okl_api.HANDLE_EXCEPTIONS
982 (
983 l_api_name,
984 G_PKG_NAME,
985 'OTHERS',
986 x_msg_count,
987 x_msg_data,
988 '_PVT'
989 );
990 END insert_row;
991 ----------------------------------------
992 -- PL/SQL TBL insert_row for:CLSV_TBL --
993 ----------------------------------------
994 PROCEDURE insert_row(
995 p_api_version IN NUMBER,
996 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
997 x_return_status OUT NOCOPY VARCHAR2,
998 x_msg_count OUT NOCOPY NUMBER,
999 x_msg_data OUT NOCOPY VARCHAR2,
1000 p_clsv_tbl IN clsv_tbl_type,
1001 x_clsv_tbl OUT NOCOPY clsv_tbl_type) IS
1002
1003 l_api_version CONSTANT NUMBER := 1;
1004 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1005 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1006 i NUMBER := 0;
1007 BEGIN
1008 okl_api.init_msg_list(p_init_msg_list);
1009 -- Make sure PL/SQL table has records in it before passing
1010 IF (p_clsv_tbl.COUNT > 0) THEN
1011 i := p_clsv_tbl.FIRST;
1012 LOOP
1013 insert_row (
1014 p_api_version => p_api_version,
1015 p_init_msg_list => okl_api.G_FALSE,
1016 x_return_status => x_return_status,
1017 x_msg_count => x_msg_count,
1018 x_msg_data => x_msg_data,
1019 p_clsv_rec => p_clsv_tbl(i),
1020 x_clsv_rec => x_clsv_tbl(i));
1021 EXIT WHEN (i = p_clsv_tbl.LAST);
1022 i := p_clsv_tbl.NEXT(i);
1023 END LOOP;
1024 END IF;
1025 EXCEPTION
1026 WHEN okl_api.G_EXCEPTION_ERROR THEN
1027 x_return_status := okl_api.HANDLE_EXCEPTIONS
1028 (
1029 l_api_name,
1030 G_PKG_NAME,
1031 'okl_api.G_RET_STS_ERROR',
1032 x_msg_count,
1033 x_msg_data,
1034 '_PVT'
1035 );
1036 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1037 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1038 (
1039 l_api_name,
1040 G_PKG_NAME,
1041 'okl_api.G_RET_STS_UNEXP_ERROR',
1042 x_msg_count,
1043 x_msg_data,
1044 '_PVT'
1045 );
1046 WHEN OTHERS THEN
1047 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1048 (
1049 l_api_name,
1050 G_PKG_NAME,
1051 'OTHERS',
1052 x_msg_count,
1053 x_msg_data,
1054 '_PVT'
1055 );
1056 END insert_row;
1057
1058 ---------------------------------------------------------------------------
1059 -- PROCEDURE lock_row
1060 ---------------------------------------------------------------------------
1061 ------------------------------------
1062 -- lock_row for:OKL_CRTRN_LNSTYLS --
1063 ------------------------------------
1064 PROCEDURE lock_row(
1065 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1066 x_return_status OUT NOCOPY VARCHAR2,
1067 x_msg_count OUT NOCOPY NUMBER,
1068 x_msg_data OUT NOCOPY VARCHAR2,
1069 p_cls_rec IN cls_rec_type) IS
1070
1071 E_Resource_Busy EXCEPTION;
1072 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1073 CURSOR lock_csr (p_cls_rec IN cls_rec_type) IS
1074 SELECT OBJECT_VERSION_NUMBER
1075 FROM OKL_CRTRN_LNSTYLS
1076 WHERE ID = p_cls_rec.id
1077 AND OBJECT_VERSION_NUMBER = p_cls_rec.object_version_number
1078 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1079
1080 CURSOR lchk_csr (p_cls_rec IN cls_rec_type) IS
1081 SELECT OBJECT_VERSION_NUMBER
1082 FROM OKL_CRTRN_LNSTYLS
1083 WHERE ID = p_cls_rec.id;
1084 l_api_version CONSTANT NUMBER := 1;
1085 l_api_name CONSTANT VARCHAR2(30) := 'LNSTYLS_lock_row';
1086 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1087 l_object_version_number OKL_CRTRN_LNSTYLS.OBJECT_VERSION_NUMBER%TYPE;
1088 lc_object_version_number OKL_CRTRN_LNSTYLS.OBJECT_VERSION_NUMBER%TYPE;
1089 l_row_notfound BOOLEAN := FALSE;
1090 lc_row_notfound BOOLEAN := FALSE;
1091 BEGIN
1092 l_return_status := okl_api.START_ACTIVITY(l_api_name,
1093 p_init_msg_list,
1094 '_PVT',
1095 x_return_status);
1096 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1097 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1098 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1099 RAISE okl_api.G_EXCEPTION_ERROR;
1100 END IF;
1101 BEGIN
1102 OPEN lock_csr(p_cls_rec);
1103 FETCH lock_csr INTO l_object_version_number;
1104 l_row_notfound := lock_csr%NOTFOUND;
1105 CLOSE lock_csr;
1106 EXCEPTION
1107 WHEN E_Resource_Busy THEN
1108 IF (lock_csr%ISOPEN) THEN
1109 CLOSE lock_csr;
1110 END IF;
1111 okl_api.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1112 RAISE App_Exceptions.RECORD_LOCK_EXCEPTION;
1113 END;
1114
1115 IF ( l_row_notfound ) THEN
1116 OPEN lchk_csr(p_cls_rec);
1117 FETCH lchk_csr INTO lc_object_version_number;
1118 lc_row_notfound := lchk_csr%NOTFOUND;
1119 CLOSE lchk_csr;
1120 END IF;
1121 IF (lc_row_notfound) THEN
1122 okl_api.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1123 RAISE okl_api.G_EXCEPTION_ERROR;
1124 ELSIF lc_object_version_number > p_cls_rec.object_version_number THEN
1125 okl_api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1126 RAISE okl_api.G_EXCEPTION_ERROR;
1127 ELSIF lc_object_version_number <> p_cls_rec.object_version_number THEN
1128 okl_api.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1129 RAISE okl_api.G_EXCEPTION_ERROR;
1130 ELSIF lc_object_version_number = -1 THEN
1131 okl_api.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1132 RAISE okl_api.G_EXCEPTION_ERROR;
1133 END IF;
1134 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
1135 EXCEPTION
1136 WHEN okl_api.G_EXCEPTION_ERROR THEN
1137 x_return_status := okl_api.HANDLE_EXCEPTIONS
1138 (
1139 l_api_name,
1140 G_PKG_NAME,
1141 'okl_api.G_RET_STS_ERROR',
1142 x_msg_count,
1143 x_msg_data,
1144 '_PVT'
1145 );
1146 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1147 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1148 (
1149 l_api_name,
1150 G_PKG_NAME,
1151 'okl_api.G_RET_STS_UNEXP_ERROR',
1152 x_msg_count,
1153 x_msg_data,
1154 '_PVT'
1155 );
1156 WHEN OTHERS THEN
1157 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1158 (
1159 l_api_name,
1160 G_PKG_NAME,
1161 'OTHERS',
1162 x_msg_count,
1163 x_msg_data,
1164 '_PVT'
1165 );
1166 END lock_row;
1167 --------------------------------------
1168 -- lock_row for:OKL_CRTRN_LNSTYLS_V --
1169 --------------------------------------
1170 PROCEDURE lock_row(
1171 p_api_version IN NUMBER,
1172 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1173 x_return_status OUT NOCOPY VARCHAR2,
1174 x_msg_count OUT NOCOPY NUMBER,
1175 x_msg_data OUT NOCOPY VARCHAR2,
1176 p_clsv_rec IN clsv_rec_type) IS
1177
1178 l_api_version CONSTANT NUMBER := 1;
1179 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
1180 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1181 l_cls_rec cls_rec_type;
1182 BEGIN
1183 l_return_status := okl_api.START_ACTIVITY(l_api_name,
1184 G_PKG_NAME,
1185 p_init_msg_list,
1186 l_api_version,
1187 p_api_version,
1188 '_PVT',
1189 x_return_status);
1190 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1191 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1192 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1193 RAISE okl_api.G_EXCEPTION_ERROR;
1194 END IF;
1195 --------------------------------------
1196 -- Move VIEW record to "Child" records
1197 --------------------------------------
1198 migrate(p_clsv_rec, l_cls_rec);
1199 --------------------------------------------
1200 -- Call the LOCK_ROW for each child record
1201 --------------------------------------------
1202 lock_row(
1203 p_init_msg_list,
1204 x_return_status,
1205 x_msg_count,
1206 x_msg_data,
1207 l_cls_rec
1208 );
1209 IF (x_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1210 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1211 ELSIF (x_return_status = okl_api.G_RET_STS_ERROR) THEN
1212 RAISE okl_api.G_EXCEPTION_ERROR;
1213 END IF;
1214 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
1215 EXCEPTION
1216 WHEN okl_api.G_EXCEPTION_ERROR THEN
1217 x_return_status := okl_api.HANDLE_EXCEPTIONS
1218 (
1219 l_api_name,
1220 G_PKG_NAME,
1221 'okl_api.G_RET_STS_ERROR',
1222 x_msg_count,
1223 x_msg_data,
1224 '_PVT'
1225 );
1226 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1227 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1228 (
1229 l_api_name,
1230 G_PKG_NAME,
1231 'okl_api.G_RET_STS_UNEXP_ERROR',
1232 x_msg_count,
1233 x_msg_data,
1234 '_PVT'
1235 );
1236 WHEN OTHERS THEN
1237 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1238 (
1239 l_api_name,
1240 G_PKG_NAME,
1241 'OTHERS',
1242 x_msg_count,
1243 x_msg_data,
1244 '_PVT'
1245 );
1246 END lock_row;
1247 --------------------------------------
1248 -- PL/SQL TBL lock_row for:CLSV_TBL --
1249 --------------------------------------
1250 PROCEDURE lock_row(
1251 p_api_version IN NUMBER,
1252 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1253 x_return_status OUT NOCOPY VARCHAR2,
1254 x_msg_count OUT NOCOPY NUMBER,
1255 x_msg_data OUT NOCOPY VARCHAR2,
1256 p_clsv_tbl IN clsv_tbl_type) IS
1257
1258 l_api_version CONSTANT NUMBER := 1;
1259 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
1260 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1261 i NUMBER := 0;
1262 BEGIN
1263 okl_api.init_msg_list(p_init_msg_list);
1264 -- Make sure PL/SQL table has records in it before passing
1265 IF (p_clsv_tbl.COUNT > 0) THEN
1266 i := p_clsv_tbl.FIRST;
1267 LOOP
1268 lock_row (
1269 p_api_version => p_api_version,
1270 p_init_msg_list => okl_api.G_FALSE,
1271 x_return_status => x_return_status,
1272 x_msg_count => x_msg_count,
1273 x_msg_data => x_msg_data,
1274 p_clsv_rec => p_clsv_tbl(i));
1275 EXIT WHEN (i = p_clsv_tbl.LAST);
1276 i := p_clsv_tbl.NEXT(i);
1277 END LOOP;
1278 END IF;
1279 EXCEPTION
1280 WHEN okl_api.G_EXCEPTION_ERROR THEN
1281 x_return_status := okl_api.HANDLE_EXCEPTIONS
1282 (
1283 l_api_name,
1284 G_PKG_NAME,
1285 'okl_api.G_RET_STS_ERROR',
1286 x_msg_count,
1287 x_msg_data,
1288 '_PVT'
1289 );
1290 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1291 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1292 (
1293 l_api_name,
1294 G_PKG_NAME,
1295 'okl_api.G_RET_STS_UNEXP_ERROR',
1296 x_msg_count,
1297 x_msg_data,
1298 '_PVT'
1299 );
1300 WHEN OTHERS THEN
1301 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1302 (
1303 l_api_name,
1304 G_PKG_NAME,
1305 'OTHERS',
1306 x_msg_count,
1307 x_msg_data,
1308 '_PVT'
1309 );
1310 END lock_row;
1311
1312 ---------------------------------------------------------------------------
1313 -- PROCEDURE update_row
1314 ---------------------------------------------------------------------------
1315 --------------------------------------
1316 -- update_row for:OKL_CRTRN_LNSTYLS --
1317 --------------------------------------
1318 PROCEDURE update_row(
1319 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1320 x_return_status OUT NOCOPY VARCHAR2,
1321 x_msg_count OUT NOCOPY NUMBER,
1322 x_msg_data OUT NOCOPY VARCHAR2,
1323 p_cls_rec IN cls_rec_type,
1324 x_cls_rec OUT NOCOPY cls_rec_type) IS
1325
1326 l_api_version CONSTANT NUMBER := 1;
1327 l_api_name CONSTANT VARCHAR2(30) := 'LNSTYLS_update_row';
1328 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1329 l_cls_rec cls_rec_type := p_cls_rec;
1330 l_def_cls_rec cls_rec_type;
1331 l_row_notfound BOOLEAN := TRUE;
1332 ----------------------------------
1333 -- FUNCTION populate_new_record --
1334 ----------------------------------
1335 FUNCTION populate_new_record (
1336 p_cls_rec IN cls_rec_type,
1337 x_cls_rec OUT NOCOPY cls_rec_type
1338 ) RETURN VARCHAR2 IS
1339 l_cls_rec cls_rec_type;
1340 l_row_notfound BOOLEAN := TRUE;
1341 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1342 BEGIN
1343 x_cls_rec := p_cls_rec;
1344 -- Get current database values
1345 l_cls_rec := get_rec(p_cls_rec, l_row_notfound);
1346 IF (l_row_notfound) THEN
1347 l_return_status := okl_api.G_RET_STS_UNEXP_ERROR;
1348 END IF;
1349 IF (x_cls_rec.id = okl_api.G_MISS_NUM)
1350 THEN
1351 x_cls_rec.id := l_cls_rec.id;
1352 END IF;
1353 IF (x_cls_rec.crn_id = okl_api.G_MISS_NUM)
1354 THEN
1355 x_cls_rec.crn_id := l_cls_rec.crn_id;
1356 END IF;
1357 IF (x_cls_rec.lse_id = okl_api.G_MISS_NUM)
1358 THEN
1359 x_cls_rec.lse_id := l_cls_rec.lse_id;
1360 END IF;
1361 IF (x_cls_rec.object_version_number = okl_api.G_MISS_NUM)
1362 THEN
1363 x_cls_rec.object_version_number := l_cls_rec.object_version_number;
1364 END IF;
1365 IF (x_cls_rec.attribute_category = okl_api.G_MISS_CHAR)
1366 THEN
1367 x_cls_rec.attribute_category := l_cls_rec.attribute_category;
1368 END IF;
1369 IF (x_cls_rec.attribute1 = okl_api.G_MISS_CHAR)
1370 THEN
1371 x_cls_rec.attribute1 := l_cls_rec.attribute1;
1372 END IF;
1373 IF (x_cls_rec.attribute2 = okl_api.G_MISS_CHAR)
1374 THEN
1375 x_cls_rec.attribute2 := l_cls_rec.attribute2;
1376 END IF;
1377 IF (x_cls_rec.attribute3 = okl_api.G_MISS_CHAR)
1378 THEN
1379 x_cls_rec.attribute3 := l_cls_rec.attribute3;
1380 END IF;
1381 IF (x_cls_rec.attribute4 = okl_api.G_MISS_CHAR)
1382 THEN
1383 x_cls_rec.attribute4 := l_cls_rec.attribute4;
1384 END IF;
1385 IF (x_cls_rec.attribute5 = okl_api.G_MISS_CHAR)
1386 THEN
1387 x_cls_rec.attribute5 := l_cls_rec.attribute5;
1388 END IF;
1389 IF (x_cls_rec.attribute6 = okl_api.G_MISS_CHAR)
1390 THEN
1391 x_cls_rec.attribute6 := l_cls_rec.attribute6;
1392 END IF;
1393 IF (x_cls_rec.attribute7 = okl_api.G_MISS_CHAR)
1394 THEN
1395 x_cls_rec.attribute7 := l_cls_rec.attribute7;
1396 END IF;
1397 IF (x_cls_rec.attribute8 = okl_api.G_MISS_CHAR)
1398 THEN
1399 x_cls_rec.attribute8 := l_cls_rec.attribute8;
1400 END IF;
1401 IF (x_cls_rec.attribute9 = okl_api.G_MISS_CHAR)
1402 THEN
1403 x_cls_rec.attribute9 := l_cls_rec.attribute9;
1404 END IF;
1405 IF (x_cls_rec.attribute10 = okl_api.G_MISS_CHAR)
1406 THEN
1407 x_cls_rec.attribute10 := l_cls_rec.attribute10;
1408 END IF;
1409 IF (x_cls_rec.attribute11 = okl_api.G_MISS_CHAR)
1410 THEN
1411 x_cls_rec.attribute11 := l_cls_rec.attribute11;
1412 END IF;
1413 IF (x_cls_rec.attribute12 = okl_api.G_MISS_CHAR)
1414 THEN
1415 x_cls_rec.attribute12 := l_cls_rec.attribute12;
1416 END IF;
1417 IF (x_cls_rec.attribute13 = okl_api.G_MISS_CHAR)
1418 THEN
1419 x_cls_rec.attribute13 := l_cls_rec.attribute13;
1420 END IF;
1421 IF (x_cls_rec.attribute14 = okl_api.G_MISS_CHAR)
1422 THEN
1423 x_cls_rec.attribute14 := l_cls_rec.attribute14;
1424 END IF;
1425 IF (x_cls_rec.attribute15 = okl_api.G_MISS_CHAR)
1426 THEN
1427 x_cls_rec.attribute15 := l_cls_rec.attribute15;
1428 END IF;
1429 IF (x_cls_rec.created_by = okl_api.G_MISS_NUM)
1430 THEN
1431 x_cls_rec.created_by := l_cls_rec.created_by;
1432 END IF;
1433 IF (x_cls_rec.creation_date = okl_api.G_MISS_DATE)
1434 THEN
1435 x_cls_rec.creation_date := l_cls_rec.creation_date;
1436 END IF;
1437 IF (x_cls_rec.last_updated_by = okl_api.G_MISS_NUM)
1438 THEN
1439 x_cls_rec.last_updated_by := l_cls_rec.last_updated_by;
1440 END IF;
1441 IF (x_cls_rec.last_update_date = okl_api.G_MISS_DATE)
1442 THEN
1443 x_cls_rec.last_update_date := l_cls_rec.last_update_date;
1444 END IF;
1445 IF (x_cls_rec.last_update_login = okl_api.G_MISS_NUM)
1446 THEN
1447 x_cls_rec.last_update_login := l_cls_rec.last_update_login;
1448 END IF;
1449 RETURN(l_return_status);
1450 END populate_new_record;
1451 ------------------------------------------
1452 -- Set_Attributes for:OKL_CRTRN_LNSTYLS --
1453 ------------------------------------------
1454 FUNCTION Set_Attributes (
1455 p_cls_rec IN cls_rec_type,
1456 x_cls_rec OUT NOCOPY cls_rec_type
1457 ) RETURN VARCHAR2 IS
1458 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1459 BEGIN
1460 x_cls_rec := p_cls_rec;
1461 RETURN(l_return_status);
1462 END Set_Attributes;
1463 BEGIN
1464 l_return_status := okl_api.START_ACTIVITY(l_api_name,
1465 p_init_msg_list,
1466 '_PVT',
1467 x_return_status);
1468 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1469 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1470 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1471 RAISE okl_api.G_EXCEPTION_ERROR;
1472 END IF;
1473 --- Setting item attributes
1474 l_return_status := Set_Attributes(
1475 p_cls_rec, -- IN
1476 l_cls_rec); -- OUT
1477 --- If any errors happen abort API
1478 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1479 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1480 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1481 RAISE okl_api.G_EXCEPTION_ERROR;
1482 END IF;
1483 l_return_status := populate_new_record(l_cls_rec, l_def_cls_rec);
1484 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1485 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1486 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1487 RAISE okl_api.G_EXCEPTION_ERROR;
1488 END IF;
1489 UPDATE OKL_CRTRN_LNSTYLS
1490 SET CRN_ID = l_def_cls_rec.crn_id,
1491 LSE_ID = l_def_cls_rec.lse_id,
1492 OBJECT_VERSION_NUMBER = l_def_cls_rec.object_version_number,
1493 ATTRIBUTE_CATEGORY = l_def_cls_rec.attribute_category,
1494 ATTRIBUTE1 = l_def_cls_rec.attribute1,
1495 ATTRIBUTE2 = l_def_cls_rec.attribute2,
1496 ATTRIBUTE3 = l_def_cls_rec.attribute3,
1497 ATTRIBUTE4 = l_def_cls_rec.attribute4,
1498 ATTRIBUTE5 = l_def_cls_rec.attribute5,
1499 ATTRIBUTE6 = l_def_cls_rec.attribute6,
1500 ATTRIBUTE7 = l_def_cls_rec.attribute7,
1501 ATTRIBUTE8 = l_def_cls_rec.attribute8,
1502 ATTRIBUTE9 = l_def_cls_rec.attribute9,
1503 ATTRIBUTE10 = l_def_cls_rec.attribute10,
1504 ATTRIBUTE11 = l_def_cls_rec.attribute11,
1505 ATTRIBUTE12 = l_def_cls_rec.attribute12,
1506 ATTRIBUTE13 = l_def_cls_rec.attribute13,
1507 ATTRIBUTE14 = l_def_cls_rec.attribute14,
1508 ATTRIBUTE15 = l_def_cls_rec.attribute15,
1509 CREATED_BY = l_def_cls_rec.created_by,
1510 CREATION_DATE = l_def_cls_rec.creation_date,
1511 LAST_UPDATED_BY = l_def_cls_rec.last_updated_by,
1512 LAST_UPDATE_DATE = l_def_cls_rec.last_update_date,
1513 LAST_UPDATE_LOGIN = l_def_cls_rec.last_update_login
1514 WHERE ID = l_def_cls_rec.id;
1515
1516 x_cls_rec := l_def_cls_rec;
1517 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
1518 EXCEPTION
1519 WHEN okl_api.G_EXCEPTION_ERROR THEN
1520 x_return_status := okl_api.HANDLE_EXCEPTIONS
1521 (
1522 l_api_name,
1523 G_PKG_NAME,
1524 'okl_api.G_RET_STS_ERROR',
1525 x_msg_count,
1526 x_msg_data,
1527 '_PVT'
1528 );
1529 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1530 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1531 (
1532 l_api_name,
1533 G_PKG_NAME,
1534 'okl_api.G_RET_STS_UNEXP_ERROR',
1535 x_msg_count,
1536 x_msg_data,
1537 '_PVT'
1538 );
1539 WHEN OTHERS THEN
1540 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1541 (
1542 l_api_name,
1543 G_PKG_NAME,
1544 'OTHERS',
1545 x_msg_count,
1546 x_msg_data,
1547 '_PVT'
1548 );
1549 END update_row;
1550 ----------------------------------------
1551 -- update_row for:OKL_CRTRN_LNSTYLS_V --
1552 ----------------------------------------
1553 PROCEDURE update_row(
1554 p_api_version IN NUMBER,
1555 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1556 x_return_status OUT NOCOPY VARCHAR2,
1557 x_msg_count OUT NOCOPY NUMBER,
1558 x_msg_data OUT NOCOPY VARCHAR2,
1559 p_clsv_rec IN clsv_rec_type,
1560 x_clsv_rec OUT NOCOPY clsv_rec_type) IS
1561
1562 l_api_version CONSTANT NUMBER := 1;
1563 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
1564 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1565 l_clsv_rec clsv_rec_type := p_clsv_rec;
1566 l_def_clsv_rec clsv_rec_type;
1567 l_cls_rec cls_rec_type;
1568 lx_cls_rec cls_rec_type;
1569 -------------------------------
1570 -- FUNCTION fill_who_columns --
1571 -------------------------------
1572 FUNCTION fill_who_columns (
1573 p_clsv_rec IN clsv_rec_type
1574 ) RETURN clsv_rec_type IS
1575 l_clsv_rec clsv_rec_type := p_clsv_rec;
1576 BEGIN
1577 l_clsv_rec.LAST_UPDATE_DATE := SYSDATE;
1578 l_clsv_rec.LAST_UPDATED_BY := Fnd_Global.USER_ID;
1579 l_clsv_rec.LAST_UPDATE_LOGIN := Fnd_Global.LOGIN_ID;
1580 RETURN(l_clsv_rec);
1581 END fill_who_columns;
1582 ----------------------------------
1583 -- FUNCTION populate_new_record --
1584 ----------------------------------
1585 FUNCTION populate_new_record (
1586 p_clsv_rec IN clsv_rec_type,
1587 x_clsv_rec OUT NOCOPY clsv_rec_type
1588 ) RETURN VARCHAR2 IS
1589 l_clsv_rec clsv_rec_type;
1590 l_row_notfound BOOLEAN := TRUE;
1591 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1592 BEGIN
1593 x_clsv_rec := p_clsv_rec;
1594 -- Get current database values
1595 l_clsv_rec := get_rec(p_clsv_rec, l_row_notfound);
1596 IF (l_row_notfound) THEN
1597 l_return_status := okl_api.G_RET_STS_UNEXP_ERROR;
1598 END IF;
1599 IF (x_clsv_rec.id = okl_api.G_MISS_NUM)
1600 THEN
1601 x_clsv_rec.id := l_clsv_rec.id;
1602 END IF;
1603 IF (x_clsv_rec.object_version_number = okl_api.G_MISS_NUM)
1604 THEN
1605 x_clsv_rec.object_version_number := l_clsv_rec.object_version_number;
1606 END IF;
1607 IF (x_clsv_rec.crn_id = okl_api.G_MISS_NUM)
1608 THEN
1609 x_clsv_rec.crn_id := l_clsv_rec.crn_id;
1610 END IF;
1611 IF (x_clsv_rec.lse_id = okl_api.G_MISS_NUM)
1612 THEN
1613 x_clsv_rec.lse_id := l_clsv_rec.lse_id;
1614 END IF;
1615 IF (x_clsv_rec.attribute_category = okl_api.G_MISS_CHAR)
1616 THEN
1617 x_clsv_rec.attribute_category := l_clsv_rec.attribute_category;
1618 END IF;
1619 IF (x_clsv_rec.attribute1 = okl_api.G_MISS_CHAR)
1620 THEN
1621 x_clsv_rec.attribute1 := l_clsv_rec.attribute1;
1622 END IF;
1623 IF (x_clsv_rec.attribute2 = okl_api.G_MISS_CHAR)
1624 THEN
1625 x_clsv_rec.attribute2 := l_clsv_rec.attribute2;
1626 END IF;
1627 IF (x_clsv_rec.attribute3 = okl_api.G_MISS_CHAR)
1628 THEN
1629 x_clsv_rec.attribute3 := l_clsv_rec.attribute3;
1630 END IF;
1631 IF (x_clsv_rec.attribute4 = okl_api.G_MISS_CHAR)
1632 THEN
1633 x_clsv_rec.attribute4 := l_clsv_rec.attribute4;
1634 END IF;
1635 IF (x_clsv_rec.attribute5 = okl_api.G_MISS_CHAR)
1636 THEN
1637 x_clsv_rec.attribute5 := l_clsv_rec.attribute5;
1638 END IF;
1639 IF (x_clsv_rec.attribute6 = okl_api.G_MISS_CHAR)
1640 THEN
1641 x_clsv_rec.attribute6 := l_clsv_rec.attribute6;
1642 END IF;
1643 IF (x_clsv_rec.attribute7 = okl_api.G_MISS_CHAR)
1644 THEN
1645 x_clsv_rec.attribute7 := l_clsv_rec.attribute7;
1646 END IF;
1647 IF (x_clsv_rec.attribute8 = okl_api.G_MISS_CHAR)
1648 THEN
1649 x_clsv_rec.attribute8 := l_clsv_rec.attribute8;
1650 END IF;
1651 IF (x_clsv_rec.attribute9 = okl_api.G_MISS_CHAR)
1652 THEN
1653 x_clsv_rec.attribute9 := l_clsv_rec.attribute9;
1654 END IF;
1655 IF (x_clsv_rec.attribute10 = okl_api.G_MISS_CHAR)
1656 THEN
1657 x_clsv_rec.attribute10 := l_clsv_rec.attribute10;
1658 END IF;
1659 IF (x_clsv_rec.attribute11 = okl_api.G_MISS_CHAR)
1660 THEN
1661 x_clsv_rec.attribute11 := l_clsv_rec.attribute11;
1662 END IF;
1663 IF (x_clsv_rec.attribute12 = okl_api.G_MISS_CHAR)
1664 THEN
1665 x_clsv_rec.attribute12 := l_clsv_rec.attribute12;
1666 END IF;
1667 IF (x_clsv_rec.attribute13 = okl_api.G_MISS_CHAR)
1668 THEN
1669 x_clsv_rec.attribute13 := l_clsv_rec.attribute13;
1670 END IF;
1671 IF (x_clsv_rec.attribute14 = okl_api.G_MISS_CHAR)
1672 THEN
1673 x_clsv_rec.attribute14 := l_clsv_rec.attribute14;
1674 END IF;
1675 IF (x_clsv_rec.attribute15 = okl_api.G_MISS_CHAR)
1676 THEN
1677 x_clsv_rec.attribute15 := l_clsv_rec.attribute15;
1678 END IF;
1679 IF (x_clsv_rec.created_by = okl_api.G_MISS_NUM)
1680 THEN
1681 x_clsv_rec.created_by := l_clsv_rec.created_by;
1682 END IF;
1683 IF (x_clsv_rec.creation_date = okl_api.G_MISS_DATE)
1684 THEN
1685 x_clsv_rec.creation_date := l_clsv_rec.creation_date;
1686 END IF;
1687 IF (x_clsv_rec.last_updated_by = okl_api.G_MISS_NUM)
1688 THEN
1689 x_clsv_rec.last_updated_by := l_clsv_rec.last_updated_by;
1690 END IF;
1691 IF (x_clsv_rec.last_update_date = okl_api.G_MISS_DATE)
1692 THEN
1693 x_clsv_rec.last_update_date := l_clsv_rec.last_update_date;
1694 END IF;
1695 IF (x_clsv_rec.last_update_login = okl_api.G_MISS_NUM)
1696 THEN
1697 x_clsv_rec.last_update_login := l_clsv_rec.last_update_login;
1698 END IF;
1699 RETURN(l_return_status);
1700 END populate_new_record;
1701 --------------------------------------------
1702 -- Set_Attributes for:OKL_CRTRN_LNSTYLS_V --
1703 --------------------------------------------
1704 FUNCTION Set_Attributes (
1705 p_clsv_rec IN clsv_rec_type,
1706 x_clsv_rec OUT NOCOPY clsv_rec_type
1707 ) RETURN VARCHAR2 IS
1708 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1709 BEGIN
1710 x_clsv_rec := p_clsv_rec;
1711 x_clsv_rec.OBJECT_VERSION_NUMBER := NVL(x_clsv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
1712 RETURN(l_return_status);
1713 END Set_Attributes;
1714 BEGIN
1715 l_return_status := okl_api.START_ACTIVITY(l_api_name,
1716 G_PKG_NAME,
1717 p_init_msg_list,
1718 l_api_version,
1719 p_api_version,
1720 '_PVT',
1721 x_return_status);
1722 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1723 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1724 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1725 RAISE okl_api.G_EXCEPTION_ERROR;
1726 END IF;
1727 --- Setting item attributes
1728 l_return_status := Set_Attributes(
1729 p_clsv_rec, -- IN
1730 l_clsv_rec); -- OUT
1731 --- If any errors happen abort API
1732 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1733 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1734 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1735 RAISE okl_api.G_EXCEPTION_ERROR;
1736 END IF;
1737 l_return_status := populate_new_record(l_clsv_rec, l_def_clsv_rec);
1738 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1739 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1740 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1741 RAISE okl_api.G_EXCEPTION_ERROR;
1742 END IF;
1743 l_def_clsv_rec := fill_who_columns(l_def_clsv_rec);
1744 --- Validate all non-missing attributes (Item Level Validation)
1745 l_return_status := Validate_Attributes(l_def_clsv_rec);
1746 --- If any errors happen abort API
1747 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1748 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1749 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1750 RAISE okl_api.G_EXCEPTION_ERROR;
1751 END IF;
1752 l_return_status := Validate_Record(l_def_clsv_rec);
1753 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1754 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1755 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1756 RAISE okl_api.G_EXCEPTION_ERROR;
1757 END IF;
1758
1759 --------------------------------------
1760 -- Move VIEW record to "Child" records
1761 --------------------------------------
1762 migrate(l_def_clsv_rec, l_cls_rec);
1763 --------------------------------------------
1764 -- Call the UPDATE_ROW for each child record
1765 --------------------------------------------
1766 update_row(
1767 p_init_msg_list,
1768 x_return_status,
1769 x_msg_count,
1770 x_msg_data,
1771 l_cls_rec,
1772 lx_cls_rec
1773 );
1774 IF (x_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1775 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1776 ELSIF (x_return_status = okl_api.G_RET_STS_ERROR) THEN
1777 RAISE okl_api.G_EXCEPTION_ERROR;
1778 END IF;
1779 migrate(lx_cls_rec, l_def_clsv_rec);
1780 x_clsv_rec := l_def_clsv_rec;
1781 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
1782 EXCEPTION
1783 WHEN okl_api.G_EXCEPTION_ERROR THEN
1784 x_return_status := okl_api.HANDLE_EXCEPTIONS
1785 (
1786 l_api_name,
1787 G_PKG_NAME,
1788 'okl_api.G_RET_STS_ERROR',
1789 x_msg_count,
1790 x_msg_data,
1791 '_PVT'
1792 );
1793 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1794 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1795 (
1796 l_api_name,
1797 G_PKG_NAME,
1798 'okl_api.G_RET_STS_UNEXP_ERROR',
1799 x_msg_count,
1800 x_msg_data,
1801 '_PVT'
1802 );
1803 WHEN OTHERS THEN
1804 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1805 (
1806 l_api_name,
1807 G_PKG_NAME,
1808 'OTHERS',
1809 x_msg_count,
1810 x_msg_data,
1811 '_PVT'
1812 );
1813 END update_row;
1814 ----------------------------------------
1815 -- PL/SQL TBL update_row for:CLSV_TBL --
1816 ----------------------------------------
1817 PROCEDURE update_row(
1818 p_api_version IN NUMBER,
1819 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1820 x_return_status OUT NOCOPY VARCHAR2,
1821 x_msg_count OUT NOCOPY NUMBER,
1822 x_msg_data OUT NOCOPY VARCHAR2,
1823 p_clsv_tbl IN clsv_tbl_type,
1824 x_clsv_tbl OUT NOCOPY clsv_tbl_type) IS
1825
1826 l_api_version CONSTANT NUMBER := 1;
1827 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
1828 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1829 i NUMBER := 0;
1830 BEGIN
1831 okl_api.init_msg_list(p_init_msg_list);
1832 -- Make sure PL/SQL table has records in it before passing
1833 IF (p_clsv_tbl.COUNT > 0) THEN
1834 i := p_clsv_tbl.FIRST;
1835 LOOP
1836 update_row (
1837 p_api_version => p_api_version,
1838 p_init_msg_list => okl_api.G_FALSE,
1839 x_return_status => x_return_status,
1840 x_msg_count => x_msg_count,
1841 x_msg_data => x_msg_data,
1842 p_clsv_rec => p_clsv_tbl(i),
1843 x_clsv_rec => x_clsv_tbl(i));
1844 EXIT WHEN (i = p_clsv_tbl.LAST);
1845 i := p_clsv_tbl.NEXT(i);
1846 END LOOP;
1847 END IF;
1848 EXCEPTION
1849 WHEN okl_api.G_EXCEPTION_ERROR THEN
1850 x_return_status := okl_api.HANDLE_EXCEPTIONS
1851 (
1852 l_api_name,
1853 G_PKG_NAME,
1854 'okl_api.G_RET_STS_ERROR',
1855 x_msg_count,
1856 x_msg_data,
1857 '_PVT'
1858 );
1859 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1860 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1861 (
1862 l_api_name,
1863 G_PKG_NAME,
1864 'okl_api.G_RET_STS_UNEXP_ERROR',
1865 x_msg_count,
1866 x_msg_data,
1867 '_PVT'
1868 );
1869 WHEN OTHERS THEN
1870 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1871 (
1872 l_api_name,
1873 G_PKG_NAME,
1874 'OTHERS',
1875 x_msg_count,
1876 x_msg_data,
1877 '_PVT'
1878 );
1879 END update_row;
1880
1881 ---------------------------------------------------------------------------
1882 -- PROCEDURE delete_row
1883 ---------------------------------------------------------------------------
1884 --------------------------------------
1885 -- delete_row for:OKL_CRTRN_LNSTYLS --
1886 --------------------------------------
1887 PROCEDURE delete_row(
1888 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1889 x_return_status OUT NOCOPY VARCHAR2,
1890 x_msg_count OUT NOCOPY NUMBER,
1891 x_msg_data OUT NOCOPY VARCHAR2,
1892 p_cls_rec IN cls_rec_type) IS
1893
1894 l_api_version CONSTANT NUMBER := 1;
1895 l_api_name CONSTANT VARCHAR2(30) := 'LNSTYLS_delete_row';
1896 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1897 l_cls_rec cls_rec_type:= p_cls_rec;
1898 l_row_notfound BOOLEAN := TRUE;
1899 BEGIN
1900 l_return_status := okl_api.START_ACTIVITY(l_api_name,
1901 p_init_msg_list,
1902 '_PVT',
1903 x_return_status);
1904 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1905 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1906 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1907 RAISE okl_api.G_EXCEPTION_ERROR;
1908 END IF;
1909 DELETE FROM OKL_CRTRN_LNSTYLS
1910 WHERE ID = l_cls_rec.id;
1911
1912 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
1913 EXCEPTION
1914 WHEN okl_api.G_EXCEPTION_ERROR THEN
1915 x_return_status := okl_api.HANDLE_EXCEPTIONS
1916 (
1917 l_api_name,
1918 G_PKG_NAME,
1919 'okl_api.G_RET_STS_ERROR',
1920 x_msg_count,
1921 x_msg_data,
1922 '_PVT'
1923 );
1924 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1925 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1926 (
1927 l_api_name,
1928 G_PKG_NAME,
1929 'okl_api.G_RET_STS_UNEXP_ERROR',
1930 x_msg_count,
1931 x_msg_data,
1932 '_PVT'
1933 );
1934 WHEN OTHERS THEN
1935 x_return_status :=okl_api.HANDLE_EXCEPTIONS
1936 (
1937 l_api_name,
1938 G_PKG_NAME,
1939 'OTHERS',
1940 x_msg_count,
1941 x_msg_data,
1942 '_PVT'
1943 );
1944 END delete_row;
1945 ----------------------------------------
1946 -- delete_row for:OKL_CRTRN_LNSTYLS_V --
1947 ----------------------------------------
1948 PROCEDURE delete_row(
1949 p_api_version IN NUMBER,
1950 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
1951 x_return_status OUT NOCOPY VARCHAR2,
1952 x_msg_count OUT NOCOPY NUMBER,
1953 x_msg_data OUT NOCOPY VARCHAR2,
1954 p_clsv_rec IN clsv_rec_type) IS
1955
1956 l_api_version CONSTANT NUMBER := 1;
1957 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
1958 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
1959 l_clsv_rec clsv_rec_type := p_clsv_rec;
1960 l_cls_rec cls_rec_type;
1961 BEGIN
1962 l_return_status := okl_api.START_ACTIVITY(l_api_name,
1963 G_PKG_NAME,
1964 p_init_msg_list,
1965 l_api_version,
1966 p_api_version,
1967 '_PVT',
1968 x_return_status);
1969 IF (l_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1970 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1971 ELSIF (l_return_status = okl_api.G_RET_STS_ERROR) THEN
1972 RAISE okl_api.G_EXCEPTION_ERROR;
1973 END IF;
1974 --------------------------------------
1975 -- Move VIEW record to "Child" records
1976 --------------------------------------
1977 migrate(l_clsv_rec, l_cls_rec);
1978 --------------------------------------------
1979 -- Call the DELETE_ROW for each child record
1980 --------------------------------------------
1981 delete_row(
1982 p_init_msg_list,
1983 x_return_status,
1984 x_msg_count,
1985 x_msg_data,
1986 l_cls_rec
1987 );
1988 IF (x_return_status = okl_api.G_RET_STS_UNEXP_ERROR) THEN
1989 RAISE okl_api.G_EXCEPTION_UNEXPECTED_ERROR;
1990 ELSIF (x_return_status = okl_api.G_RET_STS_ERROR) THEN
1991 RAISE okl_api.G_EXCEPTION_ERROR;
1992 END IF;
1993 okl_api.END_ACTIVITY(x_msg_count, x_msg_data);
1994 EXCEPTION
1995 WHEN okl_api.G_EXCEPTION_ERROR THEN
1996 x_return_status := okl_api.HANDLE_EXCEPTIONS
1997 (
1998 l_api_name,
1999 G_PKG_NAME,
2000 'okl_api.G_RET_STS_ERROR',
2001 x_msg_count,
2002 x_msg_data,
2003 '_PVT'
2004 );
2005 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2006 x_return_status :=okl_api.HANDLE_EXCEPTIONS
2007 (
2008 l_api_name,
2009 G_PKG_NAME,
2010 'okl_api.G_RET_STS_UNEXP_ERROR',
2011 x_msg_count,
2012 x_msg_data,
2013 '_PVT'
2014 );
2015 WHEN OTHERS THEN
2016 x_return_status :=okl_api.HANDLE_EXCEPTIONS
2017 (
2018 l_api_name,
2019 G_PKG_NAME,
2020 'OTHERS',
2021 x_msg_count,
2022 x_msg_data,
2023 '_PVT'
2024 );
2025 END delete_row;
2026 ----------------------------------------
2027 -- PL/SQL TBL delete_row for:CLSV_TBL --
2028 ----------------------------------------
2029 PROCEDURE delete_row(
2030 p_api_version IN NUMBER,
2031 p_init_msg_list IN VARCHAR2 DEFAULT okl_api.G_FALSE,
2032 x_return_status OUT NOCOPY VARCHAR2,
2033 x_msg_count OUT NOCOPY NUMBER,
2034 x_msg_data OUT NOCOPY VARCHAR2,
2035 p_clsv_tbl IN clsv_tbl_type) IS
2036
2037 l_api_version CONSTANT NUMBER := 1;
2038 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2039 l_return_status VARCHAR2(1) := okl_api.G_RET_STS_SUCCESS;
2040 i NUMBER := 0;
2041 BEGIN
2042 okl_api.init_msg_list(p_init_msg_list);
2043 -- Make sure PL/SQL table has records in it before passing
2044 IF (p_clsv_tbl.COUNT > 0) THEN
2045 i := p_clsv_tbl.FIRST;
2046 LOOP
2047 delete_row (
2048 p_api_version => p_api_version,
2049 p_init_msg_list => okl_api.G_FALSE,
2050 x_return_status => x_return_status,
2051 x_msg_count => x_msg_count,
2052 x_msg_data => x_msg_data,
2053 p_clsv_rec => p_clsv_tbl(i));
2054 EXIT WHEN (i = p_clsv_tbl.LAST);
2055 i := p_clsv_tbl.NEXT(i);
2056 END LOOP;
2057 END IF;
2058 EXCEPTION
2059 WHEN okl_api.G_EXCEPTION_ERROR THEN
2060 x_return_status := okl_api.HANDLE_EXCEPTIONS
2061 (
2062 l_api_name,
2063 G_PKG_NAME,
2064 'okl_api.G_RET_STS_ERROR',
2065 x_msg_count,
2066 x_msg_data,
2067 '_PVT'
2068 );
2069 WHEN okl_api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2070 x_return_status :=okl_api.HANDLE_EXCEPTIONS
2071 (
2072 l_api_name,
2073 G_PKG_NAME,
2074 'okl_api.G_RET_STS_UNEXP_ERROR',
2075 x_msg_count,
2076 x_msg_data,
2077 '_PVT'
2078 );
2079 WHEN OTHERS THEN
2080 x_return_status :=Okl_Api.HANDLE_EXCEPTIONS
2081 (
2082 l_api_name,
2083 G_PKG_NAME,
2084 'OTHERS',
2085 x_msg_count,
2086 x_msg_data,
2087 '_PVT'
2088 );
2089 END delete_row;
2090 END Okl_Cls_Pvt;