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