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