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