[Home] [Help]
PACKAGE BODY: APPS.OKL_FMA_PVT
Source
1 PACKAGE BODY OKL_FMA_PVT AS
2 /* $Header: OKLSFMAB.pls 120.5 2007/01/09 08:42:13 abhsaxen noship $ */
3 ---------------------------------------------------------------------------
4 -- FUNCTION get_seq_id
5 ---------------------------------------------------------------------------
6 FUNCTION get_seq_id RETURN NUMBER IS
7 BEGIN
8 RETURN(okc_p_util.raw_to_number(sys_guid()));
9 END get_seq_id;
10
11 ---------------------------------------------------------------------------
12 -- PROCEDURE qc
13 ---------------------------------------------------------------------------
14 PROCEDURE qc IS
15 BEGIN
16 null;
17 END qc;
18
19 ---------------------------------------------------------------------------
20 -- PROCEDURE change_version
21 ---------------------------------------------------------------------------
22 PROCEDURE change_version IS
23 BEGIN
24 null;
25 END change_version;
26
27 ---------------------------------------------------------------------------
28 -- PROCEDURE api_copy
29 ---------------------------------------------------------------------------
30 PROCEDURE api_copy IS
31 BEGIN
32 null;
33 END api_copy;
34
35 ---------------------------------------------------------------------------
36 -- PROCEDURE add_language
37 ---------------------------------------------------------------------------
38 PROCEDURE add_language IS
39 BEGIN
40 DELETE FROM OKL_FORMULAE_TL T
41 WHERE NOT EXISTS (
42 SELECT NULL
43 FROM OKL_FORMULAE_B B --fixed bug 3321017 by kmotepal
44 WHERE B.ID = T.ID
45 );
46
47 UPDATE OKL_FORMULAE_TL T SET (
48 DESCRIPTION) = (SELECT
49 B.DESCRIPTION
50 FROM OKL_FORMULAE_TL B
51 WHERE B.ID = T.ID
52 AND B.LANGUAGE = T.SOURCE_LANG)
53 WHERE (
54 T.ID,
55 T.LANGUAGE)
56 IN (SELECT
57 SUBT.ID,
58 SUBT.LANGUAGE
59 FROM OKL_FORMULAE_TL SUBB, OKL_FORMULAE_TL SUBT
60 WHERE SUBB.ID = SUBT.ID
61 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
62 AND (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
63 OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
64 OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
65 ));
66
67 INSERT INTO OKL_FORMULAE_TL (
68 ID,
69 LANGUAGE,
70 SOURCE_LANG,
71 SFWT_FLAG,
72 DESCRIPTION,
73 CREATED_BY,
74 CREATION_DATE,
75 LAST_UPDATED_BY,
76 LAST_UPDATE_DATE,
77 LAST_UPDATE_LOGIN)
78 SELECT
79 B.ID,
80 L.LANGUAGE_CODE,
81 B.SOURCE_LANG,
82 B.SFWT_FLAG,
83 B.DESCRIPTION,
84 B.CREATED_BY,
85 B.CREATION_DATE,
86 B.LAST_UPDATED_BY,
87 B.LAST_UPDATE_DATE,
88 B.LAST_UPDATE_LOGIN
89 FROM OKL_FORMULAE_TL B, FND_LANGUAGES L
90 WHERE L.INSTALLED_FLAG IN ('I', 'B')
91 AND B.LANGUAGE = USERENV('LANG')
92 AND NOT EXISTS(
93 SELECT NULL
94 FROM OKL_FORMULAE_TL T
95 WHERE T.ID = B.ID
96 AND T.LANGUAGE = L.LANGUAGE_CODE
97 );
98
99 END add_language;
100
101 ---------------------------------------------------------------------------
102 -- FUNCTION get_rec for: OKL_FORMULAE_B
103 ---------------------------------------------------------------------------
104 FUNCTION get_rec (
105 p_fma_rec IN fma_rec_type,
106 x_no_data_found OUT NOCOPY BOOLEAN
107 ) RETURN fma_rec_type IS
108 CURSOR okl_formulae_b_pk_csr (p_id IN NUMBER) IS
109 SELECT
110 ID,
111 NAME,
112 ORG_ID,
113 THERE_CAN_BE_ONLY_ONE_YN,
114 CGR_ID,
115 FYP_CODE,
116 VERSION,
117 FORMULA_STRING,
118 OBJECT_VERSION_NUMBER,
119 START_DATE,
120 ATTRIBUTE_CATEGORY,
121 END_DATE,
122 ATTRIBUTE1,
123 ATTRIBUTE2,
124 ATTRIBUTE3,
125 ATTRIBUTE4,
126 ATTRIBUTE5,
127 ATTRIBUTE6,
128 ATTRIBUTE7,
129 ATTRIBUTE8,
130 ATTRIBUTE9,
131 ATTRIBUTE10,
132 ATTRIBUTE11,
133 ATTRIBUTE12,
134 ATTRIBUTE13,
135 ATTRIBUTE14,
136 ATTRIBUTE15,
137 CREATED_BY,
138 CREATION_DATE,
139 LAST_UPDATED_BY,
140 LAST_UPDATE_DATE,
141 LAST_UPDATE_LOGIN
142 FROM Okl_Formulae_B
143 WHERE okl_formulae_b.id = p_id;
144 l_okl_formulae_b_pk okl_formulae_b_pk_csr%ROWTYPE;
145 l_fma_rec fma_rec_type;
146 BEGIN
147 x_no_data_found := TRUE;
148 -- Get current database values
149 OPEN okl_formulae_b_pk_csr (p_fma_rec.id);
150 FETCH okl_formulae_b_pk_csr INTO
151 l_fma_rec.ID,
152 l_fma_rec.NAME,
153 l_fma_rec.ORG_ID,
154 l_fma_rec.THERE_CAN_BE_ONLY_ONE_YN,
155 l_fma_rec.CGR_ID,
156 l_fma_rec.FYP_CODE,
157 l_fma_rec.VERSION,
158 l_fma_rec.FORMULA_STRING,
159 l_fma_rec.OBJECT_VERSION_NUMBER,
160 l_fma_rec.START_DATE,
161 l_fma_rec.ATTRIBUTE_CATEGORY,
162 l_fma_rec.END_DATE,
163 l_fma_rec.ATTRIBUTE1,
164 l_fma_rec.ATTRIBUTE2,
165 l_fma_rec.ATTRIBUTE3,
166 l_fma_rec.ATTRIBUTE4,
167 l_fma_rec.ATTRIBUTE5,
168 l_fma_rec.ATTRIBUTE6,
169 l_fma_rec.ATTRIBUTE7,
170 l_fma_rec.ATTRIBUTE8,
171 l_fma_rec.ATTRIBUTE9,
172 l_fma_rec.ATTRIBUTE10,
173 l_fma_rec.ATTRIBUTE11,
174 l_fma_rec.ATTRIBUTE12,
175 l_fma_rec.ATTRIBUTE13,
176 l_fma_rec.ATTRIBUTE14,
177 l_fma_rec.ATTRIBUTE15,
178 l_fma_rec.CREATED_BY,
179 l_fma_rec.CREATION_DATE,
180 l_fma_rec.LAST_UPDATED_BY,
181 l_fma_rec.LAST_UPDATE_DATE,
182 l_fma_rec.LAST_UPDATE_LOGIN;
183 x_no_data_found := okl_formulae_b_pk_csr%NOTFOUND;
184 CLOSE okl_formulae_b_pk_csr;
185 RETURN(l_fma_rec);
186 END get_rec;
187
188 FUNCTION get_rec (
189 p_fma_rec IN fma_rec_type
190 ) RETURN fma_rec_type IS
191 l_row_notfound BOOLEAN := TRUE;
192 BEGIN
193 RETURN(get_rec(p_fma_rec, l_row_notfound));
194 END get_rec;
195 ---------------------------------------------------------------------------
196 -- FUNCTION get_rec for: OKL_FORMULAE_TL
197 ---------------------------------------------------------------------------
198 FUNCTION get_rec (
199 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
200 x_no_data_found OUT NOCOPY BOOLEAN
201 ) RETURN okl_formulae_tl_rec_type IS
202 CURSOR okl_formulae_tl_pk_csr (p_id IN NUMBER,
203 p_language IN VARCHAR2) IS
204 SELECT
205 ID,
206 LANGUAGE,
207 SOURCE_LANG,
208 SFWT_FLAG,
209 DESCRIPTION,
210 CREATED_BY,
211 CREATION_DATE,
212 LAST_UPDATED_BY,
213 LAST_UPDATE_DATE,
214 LAST_UPDATE_LOGIN
215 FROM Okl_Formulae_Tl
216 WHERE okl_formulae_tl.id = p_id
217 AND okl_formulae_tl.language = p_language;
218 l_okl_formulae_tl_pk okl_formulae_tl_pk_csr%ROWTYPE;
219 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
220 BEGIN
221 x_no_data_found := TRUE;
222 -- Get current database values
223 OPEN okl_formulae_tl_pk_csr (p_okl_formulae_tl_rec.id,
224 p_okl_formulae_tl_rec.language);
225 FETCH okl_formulae_tl_pk_csr INTO
226 l_okl_formulae_tl_rec.ID,
227 l_okl_formulae_tl_rec.LANGUAGE,
228 l_okl_formulae_tl_rec.SOURCE_LANG,
229 l_okl_formulae_tl_rec.SFWT_FLAG,
230 l_okl_formulae_tl_rec.DESCRIPTION,
231 l_okl_formulae_tl_rec.CREATED_BY,
232 l_okl_formulae_tl_rec.CREATION_DATE,
233 l_okl_formulae_tl_rec.LAST_UPDATED_BY,
234 l_okl_formulae_tl_rec.LAST_UPDATE_DATE,
235 l_okl_formulae_tl_rec.LAST_UPDATE_LOGIN;
236 x_no_data_found := okl_formulae_tl_pk_csr%NOTFOUND;
237 CLOSE okl_formulae_tl_pk_csr;
238 RETURN(l_okl_formulae_tl_rec);
239 END get_rec;
240
241 FUNCTION get_rec (
242 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type
243 ) RETURN okl_formulae_tl_rec_type IS
244 l_row_notfound BOOLEAN := TRUE;
245 BEGIN
246 RETURN(get_rec(p_okl_formulae_tl_rec, l_row_notfound));
247 END get_rec;
248 ---------------------------------------------------------------------------
249 -- FUNCTION get_rec for: OKL_FORMULAE_V
250 ---------------------------------------------------------------------------
251 FUNCTION get_rec (
252 p_fmav_rec IN fmav_rec_type,
253 x_no_data_found OUT NOCOPY BOOLEAN
254 ) RETURN fmav_rec_type IS
255 CURSOR okl_fmav_pk_csr (p_id IN NUMBER) IS
256 SELECT
257 ID,
258 OBJECT_VERSION_NUMBER,
259 SFWT_FLAG,
260 CGR_ID,
261 FYP_CODE,
262 NAME,
263 FORMULA_STRING,
264 DESCRIPTION,
265 VERSION,
266 START_DATE,
267 END_DATE,
268 ATTRIBUTE_CATEGORY,
269 ATTRIBUTE1,
270 ATTRIBUTE2,
271 ATTRIBUTE3,
272 ATTRIBUTE4,
273 ATTRIBUTE5,
274 ATTRIBUTE6,
275 ATTRIBUTE7,
276 ATTRIBUTE8,
277 ATTRIBUTE9,
278 ATTRIBUTE10,
279 ATTRIBUTE11,
280 ATTRIBUTE12,
281 ATTRIBUTE13,
282 ATTRIBUTE14,
283 ATTRIBUTE15,
284 ORG_ID,
285 THERE_CAN_BE_ONLY_ONE_YN,
286 CREATED_BY,
287 CREATION_DATE,
288 LAST_UPDATED_BY,
289 LAST_UPDATE_DATE,
290 LAST_UPDATE_LOGIN
291 FROM Okl_Formulae_V
292 WHERE okl_formulae_v.id = p_id;
293 l_okl_fmav_pk okl_fmav_pk_csr%ROWTYPE;
294 l_fmav_rec fmav_rec_type;
295 BEGIN
296 x_no_data_found := TRUE;
297 -- Get current database values
298 OPEN okl_fmav_pk_csr (p_fmav_rec.id);
299 FETCH okl_fmav_pk_csr INTO
300 l_fmav_rec.ID,
301 l_fmav_rec.OBJECT_VERSION_NUMBER,
302 l_fmav_rec.SFWT_FLAG,
303 l_fmav_rec.CGR_ID,
304 l_fmav_rec.FYP_CODE,
305 l_fmav_rec.NAME,
306 l_fmav_rec.FORMULA_STRING,
307 l_fmav_rec.DESCRIPTION,
308 l_fmav_rec.VERSION,
309 l_fmav_rec.START_DATE,
310 l_fmav_rec.END_DATE,
311 l_fmav_rec.ATTRIBUTE_CATEGORY,
312 l_fmav_rec.ATTRIBUTE1,
313 l_fmav_rec.ATTRIBUTE2,
314 l_fmav_rec.ATTRIBUTE3,
315 l_fmav_rec.ATTRIBUTE4,
316 l_fmav_rec.ATTRIBUTE5,
317 l_fmav_rec.ATTRIBUTE6,
318 l_fmav_rec.ATTRIBUTE7,
319 l_fmav_rec.ATTRIBUTE8,
320 l_fmav_rec.ATTRIBUTE9,
321 l_fmav_rec.ATTRIBUTE10,
322 l_fmav_rec.ATTRIBUTE11,
323 l_fmav_rec.ATTRIBUTE12,
324 l_fmav_rec.ATTRIBUTE13,
325 l_fmav_rec.ATTRIBUTE14,
326 l_fmav_rec.ATTRIBUTE15,
327 l_fmav_rec.ORG_ID,
328 l_fmav_rec.THERE_CAN_BE_ONLY_ONE_YN,
329 l_fmav_rec.CREATED_BY,
330 l_fmav_rec.CREATION_DATE,
331 l_fmav_rec.LAST_UPDATED_BY,
332 l_fmav_rec.LAST_UPDATE_DATE,
333 l_fmav_rec.LAST_UPDATE_LOGIN;
334 x_no_data_found := okl_fmav_pk_csr%NOTFOUND;
335 CLOSE okl_fmav_pk_csr;
336 RETURN(l_fmav_rec);
337 END get_rec;
338
339 FUNCTION get_rec (
340 p_fmav_rec IN fmav_rec_type
341 ) RETURN fmav_rec_type IS
342 l_row_notfound BOOLEAN := TRUE;
343 BEGIN
344 RETURN(get_rec(p_fmav_rec, l_row_notfound));
345 END get_rec;
346
347 ----------------------------------------------------
348 -- FUNCTION null_out_defaults for: OKL_FORMULAE_V --
349 ----------------------------------------------------
350 FUNCTION null_out_defaults (
351 p_fmav_rec IN fmav_rec_type
352 ) RETURN fmav_rec_type IS
353 l_fmav_rec fmav_rec_type := p_fmav_rec;
354 BEGIN
355 IF (l_fmav_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
356 l_fmav_rec.object_version_number := NULL;
357 END IF;
358 IF (l_fmav_rec.sfwt_flag = OKC_API.G_MISS_CHAR) THEN
359 l_fmav_rec.sfwt_flag := NULL;
360 END IF;
361 IF (l_fmav_rec.cgr_id = OKC_API.G_MISS_NUM) THEN
362 l_fmav_rec.cgr_id := NULL;
363 END IF;
364 IF (l_fmav_rec.fyp_code = OKC_API.G_MISS_CHAR) THEN
365 l_fmav_rec.fyp_code := NULL;
366 END IF;
367 IF (l_fmav_rec.name = OKC_API.G_MISS_CHAR) THEN
368 l_fmav_rec.name := NULL;
369 END IF;
370 IF (l_fmav_rec.formula_string = OKC_API.G_MISS_CHAR) THEN
371 l_fmav_rec.formula_string := NULL;
372 END IF;
373 IF (l_fmav_rec.description = OKC_API.G_MISS_CHAR) THEN
374 l_fmav_rec.description := NULL;
375 END IF;
376 IF (l_fmav_rec.version = OKC_API.G_MISS_CHAR) THEN
377 l_fmav_rec.version := NULL;
378 END IF;
379 IF (l_fmav_rec.start_date = OKC_API.G_MISS_DATE) THEN
380 l_fmav_rec.start_date := NULL;
381 END IF;
382 IF (l_fmav_rec.end_date = OKC_API.G_MISS_DATE) THEN
383 l_fmav_rec.end_date := NULL;
384 END IF;
385 IF (l_fmav_rec.attribute_category = OKC_API.G_MISS_CHAR) THEN
386 l_fmav_rec.attribute_category := NULL;
387 END IF;
388 IF (l_fmav_rec.attribute1 = OKC_API.G_MISS_CHAR) THEN
389 l_fmav_rec.attribute1 := NULL;
390 END IF;
391 IF (l_fmav_rec.attribute2 = OKC_API.G_MISS_CHAR) THEN
392 l_fmav_rec.attribute2 := NULL;
393 END IF;
394 IF (l_fmav_rec.attribute3 = OKC_API.G_MISS_CHAR) THEN
395 l_fmav_rec.attribute3 := NULL;
396 END IF;
397 IF (l_fmav_rec.attribute4 = OKC_API.G_MISS_CHAR) THEN
398 l_fmav_rec.attribute4 := NULL;
399 END IF;
400 IF (l_fmav_rec.attribute5 = OKC_API.G_MISS_CHAR) THEN
401 l_fmav_rec.attribute5 := NULL;
402 END IF;
403 IF (l_fmav_rec.attribute6 = OKC_API.G_MISS_CHAR) THEN
404 l_fmav_rec.attribute6 := NULL;
405 END IF;
406 IF (l_fmav_rec.attribute7 = OKC_API.G_MISS_CHAR) THEN
407 l_fmav_rec.attribute7 := NULL;
408 END IF;
409 IF (l_fmav_rec.attribute8 = OKC_API.G_MISS_CHAR) THEN
410 l_fmav_rec.attribute8 := NULL;
411 END IF;
412 IF (l_fmav_rec.attribute9 = OKC_API.G_MISS_CHAR) THEN
413 l_fmav_rec.attribute9 := NULL;
414 END IF;
415 IF (l_fmav_rec.attribute10 = OKC_API.G_MISS_CHAR) THEN
416 l_fmav_rec.attribute10 := NULL;
417 END IF;
418 IF (l_fmav_rec.attribute11 = OKC_API.G_MISS_CHAR) THEN
419 l_fmav_rec.attribute11 := NULL;
420 END IF;
421 IF (l_fmav_rec.attribute12 = OKC_API.G_MISS_CHAR) THEN
422 l_fmav_rec.attribute12 := NULL;
423 END IF;
424 IF (l_fmav_rec.attribute13 = OKC_API.G_MISS_CHAR) THEN
425 l_fmav_rec.attribute13 := NULL;
426 END IF;
427 IF (l_fmav_rec.attribute14 = OKC_API.G_MISS_CHAR) THEN
428 l_fmav_rec.attribute14 := NULL;
429 END IF;
430 IF (l_fmav_rec.attribute15 = OKC_API.G_MISS_CHAR) THEN
431 l_fmav_rec.attribute15 := NULL;
432 END IF;
433 IF (l_fmav_rec.org_id = OKC_API.G_MISS_NUM) THEN
434 l_fmav_rec.org_id := NULL;
435 END IF;
436 IF (l_fmav_rec.there_can_be_only_one_yn = OKC_API.G_MISS_CHAR) THEN
437 l_fmav_rec.there_can_be_only_one_yn := NULL;
438 END IF;
439 IF (l_fmav_rec.created_by = OKC_API.G_MISS_NUM) THEN
440 l_fmav_rec.created_by := NULL;
441 END IF;
442 IF (l_fmav_rec.creation_date = OKC_API.G_MISS_DATE) THEN
443 l_fmav_rec.creation_date := NULL;
444 END IF;
445 IF (l_fmav_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
446 l_fmav_rec.last_updated_by := NULL;
447 END IF;
448 IF (l_fmav_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
449 l_fmav_rec.last_update_date := NULL;
450 END IF;
451 IF (l_fmav_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
452 l_fmav_rec.last_update_login := NULL;
453 END IF;
454 RETURN(l_fmav_rec);
455 END null_out_defaults;
456
457 /** Commented out generated code in favor of hand written code *** SBALASHA001 Start ***
458 ---------------------------------------------------------------------------
459 -- PROCEDURE Validate_Attributes
460 ---------------------------------------------------------------------------
461 --------------------------------------------
462 -- Validate_Attributes for:OKL_FORMULAE_V --
463 --------------------------------------------
464 FUNCTION Validate_Attributes (
465 p_fmav_rec IN fmav_rec_type
466 ) RETURN VARCHAR2 IS
467 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
468 BEGIN
469 IF p_fmav_rec.id = OKC_API.G_MISS_NUM OR
470 p_fmav_rec.id IS NULL
471 THEN
472 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
473 l_return_status := OKC_API.G_RET_STS_ERROR;
474 ELSIF p_fmav_rec.object_version_number = OKC_API.G_MISS_NUM OR
475 p_fmav_rec.object_version_number IS NULL
476 THEN
477 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
478 l_return_status := OKC_API.G_RET_STS_ERROR;
479 ELSIF p_fmav_rec.cgr_id = OKC_API.G_MISS_NUM OR
480 p_fmav_rec.cgr_id IS NULL
481 THEN
482 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'cgr_id');
483 l_return_status := OKC_API.G_RET_STS_ERROR;
484 ELSIF p_fmav_rec.fyp_code = OKC_API.G_MISS_CHAR OR
485 p_fmav_rec.fyp_code IS NULL
486 THEN
487 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'fyp_code');
488 l_return_status := OKC_API.G_RET_STS_ERROR;
489 ELSIF p_fmav_rec.name = OKC_API.G_MISS_CHAR OR
490 p_fmav_rec.name IS NULL
491 THEN
492 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'name');
493 l_return_status := OKC_API.G_RET_STS_ERROR;
494 ELSIF p_fmav_rec.version = OKC_API.G_MISS_CHAR OR
495 p_fmav_rec.version IS NULL
496 THEN
497 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'version');
498 l_return_status := OKC_API.G_RET_STS_ERROR;
499 ELSIF p_fmav_rec.start_date = OKC_API.G_MISS_DATE OR
500 p_fmav_rec.start_date IS NULL
501 THEN
502 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'start_date');
503 l_return_status := OKC_API.G_RET_STS_ERROR;
504 END IF;
505 RETURN(l_return_status);
506 END Validate_Attributes;
507
508 ---------------------------------------------------------------------------
509 -- PROCEDURE Validate_Record
510 ---------------------------------------------------------------------------
511 ----------------------------------------
512 -- Validate_Record for:OKL_FORMULAE_V --
513 ----------------------------------------
514 FUNCTION Validate_Record (
515 p_fmav_rec IN fmav_rec_type
516 ) RETURN VARCHAR2 IS
517 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
518 BEGIN
519 RETURN (l_return_status);
520 END Validate_Record;
521
522 *** SBALASHA001 End *** **/
523
524 /** SBALASHA001 Start *** -
525 INFO: hand coded function related to validate_attribute **/
526
527 ---------------------------------------------------------------------------
528 -- PROCEDURE Validate_Id
529 ---------------------------------------------------------------------------
530 -- Start of comments
531 --
532 -- Procedure Name : Validate_Id
533 -- Description :
534 -- Business Rules :
535 -- Parameters :
536 -- Version : 1.0
537 -- End of comments
538 ---------------------------------------------------------------------------
539 PROCEDURE Validate_Id (x_return_status OUT NOCOPY VARCHAR2
540 ,p_fmav_rec IN fmav_rec_type )
541 IS
542
543 l_return_status VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
544
545 BEGIN
546 -- initialize return status
547 x_return_status := Okc_Api.G_RET_STS_SUCCESS;
548 -- check for data before processing
549 IF (p_fmav_rec.id IS NULL) OR
550 (p_fmav_rec.id = Okc_Api.G_MISS_NUM) THEN
551 Okc_Api.SET_MESSAGE(p_app_name => g_app_name
552 ,p_msg_name => g_required_value
553 ,p_token1 => g_col_name_token
554 ,p_token1_value => 'id');
555 x_return_status := Okc_Api.G_RET_STS_ERROR;
556 RAISE G_EXCEPTION_HALT_VALIDATION;
557 END IF;
558
559 EXCEPTION
560 WHEN G_EXCEPTION_HALT_VALIDATION THEN
561 -- no processing necessary; validation can continue
562 -- with the next column
563 NULL;
564
565 WHEN OTHERS THEN
566 -- store SQL error message on message stack for caller
567 Okc_Api.SET_MESSAGE(p_app_name => g_app_name,
568 p_msg_name => g_unexpected_error,
569 p_token1 => g_sqlcode_token,
570 p_token1_value => SQLCODE,
571 p_token2 => g_sqlerrm_token,
572 p_token2_value => SQLERRM);
573
574 -- notify caller of an UNEXPECTED error
575 x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
576
577 END Validate_Id;
578
579
580 ---------------------------------------------------------------------------
581 -- PROCEDURE Validate_Object_Version_Number
582 ---------------------------------------------------------------------------
583 -- Start of comments
584 --
585 -- Procedure Name : Validate_Object_Version_Number
586 -- Description :
587 -- Business Rules :
588 -- Parameters :
589 -- Version : 1.0
590 -- End of comments
591 ---------------------------------------------------------------------------
592 PROCEDURE Validate_Object_Version_Number(x_return_status OUT NOCOPY VARCHAR2
593 ,p_fmav_rec IN fmav_rec_type)
594 IS
595
596 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
597
598 BEGIN
599 -- initialize return status
600 x_return_status := OKC_API.G_RET_STS_SUCCESS;
601
602 -- check for data before processing
603 IF ( p_fmav_rec.object_version_number IS NULL ) OR
604 ( p_fmav_rec.object_version_number = OKC_API.G_MISS_NUM ) THEN
605 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
606 p_msg_name => g_required_value,
607 p_token1 => g_col_name_token,
608 p_token1_value => 'object_version_number' );
609 x_return_status := OKC_API.G_RET_STS_ERROR;
610 RAISE G_EXCEPTION_HALT_VALIDATION;
611 END IF;
612
613 EXCEPTION
614 WHEN G_EXCEPTION_HALT_VALIDATION THEN
615 -- no processing necessary; validation can continue
616 -- with the next column
617 NULL;
618
619 WHEN OTHERS THEN
620 -- store SQL error message on message stack for caller
621 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
622 p_msg_name => g_unexpected_error,
623 p_token1 => g_sqlcode_token,
624 p_token1_value => sqlcode,
625 p_token2 => g_sqlerrm_token,
626 p_token2_value => sqlerrm );
627
628 -- notify caller of an UNEXPECTED error
629 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
630
631 END Validate_Object_Version_Number;
632
633 ---------------------------------------------------------------------------
634 -- PROCEDURE Validate_Sfwt_Flag
635 ---------------------------------------------------------------------------
636 -- Start of comments
637 --
638 -- Procedure Name : Validate_Sfwt_Flag
639 -- Description :
640 -- Business Rules :
641 -- Parameters :
642 -- Version : 1.0
643 -- End of comments
644 ---------------------------------------------------------------------------
645 PROCEDURE Validate_Sfwt_Flag(x_return_status OUT NOCOPY VARCHAR2,
646 p_fmav_rec IN fmav_rec_type)
647 IS
648
649 -- l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
650 l_return_status VARCHAR2(1) := OKC_API.G_TRUE;
651
652 BEGIN
653 -- initialize return status
654 x_return_status := OKC_API.G_RET_STS_SUCCESS;
655
656 -- check from domain values using the generic
657 -- l_return_status := OKL_UTIL.check_domain_yn(p_fmav_rec.sfwt_flag);
658 l_return_status := OKL_ACCOUNTING_UTIL.validate_lookup_code('YES_NO',p_fmav_rec.sfwt_flag,0,0);
659 IF (l_return_status = OKC_API.G_FALSE) THEN
660 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
661 p_msg_name => g_invalid_value,
662 p_token1 => g_col_name_token,
663 p_token1_value => 'sfwt_flag');
664 x_return_status := OKC_API.G_RET_STS_ERROR;
665 END IF;
666
667 EXCEPTION
668 WHEN G_EXCEPTION_HALT_VALIDATION THEN
669 -- no processing required ; validation can continue
670 -- with the next column
671 NULL;
672
673 WHEN OTHERS THEN
674 -- store SQL error message on message stack for caller
675 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
676 p_msg_name => g_unexpected_error,
677 p_token1 => g_sqlcode_token,
678 p_token1_value => sqlcode,
679 p_token2 => g_sqlerrm_token,
680 p_token2_value => sqlerrm );
681
682 -- notify caller of an UNEXPECTED error
683 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
684
685 END Validate_Sfwt_Flag;
686
687 ---------------------------------------------------------------------------
688 -- PROCEDURE Validate_TCBOO_YN
689 ---------------------------------------------------------------------------
690 -- Start of comments
691 --
692 -- Procedure Name : Validate_TCBOO_YN
693 -- Description :
694 -- Business Rules :
695 -- Parameters :
696 -- Version : 1.0
697 -- End of comments
698 ---------------------------------------------------------------------------
699 PROCEDURE Validate_TCBOO_YN(x_return_status OUT NOCOPY VARCHAR2,
700 p_fmav_rec IN fmav_rec_type)
701 IS
702
703 -- l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
704 l_return_status VARCHAR2(1) := OKC_API.G_TRUE;
705
706 BEGIN
707 -- initialize return status
708 x_return_status := OKC_API.G_RET_STS_SUCCESS;
709
710 -- check from domain values using the generic
711 -- l_return_status := OKL_UTIL.check_domain_yn(p_fmav_rec.there_can_be_only_one_yn);
712 l_return_status := OKL_ACCOUNTING_UTIL.validate_lookup_code('YES_NO',p_fmav_rec.there_can_be_only_one_yn,0,0);
713 IF (l_return_status = OKC_API.G_FALSE) THEN
714 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
715 p_msg_name => g_invalid_value,
716 p_token1 => g_col_name_token,
717 p_token1_value => 'there_can_be_only_one_yn');
718 x_return_status := OKC_API.G_RET_STS_ERROR;
719 END IF;
720
721 EXCEPTION
722 WHEN G_EXCEPTION_HALT_VALIDATION THEN
723 -- no processing required ; validation can continue
724 -- with the next column
725 NULL;
726
727 WHEN OTHERS THEN
728 -- store SQL error message on message stack for caller
729 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
730 p_msg_name => g_unexpected_error,
731 p_token1 => g_sqlcode_token,
732 p_token1_value => sqlcode,
733 p_token2 => g_sqlerrm_token,
734 p_token2_value => sqlerrm );
735
736 -- notify caller of an UNEXPECTED error
737 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
738
739 END Validate_TCBOO_YN;
740
741 ---------------------------------------------------------------------------
742 -- PROCEDURE Validate_Cgr_Id
743 ---------------------------------------------------------------------------
744 -- Start of comments
745 --
746 -- Procedure Name : Validate_Cgr_Id
747 -- Description :
748 -- Business Rules :
749 -- Parameters :
750 -- Version : 1.0
751 -- End of comments
752 ---------------------------------------------------------------------------
753 PROCEDURE Validate_Cgr_Id(
754 x_return_status OUT NOCOPY VARCHAR2,
755 p_fmav_rec IN fmav_rec_type
756 ) IS
757
758 l_dummy VARCHAR2(1) := '?';
759 l_row_not_found Boolean := False;
760
761 -- Cursor For OKL_FMA_CGR_FK - Foreign Key Constraint
762 CURSOR okl_cgrv_pk_csr (p_id IN OKL_FORMULAE_V.cgr_id%TYPE) IS
763 SELECT '1'
764 FROM OKL_CONTEXT_GROUPS_V
765 WHERE OKL_CONTEXT_GROUPS_V.id = p_id;
766
767 BEGIN
768 -- initialize return status
769 x_return_status := OKC_API.G_RET_STS_SUCCESS;
770
771 IF p_fmav_rec.cgr_id = OKC_API.G_MISS_NUM OR
772 p_fmav_rec.cgr_id IS NULL
773 THEN
774 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Context');
775 x_return_status := OKC_API.G_RET_STS_ERROR;
776 RAISE G_EXCEPTION_HALT_VALIDATION;
777 END IF;
778
779 OPEN okl_cgrv_pk_csr(p_fmav_rec.cgr_id);
780 FETCH okl_cgrv_pk_csr INTO l_dummy;
781 l_row_not_found := okl_cgrv_pk_csr%NOTFOUND;
782 CLOSE okl_cgrv_pk_csr;
783
784 IF l_row_not_found then
785 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Context');
786 x_return_status := OKC_API.G_RET_STS_ERROR;
787 END IF;
788
789 EXCEPTION
790 WHEN G_EXCEPTION_HALT_VALIDATION THEN
791 -- no processing necessary; validation can continue
792 -- with the next column
793 NULL;
794
795 WHEN OTHERS THEN
796 -- store SQL error message on message stack for caller
797 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME
798 ,p_msg_name => G_UNEXPECTED_ERROR
799 ,p_token1 => G_SQLCODE_TOKEN
800 ,p_token1_value => SQLCODE
801 ,p_token2 => G_SQLERRM_TOKEN
802 ,p_token2_value => SQLERRM);
803
804 -- notify caller of an UNEXPECTED error
805 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
806
807 -- verify that the cursor was closed
808 IF okl_cgrv_pk_csr%ISOPEN THEN
809 CLOSE okl_cgrv_pk_csr;
810 END IF;
811 END Validate_Cgr_Id;
812
813 ---------------------------------------------------------------------------
814 -- PROCEDURE Validate_Fyp_Code
815 ---------------------------------------------------------------------------
816 -- Start of comments
817 --
818 -- Procedure Name : Validate_Fyp_Code
819 -- Description :
820 -- Business Rules :
821 -- Parameters :
822 -- Version : 1.0
823 -- End of comments
824 ---------------------------------------------------------------------------
825 PROCEDURE Validate_Fyp_Code(
826 x_return_status OUT NOCOPY VARCHAR2,
827 p_fmav_rec IN fmav_rec_type
828 ) IS
829
830 l_dummy VARCHAR2(1) := '?';
831 -- l_row_not_found Boolean := False;
832 l_row_found VARCHAR2(1) := OKL_API.G_TRUE;
833
834 -- Cursor For OKL_FMA_FYP_FK - Foreign Key Constraint
835 /*
836 CURSOR okl_fndv_pk_csr (p_code IN OKL_FORMULAE_V.fyp_code%TYPE) IS
837 SELECT '1'
838 FROM fnd_common_lookups
839 WHERE fnd_common_lookups.lookup_code = p_code
840 AND fnd_common_lookups.lookup_type = 'OKL_FORMULA_TYPE';
841 */
842
843 BEGIN
844 -- initialize return status
845 x_return_status := OKC_API.G_RET_STS_SUCCESS;
846
847 -- RPOONUGA001 modified if condition to check with G_MISS_CHAR than G_MISS_NUM
848 IF p_fmav_rec.fyp_code = OKC_API.G_MISS_CHAR OR
849 p_fmav_rec.fyp_code IS NULL
850 THEN
851 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'fyp_code');
852 x_return_status := OKC_API.G_RET_STS_ERROR;
853 RAISE G_EXCEPTION_HALT_VALIDATION;
854 END IF;
855
856 /*
857 OPEN okl_fndv_pk_csr(p_fmav_rec.fyp_code);
858 FETCH okl_fndv_pk_csr INTO l_dummy;
859 l_row_not_found := okl_fndv_pk_csr%NOTFOUND;
860 CLOSE okl_fndv_pk_csr;
861 */
862
863 l_row_found := OKL_ACCOUNTING_UTIL.validate_lookup_code('OKL_FORMULA_TYPE', p_fmav_rec.fyp_code);
864
865 IF (l_row_found = OKL_API.G_FALSE) then
866 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'fyp_code');
867 x_return_status := OKC_API.G_RET_STS_ERROR;
868 END IF;
869
870 EXCEPTION
871 WHEN G_EXCEPTION_HALT_VALIDATION THEN
872 -- no processing necessary; validation can continue
873 -- with the next column
874 NULL;
875
876 WHEN OTHERS THEN
877 -- store SQL error message on message stack for caller
878 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME
879 ,p_msg_name => G_UNEXPECTED_ERROR
880 ,p_token1 => G_SQLCODE_TOKEN
881 ,p_token1_value => SQLCODE
882 ,p_token2 => G_SQLERRM_TOKEN
883 ,p_token2_value => SQLERRM);
884
885 -- notify caller of an UNEXPECTED error
886 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
887
888 -- verify that the cursor was closed
889 /*
890 IF okl_fndv_pk_csr%ISOPEN THEN
891 CLOSE okl_fndv_pk_csr;
892 END IF;
893 */
894 END Validate_Fyp_Code;
895
896 ---------------------------------------------------------------------------
897 -- PROCEDURE Validate_Name
898 ---------------------------------------------------------------------------
899 -- Start of comments
900 --
901 -- Procedure Name : Validate_Name
902 -- Description :
903 -- Business Rules :
904 -- Parameters :
905 -- Version : 1.0
906 -- End of comments
907 ---------------------------------------------------------------------------
908 PROCEDURE Validate_Name(x_return_status OUT NOCOPY VARCHAR2,
909 p_fmav_rec IN OUT NOCOPY fmav_rec_type)
910 IS
911
912 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
913
914 BEGIN
915 -- initialize return status
916 x_return_status := OKC_API.G_RET_STS_SUCCESS;
917
918 -- check for data before processing
919 IF (p_fmav_rec.name IS NULL) OR
920 (p_fmav_rec.name = OKC_API.G_MISS_CHAR) THEN
921 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
922 p_msg_name => g_required_value,
923 p_token1 => g_col_name_token,
924 p_token1_value => 'name' );
925 x_return_status := OKC_API.G_RET_STS_ERROR;
926 RAISE G_EXCEPTION_HALT_VALIDATION;
927 END IF;
928 p_fmav_rec.name := Okl_Accounting_Util.okl_upper(p_fmav_rec.name);
929
930
931 EXCEPTION
932 WHEN G_EXCEPTION_HALT_VALIDATION THEN
933 -- no processing required ; validation can continue
934 -- with the next column
935 NULL;
936
937 WHEN OTHERS THEN
938 -- store SQL error message on message stack for caller
939 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
940 p_msg_name => g_unexpected_error,
941 p_token1 => g_sqlcode_token,
942 p_token1_value => sqlcode,
943 p_token2 => g_sqlerrm_token,
944 p_token2_value => sqlerrm );
945 -- notify caller of an UNEXPECTED error
946
947 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
948
949 END Validate_Name;
950
951 ---------------------------------------------------------------------------
952 -- PROCEDURE Validate_Formula_String
953 ---------------------------------------------------------------------------
954 -- Start of comments
955 --
956 -- Procedure Name : Validate_Formula_String
957 -- Description :
958 -- Business Rules :
959 -- Parameters :
960 -- Version : 1.0
961 -- End of comments
962 ---------------------------------------------------------------------------
963 PROCEDURE Validate_Formula_String(x_return_status OUT NOCOPY VARCHAR2,
964 p_fmav_rec IN fmav_rec_type)
965 IS
966
967 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
968
969 BEGIN
970 -- initialize return status
971 x_return_status := OKC_API.G_RET_STS_SUCCESS;
972
973 -- check for data before processing
974 IF (p_fmav_rec.formula_string IS NULL) OR
975 (p_fmav_rec.formula_string = OKC_API.G_MISS_CHAR) THEN
976 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
977 p_msg_name => g_required_value,
978 p_token1 => g_col_name_token,
979 p_token1_value => 'formula_string' );
980 x_return_status := OKC_API.G_RET_STS_ERROR;
981 RAISE G_EXCEPTION_HALT_VALIDATION;
982 END IF;
983
984
985 EXCEPTION
986 WHEN G_EXCEPTION_HALT_VALIDATION THEN
987 -- no processing required ; validation can continue
988 -- with the next column
989 NULL;
990
991 WHEN OTHERS THEN
992 -- store SQL error message on message stack for caller
993 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
994 p_msg_name => g_unexpected_error,
995 p_token1 => g_sqlcode_token,
996 p_token1_value => sqlcode,
997 p_token2 => g_sqlerrm_token,
998 p_token2_value => sqlerrm );
999 -- notify caller of an UNEXPECTED error
1000
1001 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1002
1003 END Validate_Formula_String;
1004
1005 ---------------------------------------------------------------------------
1006 -- PROCEDURE Validate_Version
1007 ---------------------------------------------------------------------------
1008 -- Start of comments
1009 --
1010 -- Procedure Name : Validate_Version
1011 -- Description :
1012 -- Business Rules :
1013 -- Parameters :
1014 -- Version : 1.0
1015 -- End of comments
1016 ---------------------------------------------------------------------------
1017 PROCEDURE Validate_Version(x_return_status OUT NOCOPY VARCHAR2,
1018 p_fmav_rec IN fmav_rec_type)
1019 IS
1020
1021 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1022
1023 BEGIN
1024 -- initialize return status
1025 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1026
1027 -- check for data before processing
1028 IF (p_fmav_rec.version IS NULL) OR
1029 (p_fmav_rec.version = OKC_API.G_MISS_CHAR) THEN
1030 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
1031 p_msg_name => g_required_value,
1032 p_token1 => g_col_name_token,
1033 p_token1_value => 'Version' );
1034 x_return_status := OKC_API.G_RET_STS_ERROR;
1035 RAISE G_EXCEPTION_HALT_VALIDATION;
1036 END IF;
1037
1038
1039 EXCEPTION
1040 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1041 -- no processing required ; validation can continue
1042 -- with the next column
1043 NULL;
1044
1045 WHEN OTHERS THEN
1046 -- store SQL error message on message stack for caller
1047 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
1048 p_msg_name => g_unexpected_error,
1049 p_token1 => g_sqlcode_token,
1050 p_token1_value => sqlcode,
1051 p_token2 => g_sqlerrm_token,
1052 p_token2_value => sqlerrm );
1053 -- notify caller of an UNEXPECTED error
1054
1055 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1056
1057 END Validate_Version;
1058
1059 ---------------------------------------------------------------------------
1060 -- PROCEDURE Validate_Start_Date
1061 ---------------------------------------------------------------------------
1062 -- Start of comments
1063 --
1064 -- Procedure Name : Validate_Start_Date
1065 -- Description :
1066 -- Business Rules :
1067 -- Parameters :
1068 -- Version : 1.0
1069 -- End of comments
1070 ---------------------------------------------------------------------------
1071 PROCEDURE Validate_Start_Date(x_return_status OUT NOCOPY VARCHAR2,
1072 p_fmav_rec IN fmav_rec_type)
1073 IS
1074
1075 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1076
1077 BEGIN
1078 -- initialize return status
1079 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1080
1081 -- check for data before processing
1082 -- RPOONUGA001 modified if condition to check with G_MISS_DATE than G_MISS_CHAR
1083 IF (p_fmav_rec.start_date IS NULL) OR
1084 (p_fmav_rec.start_date = OKC_API.G_MISS_DATE) THEN
1085 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
1086 p_msg_name => g_required_value,
1087 p_token1 => g_col_name_token,
1088 p_token1_value => 'start_date' );
1089 x_return_status := OKC_API.G_RET_STS_ERROR;
1090 RAISE G_EXCEPTION_HALT_VALIDATION;
1091 END IF;
1092
1093
1094 EXCEPTION
1095 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1096 -- no processing required ; validation can continue
1097 -- with the next column
1098 NULL;
1099
1100 WHEN OTHERS THEN
1101 -- store SQL error message on message stack for caller
1102 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
1103 p_msg_name => g_unexpected_error,
1104 p_token1 => g_sqlcode_token,
1105 p_token1_value => sqlcode,
1106 p_token2 => g_sqlerrm_token,
1107 p_token2_value => sqlerrm );
1108 -- notify caller of an UNEXPECTED error
1109
1110 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1111
1112 END Validate_Start_Date;
1113
1114 ---------------------------------------------------------------------------
1115 -- PROCEDURE Validate_end_Date
1116 ---------------------------------------------------------------------------
1117 -- Start of comments
1118 --
1119 -- Procedure Name : Validate_end_Date
1120 -- Description :
1121 -- Business Rules :
1122 -- Parameters :
1123 -- Version : 1.0
1124 -- End of comments
1125 ---------------------------------------------------------------------------
1126 PROCEDURE Validate_end_Date(p_fmav_rec IN fmav_rec_type
1127 ,x_return_status OUT NOCOPY VARCHAR2 )
1128 IS
1129
1130 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1131
1132 BEGIN
1133 -- initialize return status
1134 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1135
1136 -- check for data before processing
1137 IF p_fmav_rec.end_date IS NOT NULL AND
1138 p_fmav_rec.end_date <> OKL_API.G_MISS_DATE AND
1139 p_fmav_rec.end_date < p_fmav_rec.start_date THEN
1140 OKC_API.SET_MESSAGE(p_app_name => 'OKL'
1141 ,p_msg_name => g_to_date_error );
1142 x_return_status := OKC_API.G_RET_STS_ERROR;
1143 RAISE G_EXCEPTION_HALT_VALIDATION;
1144 END IF;
1145
1146 EXCEPTION
1147 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1148 -- no processing necessary; validation can continue
1149 -- with the next column
1150 NULL;
1151
1152 WHEN OTHERS THEN
1153 -- store SQL error message on message stack for caller
1154 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1155 p_msg_name => g_unexpected_error,
1156 p_token1 => g_sqlcode_token,
1157 p_token1_value => SQLCODE,
1158 p_token2 => g_sqlerrm_token,
1159 p_token2_value => SQLERRM);
1160
1161 -- notify caller of an UNEXPECTED error
1162 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1163
1164 END Validate_end_Date;
1165
1166 ---------------------------------------------------------------------------
1167 -- PROCEDURE Validate_Attributes
1168 ---------------------------------------------------------------------------
1169 -- Start of comments
1170 --
1171 -- Procedure Name : Validate_Attributes
1172 -- Description :
1173 -- Business Rules :
1174 -- Parameters :
1175 -- Version : 1.0
1176 -- End of comments
1177 ---------------------------------------------------------------------------
1178
1179 FUNCTION Validate_Attributes (
1180 p_fmav_rec IN OUT NOCOPY fmav_rec_type
1181 ) RETURN VARCHAR2 IS
1182 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1183 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1184 l_fmav_rec fmav_rec_type := p_fmav_rec;
1185 BEGIN
1186
1187 -- call each column-level validation
1188
1189 -- Validate ID
1190 /* IF l_fmav_rec.id = OKC_API.G_MISS_NUM OR
1191 l_fmav_rec.id IS NULL
1192 THEN
1193 OKC_API.set_message( G_APP_NAME,
1194 G_REQUIRED_VALUE,
1195 G_COL_NAME_TOKEN, 'id' );
1196 l_return_status := OKC_API.G_RET_STS_ERROR;
1197 END IF;
1198 */
1199
1200 -- Added by Santonyr
1201
1202 Validate_Id (x_return_status, l_fmav_rec);
1203
1204 IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
1205 IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1206 l_return_status := x_return_Status;
1207 RAISE G_EXCEPTION_HALT_VALIDATION;
1208 ELSE
1209 l_return_status := x_return_status;
1210 END IF;
1211 END IF;
1212
1213
1214 /* -- Valid object_version_number
1215 IF ( l_fmav_rec.object_version_number IS NOT NULL ) AND
1216 ( l_fmav_rec.object_version_number <> OKC_API.G_MISS_NUM ) THEN
1217 Validate_Object_Version_Number( x_return_status, l_fmav_rec );
1218 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1219 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1220 -- need to leave
1221 l_return_status := x_return_status;
1222 RAISE G_EXCEPTION_HALT_VALIDATION;
1223 ELSE
1224 -- record that there was an error
1225 l_return_status := x_return_status;
1226 END IF;
1227 END IF;
1228 END IF;
1229 */
1230
1231 -- Added by Santonyr
1232 Validate_Object_Version_Number( x_return_status, l_fmav_rec );
1233 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1234 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1235 -- need to leave
1236 l_return_status := x_return_status;
1237 RAISE G_EXCEPTION_HALT_VALIDATION;
1238 ELSE
1239 -- record that there was an error
1240 l_return_status := x_return_status;
1241 END IF;
1242 END IF;
1243
1244 /* -- Valid name
1245 IF ( l_fmav_rec.name IS NOT NULL ) AND
1246 ( l_fmav_rec.name <> OKC_API.G_MISS_CHAR ) THEN
1247 Validate_Name( x_return_status, l_fmav_rec );
1248 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1249 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1250 -- need to leave
1251 l_return_status := x_return_status;
1252 RAISE G_EXCEPTION_HALT_VALIDATION;
1253 ELSE
1254 -- record that there was an error
1255 l_return_status := x_return_status;
1256 END IF;
1257 END IF;
1258 END IF;
1259 */
1260 -- Added by Santonyr
1261 -- Valid name
1262 Validate_Name( x_return_status, l_fmav_rec );
1263 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1264 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1265 -- need to leave
1266 l_return_status := x_return_status;
1267 RAISE G_EXCEPTION_HALT_VALIDATION;
1268 ELSE
1269 -- record that there was an error
1270 l_return_status := x_return_status;
1271 END IF;
1272 END IF;
1273
1274 /* -- Valid version
1275 IF ( l_fmav_rec.version IS NOT NULL ) AND
1276 ( l_fmav_rec.version <> OKC_API.G_MISS_CHAR ) THEN
1277 Validate_Version( x_return_status, l_fmav_rec );
1278 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1279 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1280 -- need to leave
1281 l_return_status := x_return_status;
1282 RAISE G_EXCEPTION_HALT_VALIDATION;
1283 ELSE
1284 -- record that there was an error
1285 l_return_status := x_return_status;
1286 END IF;
1287 END IF;
1288 END IF;
1289 */
1290 -- Added by Santonyr
1291 -- Valid version
1292 Validate_Version( x_return_status, l_fmav_rec );
1293 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1294 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1295 -- need to leave
1296 l_return_status := x_return_status;
1297 RAISE G_EXCEPTION_HALT_VALIDATION;
1298 ELSE
1299 -- record that there was an error
1300 l_return_status := x_return_status;
1301 END IF;
1302 END IF;
1303
1304 /* -- Valid start_date
1305 -- RPOONUGA001 modified if condition to check with G_MISS_DATE than G_MISS_CHAR
1306 IF ( l_fmav_rec.start_date IS NOT NULL ) AND
1307 ( l_fmav_rec.start_date <> OKC_API.G_MISS_DATE ) THEN
1308 Validate_Start_Date( x_return_status, l_fmav_rec );
1309 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1310 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1311 -- need to leave
1312 l_return_status := x_return_status;
1313 RAISE G_EXCEPTION_HALT_VALIDATION;
1314 ELSE
1315 -- record that there was an error
1316 l_return_status := x_return_status;
1317 END IF;
1318 END IF;
1319 END IF;
1320 */
1321 -- Added by Santonyr
1322 -- Valid start_date
1323 -- RPOONUGA001 modified if condition to check with G_MISS_DATE than G_MISS_CHAR
1324 Validate_Start_Date( x_return_status, l_fmav_rec );
1325 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1326 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1327 -- need to leave
1328 l_return_status := x_return_status;
1329 RAISE G_EXCEPTION_HALT_VALIDATION;
1330 ELSE
1331 -- record that there was an error
1332 l_return_status := x_return_status;
1333 END IF;
1334 END IF;
1335
1336
1337 /* -- Valid Cgr_Id
1338 IF ( l_fmav_rec.cgr_id IS NOT NULL ) AND
1339 ( l_fmav_rec.cgr_id <> OKC_API.G_MISS_NUM ) THEN
1340 Validate_Cgr_Id( x_return_status, l_fmav_rec );
1341 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1342 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1343 -- need to leave
1344 l_return_status := x_return_status;
1345 RAISE G_EXCEPTION_HALT_VALIDATION;
1346 ELSE
1347 -- record that there was an error
1348 l_return_status := x_return_status;
1349 END IF;
1350 END IF;
1351 END IF;
1352 */
1353 -- Added by Santonyr
1354 -- Valid Cgr_Id
1355 Validate_Cgr_Id( x_return_status, l_fmav_rec );
1356 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1357 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1358 -- need to leave
1359 l_return_status := x_return_status;
1360 RAISE G_EXCEPTION_HALT_VALIDATION;
1361 ELSE
1362 -- record that there was an error
1363 l_return_status := x_return_status;
1364 END IF;
1365 END IF;
1366
1367
1368 /* -- Valid formula_string
1369 IF ( l_fmav_rec.formula_string IS NOT NULL ) AND
1370 ( l_fmav_rec.formula_string <> OKC_API.G_MISS_CHAR ) THEN
1371 Validate_Formula_String( x_return_status, l_fmav_rec );
1372 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1373 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1374 -- need to leave
1375 l_return_status := x_return_status;
1376 RAISE G_EXCEPTION_HALT_VALIDATION;
1377 ELSE
1378 -- record that there was an error
1379 l_return_status := x_return_status;
1380 END IF;
1381 END IF;
1382 END IF;
1383 */
1384 -- Added by Santonyr
1385 -- Valid formula_string
1386 Validate_Formula_String( x_return_status, l_fmav_rec );
1387 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1388 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1389 -- need to leave
1390 l_return_status := x_return_status;
1391 RAISE G_EXCEPTION_HALT_VALIDATION;
1392 ELSE
1393 -- record that there was an error
1394 l_return_status := x_return_status;
1395 END IF;
1396 END IF;
1397
1398 -- Valid there_can_be_only_one_yn
1399 IF ( l_fmav_rec.there_can_be_only_one_yn IS NOT NULL ) AND
1400 ( l_fmav_rec.there_can_be_only_one_yn <> OKC_API.G_MISS_CHAR ) THEN
1401 Validate_TCBOO_YN( x_return_status, l_fmav_rec );
1402 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1403 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1404 -- need to leave
1405 l_return_status := x_return_status;
1406 RAISE G_EXCEPTION_HALT_VALIDATION;
1407 ELSE
1408 -- record that there was an error
1409 l_return_status := x_return_status;
1410 END IF;
1411 END IF;
1412 END IF;
1413
1414 -- Valid sfwt_flag
1415 -- RPOONUGA001 modified if condition to check sfwt_flag than name
1416 IF ( l_fmav_rec.sfwt_flag IS NOT NULL ) AND
1417 ( l_fmav_rec.sfwt_flag <> OKC_API.G_MISS_CHAR ) THEN
1418 Validate_Sfwt_Flag( x_return_status, l_fmav_rec );
1419 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1420 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1421 -- need to leave
1422 l_return_status := x_return_status;
1423 RAISE G_EXCEPTION_HALT_VALIDATION;
1424 ELSE
1425 -- record that there was an error
1426 l_return_status := x_return_status;
1427 END IF;
1428 END IF;
1429 END IF;
1430
1431 /* -- Valid Fyp_Code
1432 -- RPOONUGA001 modified if condition to check with G_MISS_CHAR than G_MISS_NUM
1433 IF ( l_fmav_rec.fyp_code IS NOT NULL ) AND
1434 ( l_fmav_rec.fyp_code <> OKC_API.G_MISS_CHAR ) THEN
1435 Validate_Fyp_Code( x_return_status, l_fmav_rec );
1436 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1437 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1438 -- need to leave
1439 l_return_status := x_return_status;
1440 RAISE G_EXCEPTION_HALT_VALIDATION;
1441 ELSE
1442 -- record that there was an error
1443 l_return_status := x_return_status;
1444 END IF;
1445 END IF;
1446 END IF;
1447 */
1448 -- Added by Santonyr
1449 -- Valid Fyp_Code
1450 -- RPOONUGA001 modified if condition to check with G_MISS_CHAR than G_MISS_NUM
1451 Validate_Fyp_Code( x_return_status, l_fmav_rec );
1452 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1453 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1454 -- need to leave
1455 l_return_status := x_return_status;
1456 RAISE G_EXCEPTION_HALT_VALIDATION;
1457 ELSE
1458 -- record that there was an error
1459 l_return_status := x_return_status;
1460 END IF;
1461 END IF;
1462
1463
1464 p_fmav_rec := l_fmav_rec;
1465
1466 RETURN(l_return_status);
1467 EXCEPTION
1468 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1469 -- just come out with return status
1470 NULL;
1471 RETURN (l_return_status);
1472
1473 WHEN OTHERS THEN
1474 -- store SQL error message on message stack for caller
1475 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1476 p_msg_name => g_unexpected_error,
1477 p_token1 => g_sqlcode_token,
1478 p_token1_value => sqlcode,
1479 p_token2 => g_sqlerrm_token,
1480 p_token2_value => sqlerrm);
1481 -- notify caller of an UNEXPECTED error
1482 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1483 RETURN(l_return_status);
1484
1485 END Validate_Attributes;
1486
1487 /** *** SBALASHA001 End *** **/
1488
1489 /** *** SBALASHA002 Start *** -
1490 INFO: hand coded function related to validate_record **/
1491
1492
1493 ---------------------------------------------------------------------------
1494 -- PROCEDURE Validate_Unique_Fma_Record
1495 ---------------------------------------------------------------------------
1496 -- Start of comments
1497 --
1498 -- Procedure Name : Validate_Unique_Fma_Record
1499 -- Description :
1500 -- Business Rules :
1501 -- Parameters :
1502 -- Version : 1.0
1503 -- End of comments
1504 ---------------------------------------------------------------------------
1505 PROCEDURE Validate_Unique_Fma_Record(
1506 x_return_status OUT NOCOPY VARCHAR2,
1507 p_fmav_rec IN fmav_rec_type)
1508 IS
1509
1510 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1511 l_unq_tbl OKC_UTIL.unq_tbl_type;
1512 l_dummy VARCHAR2(1);
1513 l_row_found Boolean := False;
1514 -- RPOONUGA002 modified the cursor. Deleted the extra where clause condition id = p_id
1515 -- and removed p_id as input parameter to the cursor
1516 CURSOR c1(p_name okl_formulae_v.name%TYPE,
1517 p_version okl_formulae_v.version%TYPE ) is
1518 SELECT 1
1519 FROM okl_formulae_v
1520 WHERE name = p_name
1521 AND version = p_version
1522 AND id <> nvl( p_fmav_rec.id, -9999 );
1523
1524 BEGIN
1525
1526 -- initialize return status
1527 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1528
1529 -- RPOONUGA002 modified the cursor call
1530 OPEN c1( p_fmav_rec.name, p_fmav_rec.version );
1531 FETCH c1 into l_dummy;
1532 l_row_found := c1%FOUND;
1533 CLOSE c1;
1534 IF l_row_found then
1535 OKC_API.set_message( 'OKL', G_UNQS, G_TABLE_TOKEN, 'Okl_Formulae_V' );
1536 x_return_status := OKC_API.G_RET_STS_ERROR;
1537 END IF;
1538
1539 EXCEPTION
1540 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1541 -- no processing necessary; validation can continue
1542 -- with the next column
1543 NULL;
1544
1545 WHEN OTHERS THEN
1546 -- store SQL error message on message stack for caller
1547 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
1548 p_msg_name => g_unexpected_error,
1549 p_token1 => g_sqlcode_token,
1550 p_token1_value => sqlcode,
1551 p_token2 => g_sqlerrm_token,
1552 p_token2_value => sqlerrm );
1553
1554 -- notify caller of an UNEXPECTED error
1555 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1556
1557 END Validate_Unique_Fma_Record;
1558
1559
1560 ---------------------------------------------------------------------------
1561 -- FUNCTION Validate_Record
1562 ---------------------------------------------------------------------------
1563 -- Start of comments
1564 --
1565 -- Procedure Name : Validate_Record
1566 -- Description :
1567 -- Business Rules :
1568 -- Parameters :
1569 -- Version : 1.0
1570 -- End of comments
1571 ---------------------------------------------------------------------------
1572
1573 FUNCTION Validate_Record (
1574 p_fmav_rec IN fmav_rec_type
1575 ) RETURN VARCHAR2 IS
1576 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1577 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1578 BEGIN
1579
1580 -- Validate_Unique_Fma_Record
1581 Validate_Unique_Fma_Record( x_return_status, p_fmav_rec );
1582 -- store the highest degree of error
1583 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1584 IF ( x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1585 -- need to leave
1586 l_return_status := x_return_status;
1587 RAISE G_EXCEPTION_HALT_VALIDATION;
1588 ELSE
1589 -- record that there was an error
1590 l_return_status := x_return_status;
1591 END IF;
1592 END IF;
1593
1594 -- Validate_end_Date
1595 -- Suresh Gorantla: Added this call to validate end date.
1596 -- Valid end date
1597 IF ( p_fmav_rec.end_date IS NOT NULL ) AND
1598 ( p_fmav_rec.end_date <> OKC_API.G_MISS_DATE ) THEN
1599 Validate_end_Date(p_fmav_rec, x_return_status );
1600 IF ( x_return_status <> OKC_API.G_RET_STS_SUCCESS ) THEN
1601 IF ( x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR ) THEN
1602 -- need to leave
1603 l_return_status := x_return_status;
1604 RAISE G_EXCEPTION_HALT_VALIDATION;
1605 ELSE
1606 -- record that there was an error
1607 l_return_status := x_return_status;
1608 END IF;
1609 END IF;
1610 END IF;
1611
1612 RETURN( l_return_status );
1613
1614 EXCEPTION
1615 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1616 -- no processing necessary; validation can continue
1617 -- with the next column
1618 NULL;
1619 RETURN ( l_return_status );
1620
1621 WHEN OTHERS THEN
1622 -- store SQL error message on message stack for caller
1623 OKC_API.SET_MESSAGE( p_app_name => g_app_name,
1624 p_msg_name => g_unexpected_error,
1625 p_token1 => g_sqlcode_token,
1626 p_token1_value => sqlcode,
1627 p_token2 => g_sqlerrm_token,
1628 p_token2_value => sqlerrm );
1629
1630 -- notify caller of an UNEXPECTED error
1631 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1632 RETURN (x_return_status);
1633 END Validate_Record;
1634
1635
1636 /** *** SBALASHA002 End *** **/
1637 ---------------------------------------------------------------------------
1638 -- PROCEDURE Migrate
1639 -- RPOONUGA003: Add IN to p_to parameter in all migrate procedures
1640 ---------------------------------------------------------------------------
1641 PROCEDURE migrate (
1642 p_from IN fmav_rec_type,
1643 p_to IN OUT NOCOPY fma_rec_type
1644 ) IS
1645 BEGIN
1646 p_to.id := p_from.id;
1647 p_to.name := p_from.name;
1648 p_to.org_id := p_from.org_id;
1649 p_to.there_can_be_only_one_yn := p_from.there_can_be_only_one_yn;
1650 p_to.cgr_id := p_from.cgr_id;
1651 p_to.fyp_code := p_from.fyp_code;
1652 p_to.version := p_from.version;
1653 p_to.formula_string := p_from.formula_string;
1654 p_to.object_version_number := p_from.object_version_number;
1655 p_to.start_date := p_from.start_date;
1656 p_to.attribute_category := p_from.attribute_category;
1657 p_to.end_date := p_from.end_date;
1658 p_to.attribute1 := p_from.attribute1;
1659 p_to.attribute2 := p_from.attribute2;
1660 p_to.attribute3 := p_from.attribute3;
1661 p_to.attribute4 := p_from.attribute4;
1662 p_to.attribute5 := p_from.attribute5;
1663 p_to.attribute6 := p_from.attribute6;
1664 p_to.attribute7 := p_from.attribute7;
1665 p_to.attribute8 := p_from.attribute8;
1666 p_to.attribute9 := p_from.attribute9;
1667 p_to.attribute10 := p_from.attribute10;
1668 p_to.attribute11 := p_from.attribute11;
1669 p_to.attribute12 := p_from.attribute12;
1670 p_to.attribute13 := p_from.attribute13;
1671 p_to.attribute14 := p_from.attribute14;
1672 p_to.attribute15 := p_from.attribute15;
1673 p_to.created_by := p_from.created_by;
1674 p_to.creation_date := p_from.creation_date;
1675 p_to.last_updated_by := p_from.last_updated_by;
1676 p_to.last_update_date := p_from.last_update_date;
1677 p_to.last_update_login := p_from.last_update_login;
1678 END migrate;
1679 PROCEDURE migrate (
1680 p_from IN fma_rec_type,
1681 p_to IN OUT NOCOPY fmav_rec_type
1682 ) IS
1683 BEGIN
1684 p_to.id := p_from.id;
1685 p_to.name := p_from.name;
1686 p_to.org_id := p_from.org_id;
1687 p_to.there_can_be_only_one_yn := p_from.there_can_be_only_one_yn;
1688 p_to.cgr_id := p_from.cgr_id;
1689 p_to.fyp_code := p_from.fyp_code;
1690 p_to.version := p_from.version;
1691 p_to.formula_string := p_from.formula_string;
1692 p_to.object_version_number := p_from.object_version_number;
1693 p_to.start_date := p_from.start_date;
1694 p_to.attribute_category := p_from.attribute_category;
1695 p_to.end_date := p_from.end_date;
1696 p_to.attribute1 := p_from.attribute1;
1697 p_to.attribute2 := p_from.attribute2;
1698 p_to.attribute3 := p_from.attribute3;
1699 p_to.attribute4 := p_from.attribute4;
1700 p_to.attribute5 := p_from.attribute5;
1701 p_to.attribute6 := p_from.attribute6;
1702 p_to.attribute7 := p_from.attribute7;
1703 p_to.attribute8 := p_from.attribute8;
1704 p_to.attribute9 := p_from.attribute9;
1705 p_to.attribute10 := p_from.attribute10;
1706 p_to.attribute11 := p_from.attribute11;
1707 p_to.attribute12 := p_from.attribute12;
1708 p_to.attribute13 := p_from.attribute13;
1709 p_to.attribute14 := p_from.attribute14;
1710 p_to.attribute15 := p_from.attribute15;
1711 p_to.created_by := p_from.created_by;
1712 p_to.creation_date := p_from.creation_date;
1713 p_to.last_updated_by := p_from.last_updated_by;
1714 p_to.last_update_date := p_from.last_update_date;
1715 p_to.last_update_login := p_from.last_update_login;
1716 END migrate;
1717 PROCEDURE migrate (
1718 p_from IN fmav_rec_type,
1719 p_to IN OUT NOCOPY okl_formulae_tl_rec_type
1720 ) IS
1721 BEGIN
1722 p_to.id := p_from.id;
1723 p_to.sfwt_flag := p_from.sfwt_flag;
1724 p_to.description := p_from.description;
1725 p_to.created_by := p_from.created_by;
1726 p_to.creation_date := p_from.creation_date;
1727 p_to.last_updated_by := p_from.last_updated_by;
1728 p_to.last_update_date := p_from.last_update_date;
1729 p_to.last_update_login := p_from.last_update_login;
1730 END migrate;
1731 PROCEDURE migrate (
1732 p_from IN okl_formulae_tl_rec_type,
1733 p_to IN OUT NOCOPY fmav_rec_type
1734 ) IS
1735 BEGIN
1736 p_to.id := p_from.id;
1737 p_to.sfwt_flag := p_from.sfwt_flag;
1738 p_to.description := p_from.description;
1739 p_to.created_by := p_from.created_by;
1740 p_to.creation_date := p_from.creation_date;
1741 p_to.last_updated_by := p_from.last_updated_by;
1742 p_to.last_update_date := p_from.last_update_date;
1743 p_to.last_update_login := p_from.last_update_login;
1744 END migrate;
1745
1746 ---------------------------------------------------------------------------
1747 -- PROCEDURE validate_row
1748 ---------------------------------------------------------------------------
1749 -------------------------------------
1750 -- validate_row for:OKL_FORMULAE_V --
1751 -------------------------------------
1752 PROCEDURE validate_row(
1753 p_api_version IN NUMBER,
1754 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1755 x_return_status OUT NOCOPY VARCHAR2,
1756 x_msg_count OUT NOCOPY NUMBER,
1757 x_msg_data OUT NOCOPY VARCHAR2,
1758 p_fmav_rec IN fmav_rec_type) IS
1759
1760 l_api_version CONSTANT NUMBER := 1;
1761 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1762 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1763 l_fmav_rec fmav_rec_type := p_fmav_rec;
1764 l_fma_rec fma_rec_type;
1765 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
1766 BEGIN
1767 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1768 G_PKG_NAME,
1769 p_init_msg_list,
1770 l_api_version,
1771 p_api_version,
1772 '_PVT',
1773 x_return_status);
1774 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1775 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1776 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1777 RAISE OKC_API.G_EXCEPTION_ERROR;
1778 END IF;
1779 --- Validate all non-missing attributes (Item Level Validation)
1780 l_return_status := Validate_Attributes(l_fmav_rec);
1781 --- If any errors happen abort API
1782 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1783 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1784 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1785 RAISE OKC_API.G_EXCEPTION_ERROR;
1786 END IF;
1787 l_return_status := Validate_Record(l_fmav_rec);
1788 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1789 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1790 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1791 RAISE OKC_API.G_EXCEPTION_ERROR;
1792 END IF;
1793 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1794 EXCEPTION
1795 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1796 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1797 (
1798 l_api_name,
1799 G_PKG_NAME,
1800 'OKC_API.G_RET_STS_ERROR',
1801 x_msg_count,
1802 x_msg_data,
1803 '_PVT'
1804 );
1805 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1806 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1807 (
1808 l_api_name,
1809 G_PKG_NAME,
1810 'OKC_API.G_RET_STS_UNEXP_ERROR',
1811 x_msg_count,
1812 x_msg_data,
1813 '_PVT'
1814 );
1815 WHEN OTHERS THEN
1816 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1817 (
1818 l_api_name,
1819 G_PKG_NAME,
1820 'OTHERS',
1821 x_msg_count,
1822 x_msg_data,
1823 '_PVT'
1824 );
1825 END validate_row;
1826 ------------------------------------------
1827 -- PL/SQL TBL validate_row for:FMAV_TBL --
1828 ------------------------------------------
1829 PROCEDURE validate_row(
1830 p_api_version IN NUMBER,
1831 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1832 x_return_status OUT NOCOPY VARCHAR2,
1833 x_msg_count OUT NOCOPY NUMBER,
1834 x_msg_data OUT NOCOPY VARCHAR2,
1835 p_fmav_tbl IN fmav_tbl_type) IS
1836
1837 l_api_version CONSTANT NUMBER := 1;
1838 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1839 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1840 i NUMBER := 0;
1841 -- RPOONUGA003: New variable
1842 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1843 BEGIN
1844 OKC_API.init_msg_list(p_init_msg_list);
1845 -- Make sure PL/SQL table has records in it before passing
1846 IF (p_fmav_tbl.COUNT > 0) THEN
1847 i := p_fmav_tbl.FIRST;
1848 LOOP
1849 validate_row (
1850 p_api_version => p_api_version,
1851 p_init_msg_list => OKC_API.G_FALSE,
1852 x_return_status => x_return_status,
1853 x_msg_count => x_msg_count,
1854 x_msg_data => x_msg_data,
1855 p_fmav_rec => p_fmav_tbl(i));
1856 -- RPOONUGA003: store the highest degree of error
1857 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1858 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1859 l_overall_status := x_return_status;
1860 END IF;
1861 END IF;
1862
1863 EXIT WHEN (i = p_fmav_tbl.LAST);
1864 i := p_fmav_tbl.NEXT(i);
1865 END LOOP;
1866 -- RPOONUGA003: return overall status
1867 x_return_status := l_overall_status;
1868 END IF;
1869 EXCEPTION
1870 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1871 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1872 (
1873 l_api_name,
1874 G_PKG_NAME,
1875 'OKC_API.G_RET_STS_ERROR',
1876 x_msg_count,
1877 x_msg_data,
1878 '_PVT'
1879 );
1880 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1881 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1882 (
1883 l_api_name,
1884 G_PKG_NAME,
1885 'OKC_API.G_RET_STS_UNEXP_ERROR',
1886 x_msg_count,
1887 x_msg_data,
1888 '_PVT'
1889 );
1890 WHEN OTHERS THEN
1891 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1892 (
1893 l_api_name,
1894 G_PKG_NAME,
1895 'OTHERS',
1896 x_msg_count,
1897 x_msg_data,
1898 '_PVT'
1899 );
1900 END validate_row;
1901
1902 ---------------------------------------------------------------------------
1903 -- PROCEDURE insert_row
1904 ---------------------------------------------------------------------------
1905 -----------------------------------
1906 -- insert_row for:OKL_FORMULAE_B --
1907 -----------------------------------
1908 PROCEDURE insert_row(
1909 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1910 x_return_status OUT NOCOPY VARCHAR2,
1911 x_msg_count OUT NOCOPY NUMBER,
1912 x_msg_data OUT NOCOPY VARCHAR2,
1913 p_fma_rec IN fma_rec_type,
1914 x_fma_rec OUT NOCOPY fma_rec_type) IS
1915
1916 l_api_version CONSTANT NUMBER := 1;
1917 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1918 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1919 l_fma_rec fma_rec_type := p_fma_rec;
1920 l_def_fma_rec fma_rec_type;
1921 ---------------------------------------
1922 -- Set_Attributes for:OKL_FORMULAE_B --
1923 ---------------------------------------
1924 FUNCTION Set_Attributes (
1925 p_fma_rec IN fma_rec_type,
1926 x_fma_rec OUT NOCOPY fma_rec_type
1927 ) RETURN VARCHAR2 IS
1928 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1929 BEGIN
1930 x_fma_rec := p_fma_rec;
1931 RETURN(l_return_status);
1932 END Set_Attributes;
1933 BEGIN
1934 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1935 p_init_msg_list,
1936 '_PVT',
1937 x_return_status);
1938 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1939 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1940 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1941 RAISE OKC_API.G_EXCEPTION_ERROR;
1942 END IF;
1943 --- Setting item attributes
1944 l_return_status := Set_Attributes(
1945 p_fma_rec, -- IN
1946 l_fma_rec); -- OUT
1947 --- If any errors happen abort API
1948 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1949 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1950 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1951 RAISE OKC_API.G_EXCEPTION_ERROR;
1952 END IF;
1953 INSERT INTO OKL_FORMULAE_B(
1954 id,
1955 name,
1956 org_id,
1957 there_can_be_only_one_yn,
1958 cgr_id,
1959 fyp_code,
1960 version,
1961 formula_string,
1962 object_version_number,
1963 start_date,
1964 attribute_category,
1965 end_date,
1966 attribute1,
1967 attribute2,
1968 attribute3,
1969 attribute4,
1970 attribute5,
1971 attribute6,
1972 attribute7,
1973 attribute8,
1974 attribute9,
1975 attribute10,
1976 attribute11,
1977 attribute12,
1978 attribute13,
1979 attribute14,
1980 attribute15,
1981 created_by,
1982 creation_date,
1983 last_updated_by,
1984 last_update_date,
1985 last_update_login)
1986 VALUES (
1987 l_fma_rec.id,
1988 l_fma_rec.name,
1989 l_fma_rec.org_id,
1990 l_fma_rec.there_can_be_only_one_yn,
1991 l_fma_rec.cgr_id,
1992 l_fma_rec.fyp_code,
1993 l_fma_rec.version,
1994 l_fma_rec.formula_string,
1995 l_fma_rec.object_version_number,
1996 l_fma_rec.start_date,
1997 l_fma_rec.attribute_category,
1998 l_fma_rec.end_date,
1999 l_fma_rec.attribute1,
2000 l_fma_rec.attribute2,
2001 l_fma_rec.attribute3,
2002 l_fma_rec.attribute4,
2003 l_fma_rec.attribute5,
2004 l_fma_rec.attribute6,
2005 l_fma_rec.attribute7,
2006 l_fma_rec.attribute8,
2007 l_fma_rec.attribute9,
2008 l_fma_rec.attribute10,
2009 l_fma_rec.attribute11,
2010 l_fma_rec.attribute12,
2011 l_fma_rec.attribute13,
2012 l_fma_rec.attribute14,
2013 l_fma_rec.attribute15,
2014 l_fma_rec.created_by,
2015 l_fma_rec.creation_date,
2016 l_fma_rec.last_updated_by,
2017 l_fma_rec.last_update_date,
2018 l_fma_rec.last_update_login);
2019 -- Set OUT values
2020 x_fma_rec := l_fma_rec;
2021 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2022 EXCEPTION
2023 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2024 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2025 (
2026 l_api_name,
2027 G_PKG_NAME,
2028 'OKC_API.G_RET_STS_ERROR',
2029 x_msg_count,
2030 x_msg_data,
2031 '_PVT'
2032 );
2033 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2034 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2035 (
2036 l_api_name,
2037 G_PKG_NAME,
2038 'OKC_API.G_RET_STS_UNEXP_ERROR',
2039 x_msg_count,
2040 x_msg_data,
2041 '_PVT'
2042 );
2043 WHEN OTHERS THEN
2044 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2045 (
2046 l_api_name,
2047 G_PKG_NAME,
2048 'OTHERS',
2049 x_msg_count,
2050 x_msg_data,
2051 '_PVT'
2052 );
2053 END insert_row;
2054 ------------------------------------
2055 -- insert_row for:OKL_FORMULAE_TL --
2056 ------------------------------------
2057 PROCEDURE insert_row(
2058 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2059 x_return_status OUT NOCOPY VARCHAR2,
2060 x_msg_count OUT NOCOPY NUMBER,
2061 x_msg_data OUT NOCOPY VARCHAR2,
2062 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
2063 x_okl_formulae_tl_rec OUT NOCOPY okl_formulae_tl_rec_type) IS
2064
2065 l_api_version CONSTANT NUMBER := 1;
2066 l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
2067 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2068 l_okl_formulae_tl_rec okl_formulae_tl_rec_type := p_okl_formulae_tl_rec;
2069 l_def_okl_formulae_tl_rec okl_formulae_tl_rec_type;
2070 CURSOR get_languages IS
2071 SELECT *
2072 FROM FND_LANGUAGES
2073 WHERE INSTALLED_FLAG IN ('I', 'B');
2074 ----------------------------------------
2075 -- Set_Attributes for:OKL_FORMULAE_TL --
2076 ----------------------------------------
2077 FUNCTION Set_Attributes (
2078 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
2079 x_okl_formulae_tl_rec OUT NOCOPY okl_formulae_tl_rec_type
2080 ) RETURN VARCHAR2 IS
2081 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2082 BEGIN
2083 x_okl_formulae_tl_rec := p_okl_formulae_tl_rec;
2084 x_okl_formulae_tl_rec.LANGUAGE := USERENV('LANG');
2085 x_okl_formulae_tl_rec.SOURCE_LANG := USERENV('LANG');
2086 RETURN(l_return_status);
2087 END Set_Attributes;
2088 BEGIN
2089 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2090 p_init_msg_list,
2091 '_PVT',
2092 x_return_status);
2093 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2094 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2095 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2096 RAISE OKC_API.G_EXCEPTION_ERROR;
2097 END IF;
2098 --- Setting item attributes
2099 l_return_status := Set_Attributes(
2100 p_okl_formulae_tl_rec, -- IN
2101 l_okl_formulae_tl_rec); -- OUT
2102 --- If any errors happen abort API
2103 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2104 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2105 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2106 RAISE OKC_API.G_EXCEPTION_ERROR;
2107 END IF;
2108 FOR l_lang_rec IN get_languages LOOP
2109 l_okl_formulae_tl_rec.language := l_lang_rec.language_code;
2110 INSERT INTO OKL_FORMULAE_TL(
2111 id,
2112 language,
2113 source_lang,
2114 sfwt_flag,
2115 description,
2116 created_by,
2117 creation_date,
2118 last_updated_by,
2119 last_update_date,
2120 last_update_login)
2121 VALUES (
2122 l_okl_formulae_tl_rec.id,
2123 l_okl_formulae_tl_rec.language,
2124 l_okl_formulae_tl_rec.source_lang,
2125 l_okl_formulae_tl_rec.sfwt_flag,
2126 l_okl_formulae_tl_rec.description,
2127 l_okl_formulae_tl_rec.created_by,
2128 l_okl_formulae_tl_rec.creation_date,
2129 l_okl_formulae_tl_rec.last_updated_by,
2130 l_okl_formulae_tl_rec.last_update_date,
2131 l_okl_formulae_tl_rec.last_update_login);
2132 END LOOP;
2133 -- Set OUT values
2134 x_okl_formulae_tl_rec := l_okl_formulae_tl_rec;
2135 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2136 EXCEPTION
2137 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2138 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2139 (
2140 l_api_name,
2141 G_PKG_NAME,
2142 'OKC_API.G_RET_STS_ERROR',
2143 x_msg_count,
2144 x_msg_data,
2145 '_PVT'
2146 );
2147 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2148 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2149 (
2150 l_api_name,
2151 G_PKG_NAME,
2152 'OKC_API.G_RET_STS_UNEXP_ERROR',
2153 x_msg_count,
2154 x_msg_data,
2155 '_PVT'
2156 );
2157 WHEN OTHERS THEN
2158 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2159 (
2160 l_api_name,
2161 G_PKG_NAME,
2162 'OTHERS',
2163 x_msg_count,
2164 x_msg_data,
2165 '_PVT'
2166 );
2167 END insert_row;
2168 -----------------------------------
2169 -- insert_row for:OKL_FORMULAE_V --
2170 -----------------------------------
2171 PROCEDURE insert_row(
2172 p_api_version IN NUMBER,
2173 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2174 x_return_status OUT NOCOPY VARCHAR2,
2175 x_msg_count OUT NOCOPY NUMBER,
2176 x_msg_data OUT NOCOPY VARCHAR2,
2177 p_fmav_rec IN fmav_rec_type,
2178 x_fmav_rec OUT NOCOPY fmav_rec_type) IS
2179
2180 l_api_version CONSTANT NUMBER := 1;
2181 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
2182 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2183 l_fmav_rec fmav_rec_type;
2184 l_def_fmav_rec fmav_rec_type;
2185 l_fma_rec fma_rec_type;
2186 lx_fma_rec fma_rec_type;
2187 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
2188 lx_okl_formulae_tl_rec okl_formulae_tl_rec_type;
2189 -------------------------------
2190 -- FUNCTION fill_who_columns --
2191 -------------------------------
2192 FUNCTION fill_who_columns (
2193 p_fmav_rec IN fmav_rec_type
2194 ) RETURN fmav_rec_type IS
2195 l_fmav_rec fmav_rec_type := p_fmav_rec;
2196 BEGIN
2197 l_fmav_rec.CREATION_DATE := SYSDATE;
2198 l_fmav_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2199 l_fmav_rec.LAST_UPDATE_DATE := SYSDATE;
2200 l_fmav_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2201 l_fmav_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2202 RETURN(l_fmav_rec);
2203 END fill_who_columns;
2204 ---------------------------------------
2205 -- Set_Attributes for:OKL_FORMULAE_V --
2206 ---------------------------------------
2207 FUNCTION Set_Attributes (
2208 p_fmav_rec IN fmav_rec_type,
2209 x_fmav_rec OUT NOCOPY fmav_rec_type
2210 ) RETURN VARCHAR2 IS
2211 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2212 BEGIN
2213 x_fmav_rec := p_fmav_rec;
2214 x_fmav_rec.OBJECT_VERSION_NUMBER := 1;
2215 x_fmav_rec.SFWT_FLAG := 'N';
2216 RETURN(l_return_status);
2217 END Set_Attributes;
2218 BEGIN
2219 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2220 G_PKG_NAME,
2221 p_init_msg_list,
2222 l_api_version,
2223 p_api_version,
2224 '_PVT',
2225 x_return_status);
2226 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2227 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2228 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2229 RAISE OKC_API.G_EXCEPTION_ERROR;
2230 END IF;
2231 l_fmav_rec := null_out_defaults(p_fmav_rec);
2232 -- Set primary key value
2233 l_fmav_rec.ID := get_seq_id;
2234 --- Setting item attributes
2235 l_return_status := Set_Attributes(
2236 l_fmav_rec, -- IN
2237 l_def_fmav_rec); -- OUT
2238 --- If any errors happen abort API
2239 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2240 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2241 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2242 RAISE OKC_API.G_EXCEPTION_ERROR;
2243 END IF;
2244 l_def_fmav_rec := fill_who_columns(l_def_fmav_rec);
2245 --- Validate all non-missing attributes (Item Level Validation)
2246 l_return_status := Validate_Attributes(l_def_fmav_rec);
2247 --- If any errors happen abort API
2248 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2249 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2250 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2251 RAISE OKC_API.G_EXCEPTION_ERROR;
2252 END IF;
2253 l_return_status := Validate_Record(l_def_fmav_rec);
2254 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2255 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2256 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2257 RAISE OKC_API.G_EXCEPTION_ERROR;
2258 END IF;
2259 --------------------------------------
2260 -- Move VIEW record to "Child" records
2261 --------------------------------------
2262 migrate(l_def_fmav_rec, l_fma_rec);
2263 migrate(l_def_fmav_rec, l_okl_formulae_tl_rec);
2264 --------------------------------------------
2265 -- Call the INSERT_ROW for each child record
2266 --------------------------------------------
2267 insert_row(
2268 p_init_msg_list,
2269 x_return_status,
2270 x_msg_count,
2271 x_msg_data,
2272 l_fma_rec,
2273 lx_fma_rec
2274 );
2275 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2276 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2277 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2278 RAISE OKC_API.G_EXCEPTION_ERROR;
2279 END IF;
2280 migrate(lx_fma_rec, l_def_fmav_rec);
2281 insert_row(
2282 p_init_msg_list,
2283 x_return_status,
2284 x_msg_count,
2285 x_msg_data,
2286 l_okl_formulae_tl_rec,
2287 lx_okl_formulae_tl_rec
2288 );
2289 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2290 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2291 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2292 RAISE OKC_API.G_EXCEPTION_ERROR;
2293 END IF;
2294 migrate(lx_okl_formulae_tl_rec, l_def_fmav_rec);
2295 -- Set OUT values
2296 x_fmav_rec := l_def_fmav_rec;
2297 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2298 EXCEPTION
2299 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2300 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2301 (
2302 l_api_name,
2303 G_PKG_NAME,
2304 'OKC_API.G_RET_STS_ERROR',
2305 x_msg_count,
2306 x_msg_data,
2307 '_PVT'
2308 );
2309 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2310 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2311 (
2312 l_api_name,
2313 G_PKG_NAME,
2314 'OKC_API.G_RET_STS_UNEXP_ERROR',
2315 x_msg_count,
2316 x_msg_data,
2317 '_PVT'
2318 );
2319 WHEN OTHERS THEN
2320 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2321 (
2322 l_api_name,
2323 G_PKG_NAME,
2324 'OTHERS',
2325 x_msg_count,
2326 x_msg_data,
2327 '_PVT'
2328 );
2329 END insert_row;
2330 ----------------------------------------
2331 -- PL/SQL TBL insert_row for:FMAV_TBL --
2332 ----------------------------------------
2333 PROCEDURE insert_row(
2334 p_api_version IN NUMBER,
2335 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2336 x_return_status OUT NOCOPY VARCHAR2,
2337 x_msg_count OUT NOCOPY NUMBER,
2338 x_msg_data OUT NOCOPY VARCHAR2,
2339 p_fmav_tbl IN fmav_tbl_type,
2340 x_fmav_tbl OUT NOCOPY fmav_tbl_type) IS
2341
2342 l_api_version CONSTANT NUMBER := 1;
2343 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2344 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2345 i NUMBER := 0;
2346 -- RPOONUGA003: New variable
2347 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2348 BEGIN
2349 OKC_API.init_msg_list(p_init_msg_list);
2350 -- Make sure PL/SQL table has records in it before passing
2351 IF (p_fmav_tbl.COUNT > 0) THEN
2352 i := p_fmav_tbl.FIRST;
2353 LOOP
2354 insert_row (
2355 p_api_version => p_api_version,
2356 p_init_msg_list => OKC_API.G_FALSE,
2357 x_return_status => x_return_status,
2358 x_msg_count => x_msg_count,
2359 x_msg_data => x_msg_data,
2360 p_fmav_rec => p_fmav_tbl(i),
2361 x_fmav_rec => x_fmav_tbl(i));
2362 -- RPOONUGA003: store the highest degree of error
2363 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2364 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2365 l_overall_status := x_return_status;
2366 END IF;
2367 END IF;
2368
2369 EXIT WHEN (i = p_fmav_tbl.LAST);
2370 i := p_fmav_tbl.NEXT(i);
2371 END LOOP;
2372 -- RPOONUGA003: return overall status
2373 x_return_status := l_overall_status;
2374 END IF;
2375 EXCEPTION
2376 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2377 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2378 (
2379 l_api_name,
2380 G_PKG_NAME,
2381 'OKC_API.G_RET_STS_ERROR',
2382 x_msg_count,
2383 x_msg_data,
2384 '_PVT'
2385 );
2386 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2387 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2388 (
2389 l_api_name,
2390 G_PKG_NAME,
2391 'OKC_API.G_RET_STS_UNEXP_ERROR',
2392 x_msg_count,
2393 x_msg_data,
2394 '_PVT'
2395 );
2396 WHEN OTHERS THEN
2397 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2398 (
2399 l_api_name,
2400 G_PKG_NAME,
2401 'OTHERS',
2402 x_msg_count,
2403 x_msg_data,
2404 '_PVT'
2405 );
2406 END insert_row;
2407
2408 ---------------------------------------------------------------------------
2409 -- PROCEDURE lock_row
2410 ---------------------------------------------------------------------------
2411 ---------------------------------
2412 -- lock_row for:OKL_FORMULAE_B --
2413 ---------------------------------
2414 PROCEDURE lock_row(
2415 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2416 x_return_status OUT NOCOPY VARCHAR2,
2417 x_msg_count OUT NOCOPY NUMBER,
2418 x_msg_data OUT NOCOPY VARCHAR2,
2419 p_fma_rec IN fma_rec_type) IS
2420
2421 E_Resource_Busy EXCEPTION;
2422 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2423 CURSOR lock_csr (p_fma_rec IN fma_rec_type) IS
2424 SELECT OBJECT_VERSION_NUMBER
2425 FROM OKL_FORMULAE_B
2426 WHERE ID = p_fma_rec.id
2427 AND OBJECT_VERSION_NUMBER = p_fma_rec.object_version_number
2428 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2429
2430 CURSOR lchk_csr (p_fma_rec IN fma_rec_type) IS
2431 SELECT OBJECT_VERSION_NUMBER
2432 FROM OKL_FORMULAE_B
2433 WHERE ID = p_fma_rec.id;
2434 l_api_version CONSTANT NUMBER := 1;
2435 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
2436 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2437 l_object_version_number OKL_FORMULAE_B.OBJECT_VERSION_NUMBER%TYPE;
2438 lc_object_version_number OKL_FORMULAE_B.OBJECT_VERSION_NUMBER%TYPE;
2439 l_row_notfound BOOLEAN := FALSE;
2440 lc_row_notfound BOOLEAN := FALSE;
2441 BEGIN
2442 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2443 p_init_msg_list,
2444 '_PVT',
2445 x_return_status);
2446 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2447 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2448 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2449 RAISE OKC_API.G_EXCEPTION_ERROR;
2450 END IF;
2451 BEGIN
2452 OPEN lock_csr(p_fma_rec);
2453 FETCH lock_csr INTO l_object_version_number;
2454 l_row_notfound := lock_csr%NOTFOUND;
2455 CLOSE lock_csr;
2456 EXCEPTION
2457 WHEN E_Resource_Busy THEN
2458 IF (lock_csr%ISOPEN) THEN
2459 CLOSE lock_csr;
2460 END IF;
2461 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2462 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2463 END;
2464
2465 IF ( l_row_notfound ) THEN
2466 OPEN lchk_csr(p_fma_rec);
2467 FETCH lchk_csr INTO lc_object_version_number;
2468 lc_row_notfound := lchk_csr%NOTFOUND;
2469 CLOSE lchk_csr;
2470 END IF;
2471 IF (lc_row_notfound) THEN
2472 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2473 RAISE OKC_API.G_EXCEPTION_ERROR;
2474 ELSIF lc_object_version_number > p_fma_rec.object_version_number THEN
2475 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2476 RAISE OKC_API.G_EXCEPTION_ERROR;
2477 ELSIF lc_object_version_number <> p_fma_rec.object_version_number THEN
2478 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2479 RAISE OKC_API.G_EXCEPTION_ERROR;
2480 ELSIF lc_object_version_number = -1 THEN
2481 OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2482 RAISE OKC_API.G_EXCEPTION_ERROR;
2483 END IF;
2484 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2485 EXCEPTION
2486 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2487 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2488 (
2489 l_api_name,
2490 G_PKG_NAME,
2491 'OKC_API.G_RET_STS_ERROR',
2492 x_msg_count,
2493 x_msg_data,
2494 '_PVT'
2495 );
2496 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2497 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2498 (
2499 l_api_name,
2500 G_PKG_NAME,
2501 'OKC_API.G_RET_STS_UNEXP_ERROR',
2502 x_msg_count,
2503 x_msg_data,
2504 '_PVT'
2505 );
2506 WHEN OTHERS THEN
2507 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2508 (
2509 l_api_name,
2510 G_PKG_NAME,
2511 'OTHERS',
2512 x_msg_count,
2513 x_msg_data,
2514 '_PVT'
2515 );
2516 END lock_row;
2517 ----------------------------------
2518 -- lock_row for:OKL_FORMULAE_TL --
2519 ----------------------------------
2520 PROCEDURE lock_row(
2521 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2522 x_return_status OUT NOCOPY VARCHAR2,
2523 x_msg_count OUT NOCOPY NUMBER,
2524 x_msg_data OUT NOCOPY VARCHAR2,
2525 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type) IS
2526
2527 E_Resource_Busy EXCEPTION;
2528 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2529 CURSOR lock_csr (p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type) IS
2530 SELECT *
2531 FROM OKL_FORMULAE_TL
2532 WHERE ID = p_okl_formulae_tl_rec.id
2533 FOR UPDATE NOWAIT;
2534
2535 l_api_version CONSTANT NUMBER := 1;
2536 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
2537 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2538 l_lock_var lock_csr%ROWTYPE;
2539 l_row_notfound BOOLEAN := FALSE;
2540 lc_row_notfound BOOLEAN := FALSE;
2541 BEGIN
2542 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2543 p_init_msg_list,
2544 '_PVT',
2545 x_return_status);
2546 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2547 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2548 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2549 RAISE OKC_API.G_EXCEPTION_ERROR;
2550 END IF;
2551 BEGIN
2552 OPEN lock_csr(p_okl_formulae_tl_rec);
2553 FETCH lock_csr INTO l_lock_var;
2554 l_row_notfound := lock_csr%NOTFOUND;
2555 CLOSE lock_csr;
2556 EXCEPTION
2557 WHEN E_Resource_Busy THEN
2558 IF (lock_csr%ISOPEN) THEN
2559 CLOSE lock_csr;
2560 END IF;
2561 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2562 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2563 END;
2564
2565 IF ( l_row_notfound ) THEN
2566 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2567 RAISE OKC_API.G_EXCEPTION_ERROR;
2568 END IF;
2569 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2570 EXCEPTION
2571 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2572 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2573 (
2574 l_api_name,
2575 G_PKG_NAME,
2576 'OKC_API.G_RET_STS_ERROR',
2577 x_msg_count,
2578 x_msg_data,
2579 '_PVT'
2580 );
2581 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2582 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2583 (
2584 l_api_name,
2585 G_PKG_NAME,
2586 'OKC_API.G_RET_STS_UNEXP_ERROR',
2587 x_msg_count,
2588 x_msg_data,
2589 '_PVT'
2590 );
2591 WHEN OTHERS THEN
2592 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2593 (
2594 l_api_name,
2595 G_PKG_NAME,
2596 'OTHERS',
2597 x_msg_count,
2598 x_msg_data,
2599 '_PVT'
2600 );
2601 END lock_row;
2602 ---------------------------------
2603 -- lock_row for:OKL_FORMULAE_V --
2604 ---------------------------------
2605 PROCEDURE lock_row(
2606 p_api_version IN NUMBER,
2607 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2608 x_return_status OUT NOCOPY VARCHAR2,
2609 x_msg_count OUT NOCOPY NUMBER,
2610 x_msg_data OUT NOCOPY VARCHAR2,
2611 p_fmav_rec IN fmav_rec_type) IS
2612
2613 l_api_version CONSTANT NUMBER := 1;
2614 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
2615 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2616 l_fma_rec fma_rec_type;
2617 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
2618 BEGIN
2619 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2620 G_PKG_NAME,
2621 p_init_msg_list,
2622 l_api_version,
2623 p_api_version,
2624 '_PVT',
2625 x_return_status);
2626 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2627 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2628 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2629 RAISE OKC_API.G_EXCEPTION_ERROR;
2630 END IF;
2631 --------------------------------------
2632 -- Move VIEW record to "Child" records
2633 --------------------------------------
2634 migrate(p_fmav_rec, l_fma_rec);
2635 migrate(p_fmav_rec, l_okl_formulae_tl_rec);
2636 --------------------------------------------
2637 -- Call the LOCK_ROW for each child record
2638 --------------------------------------------
2639 lock_row(
2640 p_init_msg_list,
2641 x_return_status,
2642 x_msg_count,
2643 x_msg_data,
2644 l_fma_rec
2645 );
2646 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2647 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2648 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2649 RAISE OKC_API.G_EXCEPTION_ERROR;
2650 END IF;
2651 lock_row(
2652 p_init_msg_list,
2653 x_return_status,
2654 x_msg_count,
2655 x_msg_data,
2656 l_okl_formulae_tl_rec
2657 );
2658 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2659 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2660 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2661 RAISE OKC_API.G_EXCEPTION_ERROR;
2662 END IF;
2663 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2664 EXCEPTION
2665 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2666 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2667 (
2668 l_api_name,
2669 G_PKG_NAME,
2670 'OKC_API.G_RET_STS_ERROR',
2671 x_msg_count,
2672 x_msg_data,
2673 '_PVT'
2674 );
2675 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2676 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2677 (
2678 l_api_name,
2679 G_PKG_NAME,
2680 'OKC_API.G_RET_STS_UNEXP_ERROR',
2681 x_msg_count,
2682 x_msg_data,
2683 '_PVT'
2684 );
2685 WHEN OTHERS THEN
2686 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2687 (
2688 l_api_name,
2689 G_PKG_NAME,
2690 'OTHERS',
2691 x_msg_count,
2692 x_msg_data,
2693 '_PVT'
2694 );
2695 END lock_row;
2696 --------------------------------------
2697 -- PL/SQL TBL lock_row for:FMAV_TBL --
2698 --------------------------------------
2699 PROCEDURE lock_row(
2700 p_api_version IN NUMBER,
2701 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2702 x_return_status OUT NOCOPY VARCHAR2,
2703 x_msg_count OUT NOCOPY NUMBER,
2704 x_msg_data OUT NOCOPY VARCHAR2,
2705 p_fmav_tbl IN fmav_tbl_type) IS
2706
2707 l_api_version CONSTANT NUMBER := 1;
2708 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2709 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2710 i NUMBER := 0;
2711 -- RPOONUGA003: New variable
2712 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2713 BEGIN
2714 OKC_API.init_msg_list(p_init_msg_list);
2715 -- Make sure PL/SQL table has records in it before passing
2716 IF (p_fmav_tbl.COUNT > 0) THEN
2717 i := p_fmav_tbl.FIRST;
2718 LOOP
2719 lock_row (
2720 p_api_version => p_api_version,
2721 p_init_msg_list => OKC_API.G_FALSE,
2722 x_return_status => x_return_status,
2723 x_msg_count => x_msg_count,
2724 x_msg_data => x_msg_data,
2725 p_fmav_rec => p_fmav_tbl(i));
2726 -- RPOONUGA003: store the highest degree of error
2727 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2728 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2729 l_overall_status := x_return_status;
2730 END IF;
2731 END IF;
2732
2733 EXIT WHEN (i = p_fmav_tbl.LAST);
2734 i := p_fmav_tbl.NEXT(i);
2735 END LOOP;
2736 -- RPOONUGA003: return overall status
2737 x_return_status := l_overall_status;
2738 END IF;
2739 EXCEPTION
2740 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2741 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2742 (
2743 l_api_name,
2744 G_PKG_NAME,
2745 'OKC_API.G_RET_STS_ERROR',
2746 x_msg_count,
2747 x_msg_data,
2748 '_PVT'
2749 );
2750 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2751 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2752 (
2753 l_api_name,
2754 G_PKG_NAME,
2755 'OKC_API.G_RET_STS_UNEXP_ERROR',
2756 x_msg_count,
2757 x_msg_data,
2758 '_PVT'
2759 );
2760 WHEN OTHERS THEN
2761 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2762 (
2763 l_api_name,
2764 G_PKG_NAME,
2765 'OTHERS',
2766 x_msg_count,
2767 x_msg_data,
2768 '_PVT'
2769 );
2770 END lock_row;
2771
2772 ---------------------------------------------------------------------------
2773 -- PROCEDURE update_row
2774 ---------------------------------------------------------------------------
2775 -----------------------------------
2776 -- update_row for:OKL_FORMULAE_B --
2777 -----------------------------------
2778 PROCEDURE update_row(
2779 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2780 x_return_status OUT NOCOPY VARCHAR2,
2781 x_msg_count OUT NOCOPY NUMBER,
2782 x_msg_data OUT NOCOPY VARCHAR2,
2783 p_fma_rec IN fma_rec_type,
2784 x_fma_rec OUT NOCOPY fma_rec_type) IS
2785
2786 l_api_version CONSTANT NUMBER := 1;
2787 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
2788 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2789 l_fma_rec fma_rec_type := p_fma_rec;
2790 l_def_fma_rec fma_rec_type;
2791 l_row_notfound BOOLEAN := TRUE;
2792 ----------------------------------
2793 -- FUNCTION populate_new_record --
2794 ----------------------------------
2795 FUNCTION populate_new_record (
2796 p_fma_rec IN fma_rec_type,
2797 x_fma_rec OUT NOCOPY fma_rec_type
2798 ) RETURN VARCHAR2 IS
2799 l_fma_rec fma_rec_type;
2800 l_row_notfound BOOLEAN := TRUE;
2801 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2802 BEGIN
2803 x_fma_rec := p_fma_rec;
2804 -- Get current database values
2805 l_fma_rec := get_rec(p_fma_rec, l_row_notfound);
2806 IF (l_row_notfound) THEN
2807 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2808 END IF;
2809 IF (x_fma_rec.id = OKC_API.G_MISS_NUM)
2810 THEN
2811 x_fma_rec.id := l_fma_rec.id;
2812 END IF;
2813 IF (x_fma_rec.name = OKC_API.G_MISS_CHAR)
2814 THEN
2815 x_fma_rec.name := l_fma_rec.name;
2816 END IF;
2817 IF (x_fma_rec.org_id = OKC_API.G_MISS_NUM)
2818 THEN
2819 x_fma_rec.org_id := l_fma_rec.org_id;
2820 END IF;
2821 IF (x_fma_rec.there_can_be_only_one_yn = OKC_API.G_MISS_CHAR)
2822 THEN
2823 x_fma_rec.there_can_be_only_one_yn := l_fma_rec.there_can_be_only_one_yn;
2824 END IF;
2825 IF (x_fma_rec.cgr_id = OKC_API.G_MISS_NUM)
2826 THEN
2827 x_fma_rec.cgr_id := l_fma_rec.cgr_id;
2828 END IF;
2829 IF (x_fma_rec.fyp_code = OKC_API.G_MISS_CHAR)
2830 THEN
2831 x_fma_rec.fyp_code := l_fma_rec.fyp_code;
2832 END IF;
2833 IF (x_fma_rec.version = OKC_API.G_MISS_CHAR)
2834 THEN
2835 x_fma_rec.version := l_fma_rec.version;
2836 END IF;
2837 IF (x_fma_rec.formula_string = OKC_API.G_MISS_CHAR)
2838 THEN
2839 x_fma_rec.formula_string := l_fma_rec.formula_string;
2840 END IF;
2841 IF (x_fma_rec.object_version_number = OKC_API.G_MISS_NUM)
2842 THEN
2843 x_fma_rec.object_version_number := l_fma_rec.object_version_number;
2844 END IF;
2845 IF (x_fma_rec.start_date = OKC_API.G_MISS_DATE)
2846 THEN
2847 x_fma_rec.start_date := l_fma_rec.start_date;
2848 END IF;
2849 IF (x_fma_rec.attribute_category = OKC_API.G_MISS_CHAR)
2850 THEN
2851 x_fma_rec.attribute_category := l_fma_rec.attribute_category;
2852 END IF;
2853 IF (x_fma_rec.end_date = OKC_API.G_MISS_DATE)
2854 THEN
2855 x_fma_rec.end_date := l_fma_rec.end_date;
2856 END IF;
2857 IF (x_fma_rec.attribute1 = OKC_API.G_MISS_CHAR)
2858 THEN
2859 x_fma_rec.attribute1 := l_fma_rec.attribute1;
2860 END IF;
2861 IF (x_fma_rec.attribute2 = OKC_API.G_MISS_CHAR)
2862 THEN
2863 x_fma_rec.attribute2 := l_fma_rec.attribute2;
2864 END IF;
2865 IF (x_fma_rec.attribute3 = OKC_API.G_MISS_CHAR)
2866 THEN
2867 x_fma_rec.attribute3 := l_fma_rec.attribute3;
2868 END IF;
2869 IF (x_fma_rec.attribute4 = OKC_API.G_MISS_CHAR)
2870 THEN
2871 x_fma_rec.attribute4 := l_fma_rec.attribute4;
2872 END IF;
2873 IF (x_fma_rec.attribute5 = OKC_API.G_MISS_CHAR)
2874 THEN
2875 x_fma_rec.attribute5 := l_fma_rec.attribute5;
2876 END IF;
2877 IF (x_fma_rec.attribute6 = OKC_API.G_MISS_CHAR)
2878 THEN
2879 x_fma_rec.attribute6 := l_fma_rec.attribute6;
2880 END IF;
2881 IF (x_fma_rec.attribute7 = OKC_API.G_MISS_CHAR)
2882 THEN
2883 x_fma_rec.attribute7 := l_fma_rec.attribute7;
2884 END IF;
2885 IF (x_fma_rec.attribute8 = OKC_API.G_MISS_CHAR)
2886 THEN
2887 x_fma_rec.attribute8 := l_fma_rec.attribute8;
2888 END IF;
2889 IF (x_fma_rec.attribute9 = OKC_API.G_MISS_CHAR)
2890 THEN
2891 x_fma_rec.attribute9 := l_fma_rec.attribute9;
2892 END IF;
2893 IF (x_fma_rec.attribute10 = OKC_API.G_MISS_CHAR)
2894 THEN
2895 x_fma_rec.attribute10 := l_fma_rec.attribute10;
2896 END IF;
2897 IF (x_fma_rec.attribute11 = OKC_API.G_MISS_CHAR)
2898 THEN
2899 x_fma_rec.attribute11 := l_fma_rec.attribute11;
2900 END IF;
2901 IF (x_fma_rec.attribute12 = OKC_API.G_MISS_CHAR)
2902 THEN
2903 x_fma_rec.attribute12 := l_fma_rec.attribute12;
2904 END IF;
2905 IF (x_fma_rec.attribute13 = OKC_API.G_MISS_CHAR)
2906 THEN
2907 x_fma_rec.attribute13 := l_fma_rec.attribute13;
2908 END IF;
2909 IF (x_fma_rec.attribute14 = OKC_API.G_MISS_CHAR)
2910 THEN
2911 x_fma_rec.attribute14 := l_fma_rec.attribute14;
2912 END IF;
2913 IF (x_fma_rec.attribute15 = OKC_API.G_MISS_CHAR)
2914 THEN
2915 x_fma_rec.attribute15 := l_fma_rec.attribute15;
2916 END IF;
2917 IF (x_fma_rec.created_by = OKC_API.G_MISS_NUM)
2918 THEN
2919 x_fma_rec.created_by := l_fma_rec.created_by;
2920 END IF;
2921 IF (x_fma_rec.creation_date = OKC_API.G_MISS_DATE)
2922 THEN
2923 x_fma_rec.creation_date := l_fma_rec.creation_date;
2924 END IF;
2925 IF (x_fma_rec.last_updated_by = OKC_API.G_MISS_NUM)
2926 THEN
2927 x_fma_rec.last_updated_by := l_fma_rec.last_updated_by;
2928 END IF;
2929 IF (x_fma_rec.last_update_date = OKC_API.G_MISS_DATE)
2930 THEN
2931 x_fma_rec.last_update_date := l_fma_rec.last_update_date;
2932 END IF;
2933 IF (x_fma_rec.last_update_login = OKC_API.G_MISS_NUM)
2934 THEN
2935 x_fma_rec.last_update_login := l_fma_rec.last_update_login;
2936 END IF;
2937 RETURN(l_return_status);
2938 END populate_new_record;
2939 ---------------------------------------
2940 -- Set_Attributes for:OKL_FORMULAE_B --
2941 ---------------------------------------
2942 FUNCTION Set_Attributes (
2943 p_fma_rec IN fma_rec_type,
2944 x_fma_rec OUT NOCOPY fma_rec_type
2945 ) RETURN VARCHAR2 IS
2946 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2947 BEGIN
2948 x_fma_rec := p_fma_rec;
2949 RETURN(l_return_status);
2950 END Set_Attributes;
2951 BEGIN
2952 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2953 p_init_msg_list,
2954 '_PVT',
2955 x_return_status);
2956 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2957 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2958 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2959 RAISE OKC_API.G_EXCEPTION_ERROR;
2960 END IF;
2961 --- Setting item attributes
2962 l_return_status := Set_Attributes(
2963 p_fma_rec, -- IN
2964 l_fma_rec); -- OUT
2965 --- If any errors happen abort API
2966 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2967 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2968 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2969 RAISE OKC_API.G_EXCEPTION_ERROR;
2970 END IF;
2971 l_return_status := populate_new_record(l_fma_rec, l_def_fma_rec);
2972 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2973 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2974 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2975 RAISE OKC_API.G_EXCEPTION_ERROR;
2976 END IF;
2977 UPDATE OKL_FORMULAE_B
2978 SET NAME = l_def_fma_rec.name,
2979 ORG_ID = l_def_fma_rec.org_id,
2980 THERE_CAN_BE_ONLY_ONE_YN = l_def_fma_rec.there_can_be_only_one_yn,
2981 CGR_ID = l_def_fma_rec.cgr_id,
2982 FYP_CODE = l_def_fma_rec.fyp_code,
2983 VERSION = l_def_fma_rec.version,
2984 FORMULA_STRING = l_def_fma_rec.formula_string,
2985 OBJECT_VERSION_NUMBER = l_def_fma_rec.object_version_number,
2986 START_DATE = l_def_fma_rec.start_date,
2987 ATTRIBUTE_CATEGORY = l_def_fma_rec.attribute_category,
2988 END_DATE = l_def_fma_rec.end_date,
2989 ATTRIBUTE1 = l_def_fma_rec.attribute1,
2990 ATTRIBUTE2 = l_def_fma_rec.attribute2,
2991 ATTRIBUTE3 = l_def_fma_rec.attribute3,
2992 ATTRIBUTE4 = l_def_fma_rec.attribute4,
2993 ATTRIBUTE5 = l_def_fma_rec.attribute5,
2994 ATTRIBUTE6 = l_def_fma_rec.attribute6,
2995 ATTRIBUTE7 = l_def_fma_rec.attribute7,
2996 ATTRIBUTE8 = l_def_fma_rec.attribute8,
2997 ATTRIBUTE9 = l_def_fma_rec.attribute9,
2998 ATTRIBUTE10 = l_def_fma_rec.attribute10,
2999 ATTRIBUTE11 = l_def_fma_rec.attribute11,
3000 ATTRIBUTE12 = l_def_fma_rec.attribute12,
3001 ATTRIBUTE13 = l_def_fma_rec.attribute13,
3002 ATTRIBUTE14 = l_def_fma_rec.attribute14,
3003 ATTRIBUTE15 = l_def_fma_rec.attribute15,
3004 CREATED_BY = l_def_fma_rec.created_by,
3005 CREATION_DATE = l_def_fma_rec.creation_date,
3006 LAST_UPDATED_BY = l_def_fma_rec.last_updated_by,
3007 LAST_UPDATE_DATE = l_def_fma_rec.last_update_date,
3008 LAST_UPDATE_LOGIN = l_def_fma_rec.last_update_login
3009 WHERE ID = l_def_fma_rec.id;
3010
3011 x_fma_rec := l_def_fma_rec;
3012 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3013 EXCEPTION
3014 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3015 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3016 (
3017 l_api_name,
3018 G_PKG_NAME,
3019 'OKC_API.G_RET_STS_ERROR',
3020 x_msg_count,
3021 x_msg_data,
3022 '_PVT'
3023 );
3024 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3025 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3026 (
3027 l_api_name,
3028 G_PKG_NAME,
3029 'OKC_API.G_RET_STS_UNEXP_ERROR',
3030 x_msg_count,
3031 x_msg_data,
3032 '_PVT'
3033 );
3034 WHEN OTHERS THEN
3035 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3036 (
3037 l_api_name,
3038 G_PKG_NAME,
3039 'OTHERS',
3040 x_msg_count,
3041 x_msg_data,
3042 '_PVT'
3043 );
3044 END update_row;
3045 ------------------------------------
3046 -- update_row for:OKL_FORMULAE_TL --
3047 ------------------------------------
3048 PROCEDURE update_row(
3049 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3050 x_return_status OUT NOCOPY VARCHAR2,
3051 x_msg_count OUT NOCOPY NUMBER,
3052 x_msg_data OUT NOCOPY VARCHAR2,
3053 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
3054 x_okl_formulae_tl_rec OUT NOCOPY okl_formulae_tl_rec_type) IS
3055
3056 l_api_version CONSTANT NUMBER := 1;
3057 l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
3058 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3059 l_okl_formulae_tl_rec okl_formulae_tl_rec_type := p_okl_formulae_tl_rec;
3060 l_def_okl_formulae_tl_rec okl_formulae_tl_rec_type;
3061 l_row_notfound BOOLEAN := TRUE;
3062 ----------------------------------
3063 -- FUNCTION populate_new_record --
3064 ----------------------------------
3065 FUNCTION populate_new_record (
3066 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
3067 x_okl_formulae_tl_rec OUT NOCOPY okl_formulae_tl_rec_type
3068 ) RETURN VARCHAR2 IS
3069 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
3070 l_row_notfound BOOLEAN := TRUE;
3071 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3072 BEGIN
3073 x_okl_formulae_tl_rec := p_okl_formulae_tl_rec;
3074 -- Get current database values
3075 l_okl_formulae_tl_rec := get_rec(p_okl_formulae_tl_rec, l_row_notfound);
3076 IF (l_row_notfound) THEN
3077 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3078 END IF;
3079 IF (x_okl_formulae_tl_rec.id = OKC_API.G_MISS_NUM)
3080 THEN
3081 x_okl_formulae_tl_rec.id := l_okl_formulae_tl_rec.id;
3082 END IF;
3083 IF (x_okl_formulae_tl_rec.language = OKC_API.G_MISS_CHAR)
3084 THEN
3085 x_okl_formulae_tl_rec.language := l_okl_formulae_tl_rec.language;
3086 END IF;
3087 IF (x_okl_formulae_tl_rec.source_lang = OKC_API.G_MISS_CHAR)
3088 THEN
3089 x_okl_formulae_tl_rec.source_lang := l_okl_formulae_tl_rec.source_lang;
3090 END IF;
3091 IF (x_okl_formulae_tl_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
3092 THEN
3093 x_okl_formulae_tl_rec.sfwt_flag := l_okl_formulae_tl_rec.sfwt_flag;
3094 END IF;
3095 IF (x_okl_formulae_tl_rec.description = OKC_API.G_MISS_CHAR)
3096 THEN
3097 x_okl_formulae_tl_rec.description := l_okl_formulae_tl_rec.description;
3098 END IF;
3099 IF (x_okl_formulae_tl_rec.created_by = OKC_API.G_MISS_NUM)
3100 THEN
3101 x_okl_formulae_tl_rec.created_by := l_okl_formulae_tl_rec.created_by;
3102 END IF;
3103 IF (x_okl_formulae_tl_rec.creation_date = OKC_API.G_MISS_DATE)
3104 THEN
3105 x_okl_formulae_tl_rec.creation_date := l_okl_formulae_tl_rec.creation_date;
3106 END IF;
3107 IF (x_okl_formulae_tl_rec.last_updated_by = OKC_API.G_MISS_NUM)
3108 THEN
3109 x_okl_formulae_tl_rec.last_updated_by := l_okl_formulae_tl_rec.last_updated_by;
3110 END IF;
3111 IF (x_okl_formulae_tl_rec.last_update_date = OKC_API.G_MISS_DATE)
3112 THEN
3113 x_okl_formulae_tl_rec.last_update_date := l_okl_formulae_tl_rec.last_update_date;
3114 END IF;
3115 IF (x_okl_formulae_tl_rec.last_update_login = OKC_API.G_MISS_NUM)
3116 THEN
3117 x_okl_formulae_tl_rec.last_update_login := l_okl_formulae_tl_rec.last_update_login;
3118 END IF;
3119 RETURN(l_return_status);
3120 END populate_new_record;
3121 ----------------------------------------
3122 -- Set_Attributes for:OKL_FORMULAE_TL --
3123 ----------------------------------------
3124 FUNCTION Set_Attributes (
3125 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
3126 x_okl_formulae_tl_rec OUT NOCOPY okl_formulae_tl_rec_type
3127 ) RETURN VARCHAR2 IS
3128 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3129 BEGIN
3130 x_okl_formulae_tl_rec := p_okl_formulae_tl_rec;
3131 x_okl_formulae_tl_rec.LANGUAGE := USERENV('LANG');
3132 x_okl_formulae_tl_rec.SOURCE_LANG := USERENV('LANG');
3133 RETURN(l_return_status);
3134 END Set_Attributes;
3135 BEGIN
3136 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3137 p_init_msg_list,
3138 '_PVT',
3139 x_return_status);
3140 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3141 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3142 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3143 RAISE OKC_API.G_EXCEPTION_ERROR;
3144 END IF;
3145 --- Setting item attributes
3146 l_return_status := Set_Attributes(
3147 p_okl_formulae_tl_rec, -- IN
3148 l_okl_formulae_tl_rec); -- OUT
3149 --- If any errors happen abort API
3150 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3151 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3152 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3153 RAISE OKC_API.G_EXCEPTION_ERROR;
3154 END IF;
3155 l_return_status := populate_new_record(l_okl_formulae_tl_rec, l_def_okl_formulae_tl_rec);
3156 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3157 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3158 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3159 RAISE OKC_API.G_EXCEPTION_ERROR;
3160 END IF;
3161 UPDATE OKL_FORMULAE_TL
3162 SET DESCRIPTION = l_def_okl_formulae_tl_rec.description,
3163 CREATED_BY = l_def_okl_formulae_tl_rec.created_by,
3164 SOURCE_LANG = l_def_okl_formulae_tl_rec.source_lang,
3165 CREATION_DATE = l_def_okl_formulae_tl_rec.creation_date,
3166 LAST_UPDATED_BY = l_def_okl_formulae_tl_rec.last_updated_by,
3167 LAST_UPDATE_DATE = l_def_okl_formulae_tl_rec.last_update_date,
3168 LAST_UPDATE_LOGIN = l_def_okl_formulae_tl_rec.last_update_login
3169 WHERE ID = l_def_okl_formulae_tl_rec.id
3170 AND USERENV('LANG') in (SOURCE_LANG, LANGUAGE);
3171 --AND SOURCE_LANG = USERENV('LANG');
3172
3173 UPDATE OKL_FORMULAE_TL
3174 SET SFWT_FLAG = 'Y'
3175 WHERE ID = l_def_okl_formulae_tl_rec.id
3176 AND SOURCE_LANG <> USERENV('LANG');
3177
3178 x_okl_formulae_tl_rec := l_def_okl_formulae_tl_rec;
3179 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3180 EXCEPTION
3181 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3182 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3183 (
3184 l_api_name,
3185 G_PKG_NAME,
3186 'OKC_API.G_RET_STS_ERROR',
3187 x_msg_count,
3188 x_msg_data,
3189 '_PVT'
3190 );
3191 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3192 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3193 (
3194 l_api_name,
3195 G_PKG_NAME,
3196 'OKC_API.G_RET_STS_UNEXP_ERROR',
3197 x_msg_count,
3198 x_msg_data,
3199 '_PVT'
3200 );
3201 WHEN OTHERS THEN
3202 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3203 (
3204 l_api_name,
3205 G_PKG_NAME,
3206 'OTHERS',
3207 x_msg_count,
3208 x_msg_data,
3209 '_PVT'
3210 );
3211 END update_row;
3212 -----------------------------------
3213 -- update_row for:OKL_FORMULAE_V --
3214 -----------------------------------
3215 PROCEDURE update_row(
3216 p_api_version IN NUMBER,
3217 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3218 x_return_status OUT NOCOPY VARCHAR2,
3219 x_msg_count OUT NOCOPY NUMBER,
3220 x_msg_data OUT NOCOPY VARCHAR2,
3221 p_fmav_rec IN fmav_rec_type,
3222 x_fmav_rec OUT NOCOPY fmav_rec_type) IS
3223
3224 l_api_version CONSTANT NUMBER := 1;
3225 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
3226 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3227 l_fmav_rec fmav_rec_type := p_fmav_rec;
3228 l_def_fmav_rec fmav_rec_type;
3229 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
3230 lx_okl_formulae_tl_rec okl_formulae_tl_rec_type;
3231 l_fma_rec fma_rec_type;
3232 lx_fma_rec fma_rec_type;
3233 -------------------------------
3234 -- FUNCTION fill_who_columns --
3235 -------------------------------
3236 FUNCTION fill_who_columns (
3237 p_fmav_rec IN fmav_rec_type
3238 ) RETURN fmav_rec_type IS
3239 l_fmav_rec fmav_rec_type := p_fmav_rec;
3240 BEGIN
3241 l_fmav_rec.LAST_UPDATE_DATE := SYSDATE;
3242 l_fmav_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3243 l_fmav_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3244 RETURN(l_fmav_rec);
3245 END fill_who_columns;
3246 ----------------------------------
3247 -- FUNCTION populate_new_record --
3248 ----------------------------------
3249 FUNCTION populate_new_record (
3250 p_fmav_rec IN fmav_rec_type,
3251 x_fmav_rec OUT NOCOPY fmav_rec_type
3252 ) RETURN VARCHAR2 IS
3253 l_fmav_rec fmav_rec_type;
3254 l_row_notfound BOOLEAN := TRUE;
3255 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3256 BEGIN
3257 x_fmav_rec := p_fmav_rec;
3258 -- Get current database values
3259 l_fmav_rec := get_rec(p_fmav_rec, l_row_notfound);
3260 IF (l_row_notfound) THEN
3261 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3262 END IF;
3263 IF (x_fmav_rec.id = OKC_API.G_MISS_NUM)
3264 THEN
3265 x_fmav_rec.id := l_fmav_rec.id;
3266 END IF;
3267 IF (x_fmav_rec.object_version_number = OKC_API.G_MISS_NUM)
3268 THEN
3269 x_fmav_rec.object_version_number := l_fmav_rec.object_version_number;
3270 END IF;
3271 IF (x_fmav_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
3272 THEN
3273 x_fmav_rec.sfwt_flag := l_fmav_rec.sfwt_flag;
3274 END IF;
3275 IF (x_fmav_rec.cgr_id = OKC_API.G_MISS_NUM)
3276 THEN
3277 x_fmav_rec.cgr_id := l_fmav_rec.cgr_id;
3278 END IF;
3279 IF (x_fmav_rec.fyp_code = OKC_API.G_MISS_CHAR)
3280 THEN
3281 x_fmav_rec.fyp_code := l_fmav_rec.fyp_code;
3282 END IF;
3283 IF (x_fmav_rec.name = OKC_API.G_MISS_CHAR)
3284 THEN
3285 x_fmav_rec.name := l_fmav_rec.name;
3286 END IF;
3287 IF (x_fmav_rec.formula_string = OKC_API.G_MISS_CHAR)
3288 THEN
3289 x_fmav_rec.formula_string := l_fmav_rec.formula_string;
3290 END IF;
3291 IF (x_fmav_rec.description = OKC_API.G_MISS_CHAR)
3292 THEN
3293 x_fmav_rec.description := l_fmav_rec.description;
3294 END IF;
3295 IF (x_fmav_rec.version = OKC_API.G_MISS_CHAR)
3296 THEN
3297 x_fmav_rec.version := l_fmav_rec.version;
3298 END IF;
3299 IF (x_fmav_rec.start_date = OKC_API.G_MISS_DATE)
3300 THEN
3301 x_fmav_rec.start_date := l_fmav_rec.start_date;
3302 END IF;
3303 IF (x_fmav_rec.end_date = OKC_API.G_MISS_DATE)
3304 THEN
3305 x_fmav_rec.end_date := l_fmav_rec.end_date;
3306 END IF;
3307 IF (x_fmav_rec.attribute_category = OKC_API.G_MISS_CHAR)
3308 THEN
3309 x_fmav_rec.attribute_category := l_fmav_rec.attribute_category;
3310 END IF;
3311 IF (x_fmav_rec.attribute1 = OKC_API.G_MISS_CHAR)
3312 THEN
3313 x_fmav_rec.attribute1 := l_fmav_rec.attribute1;
3314 END IF;
3315 IF (x_fmav_rec.attribute2 = OKC_API.G_MISS_CHAR)
3316 THEN
3317 x_fmav_rec.attribute2 := l_fmav_rec.attribute2;
3318 END IF;
3319 IF (x_fmav_rec.attribute3 = OKC_API.G_MISS_CHAR)
3320 THEN
3321 x_fmav_rec.attribute3 := l_fmav_rec.attribute3;
3322 END IF;
3323 IF (x_fmav_rec.attribute4 = OKC_API.G_MISS_CHAR)
3324 THEN
3325 x_fmav_rec.attribute4 := l_fmav_rec.attribute4;
3326 END IF;
3327 IF (x_fmav_rec.attribute5 = OKC_API.G_MISS_CHAR)
3328 THEN
3329 x_fmav_rec.attribute5 := l_fmav_rec.attribute5;
3330 END IF;
3331 IF (x_fmav_rec.attribute6 = OKC_API.G_MISS_CHAR)
3332 THEN
3333 x_fmav_rec.attribute6 := l_fmav_rec.attribute6;
3334 END IF;
3335 IF (x_fmav_rec.attribute7 = OKC_API.G_MISS_CHAR)
3336 THEN
3337 x_fmav_rec.attribute7 := l_fmav_rec.attribute7;
3338 END IF;
3339 IF (x_fmav_rec.attribute8 = OKC_API.G_MISS_CHAR)
3340 THEN
3341 x_fmav_rec.attribute8 := l_fmav_rec.attribute8;
3342 END IF;
3343 IF (x_fmav_rec.attribute9 = OKC_API.G_MISS_CHAR)
3344 THEN
3345 x_fmav_rec.attribute9 := l_fmav_rec.attribute9;
3346 END IF;
3347 IF (x_fmav_rec.attribute10 = OKC_API.G_MISS_CHAR)
3348 THEN
3349 x_fmav_rec.attribute10 := l_fmav_rec.attribute10;
3350 END IF;
3351 IF (x_fmav_rec.attribute11 = OKC_API.G_MISS_CHAR)
3352 THEN
3353 x_fmav_rec.attribute11 := l_fmav_rec.attribute11;
3354 END IF;
3355 IF (x_fmav_rec.attribute12 = OKC_API.G_MISS_CHAR)
3356 THEN
3357 x_fmav_rec.attribute12 := l_fmav_rec.attribute12;
3358 END IF;
3359 IF (x_fmav_rec.attribute13 = OKC_API.G_MISS_CHAR)
3360 THEN
3361 x_fmav_rec.attribute13 := l_fmav_rec.attribute13;
3362 END IF;
3363 IF (x_fmav_rec.attribute14 = OKC_API.G_MISS_CHAR)
3364 THEN
3365 x_fmav_rec.attribute14 := l_fmav_rec.attribute14;
3366 END IF;
3367 IF (x_fmav_rec.attribute15 = OKC_API.G_MISS_CHAR)
3368 THEN
3369 x_fmav_rec.attribute15 := l_fmav_rec.attribute15;
3370 END IF;
3371 IF (x_fmav_rec.org_id = OKC_API.G_MISS_NUM)
3372 THEN
3373 x_fmav_rec.org_id := l_fmav_rec.org_id;
3374 END IF;
3375 IF (x_fmav_rec.there_can_be_only_one_yn = OKC_API.G_MISS_CHAR)
3376 THEN
3377 x_fmav_rec.there_can_be_only_one_yn := l_fmav_rec.there_can_be_only_one_yn;
3378 END IF;
3379 IF (x_fmav_rec.created_by = OKC_API.G_MISS_NUM)
3380 THEN
3381 x_fmav_rec.created_by := l_fmav_rec.created_by;
3382 END IF;
3383 IF (x_fmav_rec.creation_date = OKC_API.G_MISS_DATE)
3384 THEN
3385 x_fmav_rec.creation_date := l_fmav_rec.creation_date;
3386 END IF;
3387 IF (x_fmav_rec.last_updated_by = OKC_API.G_MISS_NUM)
3388 THEN
3389 x_fmav_rec.last_updated_by := l_fmav_rec.last_updated_by;
3390 END IF;
3391 IF (x_fmav_rec.last_update_date = OKC_API.G_MISS_DATE)
3392 THEN
3393 x_fmav_rec.last_update_date := l_fmav_rec.last_update_date;
3394 END IF;
3395 IF (x_fmav_rec.last_update_login = OKC_API.G_MISS_NUM)
3396 THEN
3397 x_fmav_rec.last_update_login := l_fmav_rec.last_update_login;
3398 END IF;
3399 RETURN(l_return_status);
3400 END populate_new_record;
3401 ---------------------------------------
3402 -- Set_Attributes for:OKL_FORMULAE_V --
3403 ---------------------------------------
3404 FUNCTION Set_Attributes (
3405 p_fmav_rec IN fmav_rec_type,
3406 x_fmav_rec OUT NOCOPY fmav_rec_type
3407 ) RETURN VARCHAR2 IS
3408 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3409 BEGIN
3410 x_fmav_rec := p_fmav_rec;
3411 x_fmav_rec.OBJECT_VERSION_NUMBER := NVL(x_fmav_rec.OBJECT_VERSION_NUMBER, 0) + 1;
3412 RETURN(l_return_status);
3413 END Set_Attributes;
3414 BEGIN
3415 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3416 G_PKG_NAME,
3417 p_init_msg_list,
3418 l_api_version,
3419 p_api_version,
3420 '_PVT',
3421 x_return_status);
3422 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3423 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3424 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3425 RAISE OKC_API.G_EXCEPTION_ERROR;
3426 END IF;
3427 --- Setting item attributes
3428 l_return_status := Set_Attributes(
3429 p_fmav_rec, -- IN
3430 l_fmav_rec); -- OUT
3431 --- If any errors happen abort API
3432 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3433 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3434 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3435 RAISE OKC_API.G_EXCEPTION_ERROR;
3436 END IF;
3437 l_return_status := populate_new_record(l_fmav_rec, l_def_fmav_rec);
3438 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3439 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3440 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3441 RAISE OKC_API.G_EXCEPTION_ERROR;
3442 END IF;
3443 l_def_fmav_rec := fill_who_columns(l_def_fmav_rec);
3444 --- Validate all non-missing attributes (Item Level Validation)
3445 l_return_status := Validate_Attributes(l_def_fmav_rec);
3446 --- If any errors happen abort API
3447 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3448 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3449 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3450 RAISE OKC_API.G_EXCEPTION_ERROR;
3451 END IF;
3452 l_return_status := Validate_Record(l_def_fmav_rec);
3453 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3454 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3455 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3456 RAISE OKC_API.G_EXCEPTION_ERROR;
3457 END IF;
3458 --------------------------------------
3459 -- Move VIEW record to "Child" records
3460 --------------------------------------
3461 migrate(l_def_fmav_rec, l_okl_formulae_tl_rec);
3462 migrate(l_def_fmav_rec, l_fma_rec);
3463 --------------------------------------------
3464 -- Call the UPDATE_ROW for each child record
3465 --------------------------------------------
3466 update_row(
3467 p_init_msg_list,
3468 x_return_status,
3469 x_msg_count,
3470 x_msg_data,
3471 l_okl_formulae_tl_rec,
3472 lx_okl_formulae_tl_rec
3473 );
3474 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3475 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3476 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3477 RAISE OKC_API.G_EXCEPTION_ERROR;
3478 END IF;
3479 migrate(lx_okl_formulae_tl_rec, l_def_fmav_rec);
3480 update_row(
3481 p_init_msg_list,
3482 x_return_status,
3483 x_msg_count,
3484 x_msg_data,
3485 l_fma_rec,
3486 lx_fma_rec
3487 );
3488 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3489 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3490 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3491 RAISE OKC_API.G_EXCEPTION_ERROR;
3492 END IF;
3493 migrate(lx_fma_rec, l_def_fmav_rec);
3494 x_fmav_rec := l_def_fmav_rec;
3495 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3496 EXCEPTION
3497 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3498 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3499 (
3500 l_api_name,
3501 G_PKG_NAME,
3502 'OKC_API.G_RET_STS_ERROR',
3503 x_msg_count,
3504 x_msg_data,
3505 '_PVT'
3506 );
3507 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3508 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3509 (
3510 l_api_name,
3511 G_PKG_NAME,
3512 'OKC_API.G_RET_STS_UNEXP_ERROR',
3513 x_msg_count,
3514 x_msg_data,
3515 '_PVT'
3516 );
3517 WHEN OTHERS THEN
3518 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3519 (
3520 l_api_name,
3521 G_PKG_NAME,
3522 'OTHERS',
3523 x_msg_count,
3524 x_msg_data,
3525 '_PVT'
3526 );
3527 END update_row;
3528 ----------------------------------------
3529 -- PL/SQL TBL update_row for:FMAV_TBL --
3530 ----------------------------------------
3531 PROCEDURE update_row(
3532 p_api_version IN NUMBER,
3533 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3534 x_return_status OUT NOCOPY VARCHAR2,
3535 x_msg_count OUT NOCOPY NUMBER,
3536 x_msg_data OUT NOCOPY VARCHAR2,
3537 p_fmav_tbl IN fmav_tbl_type,
3538 x_fmav_tbl OUT NOCOPY fmav_tbl_type) IS
3539
3540 l_api_version CONSTANT NUMBER := 1;
3541 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3542 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3543 i NUMBER := 0;
3544 -- RPOONUGA003: New variable
3545 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3546 BEGIN
3547 OKC_API.init_msg_list(p_init_msg_list);
3548 -- Make sure PL/SQL table has records in it before passing
3549 IF (p_fmav_tbl.COUNT > 0) THEN
3550 i := p_fmav_tbl.FIRST;
3551 LOOP
3552 update_row (
3553 p_api_version => p_api_version,
3554 p_init_msg_list => OKC_API.G_FALSE,
3555 x_return_status => x_return_status,
3556 x_msg_count => x_msg_count,
3557 x_msg_data => x_msg_data,
3558 p_fmav_rec => p_fmav_tbl(i),
3559 x_fmav_rec => x_fmav_tbl(i));
3560 -- RPOONUGA003: store the highest degree of error
3561 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3562 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3563 l_overall_status := x_return_status;
3564 END IF;
3565 END IF;
3566
3567 EXIT WHEN (i = p_fmav_tbl.LAST);
3568 i := p_fmav_tbl.NEXT(i);
3569 END LOOP;
3570 -- RPOONUGA003: return overall status
3571 x_return_status := l_overall_status;
3572 END IF;
3573 EXCEPTION
3574 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3575 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3576 (
3577 l_api_name,
3578 G_PKG_NAME,
3579 'OKC_API.G_RET_STS_ERROR',
3580 x_msg_count,
3581 x_msg_data,
3582 '_PVT'
3583 );
3584 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3585 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3586 (
3587 l_api_name,
3588 G_PKG_NAME,
3589 'OKC_API.G_RET_STS_UNEXP_ERROR',
3590 x_msg_count,
3591 x_msg_data,
3592 '_PVT'
3593 );
3594 WHEN OTHERS THEN
3595 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3596 (
3597 l_api_name,
3598 G_PKG_NAME,
3599 'OTHERS',
3600 x_msg_count,
3601 x_msg_data,
3602 '_PVT'
3603 );
3604 END update_row;
3605
3606 ---------------------------------------------------------------------------
3607 -- PROCEDURE delete_row
3608 ---------------------------------------------------------------------------
3609 -----------------------------------
3610 -- delete_row for:OKL_FORMULAE_B --
3611 -----------------------------------
3612 PROCEDURE delete_row(
3613 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3614 x_return_status OUT NOCOPY VARCHAR2,
3615 x_msg_count OUT NOCOPY NUMBER,
3616 x_msg_data OUT NOCOPY VARCHAR2,
3617 p_fma_rec IN fma_rec_type) IS
3618
3619 l_api_version CONSTANT NUMBER := 1;
3620 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
3621 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3622 l_fma_rec fma_rec_type:= p_fma_rec;
3623 l_row_notfound BOOLEAN := TRUE;
3624 BEGIN
3625 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3626 p_init_msg_list,
3627 '_PVT',
3628 x_return_status);
3629 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3630 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3631 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3632 RAISE OKC_API.G_EXCEPTION_ERROR;
3633 END IF;
3634 DELETE FROM OKL_FORMULAE_B
3635 WHERE ID = l_fma_rec.id;
3636
3637 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3638 EXCEPTION
3639 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3640 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3641 (
3642 l_api_name,
3643 G_PKG_NAME,
3644 'OKC_API.G_RET_STS_ERROR',
3645 x_msg_count,
3646 x_msg_data,
3647 '_PVT'
3648 );
3649 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3650 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3651 (
3652 l_api_name,
3653 G_PKG_NAME,
3654 'OKC_API.G_RET_STS_UNEXP_ERROR',
3655 x_msg_count,
3656 x_msg_data,
3657 '_PVT'
3658 );
3659 WHEN OTHERS THEN
3660 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3661 (
3662 l_api_name,
3663 G_PKG_NAME,
3664 'OTHERS',
3665 x_msg_count,
3666 x_msg_data,
3667 '_PVT'
3668 );
3669 END delete_row;
3670 ------------------------------------
3671 -- delete_row for:OKL_FORMULAE_TL --
3672 ------------------------------------
3673 PROCEDURE delete_row(
3674 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3675 x_return_status OUT NOCOPY VARCHAR2,
3676 x_msg_count OUT NOCOPY NUMBER,
3677 x_msg_data OUT NOCOPY VARCHAR2,
3678 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type) IS
3679
3680 l_api_version CONSTANT NUMBER := 1;
3681 l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
3682 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3683 l_okl_formulae_tl_rec okl_formulae_tl_rec_type:= p_okl_formulae_tl_rec;
3684 l_row_notfound BOOLEAN := TRUE;
3685 ----------------------------------------
3686 -- Set_Attributes for:OKL_FORMULAE_TL --
3687 ----------------------------------------
3688 FUNCTION Set_Attributes (
3689 p_okl_formulae_tl_rec IN okl_formulae_tl_rec_type,
3690 x_okl_formulae_tl_rec OUT NOCOPY okl_formulae_tl_rec_type
3691 ) RETURN VARCHAR2 IS
3692 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3693 BEGIN
3694 x_okl_formulae_tl_rec := p_okl_formulae_tl_rec;
3695 x_okl_formulae_tl_rec.LANGUAGE := USERENV('LANG');
3696 RETURN(l_return_status);
3697 END Set_Attributes;
3698 BEGIN
3699 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3700 p_init_msg_list,
3701 '_PVT',
3702 x_return_status);
3703 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3704 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3705 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3706 RAISE OKC_API.G_EXCEPTION_ERROR;
3707 END IF;
3708 --- Setting item attributes
3709 l_return_status := Set_Attributes(
3710 p_okl_formulae_tl_rec, -- IN
3711 l_okl_formulae_tl_rec); -- OUT
3712 --- If any errors happen abort API
3713 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3714 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3715 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3716 RAISE OKC_API.G_EXCEPTION_ERROR;
3717 END IF;
3718 DELETE FROM OKL_FORMULAE_TL
3719 WHERE ID = l_okl_formulae_tl_rec.id;
3720
3721 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3722 EXCEPTION
3723 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3724 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3725 (
3726 l_api_name,
3727 G_PKG_NAME,
3728 'OKC_API.G_RET_STS_ERROR',
3729 x_msg_count,
3730 x_msg_data,
3731 '_PVT'
3732 );
3733 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3734 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3735 (
3736 l_api_name,
3737 G_PKG_NAME,
3738 'OKC_API.G_RET_STS_UNEXP_ERROR',
3739 x_msg_count,
3740 x_msg_data,
3741 '_PVT'
3742 );
3743 WHEN OTHERS THEN
3744 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3745 (
3746 l_api_name,
3747 G_PKG_NAME,
3748 'OTHERS',
3749 x_msg_count,
3750 x_msg_data,
3751 '_PVT'
3752 );
3753 END delete_row;
3754 -----------------------------------
3755 -- delete_row for:OKL_FORMULAE_V --
3756 -----------------------------------
3757 PROCEDURE delete_row(
3758 p_api_version IN NUMBER,
3759 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3760 x_return_status OUT NOCOPY VARCHAR2,
3761 x_msg_count OUT NOCOPY NUMBER,
3762 x_msg_data OUT NOCOPY VARCHAR2,
3763 p_fmav_rec IN fmav_rec_type) IS
3764
3765 l_api_version CONSTANT NUMBER := 1;
3766 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
3767 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3768 l_fmav_rec fmav_rec_type := p_fmav_rec;
3769 l_okl_formulae_tl_rec okl_formulae_tl_rec_type;
3770 l_fma_rec fma_rec_type;
3771 BEGIN
3772 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3773 G_PKG_NAME,
3774 p_init_msg_list,
3775 l_api_version,
3776 p_api_version,
3777 '_PVT',
3778 x_return_status);
3779 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3780 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3781 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3782 RAISE OKC_API.G_EXCEPTION_ERROR;
3783 END IF;
3784 --------------------------------------
3785 -- Move VIEW record to "Child" records
3786 --------------------------------------
3787 migrate(l_fmav_rec, l_okl_formulae_tl_rec);
3788 migrate(l_fmav_rec, l_fma_rec);
3789 --------------------------------------------
3790 -- Call the DELETE_ROW for each child record
3791 --------------------------------------------
3792 delete_row(
3793 p_init_msg_list,
3794 x_return_status,
3795 x_msg_count,
3796 x_msg_data,
3797 l_okl_formulae_tl_rec
3798 );
3799 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3800 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3801 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3802 RAISE OKC_API.G_EXCEPTION_ERROR;
3803 END IF;
3804 delete_row(
3805 p_init_msg_list,
3806 x_return_status,
3807 x_msg_count,
3808 x_msg_data,
3809 l_fma_rec
3810 );
3811 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3812 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3813 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3814 RAISE OKC_API.G_EXCEPTION_ERROR;
3815 END IF;
3816 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3817 EXCEPTION
3818 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3819 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3820 (
3821 l_api_name,
3822 G_PKG_NAME,
3823 'OKC_API.G_RET_STS_ERROR',
3824 x_msg_count,
3825 x_msg_data,
3826 '_PVT'
3827 );
3828 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3829 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3830 (
3831 l_api_name,
3832 G_PKG_NAME,
3833 'OKC_API.G_RET_STS_UNEXP_ERROR',
3834 x_msg_count,
3835 x_msg_data,
3836 '_PVT'
3837 );
3838 WHEN OTHERS THEN
3839 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3840 (
3841 l_api_name,
3842 G_PKG_NAME,
3843 'OTHERS',
3844 x_msg_count,
3845 x_msg_data,
3846 '_PVT'
3847 );
3848 END delete_row;
3849 ----------------------------------------
3850 -- PL/SQL TBL delete_row for:FMAV_TBL --
3851 ----------------------------------------
3852 PROCEDURE delete_row(
3853 p_api_version IN NUMBER,
3854 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3855 x_return_status OUT NOCOPY VARCHAR2,
3856 x_msg_count OUT NOCOPY NUMBER,
3857 x_msg_data OUT NOCOPY VARCHAR2,
3858 p_fmav_tbl IN fmav_tbl_type) IS
3859
3860 l_api_version CONSTANT NUMBER := 1;
3861 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3862 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3863 i NUMBER := 0;
3864 -- RPOONUGA003: New variable
3865 l_overall_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3866 BEGIN
3867 OKC_API.init_msg_list(p_init_msg_list);
3868 -- Make sure PL/SQL table has records in it before passing
3869 IF (p_fmav_tbl.COUNT > 0) THEN
3870 i := p_fmav_tbl.FIRST;
3871 LOOP
3872 delete_row (
3873 p_api_version => p_api_version,
3874 p_init_msg_list => OKC_API.G_FALSE,
3875 x_return_status => x_return_status,
3876 x_msg_count => x_msg_count,
3877 x_msg_data => x_msg_data,
3878 p_fmav_rec => p_fmav_tbl(i));
3879 -- RPOONUGA003: store the highest degree of error
3880 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3881 IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3882 l_overall_status := x_return_status;
3883 END IF;
3884 END IF;
3885
3886 EXIT WHEN (i = p_fmav_tbl.LAST);
3887 i := p_fmav_tbl.NEXT(i);
3888 END LOOP;
3889 -- RPOONUGA003: return overall status
3890 x_return_status := l_overall_status;
3891 END IF;
3892 EXCEPTION
3893 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3894 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3895 (
3896 l_api_name,
3897 G_PKG_NAME,
3898 'OKC_API.G_RET_STS_ERROR',
3899 x_msg_count,
3900 x_msg_data,
3901 '_PVT'
3902 );
3903 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3904 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3905 (
3906 l_api_name,
3907 G_PKG_NAME,
3908 'OKC_API.G_RET_STS_UNEXP_ERROR',
3909 x_msg_count,
3910 x_msg_data,
3911 '_PVT'
3912 );
3913 WHEN OTHERS THEN
3914 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3915 (
3916 l_api_name,
3917 G_PKG_NAME,
3918 'OTHERS',
3919 x_msg_count,
3920 x_msg_data,
3921 '_PVT'
3922 );
3923 END delete_row;
3924
3925 -------------------------------------------------------------------------------
3926 -- Procedure TRANSLATE_ROW
3927 -------------------------------------------------------------------------------
3928
3929 PROCEDURE TRANSLATE_ROW(p_fmav_rec IN fmav_rec_type,
3930 p_owner IN VARCHAR2,
3931 p_last_update_date IN VARCHAR2,
3932 x_return_status OUT NOCOPY VARCHAR2) IS
3933 f_luby NUMBER; -- entity owner in file
3934 f_ludate DATE; -- entity update date in file
3935 db_luby NUMBER; -- entity owner in db
3936 db_ludate DATE; -- entity update date in db
3937
3938 BEGIN
3939 -- Translate owner to file_last_updated_by
3940 f_luby := fnd_load_util.owner_id(p_owner);
3941
3942 -- Translate char last_update_date to date
3943 f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
3944
3945 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE
3946 INTO db_luby, db_ludate
3947 FROM OKL_FORMULAE_TL
3948 where ID = to_number(p_fmav_rec.id)
3949 and USERENV('LANG') =language;
3950
3951 IF(fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
3952 db_ludate, '')) then
3953 --Update TL
3954 UPDATE OKL_FORMULAE_TL
3955 SET DESCRIPTION = p_fmav_rec.DESCRIPTION,
3956 LAST_UPDATE_DATE = f_ludate,
3957 LAST_UPDATED_BY = f_luby,
3958 LAST_UPDATE_LOGIN = 0,
3959 SOURCE_LANG = USERENV('LANG')
3960 WHERE ID = to_number(p_fmav_rec.id)
3961 AND USERENV('LANG') IN (language,source_lang);
3962 END IF;
3963 END TRANSLATE_ROW;
3964
3965 -------------------------------------------------------------------------------
3966 -- Procedure LOAD_ROW
3967 -------------------------------------------------------------------------------
3968
3969 PROCEDURE LOAD_ROW(p_fmav_rec IN fmav_rec_type,
3970 p_owner IN VARCHAR2,
3971 p_last_update_date IN VARCHAR2,
3972 x_return_status OUT NOCOPY VARCHAR2) IS
3973 id NUMBER;
3974 f_luby NUMBER; -- entity owner in file
3975 f_ludate DATE; -- entity update date in file
3976 db_luby NUMBER; -- entity owner in db
3977 db_ludate DATE; -- entity update date in db
3978 BEGIN
3979 -- Translate owner to file_last_updated_by
3980 f_luby := fnd_load_util.owner_id(p_owner);
3981
3982 -- Translate char last_update_date to date
3983 f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
3984
3985 BEGIN
3986 SELECT ID , LAST_UPDATED_BY, LAST_UPDATE_DATE
3987 INTO id, db_luby, db_ludate
3988 FROM OKL_FORMULAE_B
3989 where ID = p_fmav_rec.id;
3990
3991 IF(fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
3992 db_ludate, '')) then
3993 --Update _b
3994 UPDATE OKL_FORMULAE_B
3995 SET
3996 ORG_ID = TO_NUMBER(p_fmav_rec.ORG_ID),
3997 THERE_CAN_BE_ONLY_ONE_YN = p_fmav_rec.THERE_CAN_BE_ONLY_ONE_YN,
3998 CGR_ID = TO_NUMBER(p_fmav_rec.CGR_ID),
3999 FYP_CODE = p_fmav_rec.FYP_CODE,
4000 FORMULA_STRING = p_fmav_rec.FORMULA_STRING,
4001 OBJECT_VERSION_NUMBER = TO_NUMBER(p_fmav_rec.OBJECT_VERSION_NUMBER),
4002 START_DATE = p_fmav_rec.START_DATE,
4003 END_DATE = p_fmav_rec.END_DATE,
4004 ATTRIBUTE_CATEGORY = p_fmav_rec.ATTRIBUTE_CATEGORY,
4005 ATTRIBUTE1 = p_fmav_rec.ATTRIBUTE1,
4006 ATTRIBUTE2 = p_fmav_rec.ATTRIBUTE2,
4007 ATTRIBUTE3 = p_fmav_rec.ATTRIBUTE3,
4008 ATTRIBUTE4 = p_fmav_rec.ATTRIBUTE4,
4009 ATTRIBUTE5 = p_fmav_rec.ATTRIBUTE5,
4010 ATTRIBUTE6 = p_fmav_rec.ATTRIBUTE6,
4011 ATTRIBUTE7 = p_fmav_rec.ATTRIBUTE7,
4012 ATTRIBUTE8 = p_fmav_rec.ATTRIBUTE8,
4013 ATTRIBUTE9 = p_fmav_rec.ATTRIBUTE9,
4014 ATTRIBUTE10 = p_fmav_rec.ATTRIBUTE10,
4015 ATTRIBUTE11 = p_fmav_rec.ATTRIBUTE11,
4016 ATTRIBUTE12 = p_fmav_rec.ATTRIBUTE12,
4017 ATTRIBUTE13 = p_fmav_rec.ATTRIBUTE13,
4018 ATTRIBUTE14 = p_fmav_rec.ATTRIBUTE14,
4019 ATTRIBUTE15 = p_fmav_rec.ATTRIBUTE15,
4020 LAST_UPDATE_DATE = f_ludate,
4021 LAST_UPDATED_BY = f_luby,
4022 LAST_UPDATE_LOGIN = 0
4023 WHERE ID = to_number(p_fmav_rec.id);
4024 --Update _TL
4025
4026 UPDATE OKL_FORMULAE_TL
4027 SET
4028 DESCRIPTION = p_fmav_rec.DESCRIPTION,
4029 LAST_UPDATE_DATE = f_ludate,
4030 LAST_UPDATED_BY = f_luby,
4031 LAST_UPDATE_LOGIN = 0,
4032 SOURCE_LANG = USERENV('LANG')
4033 WHERE ID = to_number(p_fmav_rec.id)
4034 AND USERENV('LANG') IN (language,source_lang);
4035
4036 IF(sql%notfound) THEN
4037 INSERT INTO OKL_FORMULAE_TL
4038 (
4039 ID,
4040 LANGUAGE,
4041 SOURCE_LANG,
4042 SFWT_FLAG,
4043 DESCRIPTION,
4044 CREATED_BY,
4045 CREATION_DATE,
4046 LAST_UPDATED_BY,
4047 LAST_UPDATE_DATE,
4048 LAST_UPDATE_LOGIN
4049 )
4050 SELECT
4051 TO_NUMBER(p_fmav_rec.id),
4052 L.LANGUAGE_CODE,
4053 USERENV('LANG'),
4054 DECODE(L.LANGUAGE_CODE,USERENV('LANG'),'N','Y'),
4055 p_fmav_rec.description,
4056 f_luby,
4057 f_ludate,
4058 f_luby,
4059 f_ludate,
4060 0
4061 FROM FND_LANGUAGES L
4062 WHERE L.INSTALLED_FLAG IN ('I','B')
4063 AND NOT EXISTS
4064 (SELECT NULL
4065 FROM OKL_FORMULAE_TL TL
4066 WHERE TL.ID = TO_NUMBER(p_fmav_rec.id)
4067 AND TL.LANGUAGE = L.LANGUAGE_CODE);
4068 END IF;
4069
4070 END IF;
4071
4072 END;
4073 EXCEPTION
4074 when no_data_found then
4075
4076 INSERT INTO OKL_FORMULAE_B
4077 (
4078 ID,
4079 NAME,
4080 ORG_ID,
4081 THERE_CAN_BE_ONLY_ONE_YN,
4082 CGR_ID,
4083 FYP_CODE,
4084 VERSION,
4085 FORMULA_STRING,
4086 OBJECT_VERSION_NUMBER,
4087 START_DATE,
4088 END_DATE,
4089 ATTRIBUTE_CATEGORY,
4090 ATTRIBUTE1,
4091 ATTRIBUTE2,
4092 ATTRIBUTE3,
4093 ATTRIBUTE4,
4094 ATTRIBUTE5,
4095 ATTRIBUTE6,
4096 ATTRIBUTE7,
4097 ATTRIBUTE8,
4098 ATTRIBUTE9,
4099 ATTRIBUTE10,
4100 ATTRIBUTE11,
4101 ATTRIBUTE12,
4102 ATTRIBUTE13,
4103 ATTRIBUTE14,
4104 ATTRIBUTE15,
4105 CREATED_BY,
4106 CREATION_DATE,
4107 LAST_UPDATED_BY,
4108 LAST_UPDATE_DATE,
4109 LAST_UPDATE_LOGIN
4110 )
4111 SELECT
4112 TO_NUMBER(p_fmav_rec.id),
4113 p_fmav_rec.NAME,
4114 TO_NUMBER(p_fmav_rec.ORG_ID),
4115 p_fmav_rec.THERE_CAN_BE_ONLY_ONE_YN,
4116 TO_NUMBER(p_fmav_rec.CGR_ID),
4117 p_fmav_rec.FYP_CODE,
4118 p_fmav_rec.VERSION,
4119 p_fmav_rec.FORMULA_STRING,
4120 TO_NUMBER(p_fmav_rec.OBJECT_VERSION_NUMBER),
4121 p_fmav_rec.START_DATE,
4122 p_fmav_rec.END_DATE,
4123 p_fmav_rec.ATTRIBUTE_CATEGORY,
4124 p_fmav_rec.ATTRIBUTE1,
4125 p_fmav_rec.ATTRIBUTE2,
4126 p_fmav_rec.ATTRIBUTE3,
4127 p_fmav_rec.ATTRIBUTE4,
4128 p_fmav_rec.ATTRIBUTE5,
4129 p_fmav_rec.ATTRIBUTE6,
4130 p_fmav_rec.ATTRIBUTE7,
4131 p_fmav_rec.ATTRIBUTE8,
4132 p_fmav_rec.ATTRIBUTE9,
4133 p_fmav_rec.ATTRIBUTE10,
4134 p_fmav_rec.ATTRIBUTE11,
4135 p_fmav_rec.ATTRIBUTE12,
4136 p_fmav_rec.ATTRIBUTE13,
4137 p_fmav_rec.ATTRIBUTE14,
4138 p_fmav_rec.ATTRIBUTE15,
4139 f_luby,
4140 f_ludate,
4141 f_luby,
4142 f_ludate,
4143 0
4144 FROM DUAL
4145 WHERE NOT EXISTS (SELECT 1
4146 from OKL_FORMULAE_B
4147 where ( ID = TO_NUMBER(p_fmav_rec.id) OR
4148 (NAME = p_fmav_rec.NAME AND VERSION = p_fmav_rec.VERSION)));
4149
4150 INSERT INTO OKL_FORMULAE_TL
4151 (
4152 ID,
4153 LANGUAGE,
4154 SOURCE_LANG,
4155 SFWT_FLAG,
4156 DESCRIPTION,
4157 CREATED_BY,
4158 CREATION_DATE,
4159 LAST_UPDATED_BY,
4160 LAST_UPDATE_DATE,
4161 LAST_UPDATE_LOGIN
4162 )
4163 SELECT TO_NUMBER(p_fmav_rec.id),
4164 L.LANGUAGE_CODE,
4165 userenv('LANG'),
4166 decode(L.LANGUAGE_CODE,userenv('LANG'),'N','Y'),
4167 p_fmav_rec.DESCRIPTION,
4168 f_luby,
4169 f_ludate,
4170 f_luby,
4171 f_ludate,
4172 0
4173 FROM FND_LANGUAGES L
4174 WHERE L.INSTALLED_FLAG IN ('I','B')
4175 AND NOT EXISTS
4176 (SELECT NULL
4177 FROM OKL_FORMULAE_TL TL
4178 WHERE TL.ID = TO_NUMBER(p_fmav_rec.id)
4179 AND TL.LANGUAGE = L.LANGUAGE_CODE);
4180
4181 END LOAD_ROW;
4182 -------------------------------------------------------------------------------
4183 -- Procedure LOAD_SEED_ROW
4184 -------------------------------------------------------------------------------
4185
4186 PROCEDURE LOAD_SEED_ROW(
4187 p_upload_mode IN VARCHAR2,
4188 p_formulae_id IN VARCHAR2,
4189 p_name IN VARCHAR2,
4190 p_version IN VARCHAR2,
4191 p_org_id IN VARCHAR2,
4192 p_there_can_be_only_one_yn IN VARCHAR2,
4193 p_cgr_id IN VARCHAR2,
4194 p_fyp_code IN VARCHAR2,
4195 p_formula_string IN VARCHAR2,
4196 p_object_version_number IN VARCHAR2,
4197 p_start_date IN VARCHAR2,
4198 p_end_date IN VARCHAR2,
4199 p_attribute_category IN VARCHAR2,
4200 p_attribute1 IN VARCHAR2,
4201 p_attribute2 IN VARCHAR2,
4202 p_attribute3 IN VARCHAR2,
4203 p_attribute4 IN VARCHAR2,
4204 p_attribute5 IN VARCHAR2,
4205 p_attribute6 IN VARCHAR2,
4206 p_attribute7 IN VARCHAR2,
4207 p_attribute8 IN VARCHAR2,
4208 p_attribute9 IN VARCHAR2,
4209 p_attribute10 IN VARCHAR2,
4210 p_attribute11 IN VARCHAR2,
4211 p_attribute12 IN VARCHAR2,
4212 p_attribute13 IN VARCHAR2,
4213 p_attribute14 IN VARCHAR2,
4214 p_attribute15 IN VARCHAR2,
4215 p_description IN VARCHAR2,
4216 p_owner IN VARCHAR2,
4217 p_last_update_date IN VARCHAR2)IS
4218
4219 l_api_version CONSTANT number := 1;
4220 l_api_name CONSTANT varchar2(30) := 'LOAD_SEED_ROW';
4221 l_return_status varchar2(1) := okl_api.g_ret_sts_success;
4222 l_msg_count number;
4223 l_msg_data varchar2(4000);
4224 l_init_msg_list VARCHAR2(1):= 'T';
4225 l_fmav_rec fmav_rec_type;
4226 BEGIN
4227 --Prepare Record Structure for Insert/Update
4228 l_fmav_rec.id := p_formulae_id;
4229 l_fmav_rec.object_version_number := p_object_version_number;
4230 l_fmav_rec.cgr_id := p_cgr_id;
4231 l_fmav_rec.fyp_code := p_fyp_code;
4232 l_fmav_rec.name := p_name;
4233 l_fmav_rec.formula_string := p_formula_string;
4234 l_fmav_rec.description := p_description;
4235 l_fmav_rec.version := p_version;
4236 l_fmav_rec.start_date := TO_DATE(p_start_date,'YYYY/MM/DD');
4237 l_fmav_rec.end_date := TO_DATE(p_end_date,'YYYY/MM/DD');
4238 l_fmav_rec.attribute_category := p_attribute_category;
4239 l_fmav_rec.attribute1 := p_attribute1;
4240 l_fmav_rec.attribute2 := p_attribute2;
4241 l_fmav_rec.attribute3 := p_attribute3;
4242 l_fmav_rec.attribute4 := p_attribute4;
4243 l_fmav_rec.attribute5 := p_attribute5;
4244 l_fmav_rec.attribute6 := p_attribute6;
4245 l_fmav_rec.attribute7 := p_attribute7;
4246 l_fmav_rec.attribute8 := p_attribute8;
4247 l_fmav_rec.attribute9 := p_attribute9;
4248 l_fmav_rec.attribute10 := p_attribute10;
4249 l_fmav_rec.attribute11 := p_attribute11;
4250 l_fmav_rec.attribute12 := p_attribute12;
4251 l_fmav_rec.attribute13 := p_attribute13;
4252 l_fmav_rec.attribute14 := p_attribute14;
4253 l_fmav_rec.attribute15 := p_attribute15;
4254 l_fmav_rec.org_id := p_org_id;
4255 l_fmav_rec.there_can_be_only_one_yn := p_there_can_be_only_one_yn;
4256
4257 IF(p_upload_mode = 'NLS') then
4258 OKL_FMA_PVT.TRANSLATE_ROW(p_fmav_rec => l_fmav_rec,
4259 p_owner => p_owner,
4260 p_last_update_date => p_last_update_date,
4261 x_return_status => l_return_status);
4262
4263 ELSE
4264 OKL_FMA_PVT.LOAD_ROW(p_fmav_rec => l_fmav_rec,
4265 p_owner => p_owner,
4266 p_last_update_date => p_last_update_date,
4267 x_return_status => l_return_status);
4268
4269 END IF;
4270 END LOAD_SEED_ROW;
4271
4272 END OKL_FMA_PVT;