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