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