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