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