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