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