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