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