[Home] [Help]
PACKAGE BODY: APPS.OKL_KPL_PVT
Source
1 PACKAGE BODY OKL_KPL_PVT AS
2 /* $Header: OKLSKPLB.pls 120.0 2005/10/18 17:43:27 rpillay noship $ */
3 ---------------------------------------------------------------------------
4 -- PROCEDURE load_error_tbl
5 ---------------------------------------------------------------------------
6 PROCEDURE load_error_tbl (
7 px_error_rec IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
8 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
9
10 j INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
11 last_msg_idx INTEGER := FND_MSG_PUB.COUNT_MSG;
12 l_msg_idx INTEGER := FND_MSG_PUB.G_NEXT;
13 BEGIN
14 -- FND_MSG_PUB has a small error in it. If we call FND_MSG_PUB.COUNT_AND_GET before
15 -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
16 -- message stack gets set to 1. This makes sense until we call FND_MSG_PUB.GET which
17 -- automatically increments the index by 1, (making it 2), however, when the GET function
18 -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
19 -- message 2. To circumvent this problem, check the amount of messages and compensate.
20 -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
21 -- will only update the index variable when 1 and only 1 message is on the stack.
22 IF (last_msg_idx = 1) THEN
23 l_msg_idx := FND_MSG_PUB.G_FIRST;
24 END IF;
25 LOOP
26 fnd_msg_pub.get(
27 p_msg_index => l_msg_idx,
28 p_encoded => fnd_api.g_false,
29 p_data => px_error_rec.msg_data,
30 p_msg_index_out => px_error_rec.msg_count);
31 px_error_tbl(j) := px_error_rec;
32 j := j + 1;
33 EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
34 END LOOP;
35 END load_error_tbl;
36 ---------------------------------------------------------------------------
37 -- FUNCTION find_highest_exception
38 ---------------------------------------------------------------------------
39 -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
40 -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
41 FUNCTION find_highest_exception(
42 p_error_tbl IN OKL_API.ERROR_TBL_TYPE
43 ) RETURN VARCHAR2 IS
44 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
45 i INTEGER := 1;
46 BEGIN
47 IF (p_error_tbl.COUNT > 0) THEN
48 i := p_error_tbl.FIRST;
49 LOOP
50 IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
51 IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
52 l_return_status := p_error_tbl(i).error_type;
53 END IF;
54 END IF;
55 EXIT WHEN (i = p_error_tbl.LAST);
56 i := p_error_tbl.NEXT(i);
57 END LOOP;
58 END IF;
59 RETURN(l_return_status);
60 END find_highest_exception;
61 ---------------------------------------------------------------------------
62 -- FUNCTION get_seq_id
63 ---------------------------------------------------------------------------
64 FUNCTION get_seq_id RETURN NUMBER IS
65 BEGIN
66 RETURN(okc_p_util.raw_to_number(sys_guid()));
67 END get_seq_id;
68
69 ---------------------------------------------------------------------------
70 -- PROCEDURE qc
71 ---------------------------------------------------------------------------
72 PROCEDURE qc IS
73 BEGIN
74 null;
75 END qc;
76
77 ---------------------------------------------------------------------------
78 -- PROCEDURE change_version
79 ---------------------------------------------------------------------------
80 PROCEDURE change_version IS
81 BEGIN
82 null;
83 END change_version;
84
85 ---------------------------------------------------------------------------
86 -- PROCEDURE api_copy
87 ---------------------------------------------------------------------------
88 PROCEDURE api_copy IS
89 BEGIN
90 null;
91 END api_copy;
92
93 ---------------------------------------------------------------------------
94 -- FUNCTION get_rec for: OKL_K_PARTY_ROLES_V
95 ---------------------------------------------------------------------------
96 FUNCTION get_rec (
97 p_kplv_rec IN kplv_rec_type,
98 x_no_data_found OUT NOCOPY BOOLEAN
99 ) RETURN kplv_rec_type IS
100 CURSOR okl_kprv_pk_csr (p_id IN NUMBER) IS
101 SELECT
102 ID,
103 OBJECT_VERSION_NUMBER,
104 ATTRIBUTE_CATEGORY,
105 ATTRIBUTE1,
106 ATTRIBUTE2,
107 ATTRIBUTE3,
108 ATTRIBUTE4,
109 ATTRIBUTE5,
110 ATTRIBUTE6,
111 ATTRIBUTE7,
112 ATTRIBUTE8,
113 ATTRIBUTE9,
114 ATTRIBUTE10,
115 ATTRIBUTE11,
116 ATTRIBUTE12,
117 ATTRIBUTE13,
118 ATTRIBUTE14,
119 ATTRIBUTE15,
120 CREATED_BY,
121 CREATION_DATE,
122 LAST_UPDATED_BY,
123 LAST_UPDATE_DATE,
124 LAST_UPDATE_LOGIN
125 FROM Okl_K_Party_Roles_V
126 WHERE okl_k_party_roles_v.id = p_id;
127 l_okl_kprv_pk okl_kprv_pk_csr%ROWTYPE;
128 l_kplv_rec kplv_rec_type;
129 BEGIN
130 x_no_data_found := TRUE;
131 -- Get current database values
132 OPEN okl_kprv_pk_csr (p_kplv_rec.id);
133 FETCH okl_kprv_pk_csr INTO
134 l_kplv_rec.id,
135 l_kplv_rec.object_version_number,
136 l_kplv_rec.attribute_category,
137 l_kplv_rec.attribute1,
138 l_kplv_rec.attribute2,
139 l_kplv_rec.attribute3,
140 l_kplv_rec.attribute4,
141 l_kplv_rec.attribute5,
142 l_kplv_rec.attribute6,
143 l_kplv_rec.attribute7,
144 l_kplv_rec.attribute8,
145 l_kplv_rec.attribute9,
146 l_kplv_rec.attribute10,
147 l_kplv_rec.attribute11,
148 l_kplv_rec.attribute12,
149 l_kplv_rec.attribute13,
150 l_kplv_rec.attribute14,
151 l_kplv_rec.attribute15,
152 l_kplv_rec.created_by,
153 l_kplv_rec.creation_date,
154 l_kplv_rec.last_updated_by,
155 l_kplv_rec.last_update_date,
156 l_kplv_rec.last_update_login;
157 x_no_data_found := okl_kprv_pk_csr%NOTFOUND;
158 CLOSE okl_kprv_pk_csr;
159 RETURN(l_kplv_rec);
160 END get_rec;
161
162 ------------------------------------------------------------------
163 -- This version of get_rec sets error messages if no data found --
164 ------------------------------------------------------------------
165 FUNCTION get_rec (
166 p_kplv_rec IN kplv_rec_type,
167 x_return_status OUT NOCOPY VARCHAR2
168 ) RETURN kplv_rec_type IS
169 l_kplv_rec kplv_rec_type;
170 l_row_notfound BOOLEAN := TRUE;
171 BEGIN
172 x_return_status := OKL_API.G_RET_STS_SUCCESS;
173 l_kplv_rec := get_rec(p_kplv_rec, l_row_notfound);
174 IF (l_row_notfound) THEN
175 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
176 x_return_status := OKL_API.G_RET_STS_ERROR;
177 END IF;
178 RETURN(l_kplv_rec);
179 END get_rec;
180 -----------------------------------------------------------
181 -- So we don't have to pass an "l_row_notfound" variable --
182 -----------------------------------------------------------
183 FUNCTION get_rec (
184 p_kplv_rec IN kplv_rec_type
185 ) RETURN kplv_rec_type IS
186 l_row_not_found BOOLEAN := TRUE;
187 BEGIN
188 RETURN(get_rec(p_kplv_rec, l_row_not_found));
189 END get_rec;
190 ---------------------------------------------------------------------------
191 -- FUNCTION get_rec for: OKL_K_PARTY_ROLES
192 ---------------------------------------------------------------------------
193 FUNCTION get_rec (
194 p_kpl_rec IN kpl_rec_type,
195 x_no_data_found OUT NOCOPY BOOLEAN
196 ) RETURN kpl_rec_type IS
197 CURSOR okl_k_party_roles_pk_csr (p_id IN NUMBER) IS
198 SELECT
199 ID,
200 OBJECT_VERSION_NUMBER,
201 ATTRIBUTE_CATEGORY,
202 ATTRIBUTE1,
203 ATTRIBUTE2,
204 ATTRIBUTE3,
205 ATTRIBUTE4,
206 ATTRIBUTE5,
207 ATTRIBUTE6,
208 ATTRIBUTE7,
209 ATTRIBUTE8,
210 ATTRIBUTE9,
211 ATTRIBUTE10,
212 ATTRIBUTE11,
213 ATTRIBUTE12,
214 ATTRIBUTE13,
215 ATTRIBUTE14,
216 ATTRIBUTE15,
217 CREATED_BY,
218 CREATION_DATE,
219 LAST_UPDATED_BY,
220 LAST_UPDATE_DATE,
221 LAST_UPDATE_LOGIN
222 FROM Okl_K_Party_Roles
223 WHERE okl_k_party_roles.id = p_id;
224 l_okl_k_party_roles_pk okl_k_party_roles_pk_csr%ROWTYPE;
225 l_kpl_rec kpl_rec_type;
226 BEGIN
227 x_no_data_found := TRUE;
228 -- Get current database values
229 OPEN okl_k_party_roles_pk_csr (p_kpl_rec.id);
230 FETCH okl_k_party_roles_pk_csr INTO
231 l_kpl_rec.id,
232 l_kpl_rec.object_version_number,
233 l_kpl_rec.attribute_category,
234 l_kpl_rec.attribute1,
235 l_kpl_rec.attribute2,
236 l_kpl_rec.attribute3,
237 l_kpl_rec.attribute4,
238 l_kpl_rec.attribute5,
239 l_kpl_rec.attribute6,
240 l_kpl_rec.attribute7,
241 l_kpl_rec.attribute8,
242 l_kpl_rec.attribute9,
243 l_kpl_rec.attribute10,
244 l_kpl_rec.attribute11,
245 l_kpl_rec.attribute12,
246 l_kpl_rec.attribute13,
247 l_kpl_rec.attribute14,
248 l_kpl_rec.attribute15,
249 l_kpl_rec.created_by,
250 l_kpl_rec.creation_date,
251 l_kpl_rec.last_updated_by,
252 l_kpl_rec.last_update_date,
253 l_kpl_rec.last_update_login;
254 x_no_data_found := okl_k_party_roles_pk_csr%NOTFOUND;
255 CLOSE okl_k_party_roles_pk_csr;
256 RETURN(l_kpl_rec);
257 END get_rec;
258
259 ------------------------------------------------------------------
260 -- This version of get_rec sets error messages if no data found --
261 ------------------------------------------------------------------
262 FUNCTION get_rec (
263 p_kpl_rec IN kpl_rec_type,
264 x_return_status OUT NOCOPY VARCHAR2
265 ) RETURN kpl_rec_type IS
266 l_kpl_rec kpl_rec_type;
267 l_row_notfound BOOLEAN := TRUE;
268 BEGIN
269 x_return_status := OKL_API.G_RET_STS_SUCCESS;
270 l_kpl_rec := get_rec(p_kpl_rec, l_row_notfound);
271 IF (l_row_notfound) THEN
272 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
273 x_return_status := OKL_API.G_RET_STS_ERROR;
274 END IF;
275 RETURN(l_kpl_rec);
276 END get_rec;
277 -----------------------------------------------------------
278 -- So we don't have to pass an "l_row_notfound" variable --
279 -----------------------------------------------------------
280 FUNCTION get_rec (
281 p_kpl_rec IN kpl_rec_type
282 ) RETURN kpl_rec_type IS
283 l_row_not_found BOOLEAN := TRUE;
284 BEGIN
285 RETURN(get_rec(p_kpl_rec, l_row_not_found));
286 END get_rec;
287 ---------------------------------------------------------------------------
288 -- FUNCTION null_out_defaults for: OKL_K_PARTY_ROLES_V
289 ---------------------------------------------------------------------------
290 FUNCTION null_out_defaults (
291 p_kplv_rec IN kplv_rec_type
292 ) RETURN kplv_rec_type IS
293 l_kplv_rec kplv_rec_type := p_kplv_rec;
294 BEGIN
295 IF (l_kplv_rec.id = OKL_API.G_MISS_NUM ) THEN
296 l_kplv_rec.id := NULL;
297 END IF;
298 IF (l_kplv_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
299 l_kplv_rec.object_version_number := NULL;
300 END IF;
301 IF (l_kplv_rec.attribute_category = OKL_API.G_MISS_CHAR ) THEN
302 l_kplv_rec.attribute_category := NULL;
303 END IF;
304 IF (l_kplv_rec.attribute1 = OKL_API.G_MISS_CHAR ) THEN
305 l_kplv_rec.attribute1 := NULL;
306 END IF;
307 IF (l_kplv_rec.attribute2 = OKL_API.G_MISS_CHAR ) THEN
308 l_kplv_rec.attribute2 := NULL;
309 END IF;
310 IF (l_kplv_rec.attribute3 = OKL_API.G_MISS_CHAR ) THEN
311 l_kplv_rec.attribute3 := NULL;
312 END IF;
313 IF (l_kplv_rec.attribute4 = OKL_API.G_MISS_CHAR ) THEN
314 l_kplv_rec.attribute4 := NULL;
315 END IF;
316 IF (l_kplv_rec.attribute5 = OKL_API.G_MISS_CHAR ) THEN
317 l_kplv_rec.attribute5 := NULL;
318 END IF;
319 IF (l_kplv_rec.attribute6 = OKL_API.G_MISS_CHAR ) THEN
320 l_kplv_rec.attribute6 := NULL;
321 END IF;
322 IF (l_kplv_rec.attribute7 = OKL_API.G_MISS_CHAR ) THEN
323 l_kplv_rec.attribute7 := NULL;
324 END IF;
325 IF (l_kplv_rec.attribute8 = OKL_API.G_MISS_CHAR ) THEN
326 l_kplv_rec.attribute8 := NULL;
327 END IF;
328 IF (l_kplv_rec.attribute9 = OKL_API.G_MISS_CHAR ) THEN
329 l_kplv_rec.attribute9 := NULL;
330 END IF;
331 IF (l_kplv_rec.attribute10 = OKL_API.G_MISS_CHAR ) THEN
332 l_kplv_rec.attribute10 := NULL;
333 END IF;
334 IF (l_kplv_rec.attribute11 = OKL_API.G_MISS_CHAR ) THEN
335 l_kplv_rec.attribute11 := NULL;
336 END IF;
337 IF (l_kplv_rec.attribute12 = OKL_API.G_MISS_CHAR ) THEN
338 l_kplv_rec.attribute12 := NULL;
339 END IF;
340 IF (l_kplv_rec.attribute13 = OKL_API.G_MISS_CHAR ) THEN
341 l_kplv_rec.attribute13 := NULL;
342 END IF;
343 IF (l_kplv_rec.attribute14 = OKL_API.G_MISS_CHAR ) THEN
344 l_kplv_rec.attribute14 := NULL;
345 END IF;
346 IF (l_kplv_rec.attribute15 = OKL_API.G_MISS_CHAR ) THEN
347 l_kplv_rec.attribute15 := NULL;
348 END IF;
349 IF (l_kplv_rec.created_by = OKL_API.G_MISS_NUM ) THEN
350 l_kplv_rec.created_by := NULL;
351 END IF;
352 IF (l_kplv_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
353 l_kplv_rec.creation_date := NULL;
354 END IF;
355 IF (l_kplv_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
356 l_kplv_rec.last_updated_by := NULL;
357 END IF;
358 IF (l_kplv_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
359 l_kplv_rec.last_update_date := NULL;
360 END IF;
361 IF (l_kplv_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
362 l_kplv_rec.last_update_login := NULL;
363 END IF;
364 RETURN(l_kplv_rec);
365 END null_out_defaults;
366
367 -- Start of comments
368 --
369 -- Procedure Name : validate_DFF_attributes
370 -- Description :
371 -- Business Rules : DFF validation
372 -- Parameters :
373 -- Version : 1.0
374 -- End of comments
375 PROCEDURE validate_DFF_attributes
376 (x_return_status OUT NOCOPY VARCHAR2,
377 p_kplv_rec IN kplv_rec_type) is
378
379 l_segment_values_rec Okl_DFlex_Util_Pvt.DFF_Rec_type;
380 l_msg_count NUMBER;
381 l_msg_data VARCHAR2(2000);
382 l_appl_short_name VARCHAR2(30) := 'OKL';
383 l_desc_flex_name VARCHAR2(30) := 'OKL_K_PARTY_ROLES_DF';
384 l_segment_partial_name VARCHAR2(30) := 'ATTRIBUTE';
385 Begin
386 -- initialize return status
387 x_return_status := OKL_API.G_RET_STS_SUCCESS;
388
389 l_segment_values_rec.attribute_category := p_kplv_rec.attribute_category;
390 l_segment_values_rec.attribute1 := p_kplv_rec.attribute1;
391 l_segment_values_rec.attribute2 := p_kplv_rec.attribute2;
392 l_segment_values_rec.attribute3 := p_kplv_rec.attribute3;
393 l_segment_values_rec.attribute4 := p_kplv_rec.attribute4;
394 l_segment_values_rec.attribute5 := p_kplv_rec.attribute5;
395 l_segment_values_rec.attribute6 := p_kplv_rec.attribute6;
396 l_segment_values_rec.attribute7 := p_kplv_rec.attribute7;
397 l_segment_values_rec.attribute8 := p_kplv_rec.attribute8;
398 l_segment_values_rec.attribute9 := p_kplv_rec.attribute9;
399 l_segment_values_rec.attribute10 := p_kplv_rec.attribute10;
400 l_segment_values_rec.attribute11 := p_kplv_rec.attribute11;
401 l_segment_values_rec.attribute12 := p_kplv_rec.attribute12;
402 l_segment_values_rec.attribute13 := p_kplv_rec.attribute13;
403 l_segment_values_rec.attribute14 := p_kplv_rec.attribute14;
404 l_segment_values_rec.attribute15 := p_kplv_rec.attribute15;
405
406 okl_dflex_util_pvt.validate_desc_flex
407 (p_api_version => 1.0
408 ,p_init_msg_list => OKL_API.G_FALSE
409 ,x_return_status => x_return_status
410 ,x_msg_count => l_msg_count
411 ,x_msg_data => l_msg_data
412 ,p_appl_short_name => l_appl_short_name
413 ,p_descflex_name => l_desc_flex_name
414 ,p_segment_partial_name => l_segment_partial_name
415 ,p_segment_values_rec => l_segment_values_rec);
416
417 -- check return status
418 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
419 RAISE G_EXCEPTION_HALT_VALIDATION;
420 END IF;
421
422 exception
423 when G_EXCEPTION_HALT_VALIDATION THEN
424 x_return_status := OKL_API.G_RET_STS_ERROR;
425
426 when OTHERS then
427 -- store SQL error message on message stack
428 OKL_API.SET_MESSAGE(p_app_name => g_app_name,
429 p_msg_name => g_unexpected_error,
430 p_token1 => g_sqlcode_token,
431 p_token1_value => sqlcode,
432 p_token2 => g_sqlerrm_token,
433 p_token2_value => sqlerrm);
434 -- notify caller of an error as UNEXPETED error
435 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
436 End validate_DFF_attributes;
437
438 ---------------------------------
439 -- Validate_Attributes for: ID --
440 ---------------------------------
441 PROCEDURE validate_id(
442 x_return_status OUT NOCOPY VARCHAR2,
443 p_id IN NUMBER) IS
444 BEGIN
445 x_return_status := OKL_API.G_RET_STS_SUCCESS;
446 IF (p_id = OKL_API.G_MISS_NUM OR
447 p_id IS NULL)
448 THEN
449 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'id');
450 x_return_status := OKL_API.G_RET_STS_ERROR;
451 RAISE G_EXCEPTION_HALT_VALIDATION;
452 END IF;
453 EXCEPTION
454 WHEN G_EXCEPTION_HALT_VALIDATION THEN
455 null;
456 WHEN OTHERS THEN
457 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
458 ,p_msg_name => G_UNEXPECTED_ERROR
459 ,p_token1 => G_SQLCODE_TOKEN
460 ,p_token1_value => SQLCODE
461 ,p_token2 => G_SQLERRM_TOKEN
462 ,p_token2_value => SQLERRM);
463 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
464 END validate_id;
465 ----------------------------------------------------
466 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
467 ----------------------------------------------------
468 PROCEDURE validate_object_version_number(
469 x_return_status OUT NOCOPY VARCHAR2,
470 p_object_version_number IN NUMBER) IS
471 BEGIN
472 x_return_status := OKL_API.G_RET_STS_SUCCESS;
473 IF (p_object_version_number = OKL_API.G_MISS_NUM OR
474 p_object_version_number IS NULL)
475 THEN
476 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
477 x_return_status := OKL_API.G_RET_STS_ERROR;
478 RAISE G_EXCEPTION_HALT_VALIDATION;
479 END IF;
480 EXCEPTION
481 WHEN G_EXCEPTION_HALT_VALIDATION THEN
482 null;
483 WHEN OTHERS THEN
484 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
485 ,p_msg_name => G_UNEXPECTED_ERROR
486 ,p_token1 => G_SQLCODE_TOKEN
487 ,p_token1_value => SQLCODE
488 ,p_token2 => G_SQLERRM_TOKEN
489 ,p_token2_value => SQLERRM);
490 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
491 END validate_object_version_number;
492 ---------------------------------------------------------------------------
493 -- FUNCTION Validate_Attributes
494 ---------------------------------------------------------------------------
495 -------------------------------------------------
496 -- Validate_Attributes for:OKL_K_PARTY_ROLES_V --
497 -------------------------------------------------
498 FUNCTION Validate_Attributes (
499 p_kplv_rec IN kplv_rec_type
500 ) RETURN VARCHAR2 IS
501 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
502 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
503 BEGIN
504 -----------------------------
505 -- Column Level Validation --
506 -----------------------------
507 -- ***
508 -- id
509 -- ***
510 validate_id(x_return_status, p_kplv_rec.id);
511 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
512 l_return_status := x_return_status;
513 RAISE G_EXCEPTION_HALT_VALIDATION;
514 END IF;
515
516 -- ***
517 -- object_version_number
518 -- ***
519 validate_object_version_number(x_return_status, p_kplv_rec.object_version_number);
520 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
521 l_return_status := x_return_status;
522 RAISE G_EXCEPTION_HALT_VALIDATION;
523 END IF;
524
525 -- ***
526 -- DFF Attributes
527 -- ***
528 IF NVL(p_kplv_rec.validate_dff_yn,OKL_API.G_MISS_CHAR) = 'Y' THEN
529 validate_DFF_attributes
530 (x_return_status => x_return_status,
531 p_kplv_rec => p_kplv_rec);
532 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
533 l_return_status := x_return_status;
534 RAISE G_EXCEPTION_HALT_VALIDATION;
535 END IF;
536 END IF;
537
538 RETURN(l_return_status);
539 EXCEPTION
540 WHEN G_EXCEPTION_HALT_VALIDATION THEN
541 RETURN(l_return_status);
542 WHEN OTHERS THEN
543 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
544 ,p_msg_name => G_UNEXPECTED_ERROR
545 ,p_token1 => G_SQLCODE_TOKEN
546 ,p_token1_value => SQLCODE
547 ,p_token2 => G_SQLERRM_TOKEN
548 ,p_token2_value => SQLERRM);
549 l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
550 RETURN(l_return_status);
551 END Validate_Attributes;
552 ---------------------------------------------------------------------------
553 -- PROCEDURE Validate_Record
554 ---------------------------------------------------------------------------
555 ---------------------------------------------
556 -- Validate Record for:OKL_K_PARTY_ROLES_V --
557 ---------------------------------------------
558 FUNCTION Validate_Record (
559 p_kplv_rec IN kplv_rec_type,
560 p_db_kplv_rec IN kplv_rec_type
561 ) RETURN VARCHAR2 IS
562 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
563 BEGIN
564 RETURN (l_return_status);
565 END Validate_Record;
566 FUNCTION Validate_Record (
567 p_kplv_rec IN kplv_rec_type
568 ) RETURN VARCHAR2 IS
569 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
570 l_db_kplv_rec kplv_rec_type := get_rec(p_kplv_rec);
571 BEGIN
572 l_return_status := Validate_Record(p_kplv_rec => p_kplv_rec,
573 p_db_kplv_rec => l_db_kplv_rec);
574 RETURN (l_return_status);
575 END Validate_Record;
576
577 ---------------------------------------------------------------------------
578 -- PROCEDURE Migrate
579 ---------------------------------------------------------------------------
580 PROCEDURE migrate (
581 p_from IN kplv_rec_type,
582 p_to IN OUT NOCOPY kpl_rec_type
583 ) IS
584 BEGIN
585 p_to.id := p_from.id;
586 p_to.object_version_number := p_from.object_version_number;
587 p_to.attribute_category := p_from.attribute_category;
588 p_to.attribute1 := p_from.attribute1;
589 p_to.attribute2 := p_from.attribute2;
590 p_to.attribute3 := p_from.attribute3;
591 p_to.attribute4 := p_from.attribute4;
592 p_to.attribute5 := p_from.attribute5;
593 p_to.attribute6 := p_from.attribute6;
594 p_to.attribute7 := p_from.attribute7;
595 p_to.attribute8 := p_from.attribute8;
596 p_to.attribute9 := p_from.attribute9;
597 p_to.attribute10 := p_from.attribute10;
598 p_to.attribute11 := p_from.attribute11;
599 p_to.attribute12 := p_from.attribute12;
600 p_to.attribute13 := p_from.attribute13;
601 p_to.attribute14 := p_from.attribute14;
602 p_to.attribute15 := p_from.attribute15;
603 p_to.created_by := p_from.created_by;
604 p_to.creation_date := p_from.creation_date;
605 p_to.last_updated_by := p_from.last_updated_by;
606 p_to.last_update_date := p_from.last_update_date;
607 p_to.last_update_login := p_from.last_update_login;
608 END migrate;
609 PROCEDURE migrate (
610 p_from IN kpl_rec_type,
611 p_to IN OUT NOCOPY kplv_rec_type
612 ) IS
613 BEGIN
614 p_to.id := p_from.id;
615 p_to.object_version_number := p_from.object_version_number;
616 p_to.attribute_category := p_from.attribute_category;
617 p_to.attribute1 := p_from.attribute1;
618 p_to.attribute2 := p_from.attribute2;
619 p_to.attribute3 := p_from.attribute3;
620 p_to.attribute4 := p_from.attribute4;
621 p_to.attribute5 := p_from.attribute5;
622 p_to.attribute6 := p_from.attribute6;
623 p_to.attribute7 := p_from.attribute7;
624 p_to.attribute8 := p_from.attribute8;
625 p_to.attribute9 := p_from.attribute9;
626 p_to.attribute10 := p_from.attribute10;
627 p_to.attribute11 := p_from.attribute11;
628 p_to.attribute12 := p_from.attribute12;
629 p_to.attribute13 := p_from.attribute13;
630 p_to.attribute14 := p_from.attribute14;
631 p_to.attribute15 := p_from.attribute15;
632 p_to.created_by := p_from.created_by;
633 p_to.creation_date := p_from.creation_date;
634 p_to.last_updated_by := p_from.last_updated_by;
635 p_to.last_update_date := p_from.last_update_date;
636 p_to.last_update_login := p_from.last_update_login;
637 END migrate;
638 ---------------------------------------------------------------------------
639 -- PROCEDURE validate_row
640 ---------------------------------------------------------------------------
641 ------------------------------------------
642 -- validate_row for:OKL_K_PARTY_ROLES_V --
643 ------------------------------------------
644 PROCEDURE validate_row(
645 p_api_version IN NUMBER,
646 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
647 x_return_status OUT NOCOPY VARCHAR2,
648 x_msg_count OUT NOCOPY NUMBER,
649 x_msg_data OUT NOCOPY VARCHAR2,
650 p_kplv_rec IN kplv_rec_type) IS
651
652 l_api_version CONSTANT NUMBER := 1;
653 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
654 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
655 l_kplv_rec kplv_rec_type := p_kplv_rec;
656 l_kpl_rec kpl_rec_type;
657 l_kpl_rec kpl_rec_type;
658 BEGIN
659 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
660 G_PKG_NAME,
661 p_init_msg_list,
662 l_api_version,
663 p_api_version,
664 '_PVT',
665 x_return_status);
666 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
667 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
668 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
669 RAISE OKL_API.G_EXCEPTION_ERROR;
670 END IF;
671 --- Validate all non-missing attributes (Item Level Validation)
672 l_return_status := Validate_Attributes(l_kplv_rec);
673 --- If any errors happen abort API
674 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
675 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
676 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
677 RAISE OKL_API.G_EXCEPTION_ERROR;
678 END IF;
679 l_return_status := Validate_Record(l_kplv_rec);
680 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
681 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
682 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
683 RAISE OKL_API.G_EXCEPTION_ERROR;
684 END IF;
685 x_return_status := l_return_status;
686 EXCEPTION
687 WHEN OKL_API.G_EXCEPTION_ERROR THEN
688 x_return_status := OKL_API.HANDLE_EXCEPTIONS
689 (
690 l_api_name,
691 G_PKG_NAME,
692 'OKL_API.G_RET_STS_ERROR',
693 x_msg_count,
694 x_msg_data,
695 '_PVT'
696 );
697 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
698 x_return_status := OKL_API.HANDLE_EXCEPTIONS
699 (
700 l_api_name,
701 G_PKG_NAME,
702 'OKL_API.G_RET_STS_UNEXP_ERROR',
703 x_msg_count,
704 x_msg_data,
705 '_PVT'
706 );
707 WHEN OTHERS THEN
708 x_return_status := OKL_API.HANDLE_EXCEPTIONS
709 (
710 l_api_name,
711 G_PKG_NAME,
712 'OTHERS',
713 x_msg_count,
714 x_msg_data,
715 '_PVT'
716 );
717 END validate_row;
718 -----------------------------------------------------
719 -- PL/SQL TBL validate_row for:OKL_K_PARTY_ROLES_V --
720 -----------------------------------------------------
721 PROCEDURE validate_row(
722 p_api_version IN NUMBER,
723 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
724 x_return_status OUT NOCOPY VARCHAR2,
725 x_msg_count OUT NOCOPY NUMBER,
726 x_msg_data OUT NOCOPY VARCHAR2,
727 p_kplv_tbl IN kplv_tbl_type,
728 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
729
730 l_api_version CONSTANT NUMBER := 1;
731 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
732 i NUMBER := 0;
733 BEGIN
734 OKL_API.init_msg_list(p_init_msg_list);
735 -- Make sure PL/SQL table has records in it before passing
736 IF (p_kplv_tbl.COUNT > 0) THEN
737 i := p_kplv_tbl.FIRST;
738 LOOP
739 DECLARE
740 l_error_rec OKL_API.ERROR_REC_TYPE;
741 BEGIN
742 l_error_rec.api_name := l_api_name;
743 l_error_rec.api_package := G_PKG_NAME;
744 l_error_rec.idx := i;
745 validate_row (
746 p_api_version => p_api_version,
747 p_init_msg_list => OKL_API.G_FALSE,
748 x_return_status => l_error_rec.error_type,
749 x_msg_count => l_error_rec.msg_count,
750 x_msg_data => l_error_rec.msg_data,
751 p_kplv_rec => p_kplv_tbl(i));
752 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
753 l_error_rec.sqlcode := SQLCODE;
754 load_error_tbl(l_error_rec, px_error_tbl);
755 ELSE
756 x_msg_count := l_error_rec.msg_count;
757 x_msg_data := l_error_rec.msg_data;
758 END IF;
759 EXCEPTION
760 WHEN OKL_API.G_EXCEPTION_ERROR THEN
761 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
762 l_error_rec.sqlcode := SQLCODE;
763 load_error_tbl(l_error_rec, px_error_tbl);
764 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
765 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
766 l_error_rec.sqlcode := SQLCODE;
767 load_error_tbl(l_error_rec, px_error_tbl);
768 WHEN OTHERS THEN
769 l_error_rec.error_type := 'OTHERS';
770 l_error_rec.sqlcode := SQLCODE;
771 load_error_tbl(l_error_rec, px_error_tbl);
772 END;
773 EXIT WHEN (i = p_kplv_tbl.LAST);
774 i := p_kplv_tbl.NEXT(i);
775 END LOOP;
776 END IF;
777 -- Loop through the error_tbl to find the error with the highest severity
778 -- and return it.
779 x_return_status := find_highest_exception(px_error_tbl);
780 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
781 EXCEPTION
782 WHEN OKL_API.G_EXCEPTION_ERROR THEN
783 x_return_status := OKL_API.HANDLE_EXCEPTIONS
784 (
785 l_api_name,
786 G_PKG_NAME,
787 'OKL_API.G_RET_STS_ERROR',
788 x_msg_count,
789 x_msg_data,
790 '_PVT'
791 );
792 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
793 x_return_status := OKL_API.HANDLE_EXCEPTIONS
794 (
795 l_api_name,
796 G_PKG_NAME,
797 'OKL_API.G_RET_STS_UNEXP_ERROR',
798 x_msg_count,
799 x_msg_data,
800 '_PVT'
801 );
802 WHEN OTHERS THEN
803 x_return_status := OKL_API.HANDLE_EXCEPTIONS
804 (
805 l_api_name,
806 G_PKG_NAME,
807 'OTHERS',
808 x_msg_count,
809 x_msg_data,
810 '_PVT'
811 );
812 END validate_row;
813
814 -----------------------------------------------------
815 -- PL/SQL TBL validate_row for:OKL_K_PARTY_ROLES_V --
816 -----------------------------------------------------
817 PROCEDURE validate_row(
818 p_api_version IN NUMBER,
819 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
820 x_return_status OUT NOCOPY VARCHAR2,
821 x_msg_count OUT NOCOPY NUMBER,
822 x_msg_data OUT NOCOPY VARCHAR2,
823 p_kplv_tbl IN kplv_tbl_type) IS
824
825 l_api_version CONSTANT NUMBER := 1;
826 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
827 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
828 l_error_tbl OKL_API.ERROR_TBL_TYPE;
829 BEGIN
830 OKL_API.init_msg_list(p_init_msg_list);
831 -- Make sure PL/SQL table has records in it before passing
832 IF (p_kplv_tbl.COUNT > 0) THEN
833 validate_row (
834 p_api_version => p_api_version,
835 p_init_msg_list => OKL_API.G_FALSE,
836 x_return_status => x_return_status,
837 x_msg_count => x_msg_count,
838 x_msg_data => x_msg_data,
839 p_kplv_tbl => p_kplv_tbl,
840 px_error_tbl => l_error_tbl);
841 END IF;
842 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
843 EXCEPTION
844 WHEN OKL_API.G_EXCEPTION_ERROR THEN
845 x_return_status := OKL_API.HANDLE_EXCEPTIONS
846 (
847 l_api_name,
848 G_PKG_NAME,
849 'OKL_API.G_RET_STS_ERROR',
850 x_msg_count,
851 x_msg_data,
852 '_PVT'
853 );
854 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
855 x_return_status := OKL_API.HANDLE_EXCEPTIONS
856 (
857 l_api_name,
858 G_PKG_NAME,
859 'OKL_API.G_RET_STS_UNEXP_ERROR',
860 x_msg_count,
861 x_msg_data,
862 '_PVT'
863 );
864 WHEN OTHERS THEN
865 x_return_status := OKL_API.HANDLE_EXCEPTIONS
866 (
867 l_api_name,
868 G_PKG_NAME,
869 'OTHERS',
870 x_msg_count,
871 x_msg_data,
872 '_PVT'
873 );
874 END validate_row;
875
876 ---------------------------------------------------------------------------
877 -- PROCEDURE insert_row
878 ---------------------------------------------------------------------------
879 --------------------------------------
880 -- insert_row for:OKL_K_PARTY_ROLES --
881 --------------------------------------
882 PROCEDURE insert_row(
883 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
884 x_return_status OUT NOCOPY VARCHAR2,
885 x_msg_count OUT NOCOPY NUMBER,
886 x_msg_data OUT NOCOPY VARCHAR2,
887 p_kpl_rec IN kpl_rec_type,
888 x_kpl_rec OUT NOCOPY kpl_rec_type) IS
889
890 l_api_version CONSTANT NUMBER := 1;
891 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
892 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
893 l_kpl_rec kpl_rec_type := p_kpl_rec;
894 l_def_kpl_rec kpl_rec_type;
895 ------------------------------------------
896 -- Set_Attributes for:OKL_K_PARTY_ROLES --
897 ------------------------------------------
898 FUNCTION Set_Attributes (
899 p_kpl_rec IN kpl_rec_type,
900 x_kpl_rec OUT NOCOPY kpl_rec_type
901 ) RETURN VARCHAR2 IS
902 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
903 BEGIN
904 x_kpl_rec := p_kpl_rec;
905 RETURN(l_return_status);
906 END Set_Attributes;
907 BEGIN
908 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
909 p_init_msg_list,
910 '_PVT',
911 x_return_status);
912 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
913 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
914 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
915 RAISE OKL_API.G_EXCEPTION_ERROR;
916 END IF;
917 --- Setting item atributes
918 l_return_status := Set_Attributes(
919 p_kpl_rec, -- IN
920 l_kpl_rec); -- OUT
921 --- If any errors happen abort API
922 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
923 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
924 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
925 RAISE OKL_API.G_EXCEPTION_ERROR;
926 END IF;
927 INSERT INTO OKL_K_PARTY_ROLES(
928 id,
929 object_version_number,
930 attribute_category,
931 attribute1,
932 attribute2,
933 attribute3,
934 attribute4,
935 attribute5,
936 attribute6,
937 attribute7,
938 attribute8,
939 attribute9,
940 attribute10,
941 attribute11,
942 attribute12,
943 attribute13,
944 attribute14,
945 attribute15,
946 created_by,
947 creation_date,
948 last_updated_by,
949 last_update_date,
950 last_update_login)
951 VALUES (
952 l_kpl_rec.id,
953 l_kpl_rec.object_version_number,
954 l_kpl_rec.attribute_category,
955 l_kpl_rec.attribute1,
956 l_kpl_rec.attribute2,
957 l_kpl_rec.attribute3,
958 l_kpl_rec.attribute4,
959 l_kpl_rec.attribute5,
960 l_kpl_rec.attribute6,
961 l_kpl_rec.attribute7,
962 l_kpl_rec.attribute8,
963 l_kpl_rec.attribute9,
964 l_kpl_rec.attribute10,
965 l_kpl_rec.attribute11,
966 l_kpl_rec.attribute12,
967 l_kpl_rec.attribute13,
968 l_kpl_rec.attribute14,
969 l_kpl_rec.attribute15,
970 l_kpl_rec.created_by,
971 l_kpl_rec.creation_date,
972 l_kpl_rec.last_updated_by,
973 l_kpl_rec.last_update_date,
974 l_kpl_rec.last_update_login);
975 -- Set OUT values
976 x_kpl_rec := l_kpl_rec;
977 x_return_status := l_return_status;
978 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
979 EXCEPTION
980 WHEN OKL_API.G_EXCEPTION_ERROR THEN
981 x_return_status := OKL_API.HANDLE_EXCEPTIONS
982 (
983 l_api_name,
984 G_PKG_NAME,
985 'OKL_API.G_RET_STS_ERROR',
986 x_msg_count,
987 x_msg_data,
988 '_PVT'
989 );
990 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
991 x_return_status := OKL_API.HANDLE_EXCEPTIONS
992 (
993 l_api_name,
994 G_PKG_NAME,
995 'OKL_API.G_RET_STS_UNEXP_ERROR',
996 x_msg_count,
997 x_msg_data,
998 '_PVT'
999 );
1000 WHEN OTHERS THEN
1001 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1002 (
1003 l_api_name,
1004 G_PKG_NAME,
1005 'OTHERS',
1006 x_msg_count,
1007 x_msg_data,
1008 '_PVT'
1009 );
1010 END insert_row;
1011 -----------------------------------------
1012 -- insert_row for :OKL_K_PARTY_ROLES_V --
1013 -----------------------------------------
1014 PROCEDURE insert_row(
1015 p_api_version IN NUMBER,
1016 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1017 x_return_status OUT NOCOPY VARCHAR2,
1018 x_msg_count OUT NOCOPY NUMBER,
1019 x_msg_data OUT NOCOPY VARCHAR2,
1020 p_kplv_rec IN kplv_rec_type,
1021 x_kplv_rec OUT NOCOPY kplv_rec_type) IS
1022
1023 l_api_version CONSTANT NUMBER := 1;
1024 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1025 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1026 l_kplv_rec kplv_rec_type := p_kplv_rec;
1027 l_def_kplv_rec kplv_rec_type;
1028 l_kpl_rec kpl_rec_type;
1029 lx_kpl_rec kpl_rec_type;
1030 -------------------------------
1031 -- FUNCTION fill_who_columns --
1032 -------------------------------
1033 FUNCTION fill_who_columns (
1034 p_kplv_rec IN kplv_rec_type
1035 ) RETURN kplv_rec_type IS
1036 l_kplv_rec kplv_rec_type := p_kplv_rec;
1037 BEGIN
1038 l_kplv_rec.CREATION_DATE := SYSDATE;
1039 l_kplv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1040 l_kplv_rec.LAST_UPDATE_DATE := l_kplv_rec.CREATION_DATE;
1041 l_kplv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1042 l_kplv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1043 RETURN(l_kplv_rec);
1044 END fill_who_columns;
1045 --------------------------------------------
1046 -- Set_Attributes for:OKL_K_PARTY_ROLES_V --
1047 --------------------------------------------
1048 FUNCTION Set_Attributes (
1049 p_kplv_rec IN kplv_rec_type,
1050 x_kplv_rec OUT NOCOPY kplv_rec_type
1051 ) RETURN VARCHAR2 IS
1052 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1053 BEGIN
1054 x_kplv_rec := p_kplv_rec;
1055 x_kplv_rec.OBJECT_VERSION_NUMBER := 1;
1056 RETURN(l_return_status);
1057 END Set_Attributes;
1058 BEGIN
1059 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1060 G_PKG_NAME,
1061 p_init_msg_list,
1062 l_api_version,
1063 p_api_version,
1064 '_PVT',
1065 x_return_status);
1066 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1067 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1068 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1069 RAISE OKL_API.G_EXCEPTION_ERROR;
1070 END IF;
1071 l_kplv_rec := null_out_defaults(p_kplv_rec);
1072 -- Set primary key value
1073 if (l_kplv_rec.ID is null) then
1074 l_kplv_rec.ID := get_seq_id;
1075 end if;
1076 -- Setting item attributes
1077 l_return_Status := Set_Attributes(
1078 l_kplv_rec, -- IN
1079 l_def_kplv_rec); -- OUT
1080 --- If any errors happen abort API
1081 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1082 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1083 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1084 RAISE OKL_API.G_EXCEPTION_ERROR;
1085 END IF;
1086 l_def_kplv_rec := fill_who_columns(l_def_kplv_rec);
1087 --- Validate all non-missing attributes (Item Level Validation)
1088 l_return_status := Validate_Attributes(l_def_kplv_rec);
1089 --- If any errors happen abort API
1090 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1091 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1092 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1093 RAISE OKL_API.G_EXCEPTION_ERROR;
1094 END IF;
1095 l_return_status := Validate_Record(l_def_kplv_rec);
1096 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1097 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1098 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1099 RAISE OKL_API.G_EXCEPTION_ERROR;
1100 END IF;
1101 -----------------------------------------
1102 -- Move VIEW record to "Child" records --
1103 -----------------------------------------
1104 migrate(l_def_kplv_rec, l_kpl_rec);
1105 -----------------------------------------------
1106 -- Call the INSERT_ROW for each child record --
1107 -----------------------------------------------
1108 insert_row(
1109 p_init_msg_list,
1110 l_return_status,
1111 x_msg_count,
1112 x_msg_data,
1113 l_kpl_rec,
1114 lx_kpl_rec
1115 );
1116 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1117 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1118 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1119 RAISE OKL_API.G_EXCEPTION_ERROR;
1120 END IF;
1121 migrate(lx_kpl_rec, l_def_kplv_rec);
1122 -- Set OUT values
1123 x_kplv_rec := l_def_kplv_rec;
1124 x_return_status := l_return_status;
1125 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1126 EXCEPTION
1127 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1128 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1129 (
1130 l_api_name,
1131 G_PKG_NAME,
1132 'OKL_API.G_RET_STS_ERROR',
1133 x_msg_count,
1134 x_msg_data,
1135 '_PVT'
1136 );
1137 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1138 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1139 (
1140 l_api_name,
1141 G_PKG_NAME,
1142 'OKL_API.G_RET_STS_UNEXP_ERROR',
1143 x_msg_count,
1144 x_msg_data,
1145 '_PVT'
1146 );
1147 WHEN OTHERS THEN
1148 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1149 (
1150 l_api_name,
1151 G_PKG_NAME,
1152 'OTHERS',
1153 x_msg_count,
1154 x_msg_data,
1155 '_PVT'
1156 );
1157 END insert_row;
1158 ----------------------------------------
1159 -- PL/SQL TBL insert_row for:KPLV_TBL --
1160 ----------------------------------------
1161 PROCEDURE insert_row(
1162 p_api_version IN NUMBER,
1163 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1164 x_return_status OUT NOCOPY VARCHAR2,
1165 x_msg_count OUT NOCOPY NUMBER,
1166 x_msg_data OUT NOCOPY VARCHAR2,
1167 p_kplv_tbl IN kplv_tbl_type,
1168 x_kplv_tbl OUT NOCOPY kplv_tbl_type,
1169 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1170
1171 l_api_version CONSTANT NUMBER := 1;
1172 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1173 i NUMBER := 0;
1174 BEGIN
1175 OKL_API.init_msg_list(p_init_msg_list);
1176 -- Make sure PL/SQL table has records in it before passing
1177 IF (p_kplv_tbl.COUNT > 0) THEN
1178 i := p_kplv_tbl.FIRST;
1179 LOOP
1180 DECLARE
1181 l_error_rec OKL_API.ERROR_REC_TYPE;
1182 BEGIN
1183 l_error_rec.api_name := l_api_name;
1184 l_error_rec.api_package := G_PKG_NAME;
1185 l_error_rec.idx := i;
1186 insert_row (
1187 p_api_version => p_api_version,
1188 p_init_msg_list => OKL_API.G_FALSE,
1189 x_return_status => l_error_rec.error_type,
1190 x_msg_count => l_error_rec.msg_count,
1191 x_msg_data => l_error_rec.msg_data,
1192 p_kplv_rec => p_kplv_tbl(i),
1193 x_kplv_rec => x_kplv_tbl(i));
1194 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1195 l_error_rec.sqlcode := SQLCODE;
1196 load_error_tbl(l_error_rec, px_error_tbl);
1197 ELSE
1198 x_msg_count := l_error_rec.msg_count;
1199 x_msg_data := l_error_rec.msg_data;
1200 END IF;
1201 EXCEPTION
1202 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1203 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1204 l_error_rec.sqlcode := SQLCODE;
1205 load_error_tbl(l_error_rec, px_error_tbl);
1206 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1207 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1208 l_error_rec.sqlcode := SQLCODE;
1209 load_error_tbl(l_error_rec, px_error_tbl);
1210 WHEN OTHERS THEN
1211 l_error_rec.error_type := 'OTHERS';
1212 l_error_rec.sqlcode := SQLCODE;
1213 load_error_tbl(l_error_rec, px_error_tbl);
1214 END;
1215 EXIT WHEN (i = p_kplv_tbl.LAST);
1216 i := p_kplv_tbl.NEXT(i);
1217 END LOOP;
1218 END IF;
1219 -- Loop through the error_tbl to find the error with the highest severity
1220 -- and return it.
1221 x_return_status := find_highest_exception(px_error_tbl);
1222 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1223 EXCEPTION
1224 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1225 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1226 (
1227 l_api_name,
1228 G_PKG_NAME,
1229 'OKL_API.G_RET_STS_ERROR',
1230 x_msg_count,
1231 x_msg_data,
1232 '_PVT'
1233 );
1234 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1235 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1236 (
1237 l_api_name,
1238 G_PKG_NAME,
1239 'OKL_API.G_RET_STS_UNEXP_ERROR',
1240 x_msg_count,
1241 x_msg_data,
1242 '_PVT'
1243 );
1244 WHEN OTHERS THEN
1245 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1246 (
1247 l_api_name,
1248 G_PKG_NAME,
1249 'OTHERS',
1250 x_msg_count,
1251 x_msg_data,
1252 '_PVT'
1253 );
1254 END insert_row;
1255
1256 ----------------------------------------
1257 -- PL/SQL TBL insert_row for:KPLV_TBL --
1258 ----------------------------------------
1259 PROCEDURE insert_row(
1260 p_api_version IN NUMBER,
1261 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1262 x_return_status OUT NOCOPY VARCHAR2,
1263 x_msg_count OUT NOCOPY NUMBER,
1264 x_msg_data OUT NOCOPY VARCHAR2,
1265 p_kplv_tbl IN kplv_tbl_type,
1266 x_kplv_tbl OUT NOCOPY kplv_tbl_type) IS
1267
1268 l_api_version CONSTANT NUMBER := 1;
1269 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1270 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1271 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1272 BEGIN
1273 OKL_API.init_msg_list(p_init_msg_list);
1274 -- Make sure PL/SQL table has records in it before passing
1275 IF (p_kplv_tbl.COUNT > 0) THEN
1276 insert_row (
1277 p_api_version => p_api_version,
1278 p_init_msg_list => OKL_API.G_FALSE,
1279 x_return_status => x_return_status,
1280 x_msg_count => x_msg_count,
1281 x_msg_data => x_msg_data,
1282 p_kplv_tbl => p_kplv_tbl,
1283 x_kplv_tbl => x_kplv_tbl,
1284 px_error_tbl => l_error_tbl);
1285 END IF;
1286 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1287 EXCEPTION
1288 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1289 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1290 (
1291 l_api_name,
1292 G_PKG_NAME,
1293 'OKL_API.G_RET_STS_ERROR',
1294 x_msg_count,
1295 x_msg_data,
1296 '_PVT'
1297 );
1298 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1299 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1300 (
1301 l_api_name,
1302 G_PKG_NAME,
1303 'OKL_API.G_RET_STS_UNEXP_ERROR',
1304 x_msg_count,
1305 x_msg_data,
1306 '_PVT'
1307 );
1308 WHEN OTHERS THEN
1309 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1310 (
1311 l_api_name,
1312 G_PKG_NAME,
1313 'OTHERS',
1314 x_msg_count,
1315 x_msg_data,
1316 '_PVT'
1317 );
1318 END insert_row;
1319
1320 ---------------------------------------------------------------------------
1321 -- PROCEDURE lock_row
1322 ---------------------------------------------------------------------------
1323 ------------------------------------
1324 -- lock_row for:OKL_K_PARTY_ROLES --
1325 ------------------------------------
1326 PROCEDURE lock_row(
1327 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1328 x_return_status OUT NOCOPY VARCHAR2,
1329 x_msg_count OUT NOCOPY NUMBER,
1330 x_msg_data OUT NOCOPY VARCHAR2,
1331 p_kpl_rec IN kpl_rec_type) IS
1332
1333 E_Resource_Busy EXCEPTION;
1334 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1335 CURSOR lock_csr (p_kpl_rec IN kpl_rec_type) IS
1336 SELECT OBJECT_VERSION_NUMBER
1337 FROM OKL_K_PARTY_ROLES
1338 WHERE ID = p_kpl_rec.id
1339 AND OBJECT_VERSION_NUMBER = p_kpl_rec.object_version_number
1340 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1341
1342 CURSOR lchk_csr (p_kpl_rec IN kpl_rec_type) IS
1343 SELECT OBJECT_VERSION_NUMBER
1344 FROM OKL_K_PARTY_ROLES
1345 WHERE ID = p_kpl_rec.id;
1346 l_api_version CONSTANT NUMBER := 1;
1347 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
1348 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1349 l_object_version_number OKL_K_PARTY_ROLES.OBJECT_VERSION_NUMBER%TYPE;
1350 lc_object_version_number OKL_K_PARTY_ROLES.OBJECT_VERSION_NUMBER%TYPE;
1351 l_row_notfound BOOLEAN := FALSE;
1352 lc_row_notfound BOOLEAN := FALSE;
1353 BEGIN
1354 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1355 p_init_msg_list,
1356 '_PVT',
1357 x_return_status);
1358 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1359 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1360 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1361 RAISE OKL_API.G_EXCEPTION_ERROR;
1362 END IF;
1363 BEGIN
1364 OPEN lock_csr(p_kpl_rec);
1365 FETCH lock_csr INTO l_object_version_number;
1366 l_row_notfound := lock_csr%NOTFOUND;
1367 CLOSE lock_csr;
1368 EXCEPTION
1369 WHEN E_Resource_Busy THEN
1370 IF (lock_csr%ISOPEN) THEN
1371 CLOSE lock_csr;
1372 END IF;
1373 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1374 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1375 END;
1376
1377 IF ( l_row_notfound ) THEN
1378 OPEN lchk_csr(p_kpl_rec);
1379 FETCH lchk_csr INTO lc_object_version_number;
1380 lc_row_notfound := lchk_csr%NOTFOUND;
1381 CLOSE lchk_csr;
1382 END IF;
1383 IF (lc_row_notfound) THEN
1384 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1385 RAISE OKL_API.G_EXCEPTION_ERROR;
1386 ELSIF lc_object_version_number > p_kpl_rec.object_version_number THEN
1387 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1388 RAISE OKL_API.G_EXCEPTION_ERROR;
1389 ELSIF lc_object_version_number <> p_kpl_rec.object_version_number THEN
1390 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1391 RAISE OKL_API.G_EXCEPTION_ERROR;
1392 ELSIF lc_object_version_number = -1 THEN
1393 OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1394 RAISE OKL_API.G_EXCEPTION_ERROR;
1395 END IF;
1396 x_return_status := l_return_status;
1397 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1398 EXCEPTION
1399 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1400 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1401 (
1402 l_api_name,
1403 G_PKG_NAME,
1404 'OKL_API.G_RET_STS_ERROR',
1405 x_msg_count,
1406 x_msg_data,
1407 '_PVT'
1408 );
1409 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1410 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1411 (
1412 l_api_name,
1413 G_PKG_NAME,
1414 'OKL_API.G_RET_STS_UNEXP_ERROR',
1415 x_msg_count,
1416 x_msg_data,
1417 '_PVT'
1418 );
1419 WHEN OTHERS THEN
1420 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1421 (
1422 l_api_name,
1423 G_PKG_NAME,
1424 'OTHERS',
1425 x_msg_count,
1426 x_msg_data,
1427 '_PVT'
1428 );
1429 END lock_row;
1430 ---------------------------------------
1431 -- lock_row for: OKL_K_PARTY_ROLES_V --
1432 ---------------------------------------
1433 PROCEDURE lock_row(
1434 p_api_version IN NUMBER,
1435 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1436 x_return_status OUT NOCOPY VARCHAR2,
1437 x_msg_count OUT NOCOPY NUMBER,
1438 x_msg_data OUT NOCOPY VARCHAR2,
1439 p_kplv_rec IN kplv_rec_type) IS
1440
1441 l_api_version CONSTANT NUMBER := 1;
1442 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
1443 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1444 l_kpl_rec kpl_rec_type;
1445 BEGIN
1446 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1447 G_PKG_NAME,
1448 p_init_msg_list,
1449 l_api_version,
1450 p_api_version,
1451 '_PVT',
1452 x_return_status);
1453 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1454 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1455 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1456 RAISE OKL_API.G_EXCEPTION_ERROR;
1457 END IF;
1458 -----------------------------------------
1459 -- Move VIEW record to "Child" records --
1460 -----------------------------------------
1461 migrate(p_kplv_rec, l_kpl_rec);
1462 ---------------------------------------------
1463 -- Call the LOCK_ROW for each child record --
1464 ---------------------------------------------
1465 lock_row(
1466 p_init_msg_list,
1467 l_return_status,
1468 x_msg_count,
1469 x_msg_data,
1470 l_kpl_rec
1471 );
1472 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1473 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1474 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1475 RAISE OKL_API.G_EXCEPTION_ERROR;
1476 END IF;
1477 x_return_status := l_return_status;
1478 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1479 EXCEPTION
1480 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1481 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1482 (
1483 l_api_name,
1484 G_PKG_NAME,
1485 'OKL_API.G_RET_STS_ERROR',
1486 x_msg_count,
1487 x_msg_data,
1488 '_PVT'
1489 );
1490 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1491 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1492 (
1493 l_api_name,
1494 G_PKG_NAME,
1495 'OKL_API.G_RET_STS_UNEXP_ERROR',
1496 x_msg_count,
1497 x_msg_data,
1498 '_PVT'
1499 );
1500 WHEN OTHERS THEN
1501 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1502 (
1503 l_api_name,
1504 G_PKG_NAME,
1505 'OTHERS',
1506 x_msg_count,
1507 x_msg_data,
1508 '_PVT'
1509 );
1510 END lock_row;
1511 --------------------------------------
1512 -- PL/SQL TBL lock_row for:KPLV_TBL --
1513 --------------------------------------
1514 PROCEDURE lock_row(
1515 p_api_version IN NUMBER,
1516 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1517 x_return_status OUT NOCOPY VARCHAR2,
1518 x_msg_count OUT NOCOPY NUMBER,
1519 x_msg_data OUT NOCOPY VARCHAR2,
1520 p_kplv_tbl IN kplv_tbl_type,
1521 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1522
1523 l_api_version CONSTANT NUMBER := 1;
1524 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
1525 i NUMBER := 0;
1526 BEGIN
1527 OKL_API.init_msg_list(p_init_msg_list);
1528 -- Make sure PL/SQL table has recrods in it before passing
1529 IF (p_kplv_tbl.COUNT > 0) THEN
1530 i := p_kplv_tbl.FIRST;
1531 LOOP
1532 DECLARE
1533 l_error_rec OKL_API.ERROR_REC_TYPE;
1534 BEGIN
1535 l_error_rec.api_name := l_api_name;
1536 l_error_rec.api_package := G_PKG_NAME;
1537 l_error_rec.idx := i;
1538 lock_row(
1539 p_api_version => p_api_version,
1540 p_init_msg_list => OKL_API.G_FALSE,
1541 x_return_status => l_error_rec.error_type,
1542 x_msg_count => l_error_rec.msg_count,
1543 x_msg_data => l_error_rec.msg_data,
1544 p_kplv_rec => p_kplv_tbl(i));
1545 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1546 l_error_rec.sqlcode := SQLCODE;
1547 load_error_tbl(l_error_rec, px_error_tbl);
1548 ELSE
1549 x_msg_count := l_error_rec.msg_count;
1550 x_msg_data := l_error_rec.msg_data;
1551 END IF;
1552 EXCEPTION
1553 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1554 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1555 l_error_rec.sqlcode := SQLCODE;
1556 load_error_tbl(l_error_rec, px_error_tbl);
1557 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1558 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1559 l_error_rec.sqlcode := SQLCODE;
1560 load_error_tbl(l_error_rec, px_error_tbl);
1561 WHEN OTHERS THEN
1562 l_error_rec.error_type := 'OTHERS';
1563 l_error_rec.sqlcode := SQLCODE;
1564 load_error_tbl(l_error_rec, px_error_tbl);
1565 END;
1566 EXIT WHEN (i = p_kplv_tbl.LAST);
1567 i := p_kplv_tbl.NEXT(i);
1568 END LOOP;
1569 END IF;
1570 -- Loop through the error_tbl to find the error with the highest severity
1571 -- and return it.
1572 x_return_status := find_highest_exception(px_error_tbl);
1573 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1574 EXCEPTION
1575 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1576 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1577 (
1578 l_api_name,
1579 G_PKG_NAME,
1580 'OKL_API.G_RET_STS_ERROR',
1581 x_msg_count,
1582 x_msg_data,
1583 '_PVT'
1584 );
1585 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1586 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1587 (
1588 l_api_name,
1589 G_PKG_NAME,
1590 'OKL_API.G_RET_STS_UNEXP_ERROR',
1591 x_msg_count,
1592 x_msg_data,
1593 '_PVT'
1594 );
1595 WHEN OTHERS THEN
1596 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1597 (
1598 l_api_name,
1599 G_PKG_NAME,
1600 'OTHERS',
1601 x_msg_count,
1602 x_msg_data,
1603 '_PVT'
1604 );
1605 END lock_row;
1606 --------------------------------------
1607 -- PL/SQL TBL lock_row for:KPLV_TBL --
1608 --------------------------------------
1609 PROCEDURE lock_row(
1610 p_api_version IN NUMBER,
1611 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1612 x_return_status OUT NOCOPY VARCHAR2,
1613 x_msg_count OUT NOCOPY NUMBER,
1614 x_msg_data OUT NOCOPY VARCHAR2,
1615 p_kplv_tbl IN kplv_tbl_type) IS
1616
1617 l_api_version CONSTANT NUMBER := 1;
1618 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
1619 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1620 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1621 BEGIN
1622 OKL_API.init_msg_list(p_init_msg_list);
1623 -- Make sure PL/SQL table has recrods in it before passing
1624 IF (p_kplv_tbl.COUNT > 0) THEN
1625 lock_row(
1626 p_api_version => p_api_version,
1627 p_init_msg_list => OKL_API.G_FALSE,
1628 x_return_status => x_return_status,
1629 x_msg_count => x_msg_count,
1630 x_msg_data => x_msg_data,
1631 p_kplv_tbl => p_kplv_tbl,
1632 px_error_tbl => l_error_tbl);
1633 END IF;
1634 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1635 EXCEPTION
1636 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1637 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1638 (
1639 l_api_name,
1640 G_PKG_NAME,
1641 'OKL_API.G_RET_STS_ERROR',
1642 x_msg_count,
1643 x_msg_data,
1644 '_PVT'
1645 );
1646 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1647 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1648 (
1649 l_api_name,
1650 G_PKG_NAME,
1651 'OKL_API.G_RET_STS_UNEXP_ERROR',
1652 x_msg_count,
1653 x_msg_data,
1654 '_PVT'
1655 );
1656 WHEN OTHERS THEN
1657 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1658 (
1659 l_api_name,
1660 G_PKG_NAME,
1661 'OTHERS',
1662 x_msg_count,
1663 x_msg_data,
1664 '_PVT'
1665 );
1666 END lock_row;
1667 ---------------------------------------------------------------------------
1668 -- PROCEDURE update_row
1669 ---------------------------------------------------------------------------
1670 --------------------------------------
1671 -- update_row for:OKL_K_PARTY_ROLES --
1672 --------------------------------------
1673 PROCEDURE update_row(
1674 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1675 x_return_status OUT NOCOPY VARCHAR2,
1676 x_msg_count OUT NOCOPY NUMBER,
1677 x_msg_data OUT NOCOPY VARCHAR2,
1678 p_kpl_rec IN kpl_rec_type,
1679 x_kpl_rec OUT NOCOPY kpl_rec_type) IS
1680
1681 l_api_version CONSTANT NUMBER := 1;
1682 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
1683 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1684 l_kpl_rec kpl_rec_type := p_kpl_rec;
1685 l_def_kpl_rec kpl_rec_type;
1686 l_row_notfound BOOLEAN := TRUE;
1687 ----------------------------------
1688 -- FUNCTION populate_new_record --
1689 ----------------------------------
1690 FUNCTION populate_new_record (
1691 p_kpl_rec IN kpl_rec_type,
1692 x_kpl_rec OUT NOCOPY kpl_rec_type
1693 ) RETURN VARCHAR2 IS
1694 l_kpl_rec kpl_rec_type;
1695 l_row_notfound BOOLEAN := TRUE;
1696 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1697 BEGIN
1698 x_kpl_rec := p_kpl_rec;
1699 -- Get current database values
1700 l_kpl_rec := get_rec(p_kpl_rec, l_return_status);
1701 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
1702 IF (x_kpl_rec.id = OKL_API.G_MISS_NUM)
1703 THEN
1704 x_kpl_rec.id := l_kpl_rec.id;
1705 END IF;
1706 IF (x_kpl_rec.object_version_number = OKL_API.G_MISS_NUM)
1707 THEN
1708 x_kpl_rec.object_version_number := l_kpl_rec.object_version_number;
1709 END IF;
1710 IF (x_kpl_rec.attribute_category = OKL_API.G_MISS_CHAR)
1711 THEN
1712 x_kpl_rec.attribute_category := l_kpl_rec.attribute_category;
1713 END IF;
1714 IF (x_kpl_rec.attribute1 = OKL_API.G_MISS_CHAR)
1715 THEN
1716 x_kpl_rec.attribute1 := l_kpl_rec.attribute1;
1717 END IF;
1718 IF (x_kpl_rec.attribute2 = OKL_API.G_MISS_CHAR)
1719 THEN
1720 x_kpl_rec.attribute2 := l_kpl_rec.attribute2;
1721 END IF;
1722 IF (x_kpl_rec.attribute3 = OKL_API.G_MISS_CHAR)
1723 THEN
1724 x_kpl_rec.attribute3 := l_kpl_rec.attribute3;
1725 END IF;
1726 IF (x_kpl_rec.attribute4 = OKL_API.G_MISS_CHAR)
1727 THEN
1728 x_kpl_rec.attribute4 := l_kpl_rec.attribute4;
1729 END IF;
1730 IF (x_kpl_rec.attribute5 = OKL_API.G_MISS_CHAR)
1731 THEN
1732 x_kpl_rec.attribute5 := l_kpl_rec.attribute5;
1733 END IF;
1734 IF (x_kpl_rec.attribute6 = OKL_API.G_MISS_CHAR)
1735 THEN
1736 x_kpl_rec.attribute6 := l_kpl_rec.attribute6;
1737 END IF;
1738 IF (x_kpl_rec.attribute7 = OKL_API.G_MISS_CHAR)
1739 THEN
1740 x_kpl_rec.attribute7 := l_kpl_rec.attribute7;
1741 END IF;
1742 IF (x_kpl_rec.attribute8 = OKL_API.G_MISS_CHAR)
1743 THEN
1744 x_kpl_rec.attribute8 := l_kpl_rec.attribute8;
1745 END IF;
1746 IF (x_kpl_rec.attribute9 = OKL_API.G_MISS_CHAR)
1747 THEN
1748 x_kpl_rec.attribute9 := l_kpl_rec.attribute9;
1749 END IF;
1750 IF (x_kpl_rec.attribute10 = OKL_API.G_MISS_CHAR)
1751 THEN
1752 x_kpl_rec.attribute10 := l_kpl_rec.attribute10;
1753 END IF;
1754 IF (x_kpl_rec.attribute11 = OKL_API.G_MISS_CHAR)
1755 THEN
1756 x_kpl_rec.attribute11 := l_kpl_rec.attribute11;
1757 END IF;
1758 IF (x_kpl_rec.attribute12 = OKL_API.G_MISS_CHAR)
1759 THEN
1760 x_kpl_rec.attribute12 := l_kpl_rec.attribute12;
1761 END IF;
1762 IF (x_kpl_rec.attribute13 = OKL_API.G_MISS_CHAR)
1763 THEN
1764 x_kpl_rec.attribute13 := l_kpl_rec.attribute13;
1765 END IF;
1766 IF (x_kpl_rec.attribute14 = OKL_API.G_MISS_CHAR)
1767 THEN
1768 x_kpl_rec.attribute14 := l_kpl_rec.attribute14;
1769 END IF;
1770 IF (x_kpl_rec.attribute15 = OKL_API.G_MISS_CHAR)
1771 THEN
1772 x_kpl_rec.attribute15 := l_kpl_rec.attribute15;
1773 END IF;
1774 IF (x_kpl_rec.created_by = OKL_API.G_MISS_NUM)
1775 THEN
1776 x_kpl_rec.created_by := l_kpl_rec.created_by;
1777 END IF;
1778 IF (x_kpl_rec.creation_date = OKL_API.G_MISS_DATE)
1779 THEN
1780 x_kpl_rec.creation_date := l_kpl_rec.creation_date;
1781 END IF;
1782 IF (x_kpl_rec.last_updated_by = OKL_API.G_MISS_NUM)
1783 THEN
1784 x_kpl_rec.last_updated_by := l_kpl_rec.last_updated_by;
1785 END IF;
1786 IF (x_kpl_rec.last_update_date = OKL_API.G_MISS_DATE)
1787 THEN
1788 x_kpl_rec.last_update_date := l_kpl_rec.last_update_date;
1789 END IF;
1790 IF (x_kpl_rec.last_update_login = OKL_API.G_MISS_NUM)
1791 THEN
1792 x_kpl_rec.last_update_login := l_kpl_rec.last_update_login;
1793 END IF;
1794 END IF;
1795 RETURN(l_return_status);
1796 END populate_new_record;
1797 ------------------------------------------
1798 -- Set_Attributes for:OKL_K_PARTY_ROLES --
1799 ------------------------------------------
1800 FUNCTION Set_Attributes (
1801 p_kpl_rec IN kpl_rec_type,
1802 x_kpl_rec OUT NOCOPY kpl_rec_type
1803 ) RETURN VARCHAR2 IS
1804 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1805 BEGIN
1806 x_kpl_rec := p_kpl_rec;
1807 x_kpl_rec.OBJECT_VERSION_NUMBER := p_kpl_rec.OBJECT_VERSION_NUMBER + 1;
1808 RETURN(l_return_status);
1809 END Set_Attributes;
1810 BEGIN
1811 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1812 p_init_msg_list,
1813 '_PVT',
1814 x_return_status);
1815 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1816 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1817 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1818 RAISE OKL_API.G_EXCEPTION_ERROR;
1819 END IF;
1820 --- Setting item attributes
1821 l_return_status := Set_Attributes(
1822 p_kpl_rec, -- IN
1823 l_kpl_rec); -- OUT
1824 --- If any errors happen abort API
1825 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1826 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1827 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1828 RAISE OKL_API.G_EXCEPTION_ERROR;
1829 END IF;
1830 l_return_status := populate_new_record(l_kpl_rec, l_def_kpl_rec);
1831 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1832 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1833 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1834 RAISE OKL_API.G_EXCEPTION_ERROR;
1835 END IF;
1836 UPDATE OKL_K_PARTY_ROLES
1837 SET OBJECT_VERSION_NUMBER = l_def_kpl_rec.object_version_number,
1838 ATTRIBUTE_CATEGORY = l_def_kpl_rec.attribute_category,
1839 ATTRIBUTE1 = l_def_kpl_rec.attribute1,
1840 ATTRIBUTE2 = l_def_kpl_rec.attribute2,
1841 ATTRIBUTE3 = l_def_kpl_rec.attribute3,
1842 ATTRIBUTE4 = l_def_kpl_rec.attribute4,
1843 ATTRIBUTE5 = l_def_kpl_rec.attribute5,
1844 ATTRIBUTE6 = l_def_kpl_rec.attribute6,
1845 ATTRIBUTE7 = l_def_kpl_rec.attribute7,
1846 ATTRIBUTE8 = l_def_kpl_rec.attribute8,
1847 ATTRIBUTE9 = l_def_kpl_rec.attribute9,
1848 ATTRIBUTE10 = l_def_kpl_rec.attribute10,
1849 ATTRIBUTE11 = l_def_kpl_rec.attribute11,
1850 ATTRIBUTE12 = l_def_kpl_rec.attribute12,
1851 ATTRIBUTE13 = l_def_kpl_rec.attribute13,
1852 ATTRIBUTE14 = l_def_kpl_rec.attribute14,
1853 ATTRIBUTE15 = l_def_kpl_rec.attribute15,
1854 CREATED_BY = l_def_kpl_rec.created_by,
1855 CREATION_DATE = l_def_kpl_rec.creation_date,
1856 LAST_UPDATED_BY = l_def_kpl_rec.last_updated_by,
1857 LAST_UPDATE_DATE = l_def_kpl_rec.last_update_date,
1858 LAST_UPDATE_LOGIN = l_def_kpl_rec.last_update_login
1859 WHERE ID = l_def_kpl_rec.id;
1860
1861 x_kpl_rec := l_kpl_rec;
1862 x_return_status := l_return_status;
1863 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1864 EXCEPTION
1865 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1866 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1867 (
1868 l_api_name,
1869 G_PKG_NAME,
1870 'OKL_API.G_RET_STS_ERROR',
1871 x_msg_count,
1872 x_msg_data,
1873 '_PVT'
1874 );
1875 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1876 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1877 (
1878 l_api_name,
1879 G_PKG_NAME,
1880 'OKL_API.G_RET_STS_UNEXP_ERROR',
1881 x_msg_count,
1882 x_msg_data,
1883 '_PVT'
1884 );
1885 WHEN OTHERS THEN
1886 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1887 (
1888 l_api_name,
1889 G_PKG_NAME,
1890 'OTHERS',
1891 x_msg_count,
1892 x_msg_data,
1893 '_PVT'
1894 );
1895 END update_row;
1896 ----------------------------------------
1897 -- update_row for:OKL_K_PARTY_ROLES_V --
1898 ----------------------------------------
1899 PROCEDURE update_row(
1900 p_api_version IN NUMBER,
1901 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1902 x_return_status OUT NOCOPY VARCHAR2,
1903 x_msg_count OUT NOCOPY NUMBER,
1904 x_msg_data OUT NOCOPY VARCHAR2,
1905 p_kplv_rec IN kplv_rec_type,
1906 x_kplv_rec OUT NOCOPY kplv_rec_type) IS
1907
1908 l_api_version CONSTANT NUMBER := 1;
1909 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
1910 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1911 l_kplv_rec kplv_rec_type := p_kplv_rec;
1912 l_def_kplv_rec kplv_rec_type;
1913 l_db_kplv_rec kplv_rec_type;
1914 l_kpl_rec kpl_rec_type;
1915 lx_kpl_rec kpl_rec_type;
1916 -------------------------------
1917 -- FUNCTION fill_who_columns --
1918 -------------------------------
1919 FUNCTION fill_who_columns (
1920 p_kplv_rec IN kplv_rec_type
1921 ) RETURN kplv_rec_type IS
1922 l_kplv_rec kplv_rec_type := p_kplv_rec;
1923 BEGIN
1924 l_kplv_rec.LAST_UPDATE_DATE := SYSDATE;
1925 l_kplv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1926 l_kplv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1927 RETURN(l_kplv_rec);
1928 END fill_who_columns;
1929 ----------------------------------
1930 -- FUNCTION populate_new_record --
1931 ----------------------------------
1932 FUNCTION populate_new_record (
1933 p_kplv_rec IN kplv_rec_type,
1934 x_kplv_rec OUT NOCOPY kplv_rec_type
1935 ) RETURN VARCHAR2 IS
1936 l_row_notfound BOOLEAN := TRUE;
1937 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1938 BEGIN
1939 x_kplv_rec := p_kplv_rec;
1940 -- Get current database values
1941 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
1942 -- so it may be verified through LOCK_ROW.
1943 l_db_kplv_rec := get_rec(p_kplv_rec, l_return_status);
1944 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
1945 IF (x_kplv_rec.id = OKL_API.G_MISS_NUM)
1946 THEN
1947 x_kplv_rec.id := l_db_kplv_rec.id;
1948 END IF;
1949 IF (x_kplv_rec.object_version_number = OKL_API.G_MISS_NUM)
1950 THEN
1951 x_kplv_rec.object_version_number := l_db_kplv_rec.object_version_number;
1952 END IF;
1953 IF (x_kplv_rec.attribute_category = OKL_API.G_MISS_CHAR)
1954 THEN
1955 x_kplv_rec.attribute_category := l_db_kplv_rec.attribute_category;
1956 END IF;
1957 IF (x_kplv_rec.attribute1 = OKL_API.G_MISS_CHAR)
1958 THEN
1959 x_kplv_rec.attribute1 := l_db_kplv_rec.attribute1;
1960 END IF;
1961 IF (x_kplv_rec.attribute2 = OKL_API.G_MISS_CHAR)
1962 THEN
1963 x_kplv_rec.attribute2 := l_db_kplv_rec.attribute2;
1964 END IF;
1965 IF (x_kplv_rec.attribute3 = OKL_API.G_MISS_CHAR)
1966 THEN
1967 x_kplv_rec.attribute3 := l_db_kplv_rec.attribute3;
1968 END IF;
1969 IF (x_kplv_rec.attribute4 = OKL_API.G_MISS_CHAR)
1970 THEN
1971 x_kplv_rec.attribute4 := l_db_kplv_rec.attribute4;
1972 END IF;
1973 IF (x_kplv_rec.attribute5 = OKL_API.G_MISS_CHAR)
1974 THEN
1975 x_kplv_rec.attribute5 := l_db_kplv_rec.attribute5;
1976 END IF;
1977 IF (x_kplv_rec.attribute6 = OKL_API.G_MISS_CHAR)
1978 THEN
1979 x_kplv_rec.attribute6 := l_db_kplv_rec.attribute6;
1980 END IF;
1981 IF (x_kplv_rec.attribute7 = OKL_API.G_MISS_CHAR)
1982 THEN
1983 x_kplv_rec.attribute7 := l_db_kplv_rec.attribute7;
1984 END IF;
1985 IF (x_kplv_rec.attribute8 = OKL_API.G_MISS_CHAR)
1986 THEN
1987 x_kplv_rec.attribute8 := l_db_kplv_rec.attribute8;
1988 END IF;
1989 IF (x_kplv_rec.attribute9 = OKL_API.G_MISS_CHAR)
1990 THEN
1991 x_kplv_rec.attribute9 := l_db_kplv_rec.attribute9;
1992 END IF;
1993 IF (x_kplv_rec.attribute10 = OKL_API.G_MISS_CHAR)
1994 THEN
1995 x_kplv_rec.attribute10 := l_db_kplv_rec.attribute10;
1996 END IF;
1997 IF (x_kplv_rec.attribute11 = OKL_API.G_MISS_CHAR)
1998 THEN
1999 x_kplv_rec.attribute11 := l_db_kplv_rec.attribute11;
2000 END IF;
2001 IF (x_kplv_rec.attribute12 = OKL_API.G_MISS_CHAR)
2002 THEN
2003 x_kplv_rec.attribute12 := l_db_kplv_rec.attribute12;
2004 END IF;
2005 IF (x_kplv_rec.attribute13 = OKL_API.G_MISS_CHAR)
2006 THEN
2007 x_kplv_rec.attribute13 := l_db_kplv_rec.attribute13;
2008 END IF;
2009 IF (x_kplv_rec.attribute14 = OKL_API.G_MISS_CHAR)
2010 THEN
2011 x_kplv_rec.attribute14 := l_db_kplv_rec.attribute14;
2012 END IF;
2013 IF (x_kplv_rec.attribute15 = OKL_API.G_MISS_CHAR)
2014 THEN
2015 x_kplv_rec.attribute15 := l_db_kplv_rec.attribute15;
2016 END IF;
2017 IF (x_kplv_rec.created_by = OKL_API.G_MISS_NUM)
2018 THEN
2019 x_kplv_rec.created_by := l_db_kplv_rec.created_by;
2020 END IF;
2021 IF (x_kplv_rec.creation_date = OKL_API.G_MISS_DATE)
2022 THEN
2023 x_kplv_rec.creation_date := l_db_kplv_rec.creation_date;
2024 END IF;
2025 IF (x_kplv_rec.last_updated_by = OKL_API.G_MISS_NUM)
2026 THEN
2027 x_kplv_rec.last_updated_by := l_db_kplv_rec.last_updated_by;
2028 END IF;
2029 IF (x_kplv_rec.last_update_date = OKL_API.G_MISS_DATE)
2030 THEN
2031 x_kplv_rec.last_update_date := l_db_kplv_rec.last_update_date;
2032 END IF;
2033 IF (x_kplv_rec.last_update_login = OKL_API.G_MISS_NUM)
2034 THEN
2035 x_kplv_rec.last_update_login := l_db_kplv_rec.last_update_login;
2036 END IF;
2037 END IF;
2038 RETURN(l_return_status);
2039 END populate_new_record;
2040 --------------------------------------------
2041 -- Set_Attributes for:OKL_K_PARTY_ROLES_V --
2042 --------------------------------------------
2043 FUNCTION Set_Attributes (
2044 p_kplv_rec IN kplv_rec_type,
2045 x_kplv_rec OUT NOCOPY kplv_rec_type
2046 ) RETURN VARCHAR2 IS
2047 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2048 BEGIN
2049 x_kplv_rec := p_kplv_rec;
2050 RETURN(l_return_status);
2051 END Set_Attributes;
2052 BEGIN
2053 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2054 G_PKG_NAME,
2055 p_init_msg_list,
2056 l_api_version,
2057 p_api_version,
2058 '_PVT',
2059 x_return_status);
2060 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2061 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2062 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2063 RAISE OKL_API.G_EXCEPTION_ERROR;
2064 END IF;
2065 --- Setting item attributes
2066 l_return_status := Set_Attributes(
2067 p_kplv_rec, -- IN
2068 x_kplv_rec); -- OUT
2069 --- If any errors happen abort API
2070 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2071 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2072 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2073 RAISE OKL_API.G_EXCEPTION_ERROR;
2074 END IF;
2075 l_return_status := populate_new_record(l_kplv_rec, l_def_kplv_rec);
2076 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2077 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2078 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2079 RAISE OKL_API.G_EXCEPTION_ERROR;
2080 END IF;
2081 l_def_kplv_rec := fill_who_columns(l_def_kplv_rec);
2082 --- Validate all non-missing attributes (Item Level Validation)
2083 l_return_status := Validate_Attributes(l_def_kplv_rec);
2084 --- If any errors happen abort API
2085 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2086 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2087 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2088 RAISE OKL_API.G_EXCEPTION_ERROR;
2089 END IF;
2090 l_return_status := Validate_Record(l_def_kplv_rec, l_db_kplv_rec);
2091 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2092 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2093 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2094 RAISE OKL_API.G_EXCEPTION_ERROR;
2095 END IF;
2096
2097 /*
2098 -- Lock the Record
2099 lock_row(
2100 p_api_version => p_api_version,
2101 p_init_msg_list => p_init_msg_list,
2102 x_return_status => l_return_status,
2103 x_msg_count => x_msg_count,
2104 x_msg_data => x_msg_data,
2105 p_kplv_rec => p_kplv_rec);
2106 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2107 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2108 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2109 RAISE OKL_API.G_EXCEPTION_ERROR;
2110 END IF;
2111 */
2112
2113 -----------------------------------------
2114 -- Move VIEW record to "Child" records --
2115 -----------------------------------------
2116 migrate(l_def_kplv_rec, l_kpl_rec);
2117 -----------------------------------------------
2118 -- Call the UPDATE_ROW for each child record --
2119 -----------------------------------------------
2120 update_row(
2121 p_init_msg_list,
2122 l_return_status,
2123 x_msg_count,
2124 x_msg_data,
2125 l_kpl_rec,
2126 lx_kpl_rec
2127 );
2128 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2129 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2130 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2131 RAISE OKL_API.G_EXCEPTION_ERROR;
2132 END IF;
2133 migrate(lx_kpl_rec, l_def_kplv_rec);
2134 x_kplv_rec := l_def_kplv_rec;
2135 x_return_status := l_return_status;
2136 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2137 EXCEPTION
2138 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2139 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2140 (
2141 l_api_name,
2142 G_PKG_NAME,
2143 'OKL_API.G_RET_STS_ERROR',
2144 x_msg_count,
2145 x_msg_data,
2146 '_PVT'
2147 );
2148 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2149 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2150 (
2151 l_api_name,
2152 G_PKG_NAME,
2153 'OKL_API.G_RET_STS_UNEXP_ERROR',
2154 x_msg_count,
2155 x_msg_data,
2156 '_PVT'
2157 );
2158 WHEN OTHERS THEN
2159 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2160 (
2161 l_api_name,
2162 G_PKG_NAME,
2163 'OTHERS',
2164 x_msg_count,
2165 x_msg_data,
2166 '_PVT'
2167 );
2168 END update_row;
2169 ----------------------------------------
2170 -- PL/SQL TBL update_row for:kplv_tbl --
2171 ----------------------------------------
2172 PROCEDURE update_row(
2173 p_api_version IN NUMBER,
2174 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2175 x_return_status OUT NOCOPY VARCHAR2,
2176 x_msg_count OUT NOCOPY NUMBER,
2177 x_msg_data OUT NOCOPY VARCHAR2,
2178 p_kplv_tbl IN kplv_tbl_type,
2179 x_kplv_tbl OUT NOCOPY kplv_tbl_type,
2180 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2181
2182 l_api_version CONSTANT NUMBER := 1;
2183 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
2184 i NUMBER := 0;
2185 BEGIN
2186 OKL_API.init_msg_list(p_init_msg_list);
2187 -- Make sure PL/SQL table has records in it before passing
2188 IF (p_kplv_tbl.COUNT > 0) THEN
2189 i := p_kplv_tbl.FIRST;
2190 LOOP
2191 DECLARE
2192 l_error_rec OKL_API.ERROR_REC_TYPE;
2193 BEGIN
2194 l_error_rec.api_name := l_api_name;
2195 l_error_rec.api_package := G_PKG_NAME;
2196 l_error_rec.idx := i;
2197 update_row (
2198 p_api_version => p_api_version,
2199 p_init_msg_list => OKL_API.G_FALSE,
2200 x_return_status => l_error_rec.error_type,
2201 x_msg_count => l_error_rec.msg_count,
2202 x_msg_data => l_error_rec.msg_data,
2203 p_kplv_rec => p_kplv_tbl(i),
2204 x_kplv_rec => x_kplv_tbl(i));
2205 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2206 l_error_rec.sqlcode := SQLCODE;
2207 load_error_tbl(l_error_rec, px_error_tbl);
2208 ELSE
2209 x_msg_count := l_error_rec.msg_count;
2210 x_msg_data := l_error_rec.msg_data;
2211 END IF;
2212 EXCEPTION
2213 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2214 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2215 l_error_rec.sqlcode := SQLCODE;
2216 load_error_tbl(l_error_rec, px_error_tbl);
2217 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2218 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2219 l_error_rec.sqlcode := SQLCODE;
2220 load_error_tbl(l_error_rec, px_error_tbl);
2221 WHEN OTHERS THEN
2222 l_error_rec.error_type := 'OTHERS';
2223 l_error_rec.sqlcode := SQLCODE;
2224 load_error_tbl(l_error_rec, px_error_tbl);
2225 END;
2226 EXIT WHEN (i = p_kplv_tbl.LAST);
2227 i := p_kplv_tbl.NEXT(i);
2228 END LOOP;
2229 END IF;
2230 -- Loop through the error_tbl to find the error with the highest severity
2231 -- and return it.
2232 x_return_status := find_highest_exception(px_error_tbl);
2233 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2234 EXCEPTION
2235 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2236 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2237 (
2238 l_api_name,
2239 G_PKG_NAME,
2240 'OKL_API.G_RET_STS_ERROR',
2241 x_msg_count,
2242 x_msg_data,
2243 '_PVT'
2244 );
2245 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2246 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2247 (
2248 l_api_name,
2249 G_PKG_NAME,
2250 'OKL_API.G_RET_STS_UNEXP_ERROR',
2251 x_msg_count,
2252 x_msg_data,
2253 '_PVT'
2254 );
2255 WHEN OTHERS THEN
2256 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2257 (
2258 l_api_name,
2259 G_PKG_NAME,
2260 'OTHERS',
2261 x_msg_count,
2262 x_msg_data,
2263 '_PVT'
2264 );
2265 END update_row;
2266
2267 ----------------------------------------
2268 -- PL/SQL TBL update_row for:KPLV_TBL --
2269 ----------------------------------------
2270 PROCEDURE update_row(
2271 p_api_version IN NUMBER,
2272 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2273 x_return_status OUT NOCOPY VARCHAR2,
2274 x_msg_count OUT NOCOPY NUMBER,
2275 x_msg_data OUT NOCOPY VARCHAR2,
2276 p_kplv_tbl IN kplv_tbl_type,
2277 x_kplv_tbl OUT NOCOPY kplv_tbl_type) IS
2278
2279 l_api_version CONSTANT NUMBER := 1;
2280 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2281 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2282 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2283 BEGIN
2284 OKL_API.init_msg_list(p_init_msg_list);
2285 -- Make sure PL/SQL table has records in it before passing
2286 IF (p_kplv_tbl.COUNT > 0) THEN
2287 update_row (
2288 p_api_version => p_api_version,
2289 p_init_msg_list => OKL_API.G_FALSE,
2290 x_return_status => x_return_status,
2291 x_msg_count => x_msg_count,
2292 x_msg_data => x_msg_data,
2293 p_kplv_tbl => p_kplv_tbl,
2294 x_kplv_tbl => x_kplv_tbl,
2295 px_error_tbl => l_error_tbl);
2296 END IF;
2297 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2298 EXCEPTION
2299 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2300 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2301 (
2302 l_api_name,
2303 G_PKG_NAME,
2304 'OKL_API.G_RET_STS_ERROR',
2305 x_msg_count,
2306 x_msg_data,
2307 '_PVT'
2308 );
2309 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2310 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2311 (
2312 l_api_name,
2313 G_PKG_NAME,
2314 'OKL_API.G_RET_STS_UNEXP_ERROR',
2315 x_msg_count,
2316 x_msg_data,
2317 '_PVT'
2318 );
2319 WHEN OTHERS THEN
2320 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2321 (
2322 l_api_name,
2323 G_PKG_NAME,
2324 'OTHERS',
2325 x_msg_count,
2326 x_msg_data,
2327 '_PVT'
2328 );
2329 END update_row;
2330
2331 ---------------------------------------------------------------------------
2332 -- PROCEDURE delete_row
2333 ---------------------------------------------------------------------------
2334 --------------------------------------
2335 -- delete_row for:OKL_K_PARTY_ROLES --
2336 --------------------------------------
2337 PROCEDURE delete_row(
2338 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2339 x_return_status OUT NOCOPY VARCHAR2,
2340 x_msg_count OUT NOCOPY NUMBER,
2341 x_msg_data OUT NOCOPY VARCHAR2,
2342 p_kpl_rec IN kpl_rec_type) IS
2343
2344 l_api_version CONSTANT NUMBER := 1;
2345 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
2346 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2347 l_kpl_rec kpl_rec_type := p_kpl_rec;
2348 l_row_notfound BOOLEAN := TRUE;
2349 BEGIN
2350 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2351 p_init_msg_list,
2352 '_PVT',
2353 x_return_status);
2354 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2355 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2356 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2357 RAISE OKL_API.G_EXCEPTION_ERROR;
2358 END IF;
2359
2360 DELETE FROM OKL_K_PARTY_ROLES
2361 WHERE ID = p_kpl_rec.id;
2362
2363 x_return_status := l_return_status;
2364 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2365 EXCEPTION
2366 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2367 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2368 (
2369 l_api_name,
2370 G_PKG_NAME,
2371 'OKL_API.G_RET_STS_ERROR',
2372 x_msg_count,
2373 x_msg_data,
2374 '_PVT'
2375 );
2376 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2377 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2378 (
2379 l_api_name,
2380 G_PKG_NAME,
2381 'OKL_API.G_RET_STS_UNEXP_ERROR',
2382 x_msg_count,
2383 x_msg_data,
2384 '_PVT'
2385 );
2386 WHEN OTHERS THEN
2387 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2388 (
2389 l_api_name,
2390 G_PKG_NAME,
2391 'OTHERS',
2392 x_msg_count,
2393 x_msg_data,
2394 '_PVT'
2395 );
2396 END delete_row;
2397 ----------------------------------------
2398 -- delete_row for:OKL_K_PARTY_ROLES_V --
2399 ----------------------------------------
2400 PROCEDURE delete_row(
2401 p_api_version IN NUMBER,
2402 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2403 x_return_status OUT NOCOPY VARCHAR2,
2404 x_msg_count OUT NOCOPY NUMBER,
2405 x_msg_data OUT NOCOPY VARCHAR2,
2406 p_kplv_rec IN kplv_rec_type) IS
2407
2408 l_api_version CONSTANT NUMBER := 1;
2409 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
2410 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2411 l_kplv_rec kplv_rec_type := p_kplv_rec;
2412 l_kpl_rec kpl_rec_type;
2413 BEGIN
2414 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2415 G_PKG_NAME,
2416 p_init_msg_list,
2417 l_api_version,
2418 p_api_version,
2419 '_PVT',
2420 x_return_status);
2421 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2422 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2423 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2424 RAISE OKL_API.G_EXCEPTION_ERROR;
2425 END IF;
2426 -----------------------------------------
2427 -- Move VIEW record to "Child" records --
2428 -----------------------------------------
2429 migrate(l_kplv_rec, l_kpl_rec);
2430 -----------------------------------------------
2431 -- Call the DELETE_ROW for each child record --
2432 -----------------------------------------------
2433 delete_row(
2434 p_init_msg_list,
2435 l_return_status,
2436 x_msg_count,
2437 x_msg_data,
2438 l_kpl_rec
2439 );
2440 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2441 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2442 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2443 RAISE OKL_API.G_EXCEPTION_ERROR;
2444 END IF;
2445 x_return_status := l_return_status;
2446 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2447 EXCEPTION
2448 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2449 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2450 (
2451 l_api_name,
2452 G_PKG_NAME,
2453 'OKL_API.G_RET_STS_ERROR',
2454 x_msg_count,
2455 x_msg_data,
2456 '_PVT'
2457 );
2458 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2459 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2460 (
2461 l_api_name,
2462 G_PKG_NAME,
2463 'OKL_API.G_RET_STS_UNEXP_ERROR',
2464 x_msg_count,
2465 x_msg_data,
2466 '_PVT'
2467 );
2468 WHEN OTHERS THEN
2469 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2470 (
2471 l_api_name,
2472 G_PKG_NAME,
2473 'OTHERS',
2474 x_msg_count,
2475 x_msg_data,
2476 '_PVT'
2477 );
2478 END delete_row;
2479 ---------------------------------------------------
2480 -- PL/SQL TBL delete_row for:OKL_K_PARTY_ROLES_V --
2481 ---------------------------------------------------
2482 PROCEDURE delete_row(
2483 p_api_version IN NUMBER,
2484 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2485 x_return_status OUT NOCOPY VARCHAR2,
2486 x_msg_count OUT NOCOPY NUMBER,
2487 x_msg_data OUT NOCOPY VARCHAR2,
2488 p_kplv_tbl IN kplv_tbl_type,
2489 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2490
2491 l_api_version CONSTANT NUMBER := 1;
2492 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
2493 i NUMBER := 0;
2494 BEGIN
2495 OKL_API.init_msg_list(p_init_msg_list);
2496 -- Make sure PL/SQL table has records in it before passing
2497 IF (p_kplv_tbl.COUNT > 0) THEN
2498 i := p_kplv_tbl.FIRST;
2499 LOOP
2500 DECLARE
2501 l_error_rec OKL_API.ERROR_REC_TYPE;
2502 BEGIN
2503 l_error_rec.api_name := l_api_name;
2504 l_error_rec.api_package := G_PKG_NAME;
2505 l_error_rec.idx := i;
2506 delete_row (
2507 p_api_version => p_api_version,
2508 p_init_msg_list => OKL_API.G_FALSE,
2509 x_return_status => l_error_rec.error_type,
2510 x_msg_count => l_error_rec.msg_count,
2511 x_msg_data => l_error_rec.msg_data,
2512 p_kplv_rec => p_kplv_tbl(i));
2513 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2514 l_error_rec.sqlcode := SQLCODE;
2515 load_error_tbl(l_error_rec, px_error_tbl);
2516 ELSE
2517 x_msg_count := l_error_rec.msg_count;
2518 x_msg_data := l_error_rec.msg_data;
2519 END IF;
2520 EXCEPTION
2521 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2522 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2523 l_error_rec.sqlcode := SQLCODE;
2524 load_error_tbl(l_error_rec, px_error_tbl);
2525 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2526 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2527 l_error_rec.sqlcode := SQLCODE;
2528 load_error_tbl(l_error_rec, px_error_tbl);
2529 WHEN OTHERS THEN
2530 l_error_rec.error_type := 'OTHERS';
2531 l_error_rec.sqlcode := SQLCODE;
2532 load_error_tbl(l_error_rec, px_error_tbl);
2533 END;
2534 EXIT WHEN (i = p_kplv_tbl.LAST);
2535 i := p_kplv_tbl.NEXT(i);
2536 END LOOP;
2537 END IF;
2538 -- Loop through the error_tbl to find the error with the highest severity
2539 -- and return it.
2540 x_return_status := find_highest_exception(px_error_tbl);
2541 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2542 EXCEPTION
2543 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2544 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2545 (
2546 l_api_name,
2547 G_PKG_NAME,
2548 'OKL_API.G_RET_STS_ERROR',
2549 x_msg_count,
2550 x_msg_data,
2551 '_PVT'
2552 );
2553 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2554 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2555 (
2556 l_api_name,
2557 G_PKG_NAME,
2558 'OKL_API.G_RET_STS_UNEXP_ERROR',
2559 x_msg_count,
2560 x_msg_data,
2561 '_PVT'
2562 );
2563 WHEN OTHERS THEN
2564 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2565 (
2566 l_api_name,
2567 G_PKG_NAME,
2568 'OTHERS',
2569 x_msg_count,
2570 x_msg_data,
2571 '_PVT'
2572 );
2573 END delete_row;
2574
2575 ---------------------------------------------------
2576 -- PL/SQL TBL delete_row for:OKL_K_PARTY_ROLES_V --
2577 ---------------------------------------------------
2578 PROCEDURE delete_row(
2579 p_api_version IN NUMBER,
2580 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2581 x_return_status OUT NOCOPY VARCHAR2,
2582 x_msg_count OUT NOCOPY NUMBER,
2583 x_msg_data OUT NOCOPY VARCHAR2,
2584 p_kplv_tbl IN kplv_tbl_type) IS
2585
2586 l_api_version CONSTANT NUMBER := 1;
2587 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2588 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2589 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2590 BEGIN
2591 OKL_API.init_msg_list(p_init_msg_list);
2592 -- Make sure PL/SQL table has records in it before passing
2593 IF (p_kplv_tbl.COUNT > 0) THEN
2594 delete_row (
2595 p_api_version => p_api_version,
2596 p_init_msg_list => OKL_API.G_FALSE,
2597 x_return_status => x_return_status,
2598 x_msg_count => x_msg_count,
2599 x_msg_data => x_msg_data,
2600 p_kplv_tbl => p_kplv_tbl,
2601 px_error_tbl => l_error_tbl);
2602 END IF;
2603 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2604 EXCEPTION
2605 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2606 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2607 (
2608 l_api_name,
2609 G_PKG_NAME,
2610 'OKL_API.G_RET_STS_ERROR',
2611 x_msg_count,
2612 x_msg_data,
2613 '_PVT'
2614 );
2615 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2616 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2617 (
2618 l_api_name,
2619 G_PKG_NAME,
2620 'OKL_API.G_RET_STS_UNEXP_ERROR',
2621 x_msg_count,
2622 x_msg_data,
2623 '_PVT'
2624 );
2625 WHEN OTHERS THEN
2626 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2627 (
2628 l_api_name,
2629 G_PKG_NAME,
2630 'OTHERS',
2631 x_msg_count,
2632 x_msg_data,
2633 '_PVT'
2634 );
2635 END delete_row;
2636
2637 ---------------------------------------------------------------------------
2638 -- PROCEDURE versioning
2639 ---------------------------------------------------------------------------
2640
2641 FUNCTION create_version(
2642 p_chr_id IN NUMBER,
2643 p_major_version IN NUMBER) RETURN VARCHAR2 IS
2644
2645 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
2646
2647 BEGIN
2648 INSERT INTO OKL_K_PARTY_ROLES_H
2649 (
2650 MAJOR_VERSION,
2651 ID,
2652 OBJECT_VERSION_NUMBER,
2653 ATTRIBUTE_CATEGORY,
2654 ATTRIBUTE1,
2655 ATTRIBUTE2,
2656 ATTRIBUTE3,
2657 ATTRIBUTE4,
2658 ATTRIBUTE5,
2659 ATTRIBUTE6,
2660 ATTRIBUTE7,
2661 ATTRIBUTE8,
2662 ATTRIBUTE9,
2663 ATTRIBUTE10,
2664 ATTRIBUTE11,
2665 ATTRIBUTE12,
2666 ATTRIBUTE13,
2667 ATTRIBUTE14,
2668 ATTRIBUTE15,
2669 CREATED_BY,
2670 CREATION_DATE,
2671 LAST_UPDATED_BY,
2672 LAST_UPDATE_DATE,
2673 LAST_UPDATE_LOGIN
2674 )
2675 SELECT
2676 p_major_version,
2677 ID,
2678 OBJECT_VERSION_NUMBER,
2679 ATTRIBUTE_CATEGORY,
2680 ATTRIBUTE1,
2681 ATTRIBUTE2,
2682 ATTRIBUTE3,
2683 ATTRIBUTE4,
2684 ATTRIBUTE5,
2685 ATTRIBUTE6,
2686 ATTRIBUTE7,
2687 ATTRIBUTE8,
2688 ATTRIBUTE9,
2689 ATTRIBUTE10,
2690 ATTRIBUTE11,
2691 ATTRIBUTE12,
2692 ATTRIBUTE13,
2693 ATTRIBUTE14,
2694 ATTRIBUTE15,
2695 CREATED_BY,
2696 CREATION_DATE,
2697 LAST_UPDATED_BY,
2698 LAST_UPDATE_DATE,
2699 LAST_UPDATE_LOGIN
2700 FROM OKL_K_PARTY_ROLES
2701 WHERE id in (select id
2702 from okc_k_party_roles_b
2703 where dnz_chr_id = p_chr_id);
2704
2705 RETURN l_return_status;
2706 EXCEPTION
2707 -- other appropriate handlers
2708 WHEN OTHERS THEN
2709 -- store SQL error message on message stack
2710 OKC_API.SET_MESSAGE(p_app_name => okc_version_pvt.G_APP_NAME,
2711 p_msg_name => okc_version_pvt.G_UNEXPECTED_ERROR,
2712 p_token1 => okc_version_pvt.G_SQLCODE_TOKEN,
2713 p_token1_value => sqlcode,
2714 p_token2 => okc_version_pvt.G_SQLERRM_TOKEN,
2715 p_token2_value => sqlerrm);
2716
2717 -- notify UNEXPECTED error
2718 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2719 return l_return_status;
2720 END create_version;
2721
2722 FUNCTION restore_version(
2723 p_chr_id IN NUMBER,
2724 p_major_version IN NUMBER) RETURN VARCHAR2 IS
2725
2726 l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
2727
2728 BEGIN
2729 INSERT INTO OKL_K_PARTY_ROLES
2730 (
2731 ID,
2732 OBJECT_VERSION_NUMBER,
2733 ATTRIBUTE_CATEGORY,
2734 ATTRIBUTE1,
2735 ATTRIBUTE2,
2736 ATTRIBUTE3,
2737 ATTRIBUTE4,
2738 ATTRIBUTE5,
2739 ATTRIBUTE6,
2740 ATTRIBUTE7,
2741 ATTRIBUTE8,
2742 ATTRIBUTE9,
2743 ATTRIBUTE10,
2744 ATTRIBUTE11,
2745 ATTRIBUTE12,
2746 ATTRIBUTE13,
2747 ATTRIBUTE14,
2748 ATTRIBUTE15,
2749 CREATED_BY,
2750 CREATION_DATE,
2751 LAST_UPDATED_BY,
2752 LAST_UPDATE_DATE,
2753 LAST_UPDATE_LOGIN
2754 )
2755 SELECT
2756 ID,
2757 OBJECT_VERSION_NUMBER,
2758 ATTRIBUTE_CATEGORY,
2759 ATTRIBUTE1,
2760 ATTRIBUTE2,
2761 ATTRIBUTE3,
2762 ATTRIBUTE4,
2763 ATTRIBUTE5,
2764 ATTRIBUTE6,
2765 ATTRIBUTE7,
2766 ATTRIBUTE8,
2767 ATTRIBUTE9,
2768 ATTRIBUTE10,
2769 ATTRIBUTE11,
2770 ATTRIBUTE12,
2771 ATTRIBUTE13,
2772 ATTRIBUTE14,
2773 ATTRIBUTE15,
2774 CREATED_BY,
2775 CREATION_DATE,
2776 LAST_UPDATED_BY,
2777 LAST_UPDATE_DATE,
2778 LAST_UPDATE_LOGIN
2779 FROM OKL_K_PARTY_ROLES_H
2780 WHERE id IN (select id
2781 from okc_k_party_roles_b cpl
2782 where dnz_chr_id = p_chr_id)
2783 AND major_version = p_major_version;
2784
2785
2786 RETURN l_return_status;
2787 EXCEPTION
2788 -- other appropriate handlers
2789 WHEN OTHERS THEN
2790 -- store SQL error message on message stack
2791 OKC_API.SET_MESSAGE(p_app_name => okc_version_pvt.G_APP_NAME,
2792 p_msg_name => okc_version_pvt.G_UNEXPECTED_ERROR,
2793 p_token1 => okc_version_pvt.G_SQLCODE_TOKEN,
2794 p_token1_value => sqlcode,
2795 p_token2 => okc_version_pvt.G_SQLERRM_TOKEN,
2796 p_token2_value => sqlerrm);
2797
2798 -- notify UNEXPECTED error
2799 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2800 return l_return_status;
2801 END restore_version;
2802
2803 END OKL_KPL_PVT;