[Home] [Help]
PACKAGE BODY: APPS.IEX_IEA_PVT
Source
1 PACKAGE BODY IEX_IEA_PVT AS
2 /* $Header: IEXSIEAB.pls 120.1 2004/03/17 18:01:31 jsanju ship $ */
3 ---------------------------------------------------------------------------
4 -- PROCEDURE load_error_tbl
5 ---------------------------------------------------------------------------
6 PG_DEBUG NUMBER(2) := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
7
8 PROCEDURE load_error_tbl (
9 px_error_rec IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
10 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) AS
11
12 j INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
13 last_msg_idx INTEGER := FND_MSG_PUB.COUNT_MSG;
14 l_msg_idx INTEGER := FND_MSG_PUB.G_NEXT;
15 BEGIN
16 -- FND_MSG_PUB has a small error in it. If we call FND_MSG_PUB.COUNT_AND_GET before
17 -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
18 -- message stack gets set to 1. This makes sense until we call FND_MSG_PUB.GET which
19 -- automatically increments the index by 1, (making it 2), however, when the GET function
20 -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
21 -- message 2. To circumvent this problem, check the amount of messages and compensate.
22 -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
23 -- will only update the index variable when 1 and only 1 message is on the stack.
24 IF (last_msg_idx = 1) THEN
25 l_msg_idx := FND_MSG_PUB.G_FIRST;
26 END IF;
27 LOOP
28 fnd_msg_pub.get(
29 p_msg_index => l_msg_idx,
30 p_encoded => fnd_api.g_false,
31 p_data => px_error_rec.msg_data,
32 p_msg_index_out => px_error_rec.msg_count);
33 px_error_tbl(j) := px_error_rec;
34 j := j + 1;
35 EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
36 END LOOP;
37 END load_error_tbl;
38 ---------------------------------------------------------------------------
39 -- FUNCTION find_highest_exception
40 ---------------------------------------------------------------------------
41 -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
42 -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
43 FUNCTION find_highest_exception(
44 p_error_tbl IN OKL_API.ERROR_TBL_TYPE
45 ) RETURN VARCHAR2 AS
46 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
47 i INTEGER := 1;
48 BEGIN
49 IF (p_error_tbl.COUNT > 0) THEN
50 i := p_error_tbl.FIRST;
51 LOOP
52 IF (p_error_tbl(i).error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
53 IF (l_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
54 l_return_status := p_error_tbl(i).error_type;
55 END IF;
56 END IF;
57 EXIT WHEN (i = p_error_tbl.LAST);
58 i := p_error_tbl.NEXT(i);
59 END LOOP;
60 END IF;
61 RETURN(l_return_status);
62 END find_highest_exception;
63 ---------------------------------------------------------------------------
64 -- FUNCTION get_seq_id
65 ---------------------------------------------------------------------------
66 FUNCTION get_seq_id RETURN NUMBER AS
67 BEGIN
68 RETURN(okc_p_util.raw_to_number(sys_guid()));
69 END get_seq_id;
70
71 ---------------------------------------------------------------------------
72 -- PROCEDURE qc
73 ---------------------------------------------------------------------------
74 PROCEDURE qc AS
75 BEGIN
76 null;
77 END qc;
78
79 ---------------------------------------------------------------------------
80 -- PROCEDURE change_version
81 ---------------------------------------------------------------------------
82 PROCEDURE change_version AS
83 BEGIN
84 null;
85 END change_version;
86
87 ---------------------------------------------------------------------------
88 -- PROCEDURE api_copy
89 ---------------------------------------------------------------------------
90 PROCEDURE api_copy AS
91 BEGIN
92 null;
93 END api_copy;
94
95 ---------------------------------------------------------------------------
96 -- PROCEDURE add_language
97 ---------------------------------------------------------------------------
98 PROCEDURE add_language AS
99 BEGIN
100 DELETE FROM IEX_EXT_AGNCY_TL T
101 WHERE NOT EXISTS (
102 SELECT NULL
103 FROM IEX_EXT_AGNCY_B B
104 WHERE B.EXTERNAL_AGENCY_ID =T.EXTERNAL_AGENCY_ID
105 );
106
107 UPDATE IEX_EXT_AGNCY_TL T SET(
108 DESCRIPTION) = (SELECT
109 B.DESCRIPTION
110 FROM IEX_EXT_AGNCY_TL B
111 WHERE B.EXTERNAL_AGENCY_ID = T.EXTERNAL_AGENCY_ID
112 AND B.LANGUAGE = T.SOURCE_LANG)
113 WHERE ( T.EXTERNAL_AGENCY_ID,
114 T.LANGUAGE)
115 IN (SELECT
116 SUBT.EXTERNAL_AGENCY_ID,
117 SUBT.LANGUAGE
118 FROM IEX_EXT_AGNCY_TL SUBB, IEX_EXT_AGNCY_TL SUBT
119 WHERE SUBB.EXTERNAL_AGENCY_ID = SUBT.EXTERNAL_AGENCY_ID
120 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
121 AND (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
122 OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
123 ));
124
125 INSERT INTO IEX_EXT_AGNCY_TL (
126 EXTERNAL_AGENCY_ID,
127 DESCRIPTION,
128 LANGUAGE,
129 SOURCE_LANG,
130 SFWT_FLAG,
131 CREATED_BY,
132 CREATION_DATE,
133 LAST_UPDATED_BY,
134 LAST_UPDATE_DATE,
135 LAST_UPDATE_LOGIN)
136 SELECT
137 B.EXTERNAL_AGENCY_ID,
138 B.DESCRIPTION,
139 L.LANGUAGE_CODE,
140 B.SOURCE_LANG,
141 B.SFWT_FLAG,
142 B.CREATED_BY,
143 B.CREATION_DATE,
144 B.LAST_UPDATED_BY,
145 B.LAST_UPDATE_DATE,
146 B.LAST_UPDATE_LOGIN
147 FROM IEX_EXT_AGNCY_TL B, FND_LANGUAGES L
148 WHERE L.INSTALLED_FLAG IN ('I', 'B')
149 AND B.LANGUAGE = USERENV('LANG')
150 AND NOT EXISTS (
151 SELECT NULL
152 FROM IEX_EXT_AGNCY_TL T
153 WHERE T.EXTERNAL_AGENCY_ID = B.EXTERNAL_AGENCY_ID
154 AND T.LANGUAGE = L.LANGUAGE_CODE
155 );
156 END add_language;
157
158 ---------------------------------------------------------------------------
159 -- FUNCTION get_rec for: IEX_EXT_AGNCY_V
160 ---------------------------------------------------------------------------
161 FUNCTION get_rec (
162 p_ieav_rec IN ieav_rec_type,
163 x_no_data_found OUT NOCOPY BOOLEAN
164 ) RETURN ieav_rec_type AS
165 CURSOR iex_ext_agncy_v_pk_csr (p_external_agency_id IN NUMBER) IS
166 SELECT
167 EXTERNAL_AGENCY_ID,
168 EXTERNAL_AGENCY_NAME,
169 VENDOR_ID,
170 VENDOR_SITE_ID,
171 RANK,
172 EFFECTIVE_START_DATE,
173 EFFECTIVE_END_DATE,
174 DESCRIPTION,
175 LANGUAGE,
176 SOURCE_LANG,
177 SFWT_FLAG,
178 OBJECT_VERSION_NUMBER,
179 ORG_ID,
180 ATTRIBUTE_CATEGORY,
181 ATTRIBUTE1,
182 ATTRIBUTE2,
183 ATTRIBUTE3,
184 ATTRIBUTE4,
185 ATTRIBUTE5,
186 ATTRIBUTE6,
187 ATTRIBUTE7,
188 ATTRIBUTE8,
189 ATTRIBUTE9,
190 ATTRIBUTE10,
191 ATTRIBUTE11,
192 ATTRIBUTE12,
193 ATTRIBUTE13,
194 ATTRIBUTE14,
195 ATTRIBUTE15,
196 CREATED_BY,
197 CREATION_DATE,
198 LAST_UPDATED_BY,
199 LAST_UPDATE_DATE,
200 LAST_UPDATE_LOGIN
201 FROM Iex_Ext_Agncy_V
202 WHERE iex_ext_agncy_v.external_agency_id = p_external_agency_id;
203 l_iex_ext_agncy_v_pk iex_ext_agncy_v_pk_csr%ROWTYPE;
204 l_ieav_rec ieav_rec_type;
205 BEGIN
206 x_no_data_found := TRUE;
207 -- Get current database values
208 OPEN iex_ext_agncy_v_pk_csr (p_ieav_rec.external_agency_id);
209 FETCH iex_ext_agncy_v_pk_csr INTO
210 l_ieav_rec.external_agency_id,
211 l_ieav_rec.external_agency_name,
212 l_ieav_rec.vendor_id,
213 l_ieav_rec.vendor_site_id,
214 l_ieav_rec.rank,
215 l_ieav_rec.effective_start_date,
216 l_ieav_rec.effective_end_date,
217 l_ieav_rec.description,
218 l_ieav_rec.language,
219 l_ieav_rec.source_lang,
220 l_ieav_rec.sfwt_flag,
221 l_ieav_rec.object_version_number,
222 l_ieav_rec.org_id,
223 l_ieav_rec.attribute_category,
224 l_ieav_rec.attribute1,
225 l_ieav_rec.attribute2,
226 l_ieav_rec.attribute3,
227 l_ieav_rec.attribute4,
228 l_ieav_rec.attribute5,
229 l_ieav_rec.attribute6,
230 l_ieav_rec.attribute7,
231 l_ieav_rec.attribute8,
232 l_ieav_rec.attribute9,
233 l_ieav_rec.attribute10,
234 l_ieav_rec.attribute11,
235 l_ieav_rec.attribute12,
236 l_ieav_rec.attribute13,
237 l_ieav_rec.attribute14,
238 l_ieav_rec.attribute15,
239 l_ieav_rec.created_by,
240 l_ieav_rec.creation_date,
241 l_ieav_rec.last_updated_by,
242 l_ieav_rec.last_update_date,
243 l_ieav_rec.last_update_login;
244 x_no_data_found := iex_ext_agncy_v_pk_csr%NOTFOUND;
245 CLOSE iex_ext_agncy_v_pk_csr;
246 RETURN(l_ieav_rec);
247 END get_rec;
248
249 ------------------------------------------------------------------
250 -- This version of get_rec sets error messages if no data found --
251 ------------------------------------------------------------------
252 FUNCTION get_rec (
253 p_ieav_rec IN ieav_rec_type,
254 x_return_status OUT NOCOPY VARCHAR2
255 ) RETURN ieav_rec_type AS
256 l_ieav_rec ieav_rec_type;
257 l_row_notfound BOOLEAN := TRUE;
258 BEGIN
259 x_return_status := OKC_API.G_RET_STS_SUCCESS;
260 l_ieav_rec := get_rec(p_ieav_rec, l_row_notfound);
261 IF (l_row_notfound) THEN
262 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'EXTERNAL_AGENCY_ID');
263 x_return_status := OKC_API.G_RET_STS_ERROR;
264 END IF;
265 RETURN(l_ieav_rec);
266 END get_rec;
267 -----------------------------------------------------------
268 -- So we don't have to pass an "l_row_notfound" variable --
269 -----------------------------------------------------------
270 FUNCTION get_rec (
271 p_ieav_rec IN ieav_rec_type
272 ) RETURN ieav_rec_type AS
273 l_row_not_found BOOLEAN := TRUE;
274 BEGIN
275 RETURN(get_rec(p_ieav_rec, l_row_not_found));
276 END get_rec;
277 ---------------------------------------------------------------------------
278 -- FUNCTION get_rec for: IEX_EXT_AGNCY_B
279 ---------------------------------------------------------------------------
280 FUNCTION get_rec (
281 p_iea_rec IN iea_rec_type,
282 x_no_data_found OUT NOCOPY BOOLEAN
283 ) RETURN iea_rec_type AS
284 CURSOR iex_ext_agncy_pk_csr (p_external_agency_id IN NUMBER) IS
285 SELECT
286 EXTERNAL_AGENCY_ID,
287 EXTERNAL_AGENCY_NAME,
288 VENDOR_ID,
289 VENDOR_SITE_ID,
290 RANK,
291 EFFECTIVE_START_DATE,
292 EFFECTIVE_END_DATE,
293 OBJECT_VERSION_NUMBER,
294 ORG_ID,
295 ATTRIBUTE_CATEGORY,
296 ATTRIBUTE1,
297 ATTRIBUTE2,
298 ATTRIBUTE3,
299 ATTRIBUTE4,
300 ATTRIBUTE5,
301 ATTRIBUTE6,
302 ATTRIBUTE7,
303 ATTRIBUTE8,
304 ATTRIBUTE9,
305 ATTRIBUTE10,
306 ATTRIBUTE11,
307 ATTRIBUTE12,
308 ATTRIBUTE13,
309 ATTRIBUTE14,
310 ATTRIBUTE15,
311 CREATED_BY,
312 CREATION_DATE,
313 LAST_UPDATED_BY,
314 LAST_UPDATE_DATE,
315 LAST_UPDATE_LOGIN
316 FROM Iex_Ext_Agncy_B
317 WHERE iex_ext_agncy_b.external_agency_id = p_external_agency_id;
318 l_iex_ext_agncy_pk iex_ext_agncy_pk_csr%ROWTYPE;
319 l_iea_rec iea_rec_type;
320 BEGIN
321 x_no_data_found := TRUE;
322 -- Get current database values
323 OPEN iex_ext_agncy_pk_csr (p_iea_rec.external_agency_id);
324 FETCH iex_ext_agncy_pk_csr INTO
325 l_iea_rec.external_agency_id,
326 l_iea_rec.external_agency_name,
327 l_iea_rec.vendor_id,
328 l_iea_rec.vendor_site_id,
329 l_iea_rec.rank,
330 l_iea_rec.effective_start_date,
331 l_iea_rec.effective_end_date,
332 l_iea_rec.object_version_number,
333 l_iea_rec.org_id,
334 l_iea_rec.attribute_category,
335 l_iea_rec.attribute1,
336 l_iea_rec.attribute2,
337 l_iea_rec.attribute3,
338 l_iea_rec.attribute4,
339 l_iea_rec.attribute5,
340 l_iea_rec.attribute6,
341 l_iea_rec.attribute7,
342 l_iea_rec.attribute8,
343 l_iea_rec.attribute9,
344 l_iea_rec.attribute10,
345 l_iea_rec.attribute11,
346 l_iea_rec.attribute12,
347 l_iea_rec.attribute13,
348 l_iea_rec.attribute14,
349 l_iea_rec.attribute15,
350 l_iea_rec.created_by,
351 l_iea_rec.creation_date,
352 l_iea_rec.last_updated_by,
353 l_iea_rec.last_update_date,
354 l_iea_rec.last_update_login;
355 x_no_data_found := iex_ext_agncy_pk_csr%NOTFOUND;
356 CLOSE iex_ext_agncy_pk_csr;
357 RETURN(l_iea_rec);
358 END get_rec;
359
360 ------------------------------------------------------------------
361 -- This version of get_rec sets error messages if no data found --
362 ------------------------------------------------------------------
363 FUNCTION get_rec (
364 p_iea_rec IN iea_rec_type,
365 x_return_status OUT NOCOPY VARCHAR2
366 ) RETURN iea_rec_type AS
367 l_iea_rec iea_rec_type;
368 l_row_notfound BOOLEAN := TRUE;
369 BEGIN
370 x_return_status := OKC_API.G_RET_STS_SUCCESS;
371 l_iea_rec := get_rec(p_iea_rec, l_row_notfound);
372 IF (l_row_notfound) THEN
373 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'EXTERNAL_AGENCY_ID');
374 x_return_status := OKC_API.G_RET_STS_ERROR;
375 END IF;
376 RETURN(l_iea_rec);
377 END get_rec;
378 -----------------------------------------------------------
379 -- So we don't have to pass an "l_row_notfound" variable --
380 -----------------------------------------------------------
381 FUNCTION get_rec (
382 p_iea_rec IN iea_rec_type
383 ) RETURN iea_rec_type AS
384 l_row_not_found BOOLEAN := TRUE;
385 BEGIN
386 RETURN(get_rec(p_iea_rec, l_row_not_found));
387 END get_rec;
388 ---------------------------------------------------------------------------
389 -- FUNCTION get_rec for: IEX_EXT_AGNCY_TL
390 ---------------------------------------------------------------------------
391 FUNCTION get_rec (
392 p_ieat_rec IN ieat_rec_type,
393 x_no_data_found OUT NOCOPY BOOLEAN
394 ) RETURN ieat_rec_type AS
395 CURSOR iex_ext_agncy_tl_pk_csr (p_external_agency_id IN NUMBER,
396 p_language IN VARCHAR2) IS
397 SELECT
398 EXTERNAL_AGENCY_ID,
399 DESCRIPTION,
400 LANGUAGE,
401 SOURCE_LANG,
402 SFWT_FLAG,
403 CREATED_BY,
404 CREATION_DATE,
405 LAST_UPDATED_BY,
406 LAST_UPDATE_DATE,
407 LAST_UPDATE_LOGIN
408 FROM Iex_Ext_Agncy_Tl
409 WHERE iex_ext_agncy_tl.external_agency_id = p_external_agency_id
410 AND iex_ext_agncy_tl.language = p_language;
411 l_iex_ext_agncy_tl_pk iex_ext_agncy_tl_pk_csr%ROWTYPE;
412 l_ieat_rec ieat_rec_type;
413 BEGIN
414 x_no_data_found := TRUE;
415 -- Get current database values
416 OPEN iex_ext_agncy_tl_pk_csr (p_ieat_rec.external_agency_id,
417 p_ieat_rec.language);
418 FETCH iex_ext_agncy_tl_pk_csr INTO
419 l_ieat_rec.external_agency_id,
420 l_ieat_rec.description,
421 l_ieat_rec.language,
422 l_ieat_rec.source_lang,
423 l_ieat_rec.sfwt_flag,
424 l_ieat_rec.created_by,
425 l_ieat_rec.creation_date,
426 l_ieat_rec.last_updated_by,
427 l_ieat_rec.last_update_date,
428 l_ieat_rec.last_update_login;
429 x_no_data_found := iex_ext_agncy_tl_pk_csr%NOTFOUND;
430 CLOSE iex_ext_agncy_tl_pk_csr;
431 RETURN(l_ieat_rec);
432 END get_rec;
433
434 ------------------------------------------------------------------
435 -- This version of get_rec sets error messages if no data found --
436 ------------------------------------------------------------------
437 FUNCTION get_rec (
438 p_ieat_rec IN ieat_rec_type,
439 x_return_status OUT NOCOPY VARCHAR2
440 ) RETURN ieat_rec_type AS
441 l_ieat_rec ieat_rec_type;
442 l_row_notfound BOOLEAN := TRUE;
443 BEGIN
444 x_return_status := OKC_API.G_RET_STS_SUCCESS;
445 l_ieat_rec := get_rec(p_ieat_rec, l_row_notfound);
446 IF (l_row_notfound) THEN
447 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'EXTERNAL_AGENCY_ID');
448 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LANGUAGE');
449 x_return_status := OKC_API.G_RET_STS_ERROR;
450 END IF;
451 RETURN(l_ieat_rec);
452 END get_rec;
453 -----------------------------------------------------------
454 -- So we don't have to pass an "l_row_notfound" variable --
455 -----------------------------------------------------------
456 FUNCTION get_rec (
457 p_ieat_rec IN ieat_rec_type
458 ) RETURN ieat_rec_type AS
459 l_row_not_found BOOLEAN := TRUE;
460 BEGIN
461 RETURN(get_rec(p_ieat_rec, l_row_not_found));
462 END get_rec;
463 ---------------------------------------------------------------------------
464 -- FUNCTION null_out_defaults for: IEX_EXT_AGNCY_V
465 ---------------------------------------------------------------------------
466 FUNCTION null_out_defaults (
467 p_ieav_rec IN ieav_rec_type
468 ) RETURN ieav_rec_type AS
469 l_ieav_rec ieav_rec_type := p_ieav_rec;
470 BEGIN
471 IF (l_ieav_rec.external_agency_id = OKC_API.G_MISS_NUM ) THEN
472 l_ieav_rec.external_agency_id := NULL;
473 END IF;
474 IF (l_ieav_rec.external_agency_name = OKC_API.G_MISS_CHAR ) THEN
475 l_ieav_rec.external_agency_name := NULL;
476 END IF;
477 IF (l_ieav_rec.vendor_id = OKC_API.G_MISS_NUM ) THEN
478 l_ieav_rec.vendor_id := NULL;
479 END IF;
480 IF (l_ieav_rec.vendor_site_id = OKC_API.G_MISS_NUM ) THEN
481 l_ieav_rec.vendor_site_id := NULL;
482 END IF;
483 IF (l_ieav_rec.rank = OKC_API.G_MISS_NUM ) THEN
484 l_ieav_rec.rank := NULL;
485 END IF;
486 IF (l_ieav_rec.effective_start_date = OKC_API.G_MISS_DATE ) THEN
487 l_ieav_rec.effective_start_date := NULL;
488 END IF;
489 IF (l_ieav_rec.effective_end_date = OKC_API.G_MISS_DATE ) THEN
490 l_ieav_rec.effective_end_date := NULL;
491 END IF;
492 IF (l_ieav_rec.description = OKC_API.G_MISS_CHAR ) THEN
493 l_ieav_rec.description := NULL;
494 END IF;
495 IF (l_ieav_rec.language = OKC_API.G_MISS_CHAR ) THEN
496 l_ieav_rec.language := NULL;
497 END IF;
498 IF (l_ieav_rec.source_lang = OKC_API.G_MISS_CHAR ) THEN
499 l_ieav_rec.source_lang := NULL;
500 END IF;
501 IF (l_ieav_rec.sfwt_flag = OKC_API.G_MISS_CHAR ) THEN
502 l_ieav_rec.sfwt_flag := NULL;
503 END IF;
504 IF (l_ieav_rec.object_version_number = OKC_API.G_MISS_NUM ) THEN
505 l_ieav_rec.object_version_number := NULL;
506 END IF;
507 IF (l_ieav_rec.org_id = OKC_API.G_MISS_NUM ) THEN
508 l_ieav_rec.org_id := NULL;
509 END IF;
510 IF (l_ieav_rec.attribute_category = OKC_API.G_MISS_CHAR ) THEN
511 l_ieav_rec.attribute_category := NULL;
512 END IF;
513 IF (l_ieav_rec.attribute1 = OKC_API.G_MISS_CHAR ) THEN
514 l_ieav_rec.attribute1 := NULL;
515 END IF;
516 IF (l_ieav_rec.attribute2 = OKC_API.G_MISS_CHAR ) THEN
517 l_ieav_rec.attribute2 := NULL;
518 END IF;
519 IF (l_ieav_rec.attribute3 = OKC_API.G_MISS_CHAR ) THEN
520 l_ieav_rec.attribute3 := NULL;
521 END IF;
522 IF (l_ieav_rec.attribute4 = OKC_API.G_MISS_CHAR ) THEN
523 l_ieav_rec.attribute4 := NULL;
524 END IF;
525 IF (l_ieav_rec.attribute5 = OKC_API.G_MISS_CHAR ) THEN
526 l_ieav_rec.attribute5 := NULL;
527 END IF;
528 IF (l_ieav_rec.attribute6 = OKC_API.G_MISS_CHAR ) THEN
529 l_ieav_rec.attribute6 := NULL;
530 END IF;
531 IF (l_ieav_rec.attribute7 = OKC_API.G_MISS_CHAR ) THEN
532 l_ieav_rec.attribute7 := NULL;
533 END IF;
534 IF (l_ieav_rec.attribute8 = OKC_API.G_MISS_CHAR ) THEN
535 l_ieav_rec.attribute8 := NULL;
536 END IF;
537 IF (l_ieav_rec.attribute9 = OKC_API.G_MISS_CHAR ) THEN
538 l_ieav_rec.attribute9 := NULL;
539 END IF;
540 IF (l_ieav_rec.attribute10 = OKC_API.G_MISS_CHAR ) THEN
541 l_ieav_rec.attribute10 := NULL;
542 END IF;
543 IF (l_ieav_rec.attribute11 = OKC_API.G_MISS_CHAR ) THEN
544 l_ieav_rec.attribute11 := NULL;
545 END IF;
546 IF (l_ieav_rec.attribute12 = OKC_API.G_MISS_CHAR ) THEN
547 l_ieav_rec.attribute12 := NULL;
548 END IF;
549 IF (l_ieav_rec.attribute13 = OKC_API.G_MISS_CHAR ) THEN
550 l_ieav_rec.attribute13 := NULL;
551 END IF;
552 IF (l_ieav_rec.attribute14 = OKC_API.G_MISS_CHAR ) THEN
553 l_ieav_rec.attribute14 := NULL;
554 END IF;
555 IF (l_ieav_rec.attribute15 = OKC_API.G_MISS_CHAR ) THEN
556 l_ieav_rec.attribute15 := NULL;
557 END IF;
558 IF (l_ieav_rec.created_by = OKC_API.G_MISS_NUM ) THEN
559 l_ieav_rec.created_by := NULL;
560 END IF;
561 IF (l_ieav_rec.creation_date = OKC_API.G_MISS_DATE ) THEN
562 l_ieav_rec.creation_date := NULL;
563 END IF;
564 IF (l_ieav_rec.last_updated_by = OKC_API.G_MISS_NUM ) THEN
565 l_ieav_rec.last_updated_by := NULL;
566 END IF;
567 IF (l_ieav_rec.last_update_date = OKC_API.G_MISS_DATE ) THEN
568 l_ieav_rec.last_update_date := NULL;
569 END IF;
570 IF (l_ieav_rec.last_update_login = OKC_API.G_MISS_NUM ) THEN
571 l_ieav_rec.last_update_login := NULL;
572 END IF;
573 RETURN(l_ieav_rec);
574 END null_out_defaults;
575 -------------------------------------------------
576 -- Validate_Attributes for: EXTERNAL_AGENCY_ID --
577 -------------------------------------------------
578 PROCEDURE validate_external_agency_id(
579 x_return_status OUT NOCOPY VARCHAR2,
580 p_ieav_rec IN ieav_rec_type) AS
581 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
582 BEGIN
583 IF (p_ieav_rec.external_agency_id = OKC_API.G_MISS_NUM OR
584 p_ieav_rec.external_agency_id IS NULL)
585 THEN
586 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'external_agency_id');
587 l_return_status := OKC_API.G_RET_STS_ERROR;
588 END IF;
589
590 x_return_status := l_return_status;
591 EXCEPTION
592 WHEN OTHERS THEN
593 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
594 ,p_msg_name => G_UNEXPECTED_ERROR
595 ,p_token1 => G_SQLCODE_TOKEN
596 ,p_token1_value => SQLCODE
597 ,p_token2 => G_SQLERRM_TOKEN
598 ,p_token2_value => SQLERRM);
599 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
600 END validate_external_agency_id;
601 ---------------------------------------------------
602 -- Validate_Attributes for: EXTERNAL_AGENCY_NAME --
603 ---------------------------------------------------
604 PROCEDURE validate_external_agency_name(
605 x_return_status OUT NOCOPY VARCHAR2,
606 p_ieav_rec IN ieav_rec_type) AS
607 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
608 BEGIN
609 IF (p_ieav_rec.external_agency_name = OKC_API.G_MISS_CHAR OR
610 p_ieav_rec.external_agency_name IS NULL)
611 THEN
612 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'external_agency_name');
613 l_return_status := OKC_API.G_RET_STS_ERROR;
614 END IF;
615
616 x_return_status := l_return_status;
617 EXCEPTION
618 WHEN OTHERS THEN
619 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
620 ,p_msg_name => G_UNEXPECTED_ERROR
621 ,p_token1 => G_SQLCODE_TOKEN
622 ,p_token1_value => SQLCODE
623 ,p_token2 => G_SQLERRM_TOKEN
624 ,p_token2_value => SQLERRM);
625 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
626 END validate_external_agency_name;
627 ----------------------------------------
628 -- Validate_Attributes for: VENDOR_ID --
629 ----------------------------------------
630 PROCEDURE validate_vendor_id(
631 x_return_status OUT NOCOPY VARCHAR2,
632 p_ieav_rec IN ieav_rec_type) AS
633 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
634 BEGIN
635 IF (p_ieav_rec.vendor_id = OKC_API.G_MISS_NUM OR
636 p_ieav_rec.vendor_id IS NULL)
637 THEN
638 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'vendor_id');
639 l_return_status := OKC_API.G_RET_STS_ERROR;
640 END IF;
641
642 x_return_status := l_return_status;
643 EXCEPTION
644 WHEN OTHERS THEN
645 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
646 ,p_msg_name => G_UNEXPECTED_ERROR
647 ,p_token1 => G_SQLCODE_TOKEN
648 ,p_token1_value => SQLCODE
649 ,p_token2 => G_SQLERRM_TOKEN
650 ,p_token2_value => SQLERRM);
651 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
652 END validate_vendor_id;
653 ---------------------------------------------
654 -- Validate_Attributes for: VENDOR_SITE_ID --
655 ---------------------------------------------
656 PROCEDURE validate_vendor_site_id(
657 x_return_status OUT NOCOPY VARCHAR2,
658 p_ieav_rec IN ieav_rec_type) AS
659 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
660 BEGIN
661 IF (p_ieav_rec.vendor_site_id = OKC_API.G_MISS_NUM OR
662 p_ieav_rec.vendor_site_id IS NULL)
663 THEN
664 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'vendor_site_id');
665 l_return_status := OKC_API.G_RET_STS_ERROR;
666 END IF;
667
668 x_return_status := l_return_status;
669 EXCEPTION
670 WHEN OTHERS THEN
671 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
672 ,p_msg_name => G_UNEXPECTED_ERROR
673 ,p_token1 => G_SQLCODE_TOKEN
674 ,p_token1_value => SQLCODE
675 ,p_token2 => G_SQLERRM_TOKEN
676 ,p_token2_value => SQLERRM);
677 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
678 END validate_vendor_site_id;
679 -----------------------------------
680 -- Validate_Attributes for: RANK --
681 -----------------------------------
682 PROCEDURE validate_rank(
683 x_return_status OUT NOCOPY VARCHAR2,
684 p_ieav_rec IN ieav_rec_type) AS
685 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
686 BEGIN
687 IF (p_ieav_rec.rank = OKC_API.G_MISS_NUM OR
688 p_ieav_rec.rank IS NULL)
689 THEN
690 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'rank');
691 l_return_status := OKC_API.G_RET_STS_ERROR;
692 END IF;
693
694 x_return_status := l_return_status;
695 EXCEPTION
696 WHEN OTHERS THEN
697 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
698 ,p_msg_name => G_UNEXPECTED_ERROR
699 ,p_token1 => G_SQLCODE_TOKEN
700 ,p_token1_value => SQLCODE
701 ,p_token2 => G_SQLERRM_TOKEN
702 ,p_token2_value => SQLERRM);
703 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
704 END validate_rank;
705 ---------------------------------------------------
706 -- Validate_Attributes for: EFFECTIVE_START_DATE --
707 ---------------------------------------------------
708 PROCEDURE validate_effective_start_date(
709 x_return_status OUT NOCOPY VARCHAR2,
710 p_ieav_rec IN ieav_rec_type) AS
711 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
712 BEGIN
713 IF (p_ieav_rec.effective_start_date = OKC_API.G_MISS_DATE OR
714 p_ieav_rec.effective_start_date IS NULL)
715 THEN
716 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'effective_start_date');
717 l_return_status := OKC_API.G_RET_STS_ERROR;
718 END IF;
719
720 x_return_status := l_return_status;
721 EXCEPTION
722 WHEN OTHERS THEN
723 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
724 ,p_msg_name => G_UNEXPECTED_ERROR
725 ,p_token1 => G_SQLCODE_TOKEN
726 ,p_token1_value => SQLCODE
727 ,p_token2 => G_SQLERRM_TOKEN
728 ,p_token2_value => SQLERRM);
729 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
730 END validate_effective_start_date;
731 ---------------------------------------
732 -- Validate_Attributes for: LANGUAGE --
733 ---------------------------------------
734 PROCEDURE validate_language(
735 x_return_status OUT NOCOPY VARCHAR2,
736 p_ieav_rec IN ieav_rec_type) AS
737 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
738 BEGIN
739 /*
740 IF (p_ieav_rec.language = OKC_API.G_MISS_CHAR OR
741 p_ieav_rec.language IS NULL)
742 THEN
743 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'language');
744 l_return_status := OKC_API.G_RET_STS_ERROR;
745 END IF;
746 */
747
748 x_return_status := l_return_status;
749 EXCEPTION
750 WHEN OTHERS THEN
751 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
752 ,p_msg_name => G_UNEXPECTED_ERROR
753 ,p_token1 => G_SQLCODE_TOKEN
754 ,p_token1_value => SQLCODE
755 ,p_token2 => G_SQLERRM_TOKEN
756 ,p_token2_value => SQLERRM);
757 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
758 END validate_language;
759 ------------------------------------------
760 -- Validate_Attributes for: SOURCE_LANG --
761 ------------------------------------------
762 PROCEDURE validate_source_lang(
763 x_return_status OUT NOCOPY VARCHAR2,
764 p_ieav_rec IN ieav_rec_type) AS
765 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
766 BEGIN
767 /*
768 IF (p_ieav_rec.source_lang = OKC_API.G_MISS_CHAR OR
769 p_ieav_rec.source_lang IS NULL)
770 THEN
771 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'source_lang');
772 l_return_status := OKC_API.G_RET_STS_ERROR;
773 END IF;
774 */
775
776 x_return_status := l_return_status;
777 EXCEPTION
778 WHEN OTHERS THEN
779 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
780 ,p_msg_name => G_UNEXPECTED_ERROR
781 ,p_token1 => G_SQLCODE_TOKEN
782 ,p_token1_value => SQLCODE
783 ,p_token2 => G_SQLERRM_TOKEN
784 ,p_token2_value => SQLERRM);
785 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
786 END validate_source_lang;
787 ----------------------------------------
788 -- Validate_Attributes for: SFWT_FLAG --
789 ----------------------------------------
790 PROCEDURE validate_sfwt_flag(
791 x_return_status OUT NOCOPY VARCHAR2,
792 p_ieav_rec IN ieav_rec_type) AS
793 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
794 BEGIN
795 IF (p_ieav_rec.sfwt_flag = OKC_API.G_MISS_CHAR OR
796 p_ieav_rec.sfwt_flag IS NULL)
797 THEN
798 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'sfwt_flag');
799 l_return_status := OKC_API.G_RET_STS_ERROR;
800 END IF;
801
802 x_return_status := l_return_status;
803 EXCEPTION
804 WHEN OTHERS THEN
805 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
806 ,p_msg_name => G_UNEXPECTED_ERROR
807 ,p_token1 => G_SQLCODE_TOKEN
808 ,p_token1_value => SQLCODE
809 ,p_token2 => G_SQLERRM_TOKEN
810 ,p_token2_value => SQLERRM);
811 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
812 END validate_sfwt_flag;
813 ----------------------------------------------------
814 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
815 ----------------------------------------------------
816 PROCEDURE validate_object_version_number(
817 x_return_status OUT NOCOPY VARCHAR2,
818 p_ieav_rec IN ieav_rec_type) AS
819 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
820 BEGIN
821 IF (p_ieav_rec.object_version_number = OKC_API.G_MISS_NUM OR
822 p_ieav_rec.object_version_number IS NULL)
823 THEN
824 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
825 l_return_status := OKC_API.G_RET_STS_ERROR;
826 END IF;
827
828 x_return_status := l_return_status;
829 EXCEPTION
830 WHEN OTHERS THEN
831 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
832 ,p_msg_name => G_UNEXPECTED_ERROR
833 ,p_token1 => G_SQLCODE_TOKEN
834 ,p_token1_value => SQLCODE
835 ,p_token2 => G_SQLERRM_TOKEN
836 ,p_token2_value => SQLERRM);
837 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
838 END validate_object_version_number;
839 ---------------------------------------------------------------------------
840 -- FUNCTION Validate_Attributes
841 ---------------------------------------------------------------------------
842 ---------------------------------------------
843 -- Validate_Attributes for:IEX_EXT_AGNCY_V --
844 ---------------------------------------------
845 FUNCTION Validate_Attributes (
846 p_ieav_rec IN ieav_rec_type
847 ) RETURN VARCHAR2 AS
848 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
849 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
850 BEGIN
851 -----------------------------
852 -- Column Level Validation --
853 -----------------------------
854 -- ***
855 -- external_agency_id
856 -- ***
857 validate_external_agency_id(l_return_status, p_ieav_rec);
858 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
859 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
860 x_return_status := l_return_status;
861 RAISE G_EXCEPTION_HALT_VALIDATION;
862 ELSE
863 x_return_status := l_return_status;
864 END IF;
865 END IF;
866
867 -- ***
868 -- external_agency_name
869 -- ***
870 validate_external_agency_name(l_return_status, p_ieav_rec);
871 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
872 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
873 x_return_status := l_return_status;
874 RAISE G_EXCEPTION_HALT_VALIDATION;
875 ELSE
876 x_return_status := l_return_status;
877 END IF;
878 END IF;
879
880 -- ***
881 -- vendor_id
882 -- ***
883 validate_vendor_id(l_return_status, p_ieav_rec);
884 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
885 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
886 x_return_status := l_return_status;
887 RAISE G_EXCEPTION_HALT_VALIDATION;
888 ELSE
889 x_return_status := l_return_status;
890 END IF;
891 END IF;
892
893 -- ***
894 -- vendor_site_id
895 -- ***
896 validate_vendor_site_id(l_return_status, p_ieav_rec);
897 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
898 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
899 x_return_status := l_return_status;
900 RAISE G_EXCEPTION_HALT_VALIDATION;
901 ELSE
902 x_return_status := l_return_status;
903 END IF;
904 END IF;
905
906 -- ***
907 -- rank
908 -- ***
909 validate_rank(l_return_status, p_ieav_rec);
910 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
911 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
912 x_return_status := l_return_status;
913 RAISE G_EXCEPTION_HALT_VALIDATION;
914 ELSE
915 x_return_status := l_return_status;
916 END IF;
917 END IF;
918
919 -- ***
920 -- effective_start_date
921 -- ***
922 validate_effective_start_date(l_return_status, p_ieav_rec);
923 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
924 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
925 x_return_status := l_return_status;
926 RAISE G_EXCEPTION_HALT_VALIDATION;
927 ELSE
928 x_return_status := l_return_status;
929 END IF;
930 END IF;
931
932 -- ***
933 -- language
934 -- ***
935 validate_language(l_return_status, p_ieav_rec);
936 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
937 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
938 x_return_status := l_return_status;
939 RAISE G_EXCEPTION_HALT_VALIDATION;
940 ELSE
941 x_return_status := l_return_status;
942 END IF;
943 END IF;
944
945 -- ***
946 -- source_lang
947 -- ***
948 validate_source_lang(l_return_status, p_ieav_rec);
949 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
950 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
951 x_return_status := l_return_status;
952 RAISE G_EXCEPTION_HALT_VALIDATION;
953 ELSE
954 x_return_status := l_return_status;
955 END IF;
956 END IF;
957
958 -- ***
959 -- sfwt_flag
960 -- ***
961 validate_sfwt_flag(l_return_status, p_ieav_rec);
962 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
963 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
964 x_return_status := l_return_status;
965 RAISE G_EXCEPTION_HALT_VALIDATION;
966 ELSE
967 x_return_status := l_return_status;
968 END IF;
969 END IF;
970
971 -- ***
972 -- object_version_number
973 -- ***
974 validate_object_version_number(l_return_status, p_ieav_rec);
975 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
976 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
977 x_return_status := l_return_status;
978 RAISE G_EXCEPTION_HALT_VALIDATION;
979 ELSE
980 x_return_status := l_return_status;
981 END IF;
982 END IF;
983
984 RETURN(x_return_status);
985 EXCEPTION
986 WHEN G_EXCEPTION_HALT_VALIDATION THEN
987 RETURN(x_return_status);
988 WHEN OTHERS THEN
989 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
990 ,p_msg_name => G_UNEXPECTED_ERROR
991 ,p_token1 => G_SQLCODE_TOKEN
992 ,p_token1_value => SQLCODE
993 ,p_token2 => G_SQLERRM_TOKEN
994 ,p_token2_value => SQLERRM);
995 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
996 RETURN(x_return_status);
997 END Validate_Attributes;
998 ---------------------------------------------------------------------------
999 -- PROCEDURE Validate_Record
1000 ---------------------------------------------------------------------------
1001 -----------------------------------------
1002 -- Validate Record for:IEX_EXT_AGNCY_V --
1003 -----------------------------------------
1004 FUNCTION Validate_Record (
1005 p_ieav_rec IN ieav_rec_type,
1006 p_db_ieav_rec IN ieav_rec_type
1007 ) RETURN VARCHAR2 AS
1008 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1009 BEGIN
1010 IF(p_ieav_rec.effective_end_date IS NOT NULL AND p_ieav_rec.effective_end_date <> OKC_API.G_MISS_DATE) THEN
1011 IF(p_ieav_rec.effective_start_date > p_ieav_rec.effective_end_date) THEN
1012 OKL_API.set_message('IEX', G_INVALID_DATE_RANGE);
1013 l_return_status := OKC_API.G_RET_STS_ERROR;
1014 END IF;
1015 END IF;
1016
1017 RETURN (l_return_status);
1018 END Validate_Record;
1019 FUNCTION Validate_Record (
1020 p_ieav_rec IN ieav_rec_type
1021 ) RETURN VARCHAR2 AS
1022 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1023 l_db_ieav_rec ieav_rec_type := get_rec(p_ieav_rec);
1024 BEGIN
1025 l_return_status := Validate_Record(p_ieav_rec => p_ieav_rec,
1026 p_db_ieav_rec => l_db_ieav_rec);
1027 RETURN (l_return_status);
1028 END Validate_Record;
1029
1030 ---------------------------------------------------------------------------
1031 -- PROCEDURE Migrate
1032 ---------------------------------------------------------------------------
1033 PROCEDURE migrate (
1034 p_from IN ieav_rec_type,
1035 p_to IN OUT NOCOPY iea_rec_type
1036 ) AS
1037 BEGIN
1038 p_to.external_agency_id := p_from.external_agency_id;
1039 p_to.external_agency_name := p_from.external_agency_name;
1040 p_to.vendor_id := p_from.vendor_id;
1041 p_to.vendor_site_id := p_from.vendor_site_id;
1042 p_to.rank := p_from.rank;
1043 p_to.effective_start_date := p_from.effective_start_date;
1044 p_to.effective_end_date := p_from.effective_end_date;
1045 p_to.object_version_number := p_from.object_version_number;
1046 p_to.org_id := p_from.org_id;
1047 p_to.attribute_category := p_from.attribute_category;
1048 p_to.attribute1 := p_from.attribute1;
1049 p_to.attribute2 := p_from.attribute2;
1050 p_to.attribute3 := p_from.attribute3;
1051 p_to.attribute4 := p_from.attribute4;
1052 p_to.attribute5 := p_from.attribute5;
1053 p_to.attribute6 := p_from.attribute6;
1054 p_to.attribute7 := p_from.attribute7;
1055 p_to.attribute8 := p_from.attribute8;
1056 p_to.attribute9 := p_from.attribute9;
1057 p_to.attribute10 := p_from.attribute10;
1058 p_to.attribute11 := p_from.attribute11;
1059 p_to.attribute12 := p_from.attribute12;
1060 p_to.attribute13 := p_from.attribute13;
1061 p_to.attribute14 := p_from.attribute14;
1062 p_to.attribute15 := p_from.attribute15;
1063 p_to.created_by := p_from.created_by;
1064 p_to.creation_date := p_from.creation_date;
1065 p_to.last_updated_by := p_from.last_updated_by;
1066 p_to.last_update_date := p_from.last_update_date;
1067 p_to.last_update_login := p_from.last_update_login;
1068 END migrate;
1069 PROCEDURE migrate (
1070 p_from IN iea_rec_type,
1071 p_to IN OUT NOCOPY ieav_rec_type
1072 ) AS
1073 BEGIN
1074 p_to.external_agency_id := p_from.external_agency_id;
1075 p_to.external_agency_name := p_from.external_agency_name;
1076 p_to.vendor_id := p_from.vendor_id;
1077 p_to.vendor_site_id := p_from.vendor_site_id;
1078 p_to.rank := p_from.rank;
1079 p_to.effective_start_date := p_from.effective_start_date;
1080 p_to.effective_end_date := p_from.effective_end_date;
1081 p_to.object_version_number := p_from.object_version_number;
1082 p_to.org_id := p_from.org_id;
1083 p_to.attribute_category := p_from.attribute_category;
1084 p_to.attribute1 := p_from.attribute1;
1085 p_to.attribute2 := p_from.attribute2;
1086 p_to.attribute3 := p_from.attribute3;
1087 p_to.attribute4 := p_from.attribute4;
1088 p_to.attribute5 := p_from.attribute5;
1089 p_to.attribute6 := p_from.attribute6;
1090 p_to.attribute7 := p_from.attribute7;
1091 p_to.attribute8 := p_from.attribute8;
1092 p_to.attribute9 := p_from.attribute9;
1093 p_to.attribute10 := p_from.attribute10;
1094 p_to.attribute11 := p_from.attribute11;
1095 p_to.attribute12 := p_from.attribute12;
1096 p_to.attribute13 := p_from.attribute13;
1097 p_to.attribute14 := p_from.attribute14;
1098 p_to.attribute15 := p_from.attribute15;
1099 p_to.created_by := p_from.created_by;
1100 p_to.creation_date := p_from.creation_date;
1101 p_to.last_updated_by := p_from.last_updated_by;
1102 p_to.last_update_date := p_from.last_update_date;
1103 p_to.last_update_login := p_from.last_update_login;
1104 END migrate;
1105 PROCEDURE migrate (
1106 p_from IN ieav_rec_type,
1107 p_to IN OUT NOCOPY ieat_rec_type
1108 ) AS
1109 BEGIN
1110 p_to.external_agency_id := p_from.external_agency_id;
1111 p_to.description := p_from.description;
1112 p_to.language := p_from.language;
1113 p_to.source_lang := p_from.source_lang;
1114 p_to.sfwt_flag := p_from.sfwt_flag;
1115 p_to.created_by := p_from.created_by;
1116 p_to.creation_date := p_from.creation_date;
1117 p_to.last_updated_by := p_from.last_updated_by;
1118 p_to.last_update_date := p_from.last_update_date;
1119 p_to.last_update_login := p_from.last_update_login;
1120 END migrate;
1121 PROCEDURE migrate (
1122 p_from IN ieat_rec_type,
1123 p_to IN OUT NOCOPY ieav_rec_type
1124 ) AS
1125 BEGIN
1126 p_to.external_agency_id := p_from.external_agency_id;
1127 p_to.description := p_from.description;
1128 p_to.language := p_from.language;
1129 p_to.source_lang := p_from.source_lang;
1130 p_to.sfwt_flag := p_from.sfwt_flag;
1131 p_to.created_by := p_from.created_by;
1132 p_to.creation_date := p_from.creation_date;
1133 p_to.last_updated_by := p_from.last_updated_by;
1134 p_to.last_update_date := p_from.last_update_date;
1135 p_to.last_update_login := p_from.last_update_login;
1136 END migrate;
1137 ---------------------------------------------------------------------------
1138 -- PROCEDURE validate_row
1139 ---------------------------------------------------------------------------
1140 --------------------------------------
1141 -- validate_row for:IEX_EXT_AGNCY_V --
1142 --------------------------------------
1143 PROCEDURE validate_row(
1144 p_api_version IN NUMBER,
1145 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1146 x_return_status OUT NOCOPY VARCHAR2,
1147 x_msg_count OUT NOCOPY NUMBER,
1148 x_msg_data OUT NOCOPY VARCHAR2,
1149 p_ieav_rec IN ieav_rec_type) AS
1150
1151 l_api_version CONSTANT NUMBER := 1;
1152 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1153 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1154 l_ieav_rec ieav_rec_type := p_ieav_rec;
1155 l_iea_rec iea_rec_type;
1156 l_ieat_rec ieat_rec_type;
1157 BEGIN
1158 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1159 G_PKG_NAME,
1160 p_init_msg_list,
1161 l_api_version,
1162 p_api_version,
1163 '_PVT',
1164 x_return_status);
1165 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1166 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1167 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1168 RAISE OKC_API.G_EXCEPTION_ERROR;
1169 END IF;
1170 --- Validate all non-missing attributes (Item Level Validation)
1171 l_return_status := Validate_Attributes(l_ieav_rec);
1172 --- If any errors happen abort API
1173 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1174 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1175 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1176 RAISE OKC_API.G_EXCEPTION_ERROR;
1177 END IF;
1178 l_return_status := Validate_Record(l_ieav_rec);
1179 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1180 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1181 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1182 RAISE OKC_API.G_EXCEPTION_ERROR;
1183 END IF;
1184 x_return_status := l_return_status;
1185 EXCEPTION
1186 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1187 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1188 (
1189 l_api_name,
1190 G_PKG_NAME,
1191 'OKC_API.G_RET_STS_ERROR',
1192 x_msg_count,
1193 x_msg_data,
1194 '_PVT'
1195 );
1196 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1197 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1198 (
1199 l_api_name,
1200 G_PKG_NAME,
1201 'OKC_API.G_RET_STS_UNEXP_ERROR',
1202 x_msg_count,
1203 x_msg_data,
1204 '_PVT'
1205 );
1206 WHEN OTHERS THEN
1207 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1208 (
1209 l_api_name,
1210 G_PKG_NAME,
1211 'OTHERS',
1212 x_msg_count,
1213 x_msg_data,
1214 '_PVT'
1215 );
1216 END validate_row;
1217 -------------------------------------------------
1218 -- PL/SQL TBL validate_row for:IEX_EXT_AGNCY_V --
1219 -------------------------------------------------
1220 PROCEDURE validate_row(
1221 p_api_version IN NUMBER,
1222 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1223 x_return_status OUT NOCOPY VARCHAR2,
1224 x_msg_count OUT NOCOPY NUMBER,
1225 x_msg_data OUT NOCOPY VARCHAR2,
1226 p_ieav_tbl IN ieav_tbl_type,
1227 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) AS
1228
1229 l_api_version CONSTANT NUMBER := 1;
1230 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
1231 i NUMBER := 0;
1232 BEGIN
1233 OKC_API.init_msg_list(p_init_msg_list);
1234 -- Make sure PL/SQL table has records in it before passing
1235 IF (p_ieav_tbl.COUNT > 0) THEN
1236 i := p_ieav_tbl.FIRST;
1237 LOOP
1238 DECLARE
1239 l_error_rec OKL_API.ERROR_REC_TYPE;
1240 BEGIN
1241 l_error_rec.api_name := l_api_name;
1242 l_error_rec.api_package := G_PKG_NAME;
1243 l_error_rec.idx := i;
1244 validate_row (
1245 p_api_version => p_api_version,
1246 p_init_msg_list => OKC_API.G_FALSE,
1247 x_return_status => l_error_rec.error_type,
1248 x_msg_count => l_error_rec.msg_count,
1249 x_msg_data => l_error_rec.msg_data,
1250 p_ieav_rec => p_ieav_tbl(i));
1251 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
1252 l_error_rec.sqlcode := SQLCODE;
1253 load_error_tbl(l_error_rec, px_error_tbl);
1254 ELSE
1255 x_msg_count := l_error_rec.msg_count;
1256 x_msg_data := l_error_rec.msg_data;
1257 END IF;
1258 EXCEPTION
1259 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1260 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
1261 l_error_rec.sqlcode := SQLCODE;
1262 load_error_tbl(l_error_rec, px_error_tbl);
1263 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1264 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
1265 l_error_rec.sqlcode := SQLCODE;
1266 load_error_tbl(l_error_rec, px_error_tbl);
1267 WHEN OTHERS THEN
1268 l_error_rec.error_type := 'OTHERS';
1269 l_error_rec.sqlcode := SQLCODE;
1270 load_error_tbl(l_error_rec, px_error_tbl);
1271 END;
1272 EXIT WHEN (i = p_ieav_tbl.LAST);
1273 i := p_ieav_tbl.NEXT(i);
1274 END LOOP;
1275 END IF;
1276 -- Loop through the error_tbl to find the error with the highest severity
1277 -- and return it.
1278 x_return_status := find_highest_exception(px_error_tbl);
1279 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1280 EXCEPTION
1281 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1282 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1283 (
1284 l_api_name,
1285 G_PKG_NAME,
1286 'OKC_API.G_RET_STS_ERROR',
1287 x_msg_count,
1288 x_msg_data,
1289 '_PVT'
1290 );
1291 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1292 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1293 (
1294 l_api_name,
1295 G_PKG_NAME,
1296 'OKC_API.G_RET_STS_UNEXP_ERROR',
1297 x_msg_count,
1298 x_msg_data,
1299 '_PVT'
1300 );
1301 WHEN OTHERS THEN
1302 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1303 (
1304 l_api_name,
1305 G_PKG_NAME,
1306 'OTHERS',
1307 x_msg_count,
1308 x_msg_data,
1309 '_PVT'
1310 );
1311 END validate_row;
1312
1313 -------------------------------------------------
1314 -- PL/SQL TBL validate_row for:IEX_EXT_AGNCY_V --
1315 -------------------------------------------------
1316 PROCEDURE validate_row(
1317 p_api_version IN NUMBER,
1318 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1319 x_return_status OUT NOCOPY VARCHAR2,
1320 x_msg_count OUT NOCOPY NUMBER,
1321 x_msg_data OUT NOCOPY VARCHAR2,
1322 p_ieav_tbl IN ieav_tbl_type) AS
1323
1324 l_api_version CONSTANT NUMBER := 1;
1325 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1326 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1327 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1328 BEGIN
1329 OKC_API.init_msg_list(p_init_msg_list);
1330 -- Make sure PL/SQL table has records in it before passing
1331 IF (p_ieav_tbl.COUNT > 0) THEN
1332 validate_row (
1333 p_api_version => p_api_version,
1334 p_init_msg_list => OKC_API.G_FALSE,
1335 x_return_status => x_return_status,
1336 x_msg_count => x_msg_count,
1337 x_msg_data => x_msg_data,
1338 p_ieav_tbl => p_ieav_tbl,
1339 px_error_tbl => l_error_tbl);
1340 END IF;
1341 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1342 EXCEPTION
1343 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1344 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1345 (
1346 l_api_name,
1347 G_PKG_NAME,
1348 'OKC_API.G_RET_STS_ERROR',
1349 x_msg_count,
1350 x_msg_data,
1351 '_PVT'
1352 );
1353 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1354 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1355 (
1356 l_api_name,
1357 G_PKG_NAME,
1358 'OKC_API.G_RET_STS_UNEXP_ERROR',
1359 x_msg_count,
1360 x_msg_data,
1361 '_PVT'
1362 );
1363 WHEN OTHERS THEN
1364 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1365 (
1366 l_api_name,
1367 G_PKG_NAME,
1368 'OTHERS',
1369 x_msg_count,
1370 x_msg_data,
1371 '_PVT'
1372 );
1373 END validate_row;
1374
1375 ---------------------------------------------------------------------------
1376 -- PROCEDURE insert_row
1377 ---------------------------------------------------------------------------
1378 ------------------------------------
1379 -- insert_row for:IEX_EXT_AGNCY_B --
1380 ------------------------------------
1381 PROCEDURE insert_row(
1382 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1383 x_return_status OUT NOCOPY VARCHAR2,
1384 x_msg_count OUT NOCOPY NUMBER,
1385 x_msg_data OUT NOCOPY VARCHAR2,
1386 p_iea_rec IN iea_rec_type,
1387 x_iea_rec OUT NOCOPY iea_rec_type) AS
1388
1389 l_api_version CONSTANT NUMBER := 1;
1390 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1391 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1392 l_iea_rec iea_rec_type := p_iea_rec;
1393 l_def_iea_rec iea_rec_type;
1394 ----------------------------------------
1395 -- Set_Attributes for:IEX_EXT_AGNCY_B --
1396 ----------------------------------------
1397 FUNCTION Set_Attributes (
1398 p_iea_rec IN iea_rec_type,
1399 x_iea_rec OUT NOCOPY iea_rec_type
1400 ) RETURN VARCHAR2 AS
1401 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1402 BEGIN
1403 x_iea_rec := p_iea_rec;
1404 RETURN(l_return_status);
1405 END Set_Attributes;
1406 BEGIN
1407 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1408 p_init_msg_list,
1409 '_PVT',
1410 x_return_status);
1411 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1412 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1413 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1414 RAISE OKC_API.G_EXCEPTION_ERROR;
1415 END IF;
1416 --- Setting item atributes
1417 l_return_status := Set_Attributes(
1418 p_iea_rec, -- IN
1419 l_iea_rec); -- OUT NOCOPY
1420 --- If any errors happen abort API
1421 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1422 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1423 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1424 RAISE OKC_API.G_EXCEPTION_ERROR;
1425 END IF;
1426 INSERT INTO IEX_EXT_AGNCY_B(
1427 external_agency_id,
1428 external_agency_name,
1429 vendor_id,
1430 vendor_site_id,
1431 rank,
1432 effective_start_date,
1433 effective_end_date,
1434 object_version_number,
1435 org_id,
1436 attribute_category,
1437 attribute1,
1438 attribute2,
1439 attribute3,
1440 attribute4,
1441 attribute5,
1442 attribute6,
1443 attribute7,
1444 attribute8,
1445 attribute9,
1446 attribute10,
1447 attribute11,
1448 attribute12,
1449 attribute13,
1450 attribute14,
1451 attribute15,
1452 created_by,
1453 creation_date,
1454 last_updated_by,
1455 last_update_date,
1456 last_update_login)
1457 VALUES (
1458 l_iea_rec.external_agency_id,
1459 l_iea_rec.external_agency_name,
1460 l_iea_rec.vendor_id,
1461 l_iea_rec.vendor_site_id,
1462 l_iea_rec.rank,
1463 l_iea_rec.effective_start_date,
1464 l_iea_rec.effective_end_date,
1465 l_iea_rec.object_version_number,
1466 l_iea_rec.org_id,
1467 l_iea_rec.attribute_category,
1468 l_iea_rec.attribute1,
1469 l_iea_rec.attribute2,
1470 l_iea_rec.attribute3,
1471 l_iea_rec.attribute4,
1472 l_iea_rec.attribute5,
1473 l_iea_rec.attribute6,
1474 l_iea_rec.attribute7,
1475 l_iea_rec.attribute8,
1476 l_iea_rec.attribute9,
1477 l_iea_rec.attribute10,
1478 l_iea_rec.attribute11,
1479 l_iea_rec.attribute12,
1480 l_iea_rec.attribute13,
1481 l_iea_rec.attribute14,
1482 l_iea_rec.attribute15,
1483 l_iea_rec.created_by,
1484 l_iea_rec.creation_date,
1485 l_iea_rec.last_updated_by,
1486 l_iea_rec.last_update_date,
1487 l_iea_rec.last_update_login);
1488 -- Set OUT NOCOPY values
1489 x_iea_rec := l_iea_rec;
1490 x_return_status := l_return_status;
1491 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1492 EXCEPTION
1493 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1494 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1495 (
1496 l_api_name,
1497 G_PKG_NAME,
1498 'OKC_API.G_RET_STS_ERROR',
1499 x_msg_count,
1500 x_msg_data,
1501 '_PVT'
1502 );
1503 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1504 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1505 (
1506 l_api_name,
1507 G_PKG_NAME,
1508 'OKC_API.G_RET_STS_UNEXP_ERROR',
1509 x_msg_count,
1510 x_msg_data,
1511 '_PVT'
1512 );
1513 WHEN OTHERS THEN
1514 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1515 (
1516 l_api_name,
1517 G_PKG_NAME,
1518 'OTHERS',
1519 x_msg_count,
1520 x_msg_data,
1521 '_PVT'
1522 );
1523 END insert_row;
1524 -------------------------------------
1525 -- insert_row for:IEX_EXT_AGNCY_TL --
1526 -------------------------------------
1527 PROCEDURE insert_row(
1528 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1529 x_return_status OUT NOCOPY VARCHAR2,
1530 x_msg_count OUT NOCOPY NUMBER,
1531 x_msg_data OUT NOCOPY VARCHAR2,
1532 p_ieat_rec IN ieat_rec_type,
1533 x_ieat_rec OUT NOCOPY ieat_rec_type) AS
1534
1535 l_api_version CONSTANT NUMBER := 1;
1536 l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
1537 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1538 l_ieat_rec ieat_rec_type := p_ieat_rec;
1539 l_def_ieat_rec ieat_rec_type;
1540 CURSOR get_languages IS
1541 SELECT *
1542 FROM FND_LANGUAGES
1543 WHERE INSTALLED_FLAG IN ('I', 'B');
1544 -----------------------------------------
1545 -- Set_Attributes for:IEX_EXT_AGNCY_TL --
1546 -----------------------------------------
1547 FUNCTION Set_Attributes (
1548 p_ieat_rec IN ieat_rec_type,
1549 x_ieat_rec OUT NOCOPY ieat_rec_type
1550 ) RETURN VARCHAR2 AS
1551 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1552 BEGIN
1553 x_ieat_rec := p_ieat_rec;
1554 x_ieat_rec.LANGUAGE := USERENV('LANG');
1555 x_ieat_rec.SOURCE_LANG := USERENV('LANG');
1556 RETURN(l_return_status);
1557 END Set_Attributes;
1558 BEGIN
1559 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1560 p_init_msg_list,
1561 '_PVT',
1562 x_return_status);
1563 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1564 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1565 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1566 RAISE OKC_API.G_EXCEPTION_ERROR;
1567 END IF;
1568 --- Setting item attributes
1569 l_return_status := Set_Attributes(
1570 p_ieat_rec, -- IN
1571 l_ieat_rec); -- OUT NOCOPY
1572 --- If any errors happen abort API
1573 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1574 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1575 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1576 RAISE OKC_API.G_EXCEPTION_ERROR;
1577 END IF;
1578 FOR l_lang_rec IN get_languages LOOP
1579 l_ieat_rec.language := l_lang_rec.language_code;
1580 INSERT INTO IEX_EXT_AGNCY_TL(
1581 external_agency_id,
1582 description,
1583 language,
1584 source_lang,
1585 sfwt_flag,
1586 created_by,
1587 creation_date,
1588 last_updated_by,
1589 last_update_date,
1590 last_update_login)
1591 VALUES (
1592 l_ieat_rec.external_agency_id,
1593 l_ieat_rec.description,
1594 l_ieat_rec.language,
1595 l_ieat_rec.source_lang,
1596 l_ieat_rec.sfwt_flag,
1597 l_ieat_rec.created_by,
1598 l_ieat_rec.creation_date,
1599 l_ieat_rec.last_updated_by,
1600 l_ieat_rec.last_update_date,
1601 l_ieat_rec.last_update_login);
1602 END LOOP;
1603 -- Set OUT NOCOPY values
1604 x_ieat_rec := l_ieat_rec;
1605 x_return_status := l_return_status;
1606 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1607 EXCEPTION
1608 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1609 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1610 (
1611 l_api_name,
1612 G_PKG_NAME,
1613 'OKC_API.G_RET_STS_ERROR',
1614 x_msg_count,
1615 x_msg_data,
1616 '_PVT'
1617 );
1618 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1619 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1620 (
1621 l_api_name,
1622 G_PKG_NAME,
1623 'OKC_API.G_RET_STS_UNEXP_ERROR',
1624 x_msg_count,
1625 x_msg_data,
1626 '_PVT'
1627 );
1628 WHEN OTHERS THEN
1629 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1630 (
1631 l_api_name,
1632 G_PKG_NAME,
1633 'OTHERS',
1634 x_msg_count,
1635 x_msg_data,
1636 '_PVT'
1637 );
1638 END insert_row;
1639 -------------------------------------
1640 -- insert_row for :IEX_EXT_AGNCY_V --
1641 -------------------------------------
1642 PROCEDURE insert_row(
1643 p_api_version IN NUMBER,
1644 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1645 x_return_status OUT NOCOPY VARCHAR2,
1646 x_msg_count OUT NOCOPY NUMBER,
1647 x_msg_data OUT NOCOPY VARCHAR2,
1648 p_ieav_rec IN ieav_rec_type,
1649 x_ieav_rec OUT NOCOPY ieav_rec_type) AS
1650
1651 l_api_version CONSTANT NUMBER := 1;
1652 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1653 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1654 l_ieav_rec ieav_rec_type := p_ieav_rec;
1655 l_def_ieav_rec ieav_rec_type;
1656 l_iea_rec iea_rec_type;
1657 lx_iea_rec iea_rec_type;
1658 l_ieat_rec ieat_rec_type;
1659 lx_ieat_rec ieat_rec_type;
1660 -------------------------------
1661 -- FUNCTION fill_who_columns --
1662 -------------------------------
1663 FUNCTION fill_who_columns (
1664 p_ieav_rec IN ieav_rec_type
1665 ) RETURN ieav_rec_type AS
1666 l_ieav_rec ieav_rec_type := p_ieav_rec;
1667 BEGIN
1668 l_ieav_rec.CREATION_DATE := SYSDATE;
1669 l_ieav_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1670 l_ieav_rec.LAST_UPDATE_DATE := l_ieav_rec.CREATION_DATE;
1671 l_ieav_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1672 l_ieav_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1673 RETURN(l_ieav_rec);
1674 END fill_who_columns;
1675 ----------------------------------------
1676 -- Set_Attributes for:IEX_EXT_AGNCY_V --
1677 ----------------------------------------
1678 FUNCTION Set_Attributes (
1679 p_ieav_rec IN ieav_rec_type,
1680 x_ieav_rec OUT NOCOPY ieav_rec_type
1681 ) RETURN VARCHAR2 AS
1682 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1683 BEGIN
1684 x_ieav_rec := p_ieav_rec;
1685 x_ieav_rec.OBJECT_VERSION_NUMBER := 1;
1686 x_ieav_rec.SFWT_FLAG := 'N';
1687 RETURN(l_return_status);
1688 END Set_Attributes;
1689 BEGIN
1690 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1691 G_PKG_NAME,
1692 p_init_msg_list,
1693 l_api_version,
1694 p_api_version,
1695 '_PVT',
1696 x_return_status);
1697 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1698 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1699 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1700 RAISE OKC_API.G_EXCEPTION_ERROR;
1701 END IF;
1702 l_ieav_rec := null_out_defaults(p_ieav_rec);
1703 -- Set primary key value
1704 l_ieav_rec.EXTERNAL_AGENCY_ID := get_seq_id;
1705 -- Setting item attributes
1706 l_return_Status := Set_Attributes(
1707 l_ieav_rec, -- IN
1708 l_def_ieav_rec); -- OUT NOCOPY
1709 --- If any errors happen abort API
1710 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1711 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1712 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1713 RAISE OKC_API.G_EXCEPTION_ERROR;
1714 END IF;
1715 l_def_ieav_rec := fill_who_columns(l_def_ieav_rec);
1716 --- Validate all non-missing attributes (Item Level Validation)
1717 l_return_status := Validate_Attributes(l_def_ieav_rec);
1718 --- If any errors happen abort API
1719 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1720 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1721 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1722 RAISE OKC_API.G_EXCEPTION_ERROR;
1723 END IF;
1724 l_return_status := Validate_Record(l_def_ieav_rec);
1725 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1726 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1727 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1728 RAISE OKC_API.G_EXCEPTION_ERROR;
1729 END IF;
1730 -----------------------------------------
1731 -- Move VIEW record to "Child" records --
1732 -----------------------------------------
1733 migrate(l_def_ieav_rec, l_iea_rec);
1734 migrate(l_def_ieav_rec, l_ieat_rec);
1735 -----------------------------------------------
1736 -- Call the INSERT_ROW for each child record --
1737 -----------------------------------------------
1738 insert_row(
1739 p_init_msg_list,
1740 l_return_status,
1741 x_msg_count,
1742 x_msg_data,
1743 l_iea_rec,
1744 lx_iea_rec
1745 );
1746 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1747 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1748 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1749 RAISE OKC_API.G_EXCEPTION_ERROR;
1750 END IF;
1751 migrate(lx_iea_rec, l_def_ieav_rec);
1752 insert_row(
1753 p_init_msg_list,
1754 l_return_status,
1755 x_msg_count,
1756 x_msg_data,
1757 l_ieat_rec,
1758 lx_ieat_rec
1759 );
1760 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1761 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1762 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1763 RAISE OKC_API.G_EXCEPTION_ERROR;
1764 END IF;
1765 migrate(lx_ieat_rec, l_def_ieav_rec);
1766 -- Set OUT NOCOPY values
1767 x_ieav_rec := l_def_ieav_rec;
1768 x_return_status := l_return_status;
1769 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1770 EXCEPTION
1771 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1772 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1773 (
1774 l_api_name,
1775 G_PKG_NAME,
1776 'OKC_API.G_RET_STS_ERROR',
1777 x_msg_count,
1778 x_msg_data,
1779 '_PVT'
1780 );
1781 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1782 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1783 (
1784 l_api_name,
1785 G_PKG_NAME,
1786 'OKC_API.G_RET_STS_UNEXP_ERROR',
1787 x_msg_count,
1788 x_msg_data,
1789 '_PVT'
1790 );
1791 WHEN OTHERS THEN
1792 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1793 (
1794 l_api_name,
1795 G_PKG_NAME,
1796 'OTHERS',
1797 x_msg_count,
1798 x_msg_data,
1799 '_PVT'
1800 );
1801 END insert_row;
1802 ----------------------------------------
1803 -- PL/SQL TBL insert_row for:IEAV_TBL --
1804 ----------------------------------------
1805 PROCEDURE insert_row(
1806 p_api_version IN NUMBER,
1807 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1808 x_return_status OUT NOCOPY VARCHAR2,
1809 x_msg_count OUT NOCOPY NUMBER,
1810 x_msg_data OUT NOCOPY VARCHAR2,
1811 p_ieav_tbl IN ieav_tbl_type,
1812 x_ieav_tbl OUT NOCOPY ieav_tbl_type,
1813 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) AS
1814
1815 l_api_version CONSTANT NUMBER := 1;
1816 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1817 i NUMBER := 0;
1818 BEGIN
1819 OKC_API.init_msg_list(p_init_msg_list);
1820 -- Make sure PL/SQL table has records in it before passing
1821 IF (p_ieav_tbl.COUNT > 0) THEN
1822 i := p_ieav_tbl.FIRST;
1823 LOOP
1824 DECLARE
1825 l_error_rec OKL_API.ERROR_REC_TYPE;
1826 BEGIN
1827 l_error_rec.api_name := l_api_name;
1828 l_error_rec.api_package := G_PKG_NAME;
1829 l_error_rec.idx := i;
1830 insert_row (
1831 p_api_version => p_api_version,
1832 p_init_msg_list => OKC_API.G_FALSE,
1833 x_return_status => l_error_rec.error_type,
1834 x_msg_count => l_error_rec.msg_count,
1835 x_msg_data => l_error_rec.msg_data,
1836 p_ieav_rec => p_ieav_tbl(i),
1837 x_ieav_rec => x_ieav_tbl(i));
1838 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
1839 l_error_rec.sqlcode := SQLCODE;
1840 load_error_tbl(l_error_rec, px_error_tbl);
1841 ELSE
1842 x_msg_count := l_error_rec.msg_count;
1843 x_msg_data := l_error_rec.msg_data;
1844 END IF;
1845 EXCEPTION
1846 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1847 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
1848 l_error_rec.sqlcode := SQLCODE;
1849 load_error_tbl(l_error_rec, px_error_tbl);
1850 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1851 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
1852 l_error_rec.sqlcode := SQLCODE;
1853 load_error_tbl(l_error_rec, px_error_tbl);
1854 WHEN OTHERS THEN
1855 l_error_rec.error_type := 'OTHERS';
1856 l_error_rec.sqlcode := SQLCODE;
1857 load_error_tbl(l_error_rec, px_error_tbl);
1858 END;
1859 EXIT WHEN (i = p_ieav_tbl.LAST);
1860 i := p_ieav_tbl.NEXT(i);
1861 END LOOP;
1862 END IF;
1863 -- Loop through the error_tbl to find the error with the highest severity
1864 -- and return it.
1865 x_return_status := find_highest_exception(px_error_tbl);
1866 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1867 EXCEPTION
1868 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1869 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1870 (
1871 l_api_name,
1872 G_PKG_NAME,
1873 'OKC_API.G_RET_STS_ERROR',
1874 x_msg_count,
1875 x_msg_data,
1876 '_PVT'
1877 );
1878 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1879 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1880 (
1881 l_api_name,
1882 G_PKG_NAME,
1883 'OKC_API.G_RET_STS_UNEXP_ERROR',
1884 x_msg_count,
1885 x_msg_data,
1886 '_PVT'
1887 );
1888 WHEN OTHERS THEN
1889 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1890 (
1891 l_api_name,
1892 G_PKG_NAME,
1893 'OTHERS',
1894 x_msg_count,
1895 x_msg_data,
1896 '_PVT'
1897 );
1898 END insert_row;
1899
1900 ----------------------------------------
1901 -- PL/SQL TBL insert_row for:IEAV_TBL --
1902 ----------------------------------------
1903 PROCEDURE insert_row(
1904 p_api_version IN NUMBER,
1905 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1906 x_return_status OUT NOCOPY VARCHAR2,
1907 x_msg_count OUT NOCOPY NUMBER,
1908 x_msg_data OUT NOCOPY VARCHAR2,
1909 p_ieav_tbl IN ieav_tbl_type,
1910 x_ieav_tbl OUT NOCOPY ieav_tbl_type) AS
1911
1912 l_api_version CONSTANT NUMBER := 1;
1913 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1914 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1915 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1916 BEGIN
1917 OKC_API.init_msg_list(p_init_msg_list);
1918 -- Make sure PL/SQL table has records in it before passing
1919 IF (p_ieav_tbl.COUNT > 0) THEN
1920 insert_row (
1921 p_api_version => p_api_version,
1922 p_init_msg_list => OKC_API.G_FALSE,
1923 x_return_status => x_return_status,
1924 x_msg_count => x_msg_count,
1925 x_msg_data => x_msg_data,
1926 p_ieav_tbl => p_ieav_tbl,
1927 x_ieav_tbl => x_ieav_tbl,
1928 px_error_tbl => l_error_tbl);
1929 END IF;
1930 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1931 EXCEPTION
1932 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1933 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1934 (
1935 l_api_name,
1936 G_PKG_NAME,
1937 'OKC_API.G_RET_STS_ERROR',
1938 x_msg_count,
1939 x_msg_data,
1940 '_PVT'
1941 );
1942 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1943 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1944 (
1945 l_api_name,
1946 G_PKG_NAME,
1947 'OKC_API.G_RET_STS_UNEXP_ERROR',
1948 x_msg_count,
1949 x_msg_data,
1950 '_PVT'
1951 );
1952 WHEN OTHERS THEN
1953 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1954 (
1955 l_api_name,
1956 G_PKG_NAME,
1957 'OTHERS',
1958 x_msg_count,
1959 x_msg_data,
1960 '_PVT'
1961 );
1962 END insert_row;
1963
1964 ---------------------------------------------------------------------------
1965 -- PROCEDURE lock_row
1966 ---------------------------------------------------------------------------
1967 ----------------------------------
1968 -- lock_row for:IEX_EXT_AGNCY_B --
1969 ----------------------------------
1970 PROCEDURE lock_row(
1971 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1972 x_return_status OUT NOCOPY VARCHAR2,
1973 x_msg_count OUT NOCOPY NUMBER,
1974 x_msg_data OUT NOCOPY VARCHAR2,
1975 p_iea_rec IN iea_rec_type) AS
1976
1977 E_Resource_Busy EXCEPTION;
1978 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1979 CURSOR lock_csr (p_iea_rec IN iea_rec_type) IS
1980 SELECT OBJECT_VERSION_NUMBER
1981 FROM IEX_EXT_AGNCY_B
1982 WHERE EXTERNAL_AGENCY_ID = p_iea_rec.external_agency_id
1983 AND OBJECT_VERSION_NUMBER = p_iea_rec.object_version_number
1984 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1985
1986 CURSOR lchk_csr (p_iea_rec IN iea_rec_type) IS
1987 SELECT OBJECT_VERSION_NUMBER
1988 FROM IEX_EXT_AGNCY_B
1989 WHERE EXTERNAL_AGENCY_ID = p_iea_rec.external_agency_id;
1990 l_api_version CONSTANT NUMBER := 1;
1991 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
1992 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1993 l_object_version_number IEX_EXT_AGNCY_B.OBJECT_VERSION_NUMBER%TYPE;
1994 lc_object_version_number IEX_EXT_AGNCY_B.OBJECT_VERSION_NUMBER%TYPE;
1995 l_row_notfound BOOLEAN := FALSE;
1996 lc_row_notfound BOOLEAN := FALSE;
1997 BEGIN
1998 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1999 p_init_msg_list,
2000 '_PVT',
2001 x_return_status);
2002 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2003 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2004 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2005 RAISE OKC_API.G_EXCEPTION_ERROR;
2006 END IF;
2007 BEGIN
2008 OPEN lock_csr(p_iea_rec);
2009 FETCH lock_csr INTO l_object_version_number;
2010 l_row_notfound := lock_csr%NOTFOUND;
2011 CLOSE lock_csr;
2012 EXCEPTION
2013 WHEN E_Resource_Busy THEN
2014 IF (lock_csr%ISOPEN) THEN
2015 CLOSE lock_csr;
2016 END IF;
2017 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2018 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2019 END;
2020
2021 IF ( l_row_notfound ) THEN
2022 OPEN lchk_csr(p_iea_rec);
2023 FETCH lchk_csr INTO lc_object_version_number;
2024 lc_row_notfound := lchk_csr%NOTFOUND;
2025 CLOSE lchk_csr;
2026 END IF;
2027 IF (lc_row_notfound) THEN
2028 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2029 RAISE OKC_API.G_EXCEPTION_ERROR;
2030 ELSIF lc_object_version_number > p_iea_rec.object_version_number THEN
2031 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2032 RAISE OKC_API.G_EXCEPTION_ERROR;
2033 ELSIF lc_object_version_number <> p_iea_rec.object_version_number THEN
2034 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2035 RAISE OKC_API.G_EXCEPTION_ERROR;
2036 ELSIF lc_object_version_number = -1 THEN
2037 OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2038 RAISE OKC_API.G_EXCEPTION_ERROR;
2039 END IF;
2040 x_return_status := l_return_status;
2041 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2042 EXCEPTION
2043 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2044 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2045 (
2046 l_api_name,
2047 G_PKG_NAME,
2048 'OKC_API.G_RET_STS_ERROR',
2049 x_msg_count,
2050 x_msg_data,
2051 '_PVT'
2052 );
2053 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2054 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2055 (
2056 l_api_name,
2057 G_PKG_NAME,
2058 'OKC_API.G_RET_STS_UNEXP_ERROR',
2059 x_msg_count,
2060 x_msg_data,
2061 '_PVT'
2062 );
2063 WHEN OTHERS THEN
2064 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2065 (
2066 l_api_name,
2067 G_PKG_NAME,
2068 'OTHERS',
2069 x_msg_count,
2070 x_msg_data,
2071 '_PVT'
2072 );
2073 END lock_row;
2074 -----------------------------------
2075 -- lock_row for:IEX_EXT_AGNCY_TL --
2076 -----------------------------------
2077 PROCEDURE lock_row(
2078 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2079 x_return_status OUT NOCOPY VARCHAR2,
2080 x_msg_count OUT NOCOPY NUMBER,
2081 x_msg_data OUT NOCOPY VARCHAR2,
2082 p_ieat_rec IN ieat_rec_type) AS
2083
2084 E_Resource_Busy EXCEPTION;
2085 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2086 CURSOR lock_csr (p_ieat_rec IN ieat_rec_type) IS
2087 SELECT *
2088 FROM IEX_EXT_AGNCY_TL
2089 WHERE EXTERNAL_AGENCY_ID = p_ieat_rec.external_agency_id
2090 FOR UPDATE NOWAIT;
2091
2092 l_api_version CONSTANT NUMBER := 1;
2093 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
2094 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2095 l_lock_var lock_csr%ROWTYPE;
2096 l_row_notfound BOOLEAN := FALSE;
2097 lc_row_notfound BOOLEAN := FALSE;
2098 BEGIN
2099 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2100 p_init_msg_list,
2101 '_PVT',
2102 x_return_status);
2103 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2104 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2105 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2106 RAISE OKC_API.G_EXCEPTION_ERROR;
2107 END IF;
2108 BEGIN
2109 OPEN lock_csr(p_ieat_rec);
2110 FETCH lock_csr INTO l_lock_var;
2111 l_row_notfound := lock_csr%NOTFOUND;
2112 CLOSE lock_csr;
2113 EXCEPTION
2114 WHEN E_Resource_Busy THEN
2115 IF (lock_csr%ISOPEN) THEN
2116 CLOSE lock_csr;
2117 END IF;
2118 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2119 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2120 END;
2121
2122 IF ( l_row_notfound ) THEN
2123 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2124 RAISE OKC_API.G_EXCEPTION_ERROR;
2125 END IF;
2126 x_return_status := l_return_status;
2127 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2128 EXCEPTION
2129 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2130 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2131 (
2132 l_api_name,
2133 G_PKG_NAME,
2134 'OKC_API.G_RET_STS_ERROR',
2135 x_msg_count,
2136 x_msg_data,
2137 '_PVT'
2138 );
2139 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2140 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2141 (
2142 l_api_name,
2143 G_PKG_NAME,
2144 'OKC_API.G_RET_STS_UNEXP_ERROR',
2145 x_msg_count,
2146 x_msg_data,
2147 '_PVT'
2148 );
2149 WHEN OTHERS THEN
2150 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2151 (
2152 l_api_name,
2153 G_PKG_NAME,
2154 'OTHERS',
2155 x_msg_count,
2156 x_msg_data,
2157 '_PVT'
2158 );
2159 END lock_row;
2160 -----------------------------------
2161 -- lock_row for: IEX_EXT_AGNCY_V --
2162 -----------------------------------
2163 PROCEDURE lock_row(
2164 p_api_version IN NUMBER,
2165 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2166 x_return_status OUT NOCOPY VARCHAR2,
2167 x_msg_count OUT NOCOPY NUMBER,
2168 x_msg_data OUT NOCOPY VARCHAR2,
2169 p_ieav_rec IN ieav_rec_type) AS
2170
2171 l_api_version CONSTANT NUMBER := 1;
2172 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
2173 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2174 l_iea_rec iea_rec_type;
2175 l_ieat_rec ieat_rec_type;
2176 BEGIN
2177 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2178 G_PKG_NAME,
2179 p_init_msg_list,
2180 l_api_version,
2181 p_api_version,
2182 '_PVT',
2183 x_return_status);
2184 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2185 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2186 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2187 RAISE OKC_API.G_EXCEPTION_ERROR;
2188 END IF;
2189 -----------------------------------------
2190 -- Move VIEW record to "Child" records --
2191 -----------------------------------------
2192 migrate(p_ieav_rec, l_iea_rec);
2193 migrate(p_ieav_rec, l_ieat_rec);
2194 ---------------------------------------------
2195 -- Call the LOCK_ROW for each child record --
2196 ---------------------------------------------
2197 lock_row(
2198 p_init_msg_list,
2199 l_return_status,
2200 x_msg_count,
2201 x_msg_data,
2202 l_iea_rec
2203 );
2204 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2205 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2206 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2207 RAISE OKC_API.G_EXCEPTION_ERROR;
2208 END IF;
2209 lock_row(
2210 p_init_msg_list,
2211 l_return_status,
2212 x_msg_count,
2213 x_msg_data,
2214 l_ieat_rec
2215 );
2216 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2217 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2218 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2219 RAISE OKC_API.G_EXCEPTION_ERROR;
2220 END IF;
2221 x_return_status := l_return_status;
2222 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2223 EXCEPTION
2224 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2225 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2226 (
2227 l_api_name,
2228 G_PKG_NAME,
2229 'OKC_API.G_RET_STS_ERROR',
2230 x_msg_count,
2231 x_msg_data,
2232 '_PVT'
2233 );
2234 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2235 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2236 (
2237 l_api_name,
2238 G_PKG_NAME,
2239 'OKC_API.G_RET_STS_UNEXP_ERROR',
2240 x_msg_count,
2241 x_msg_data,
2242 '_PVT'
2243 );
2244 WHEN OTHERS THEN
2245 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2246 (
2247 l_api_name,
2248 G_PKG_NAME,
2249 'OTHERS',
2250 x_msg_count,
2251 x_msg_data,
2252 '_PVT'
2253 );
2254 END lock_row;
2255 --------------------------------------
2256 -- PL/SQL TBL lock_row for:IEAV_TBL --
2257 --------------------------------------
2258 PROCEDURE lock_row(
2259 p_api_version IN NUMBER,
2260 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2261 x_return_status OUT NOCOPY VARCHAR2,
2262 x_msg_count OUT NOCOPY NUMBER,
2263 x_msg_data OUT NOCOPY VARCHAR2,
2264 p_ieav_tbl IN ieav_tbl_type,
2265 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) AS
2266
2267 l_api_version CONSTANT NUMBER := 1;
2268 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
2269 i NUMBER := 0;
2270 BEGIN
2271 OKC_API.init_msg_list(p_init_msg_list);
2272 -- Make sure PL/SQL table has recrods in it before passing
2273 IF (p_ieav_tbl.COUNT > 0) THEN
2274 i := p_ieav_tbl.FIRST;
2275 LOOP
2276 DECLARE
2277 l_error_rec OKL_API.ERROR_REC_TYPE;
2278 BEGIN
2279 l_error_rec.api_name := l_api_name;
2280 l_error_rec.api_package := G_PKG_NAME;
2281 l_error_rec.idx := i;
2282 lock_row(
2283 p_api_version => p_api_version,
2284 p_init_msg_list => OKC_API.G_FALSE,
2285 x_return_status => l_error_rec.error_type,
2286 x_msg_count => l_error_rec.msg_count,
2287 x_msg_data => l_error_rec.msg_data,
2288 p_ieav_rec => p_ieav_tbl(i));
2289 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
2290 l_error_rec.sqlcode := SQLCODE;
2291 load_error_tbl(l_error_rec, px_error_tbl);
2292 ELSE
2293 x_msg_count := l_error_rec.msg_count;
2294 x_msg_data := l_error_rec.msg_data;
2295 END IF;
2296 EXCEPTION
2297 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2298 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
2299 l_error_rec.sqlcode := SQLCODE;
2300 load_error_tbl(l_error_rec, px_error_tbl);
2301 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2302 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
2303 l_error_rec.sqlcode := SQLCODE;
2304 load_error_tbl(l_error_rec, px_error_tbl);
2305 WHEN OTHERS THEN
2306 l_error_rec.error_type := 'OTHERS';
2307 l_error_rec.sqlcode := SQLCODE;
2308 load_error_tbl(l_error_rec, px_error_tbl);
2309 END;
2310 EXIT WHEN (i = p_ieav_tbl.LAST);
2311 i := p_ieav_tbl.NEXT(i);
2312 END LOOP;
2313 END IF;
2314 -- Loop through the error_tbl to find the error with the highest severity
2315 -- and return it.
2316 x_return_status := find_highest_exception(px_error_tbl);
2317 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2318 EXCEPTION
2319 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2320 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2321 (
2322 l_api_name,
2323 G_PKG_NAME,
2324 'OKC_API.G_RET_STS_ERROR',
2325 x_msg_count,
2326 x_msg_data,
2327 '_PVT'
2328 );
2329 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2330 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2331 (
2332 l_api_name,
2333 G_PKG_NAME,
2334 'OKC_API.G_RET_STS_UNEXP_ERROR',
2335 x_msg_count,
2336 x_msg_data,
2337 '_PVT'
2338 );
2339 WHEN OTHERS THEN
2340 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2341 (
2342 l_api_name,
2343 G_PKG_NAME,
2344 'OTHERS',
2345 x_msg_count,
2346 x_msg_data,
2347 '_PVT'
2348 );
2349 END lock_row;
2350 --------------------------------------
2351 -- PL/SQL TBL lock_row for:IEAV_TBL --
2352 --------------------------------------
2353 PROCEDURE lock_row(
2354 p_api_version IN NUMBER,
2355 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2356 x_return_status OUT NOCOPY VARCHAR2,
2357 x_msg_count OUT NOCOPY NUMBER,
2358 x_msg_data OUT NOCOPY VARCHAR2,
2359 p_ieav_tbl IN ieav_tbl_type) AS
2360
2361 l_api_version CONSTANT NUMBER := 1;
2362 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2363 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2364 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2365 BEGIN
2366 OKC_API.init_msg_list(p_init_msg_list);
2367 -- Make sure PL/SQL table has recrods in it before passing
2368 IF (p_ieav_tbl.COUNT > 0) THEN
2369 lock_row(
2370 p_api_version => p_api_version,
2371 p_init_msg_list => OKC_API.G_FALSE,
2372 x_return_status => x_return_status,
2373 x_msg_count => x_msg_count,
2374 x_msg_data => x_msg_data,
2375 p_ieav_tbl => p_ieav_tbl,
2376 px_error_tbl => l_error_tbl);
2377 END IF;
2378 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2379 EXCEPTION
2380 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2381 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2382 (
2383 l_api_name,
2384 G_PKG_NAME,
2385 'OKC_API.G_RET_STS_ERROR',
2386 x_msg_count,
2387 x_msg_data,
2388 '_PVT'
2389 );
2390 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2391 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2392 (
2393 l_api_name,
2394 G_PKG_NAME,
2395 'OKC_API.G_RET_STS_UNEXP_ERROR',
2396 x_msg_count,
2397 x_msg_data,
2398 '_PVT'
2399 );
2400 WHEN OTHERS THEN
2401 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2402 (
2403 l_api_name,
2404 G_PKG_NAME,
2405 'OTHERS',
2406 x_msg_count,
2407 x_msg_data,
2408 '_PVT'
2409 );
2410 END lock_row;
2411 ---------------------------------------------------------------------------
2412 -- PROCEDURE update_row
2413 ---------------------------------------------------------------------------
2414 ------------------------------------
2415 -- update_row for:IEX_EXT_AGNCY_B --
2416 ------------------------------------
2417 PROCEDURE update_row(
2418 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2419 x_return_status OUT NOCOPY VARCHAR2,
2420 x_msg_count OUT NOCOPY NUMBER,
2421 x_msg_data OUT NOCOPY VARCHAR2,
2422 p_iea_rec IN iea_rec_type,
2423 x_iea_rec OUT NOCOPY iea_rec_type) AS
2424
2425 l_api_version CONSTANT NUMBER := 1;
2426 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
2427 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2428 l_iea_rec iea_rec_type := p_iea_rec;
2429 l_def_iea_rec iea_rec_type;
2430 l_row_notfound BOOLEAN := TRUE;
2431 ----------------------------------
2432 -- FUNCTION populate_new_record --
2433 ----------------------------------
2434 FUNCTION populate_new_record (
2435 p_iea_rec IN iea_rec_type,
2436 x_iea_rec OUT NOCOPY iea_rec_type
2437 ) RETURN VARCHAR2 AS
2438 l_iea_rec iea_rec_type;
2439 l_row_notfound BOOLEAN := TRUE;
2440 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2441 BEGIN
2442 x_iea_rec := p_iea_rec;
2443 -- Get current database values
2444 l_iea_rec := get_rec(p_iea_rec, l_return_status);
2445 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2446 IF (x_iea_rec.external_agency_id = OKC_API.G_MISS_NUM)
2447 THEN
2448 x_iea_rec.external_agency_id := l_iea_rec.external_agency_id;
2449 END IF;
2450 IF (x_iea_rec.external_agency_name = OKC_API.G_MISS_CHAR)
2451 THEN
2452 x_iea_rec.external_agency_name := l_iea_rec.external_agency_name;
2453 END IF;
2454 IF (x_iea_rec.vendor_id = OKC_API.G_MISS_NUM)
2455 THEN
2456 x_iea_rec.vendor_id := l_iea_rec.vendor_id;
2457 END IF;
2458 IF (x_iea_rec.vendor_site_id = OKC_API.G_MISS_NUM)
2459 THEN
2460 x_iea_rec.vendor_site_id := l_iea_rec.vendor_site_id;
2461 END IF;
2462 IF (x_iea_rec.rank = OKC_API.G_MISS_NUM)
2463 THEN
2464 x_iea_rec.rank := l_iea_rec.rank;
2465 END IF;
2466 IF (x_iea_rec.effective_start_date = OKC_API.G_MISS_DATE)
2467 THEN
2468 x_iea_rec.effective_start_date := l_iea_rec.effective_start_date;
2469 END IF;
2470 IF (x_iea_rec.effective_end_date = OKC_API.G_MISS_DATE)
2471 THEN
2472 x_iea_rec.effective_end_date := l_iea_rec.effective_end_date;
2473 END IF;
2474 IF (x_iea_rec.object_version_number = OKC_API.G_MISS_NUM)
2475 THEN
2476 x_iea_rec.object_version_number := l_iea_rec.object_version_number;
2477 END IF;
2478 IF (x_iea_rec.org_id = OKC_API.G_MISS_NUM)
2479 THEN
2480 x_iea_rec.org_id := l_iea_rec.org_id;
2481 END IF;
2482 IF (x_iea_rec.attribute_category = OKC_API.G_MISS_CHAR)
2483 THEN
2484 x_iea_rec.attribute_category := l_iea_rec.attribute_category;
2485 END IF;
2486 IF (x_iea_rec.attribute1 = OKC_API.G_MISS_CHAR)
2487 THEN
2488 x_iea_rec.attribute1 := l_iea_rec.attribute1;
2489 END IF;
2490 IF (x_iea_rec.attribute2 = OKC_API.G_MISS_CHAR)
2491 THEN
2492 x_iea_rec.attribute2 := l_iea_rec.attribute2;
2493 END IF;
2494 IF (x_iea_rec.attribute3 = OKC_API.G_MISS_CHAR)
2495 THEN
2496 x_iea_rec.attribute3 := l_iea_rec.attribute3;
2497 END IF;
2498 IF (x_iea_rec.attribute4 = OKC_API.G_MISS_CHAR)
2499 THEN
2500 x_iea_rec.attribute4 := l_iea_rec.attribute4;
2501 END IF;
2502 IF (x_iea_rec.attribute5 = OKC_API.G_MISS_CHAR)
2503 THEN
2504 x_iea_rec.attribute5 := l_iea_rec.attribute5;
2505 END IF;
2506 IF (x_iea_rec.attribute6 = OKC_API.G_MISS_CHAR)
2507 THEN
2508 x_iea_rec.attribute6 := l_iea_rec.attribute6;
2509 END IF;
2510 IF (x_iea_rec.attribute7 = OKC_API.G_MISS_CHAR)
2511 THEN
2512 x_iea_rec.attribute7 := l_iea_rec.attribute7;
2513 END IF;
2514 IF (x_iea_rec.attribute8 = OKC_API.G_MISS_CHAR)
2515 THEN
2516 x_iea_rec.attribute8 := l_iea_rec.attribute8;
2517 END IF;
2518 IF (x_iea_rec.attribute9 = OKC_API.G_MISS_CHAR)
2519 THEN
2520 x_iea_rec.attribute9 := l_iea_rec.attribute9;
2521 END IF;
2522 IF (x_iea_rec.attribute10 = OKC_API.G_MISS_CHAR)
2523 THEN
2524 x_iea_rec.attribute10 := l_iea_rec.attribute10;
2525 END IF;
2526 IF (x_iea_rec.attribute11 = OKC_API.G_MISS_CHAR)
2527 THEN
2528 x_iea_rec.attribute11 := l_iea_rec.attribute11;
2529 END IF;
2530 IF (x_iea_rec.attribute12 = OKC_API.G_MISS_CHAR)
2531 THEN
2532 x_iea_rec.attribute12 := l_iea_rec.attribute12;
2533 END IF;
2534 IF (x_iea_rec.attribute13 = OKC_API.G_MISS_CHAR)
2535 THEN
2536 x_iea_rec.attribute13 := l_iea_rec.attribute13;
2537 END IF;
2538 IF (x_iea_rec.attribute14 = OKC_API.G_MISS_CHAR)
2539 THEN
2540 x_iea_rec.attribute14 := l_iea_rec.attribute14;
2541 END IF;
2542 IF (x_iea_rec.attribute15 = OKC_API.G_MISS_CHAR)
2543 THEN
2544 x_iea_rec.attribute15 := l_iea_rec.attribute15;
2545 END IF;
2546 IF (x_iea_rec.created_by = OKC_API.G_MISS_NUM)
2547 THEN
2548 x_iea_rec.created_by := l_iea_rec.created_by;
2549 END IF;
2550 IF (x_iea_rec.creation_date = OKC_API.G_MISS_DATE)
2551 THEN
2552 x_iea_rec.creation_date := l_iea_rec.creation_date;
2553 END IF;
2554 IF (x_iea_rec.last_updated_by = OKC_API.G_MISS_NUM)
2555 THEN
2556 x_iea_rec.last_updated_by := l_iea_rec.last_updated_by;
2557 END IF;
2558 IF (x_iea_rec.last_update_date = OKC_API.G_MISS_DATE)
2559 THEN
2560 x_iea_rec.last_update_date := l_iea_rec.last_update_date;
2561 END IF;
2562 IF (x_iea_rec.last_update_login = OKC_API.G_MISS_NUM)
2563 THEN
2564 x_iea_rec.last_update_login := l_iea_rec.last_update_login;
2565 END IF;
2566 END IF;
2567 RETURN(l_return_status);
2568 END populate_new_record;
2569 ----------------------------------------
2570 -- Set_Attributes for:IEX_EXT_AGNCY_B --
2571 ----------------------------------------
2572 FUNCTION Set_Attributes (
2573 p_iea_rec IN iea_rec_type,
2574 x_iea_rec OUT NOCOPY iea_rec_type
2575 ) RETURN VARCHAR2 AS
2576 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2577 BEGIN
2578 x_iea_rec := p_iea_rec;
2579 x_iea_rec.OBJECT_VERSION_NUMBER := p_iea_rec.OBJECT_VERSION_NUMBER + 1;
2580 RETURN(l_return_status);
2581 END Set_Attributes;
2582 BEGIN
2583 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2584 p_init_msg_list,
2585 '_PVT',
2586 x_return_status);
2587 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2588 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2589 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2590 RAISE OKC_API.G_EXCEPTION_ERROR;
2591 END IF;
2592 --- Setting item attributes
2593 l_return_status := Set_Attributes(
2594 p_iea_rec, -- IN
2595 l_iea_rec); -- OUT NOCOPY
2596 --- If any errors happen abort API
2597 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2598 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2599 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2600 RAISE OKC_API.G_EXCEPTION_ERROR;
2601 END IF;
2602 l_return_status := populate_new_record(l_iea_rec, l_def_iea_rec);
2603 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2604 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2605 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2606 RAISE OKC_API.G_EXCEPTION_ERROR;
2607 END IF;
2608 UPDATE IEX_EXT_AGNCY_B
2609 SET EXTERNAL_AGENCY_NAME = l_def_iea_rec.external_agency_name,
2610 VENDOR_ID = l_def_iea_rec.vendor_id,
2611 VENDOR_SITE_ID = l_def_iea_rec.vendor_site_id,
2612 RANK = l_def_iea_rec.rank,
2613 EFFECTIVE_START_DATE = l_def_iea_rec.effective_start_date,
2614 EFFECTIVE_END_DATE = l_def_iea_rec.effective_end_date,
2615 OBJECT_VERSION_NUMBER = l_def_iea_rec.object_version_number,
2616 ORG_ID = l_def_iea_rec.org_id,
2617 ATTRIBUTE_CATEGORY = l_def_iea_rec.attribute_category,
2618 ATTRIBUTE1 = l_def_iea_rec.attribute1,
2619 ATTRIBUTE2 = l_def_iea_rec.attribute2,
2620 ATTRIBUTE3 = l_def_iea_rec.attribute3,
2621 ATTRIBUTE4 = l_def_iea_rec.attribute4,
2622 ATTRIBUTE5 = l_def_iea_rec.attribute5,
2623 ATTRIBUTE6 = l_def_iea_rec.attribute6,
2624 ATTRIBUTE7 = l_def_iea_rec.attribute7,
2625 ATTRIBUTE8 = l_def_iea_rec.attribute8,
2626 ATTRIBUTE9 = l_def_iea_rec.attribute9,
2627 ATTRIBUTE10 = l_def_iea_rec.attribute10,
2628 ATTRIBUTE11 = l_def_iea_rec.attribute11,
2629 ATTRIBUTE12 = l_def_iea_rec.attribute12,
2630 ATTRIBUTE13 = l_def_iea_rec.attribute13,
2631 ATTRIBUTE14 = l_def_iea_rec.attribute14,
2632 ATTRIBUTE15 = l_def_iea_rec.attribute15,
2633 CREATED_BY = l_def_iea_rec.created_by,
2634 CREATION_DATE = l_def_iea_rec.creation_date,
2635 LAST_UPDATED_BY = l_def_iea_rec.last_updated_by,
2636 LAST_UPDATE_DATE = l_def_iea_rec.last_update_date,
2637 LAST_UPDATE_LOGIN = l_def_iea_rec.last_update_login
2638 WHERE EXTERNAL_AGENCY_ID = l_def_iea_rec.external_agency_id;
2639
2640 x_iea_rec := l_iea_rec;
2641 x_return_status := l_return_status;
2642 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2643 EXCEPTION
2644 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2645 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2646 (
2647 l_api_name,
2648 G_PKG_NAME,
2649 'OKC_API.G_RET_STS_ERROR',
2650 x_msg_count,
2651 x_msg_data,
2652 '_PVT'
2653 );
2654 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2655 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2656 (
2657 l_api_name,
2658 G_PKG_NAME,
2659 'OKC_API.G_RET_STS_UNEXP_ERROR',
2660 x_msg_count,
2661 x_msg_data,
2662 '_PVT'
2663 );
2664 WHEN OTHERS THEN
2665 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2666 (
2667 l_api_name,
2668 G_PKG_NAME,
2669 'OTHERS',
2670 x_msg_count,
2671 x_msg_data,
2672 '_PVT'
2673 );
2674 END update_row;
2675 -------------------------------------
2676 -- update_row for:IEX_EXT_AGNCY_TL --
2677 -------------------------------------
2678 PROCEDURE update_row(
2679 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2680 x_return_status OUT NOCOPY VARCHAR2,
2681 x_msg_count OUT NOCOPY NUMBER,
2682 x_msg_data OUT NOCOPY VARCHAR2,
2683 p_ieat_rec IN ieat_rec_type,
2684 x_ieat_rec OUT NOCOPY ieat_rec_type) AS
2685
2686 l_api_version CONSTANT NUMBER := 1;
2687 l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
2688 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2689 l_ieat_rec ieat_rec_type := p_ieat_rec;
2690 l_def_ieat_rec ieat_rec_type;
2691 l_row_notfound BOOLEAN := TRUE;
2692 ----------------------------------
2693 -- FUNCTION populate_new_record --
2694 ----------------------------------
2695 FUNCTION populate_new_record (
2696 p_ieat_rec IN ieat_rec_type,
2697 x_ieat_rec OUT NOCOPY ieat_rec_type
2698 ) RETURN VARCHAR2 AS
2699 l_ieat_rec ieat_rec_type;
2700 l_row_notfound BOOLEAN := TRUE;
2701 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2702 BEGIN
2703 x_ieat_rec := p_ieat_rec;
2704 -- Get current database values
2705 l_ieat_rec := get_rec(p_ieat_rec, l_return_status);
2706 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2707 IF (x_ieat_rec.external_agency_id = OKC_API.G_MISS_NUM)
2708 THEN
2709 x_ieat_rec.external_agency_id := l_ieat_rec.external_agency_id;
2710 END IF;
2711 IF (x_ieat_rec.description = OKC_API.G_MISS_CHAR)
2712 THEN
2713 x_ieat_rec.description := l_ieat_rec.description;
2714 END IF;
2715 IF (x_ieat_rec.language = OKC_API.G_MISS_CHAR)
2716 THEN
2717 x_ieat_rec.language := l_ieat_rec.language;
2718 END IF;
2719 IF (x_ieat_rec.source_lang = OKC_API.G_MISS_CHAR)
2720 THEN
2721 x_ieat_rec.source_lang := l_ieat_rec.source_lang;
2722 END IF;
2723 IF (x_ieat_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
2724 THEN
2725 x_ieat_rec.sfwt_flag := l_ieat_rec.sfwt_flag;
2726 END IF;
2727 IF (x_ieat_rec.created_by = OKC_API.G_MISS_NUM)
2728 THEN
2729 x_ieat_rec.created_by := l_ieat_rec.created_by;
2730 END IF;
2731 IF (x_ieat_rec.creation_date = OKC_API.G_MISS_DATE)
2732 THEN
2733 x_ieat_rec.creation_date := l_ieat_rec.creation_date;
2734 END IF;
2735 IF (x_ieat_rec.last_updated_by = OKC_API.G_MISS_NUM)
2736 THEN
2737 x_ieat_rec.last_updated_by := l_ieat_rec.last_updated_by;
2738 END IF;
2739 IF (x_ieat_rec.last_update_date = OKC_API.G_MISS_DATE)
2740 THEN
2741 x_ieat_rec.last_update_date := l_ieat_rec.last_update_date;
2742 END IF;
2743 IF (x_ieat_rec.last_update_login = OKC_API.G_MISS_NUM)
2744 THEN
2745 x_ieat_rec.last_update_login := l_ieat_rec.last_update_login;
2746 END IF;
2747 END IF;
2748 RETURN(l_return_status);
2749 END populate_new_record;
2750 -----------------------------------------
2751 -- Set_Attributes for:IEX_EXT_AGNCY_TL --
2752 -----------------------------------------
2753 FUNCTION Set_Attributes (
2754 p_ieat_rec IN ieat_rec_type,
2755 x_ieat_rec OUT NOCOPY ieat_rec_type
2756 ) RETURN VARCHAR2 AS
2757 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2758 BEGIN
2759 x_ieat_rec := p_ieat_rec;
2760 x_ieat_rec.LANGUAGE := USERENV('LANG');
2761 x_ieat_rec.LANGUAGE := USERENV('LANG');
2762 RETURN(l_return_status);
2763 END Set_Attributes;
2764 BEGIN
2765 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2766 p_init_msg_list,
2767 '_PVT',
2768 x_return_status);
2769 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2770 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2771 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2772 RAISE OKC_API.G_EXCEPTION_ERROR;
2773 END IF;
2774 --- Setting item attributes
2775 l_return_status := Set_Attributes(
2776 p_ieat_rec, -- IN
2777 l_ieat_rec); -- OUT NOCOPY
2778 --- If any errors happen abort API
2779 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2780 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2781 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2782 RAISE OKC_API.G_EXCEPTION_ERROR;
2783 END IF;
2784 l_return_status := populate_new_record(l_ieat_rec, l_def_ieat_rec);
2785 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2786 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2787 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2788 RAISE OKC_API.G_EXCEPTION_ERROR;
2789 END IF;
2790 UPDATE IEX_EXT_AGNCY_TL
2791 SET DESCRIPTION = l_def_ieat_rec.description,
2792 CREATED_BY = l_def_ieat_rec.created_by,
2793 CREATION_DATE = l_def_ieat_rec.creation_date,
2794 LAST_UPDATED_BY = l_def_ieat_rec.last_updated_by,
2795 LAST_UPDATE_DATE = l_def_ieat_rec.last_update_date,
2796 LAST_UPDATE_LOGIN = l_def_ieat_rec.last_update_login
2797 WHERE EXTERNAL_AGENCY_ID = l_def_ieat_rec.external_agency_id
2798 AND SOURCE_LANG = USERENV('LANG');
2799
2800 UPDATE IEX_EXT_AGNCY_TL
2801 SET SFWT_FLAG = 'Y'
2802 WHERE EXTERNAL_AGENCY_ID = l_def_ieat_rec.external_agency_id
2803 AND SOURCE_LANG <> USERENV('LANG');
2804
2805 x_ieat_rec := l_ieat_rec;
2806 x_return_status := l_return_status;
2807 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2808 EXCEPTION
2809 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2810 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2811 (
2812 l_api_name,
2813 G_PKG_NAME,
2814 'OKC_API.G_RET_STS_ERROR',
2815 x_msg_count,
2816 x_msg_data,
2817 '_PVT'
2818 );
2819 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2820 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2821 (
2822 l_api_name,
2823 G_PKG_NAME,
2824 'OKC_API.G_RET_STS_UNEXP_ERROR',
2825 x_msg_count,
2826 x_msg_data,
2827 '_PVT'
2828 );
2829 WHEN OTHERS THEN
2830 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2831 (
2832 l_api_name,
2833 G_PKG_NAME,
2834 'OTHERS',
2835 x_msg_count,
2836 x_msg_data,
2837 '_PVT'
2838 );
2839 END update_row;
2840 ------------------------------------
2841 -- update_row for:IEX_EXT_AGNCY_V --
2842 ------------------------------------
2843 PROCEDURE update_row(
2844 p_api_version IN NUMBER,
2845 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2846 x_return_status OUT NOCOPY VARCHAR2,
2847 x_msg_count OUT NOCOPY NUMBER,
2848 x_msg_data OUT NOCOPY VARCHAR2,
2849 p_ieav_rec IN ieav_rec_type,
2850 x_ieav_rec OUT NOCOPY ieav_rec_type) AS
2851
2852 l_api_version CONSTANT NUMBER := 1;
2853 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2854 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2855 l_ieav_rec ieav_rec_type := p_ieav_rec;
2856 l_def_ieav_rec ieav_rec_type;
2857 l_db_ieav_rec ieav_rec_type;
2858 l_iea_rec iea_rec_type;
2859 lx_iea_rec iea_rec_type;
2860 l_ieat_rec ieat_rec_type;
2861 lx_ieat_rec ieat_rec_type;
2862 -------------------------------
2863 -- FUNCTION fill_who_columns --
2864 -------------------------------
2865 FUNCTION fill_who_columns (
2866 p_ieav_rec IN ieav_rec_type
2867 ) RETURN ieav_rec_type AS
2868 l_ieav_rec ieav_rec_type := p_ieav_rec;
2869 BEGIN
2870 l_ieav_rec.LAST_UPDATE_DATE := SYSDATE;
2871 l_ieav_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2872 l_ieav_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2873 RETURN(l_ieav_rec);
2874 END fill_who_columns;
2875 ----------------------------------
2876 -- FUNCTION populate_new_record --
2877 ----------------------------------
2878 FUNCTION populate_new_record (
2879 p_ieav_rec IN ieav_rec_type,
2880 x_ieav_rec OUT NOCOPY ieav_rec_type
2881 ) RETURN VARCHAR2 AS
2882 l_row_notfound BOOLEAN := TRUE;
2883 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2884 BEGIN
2885 x_ieav_rec := p_ieav_rec;
2886 -- Get current database values
2887 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
2888 -- so it may be verified through LOCK_ROW.
2889 l_db_ieav_rec := get_rec(p_ieav_rec, l_return_status);
2890 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2891 IF (x_ieav_rec.external_agency_id = OKC_API.G_MISS_NUM)
2892 THEN
2893 x_ieav_rec.external_agency_id := l_db_ieav_rec.external_agency_id;
2894 END IF;
2895 IF (x_ieav_rec.external_agency_name = OKC_API.G_MISS_CHAR)
2896 THEN
2897 x_ieav_rec.external_agency_name := l_db_ieav_rec.external_agency_name;
2898 END IF;
2899 IF (x_ieav_rec.vendor_id = OKC_API.G_MISS_NUM)
2900 THEN
2901 x_ieav_rec.vendor_id := l_db_ieav_rec.vendor_id;
2902 END IF;
2903 IF (x_ieav_rec.vendor_site_id = OKC_API.G_MISS_NUM)
2904 THEN
2905 x_ieav_rec.vendor_site_id := l_db_ieav_rec.vendor_site_id;
2906 END IF;
2907 IF (x_ieav_rec.rank = OKC_API.G_MISS_NUM)
2908 THEN
2909 x_ieav_rec.rank := l_db_ieav_rec.rank;
2910 END IF;
2911 IF (x_ieav_rec.effective_start_date = OKC_API.G_MISS_DATE)
2912 THEN
2913 x_ieav_rec.effective_start_date := l_db_ieav_rec.effective_start_date;
2914 END IF;
2915 IF (x_ieav_rec.effective_end_date = OKC_API.G_MISS_DATE)
2916 THEN
2917 x_ieav_rec.effective_end_date := l_db_ieav_rec.effective_end_date;
2918 END IF;
2919 IF (x_ieav_rec.description = OKC_API.G_MISS_CHAR)
2920 THEN
2921 x_ieav_rec.description := l_db_ieav_rec.description;
2922 END IF;
2923 IF (x_ieav_rec.language = OKC_API.G_MISS_CHAR)
2924 THEN
2925 x_ieav_rec.language := l_db_ieav_rec.language;
2926 END IF;
2927 IF (x_ieav_rec.source_lang = OKC_API.G_MISS_CHAR)
2928 THEN
2929 x_ieav_rec.source_lang := l_db_ieav_rec.source_lang;
2930 END IF;
2931 IF (x_ieav_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
2932 THEN
2933 x_ieav_rec.sfwt_flag := l_db_ieav_rec.sfwt_flag;
2934 END IF;
2935 IF (x_ieav_rec.org_id = OKC_API.G_MISS_NUM)
2936 THEN
2937 x_ieav_rec.org_id := l_db_ieav_rec.org_id;
2938 END IF;
2939 IF (x_ieav_rec.attribute_category = OKC_API.G_MISS_CHAR)
2940 THEN
2941 x_ieav_rec.attribute_category := l_db_ieav_rec.attribute_category;
2942 END IF;
2943 IF (x_ieav_rec.attribute1 = OKC_API.G_MISS_CHAR)
2944 THEN
2945 x_ieav_rec.attribute1 := l_db_ieav_rec.attribute1;
2946 END IF;
2947 IF (x_ieav_rec.attribute2 = OKC_API.G_MISS_CHAR)
2948 THEN
2949 x_ieav_rec.attribute2 := l_db_ieav_rec.attribute2;
2950 END IF;
2951 IF (x_ieav_rec.attribute3 = OKC_API.G_MISS_CHAR)
2952 THEN
2953 x_ieav_rec.attribute3 := l_db_ieav_rec.attribute3;
2954 END IF;
2955 IF (x_ieav_rec.attribute4 = OKC_API.G_MISS_CHAR)
2956 THEN
2957 x_ieav_rec.attribute4 := l_db_ieav_rec.attribute4;
2958 END IF;
2959 IF (x_ieav_rec.attribute5 = OKC_API.G_MISS_CHAR)
2960 THEN
2961 x_ieav_rec.attribute5 := l_db_ieav_rec.attribute5;
2962 END IF;
2963 IF (x_ieav_rec.attribute6 = OKC_API.G_MISS_CHAR)
2964 THEN
2965 x_ieav_rec.attribute6 := l_db_ieav_rec.attribute6;
2966 END IF;
2967 IF (x_ieav_rec.attribute7 = OKC_API.G_MISS_CHAR)
2968 THEN
2969 x_ieav_rec.attribute7 := l_db_ieav_rec.attribute7;
2970 END IF;
2971 IF (x_ieav_rec.attribute8 = OKC_API.G_MISS_CHAR)
2972 THEN
2973 x_ieav_rec.attribute8 := l_db_ieav_rec.attribute8;
2974 END IF;
2975 IF (x_ieav_rec.attribute9 = OKC_API.G_MISS_CHAR)
2976 THEN
2977 x_ieav_rec.attribute9 := l_db_ieav_rec.attribute9;
2978 END IF;
2979 IF (x_ieav_rec.attribute10 = OKC_API.G_MISS_CHAR)
2980 THEN
2981 x_ieav_rec.attribute10 := l_db_ieav_rec.attribute10;
2982 END IF;
2983 IF (x_ieav_rec.attribute11 = OKC_API.G_MISS_CHAR)
2984 THEN
2985 x_ieav_rec.attribute11 := l_db_ieav_rec.attribute11;
2986 END IF;
2987 IF (x_ieav_rec.attribute12 = OKC_API.G_MISS_CHAR)
2988 THEN
2989 x_ieav_rec.attribute12 := l_db_ieav_rec.attribute12;
2990 END IF;
2991 IF (x_ieav_rec.attribute13 = OKC_API.G_MISS_CHAR)
2992 THEN
2993 x_ieav_rec.attribute13 := l_db_ieav_rec.attribute13;
2994 END IF;
2995 IF (x_ieav_rec.attribute14 = OKC_API.G_MISS_CHAR)
2996 THEN
2997 x_ieav_rec.attribute14 := l_db_ieav_rec.attribute14;
2998 END IF;
2999 IF (x_ieav_rec.attribute15 = OKC_API.G_MISS_CHAR)
3000 THEN
3001 x_ieav_rec.attribute15 := l_db_ieav_rec.attribute15;
3002 END IF;
3003 IF (x_ieav_rec.created_by = OKC_API.G_MISS_NUM)
3004 THEN
3005 x_ieav_rec.created_by := l_db_ieav_rec.created_by;
3006 END IF;
3007 IF (x_ieav_rec.creation_date = OKC_API.G_MISS_DATE)
3008 THEN
3009 x_ieav_rec.creation_date := l_db_ieav_rec.creation_date;
3010 END IF;
3011 IF (x_ieav_rec.last_updated_by = OKC_API.G_MISS_NUM)
3012 THEN
3013 x_ieav_rec.last_updated_by := l_db_ieav_rec.last_updated_by;
3014 END IF;
3015 IF (x_ieav_rec.last_update_date = OKC_API.G_MISS_DATE)
3016 THEN
3017 x_ieav_rec.last_update_date := l_db_ieav_rec.last_update_date;
3018 END IF;
3019 IF (x_ieav_rec.last_update_login = OKC_API.G_MISS_NUM)
3020 THEN
3021 x_ieav_rec.last_update_login := l_db_ieav_rec.last_update_login;
3022 END IF;
3023 END IF;
3024 RETURN(l_return_status);
3025 END populate_new_record;
3026 ----------------------------------------
3027 -- Set_Attributes for:IEX_EXT_AGNCY_V --
3028 ----------------------------------------
3029 FUNCTION Set_Attributes (
3030 p_ieav_rec IN ieav_rec_type,
3031 x_ieav_rec OUT NOCOPY ieav_rec_type
3032 ) RETURN VARCHAR2 AS
3033 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3034 BEGIN
3035 x_ieav_rec := p_ieav_rec;
3036 RETURN(l_return_status);
3037 END Set_Attributes;
3038 BEGIN
3039 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3040 G_PKG_NAME,
3041 p_init_msg_list,
3042 l_api_version,
3043 p_api_version,
3044 '_PVT',
3045 x_return_status);
3046 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3047 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3048 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3049 RAISE OKC_API.G_EXCEPTION_ERROR;
3050 END IF;
3051 --- Setting item attributes
3052 l_return_status := Set_Attributes(
3053 p_ieav_rec, -- IN
3054 x_ieav_rec); -- OUT NOCOPY
3055 --- If any errors happen abort API
3056 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3057 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3058 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3059 RAISE OKC_API.G_EXCEPTION_ERROR;
3060 END IF;
3061 l_return_status := populate_new_record(l_ieav_rec, l_def_ieav_rec);
3062 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3063 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3064 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3065 RAISE OKC_API.G_EXCEPTION_ERROR;
3066 END IF;
3067 l_def_ieav_rec := fill_who_columns(l_def_ieav_rec);
3068 --- Validate all non-missing attributes (Item Level Validation)
3069 l_return_status := Validate_Attributes(l_def_ieav_rec);
3070 --- If any errors happen abort API
3071 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3072 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3073 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3074 RAISE OKC_API.G_EXCEPTION_ERROR;
3075 END IF;
3076 l_return_status := Validate_Record(l_def_ieav_rec, l_db_ieav_rec);
3077 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3078 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3079 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3080 RAISE OKC_API.G_EXCEPTION_ERROR;
3081 END IF;
3082
3083 -- Lock the Record
3084 lock_row(
3085 p_api_version => p_api_version,
3086 p_init_msg_list => p_init_msg_list,
3087 x_return_status => l_return_status,
3088 x_msg_count => x_msg_count,
3089 x_msg_data => x_msg_data,
3090 p_ieav_rec => p_ieav_rec);
3091 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3092 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3093 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3094 RAISE OKC_API.G_EXCEPTION_ERROR;
3095 END IF;
3096
3097 -----------------------------------------
3098 -- Move VIEW record to "Child" records --
3099 -----------------------------------------
3100 migrate(l_def_ieav_rec, l_iea_rec);
3101 migrate(l_def_ieav_rec, l_ieat_rec);
3102 -----------------------------------------------
3103 -- Call the UPDATE_ROW for each child record --
3104 -----------------------------------------------
3105 update_row(
3106 p_init_msg_list,
3107 l_return_status,
3108 x_msg_count,
3109 x_msg_data,
3110 l_iea_rec,
3111 lx_iea_rec
3112 );
3113 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3114 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3115 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3116 RAISE OKC_API.G_EXCEPTION_ERROR;
3117 END IF;
3118 migrate(lx_iea_rec, l_def_ieav_rec);
3119 update_row(
3120 p_init_msg_list,
3121 l_return_status,
3122 x_msg_count,
3123 x_msg_data,
3124 l_ieat_rec,
3125 lx_ieat_rec
3126 );
3127 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3128 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3129 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3130 RAISE OKC_API.G_EXCEPTION_ERROR;
3131 END IF;
3132 migrate(lx_ieat_rec, l_def_ieav_rec);
3133 x_ieav_rec := l_def_ieav_rec;
3134 x_return_status := l_return_status;
3135 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3136 EXCEPTION
3137 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3138 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3139 (
3140 l_api_name,
3141 G_PKG_NAME,
3142 'OKC_API.G_RET_STS_ERROR',
3143 x_msg_count,
3144 x_msg_data,
3145 '_PVT'
3146 );
3147 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3148 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3149 (
3150 l_api_name,
3151 G_PKG_NAME,
3152 'OKC_API.G_RET_STS_UNEXP_ERROR',
3153 x_msg_count,
3154 x_msg_data,
3155 '_PVT'
3156 );
3157 WHEN OTHERS THEN
3158 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3159 (
3160 l_api_name,
3161 G_PKG_NAME,
3162 'OTHERS',
3163 x_msg_count,
3164 x_msg_data,
3165 '_PVT'
3166 );
3167 END update_row;
3168 ----------------------------------------
3169 -- PL/SQL TBL update_row for:ieav_tbl --
3170 ----------------------------------------
3171 PROCEDURE update_row(
3172 p_api_version IN NUMBER,
3173 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3174 x_return_status OUT NOCOPY VARCHAR2,
3175 x_msg_count OUT NOCOPY NUMBER,
3176 x_msg_data OUT NOCOPY VARCHAR2,
3177 p_ieav_tbl IN ieav_tbl_type,
3178 x_ieav_tbl OUT NOCOPY ieav_tbl_type,
3179 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) AS
3180
3181 l_api_version CONSTANT NUMBER := 1;
3182 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
3183 i NUMBER := 0;
3184 BEGIN
3185 OKC_API.init_msg_list(p_init_msg_list);
3186 -- Make sure PL/SQL table has records in it before passing
3187 IF (p_ieav_tbl.COUNT > 0) THEN
3188 i := p_ieav_tbl.FIRST;
3189 LOOP
3190 DECLARE
3191 l_error_rec OKL_API.ERROR_REC_TYPE;
3192 BEGIN
3193 l_error_rec.api_name := l_api_name;
3194 l_error_rec.api_package := G_PKG_NAME;
3195 l_error_rec.idx := i;
3196 update_row (
3197 p_api_version => p_api_version,
3198 p_init_msg_list => OKC_API.G_FALSE,
3199 x_return_status => l_error_rec.error_type,
3200 x_msg_count => l_error_rec.msg_count,
3201 x_msg_data => l_error_rec.msg_data,
3202 p_ieav_rec => p_ieav_tbl(i),
3203 x_ieav_rec => x_ieav_tbl(i));
3204 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
3205 l_error_rec.sqlcode := SQLCODE;
3206 load_error_tbl(l_error_rec, px_error_tbl);
3207 ELSE
3208 x_msg_count := l_error_rec.msg_count;
3209 x_msg_data := l_error_rec.msg_data;
3210 END IF;
3211 EXCEPTION
3212 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3213 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
3214 l_error_rec.sqlcode := SQLCODE;
3215 load_error_tbl(l_error_rec, px_error_tbl);
3216 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3217 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
3218 l_error_rec.sqlcode := SQLCODE;
3219 load_error_tbl(l_error_rec, px_error_tbl);
3220 WHEN OTHERS THEN
3221 l_error_rec.error_type := 'OTHERS';
3222 l_error_rec.sqlcode := SQLCODE;
3223 load_error_tbl(l_error_rec, px_error_tbl);
3224 END;
3225 EXIT WHEN (i = p_ieav_tbl.LAST);
3226 i := p_ieav_tbl.NEXT(i);
3227 END LOOP;
3228 END IF;
3229 -- Loop through the error_tbl to find the error with the highest severity
3230 -- and return it.
3231 x_return_status := find_highest_exception(px_error_tbl);
3232 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3233 EXCEPTION
3234 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3235 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3236 (
3237 l_api_name,
3238 G_PKG_NAME,
3239 'OKC_API.G_RET_STS_ERROR',
3240 x_msg_count,
3241 x_msg_data,
3242 '_PVT'
3243 );
3244 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3245 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3246 (
3247 l_api_name,
3248 G_PKG_NAME,
3249 'OKC_API.G_RET_STS_UNEXP_ERROR',
3250 x_msg_count,
3251 x_msg_data,
3252 '_PVT'
3253 );
3254 WHEN OTHERS THEN
3255 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3256 (
3257 l_api_name,
3258 G_PKG_NAME,
3259 'OTHERS',
3260 x_msg_count,
3261 x_msg_data,
3262 '_PVT'
3263 );
3264 END update_row;
3265
3266 ----------------------------------------
3267 -- PL/SQL TBL update_row for:IEAV_TBL --
3268 ----------------------------------------
3269 PROCEDURE update_row(
3270 p_api_version IN NUMBER,
3271 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3272 x_return_status OUT NOCOPY VARCHAR2,
3273 x_msg_count OUT NOCOPY NUMBER,
3274 x_msg_data OUT NOCOPY VARCHAR2,
3275 p_ieav_tbl IN ieav_tbl_type,
3276 x_ieav_tbl OUT NOCOPY ieav_tbl_type) AS
3277
3278 l_api_version CONSTANT NUMBER := 1;
3279 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3280 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3281 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3282 BEGIN
3283 OKC_API.init_msg_list(p_init_msg_list);
3284 -- Make sure PL/SQL table has records in it before passing
3285 IF (p_ieav_tbl.COUNT > 0) THEN
3286 update_row (
3287 p_api_version => p_api_version,
3288 p_init_msg_list => OKC_API.G_FALSE,
3289 x_return_status => x_return_status,
3290 x_msg_count => x_msg_count,
3291 x_msg_data => x_msg_data,
3292 p_ieav_tbl => p_ieav_tbl,
3293 x_ieav_tbl => x_ieav_tbl,
3294 px_error_tbl => l_error_tbl);
3295 END IF;
3296 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3297 EXCEPTION
3298 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3299 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3300 (
3301 l_api_name,
3302 G_PKG_NAME,
3303 'OKC_API.G_RET_STS_ERROR',
3304 x_msg_count,
3305 x_msg_data,
3306 '_PVT'
3307 );
3308 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3309 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3310 (
3311 l_api_name,
3312 G_PKG_NAME,
3313 'OKC_API.G_RET_STS_UNEXP_ERROR',
3314 x_msg_count,
3315 x_msg_data,
3316 '_PVT'
3317 );
3318 WHEN OTHERS THEN
3319 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3320 (
3321 l_api_name,
3322 G_PKG_NAME,
3323 'OTHERS',
3324 x_msg_count,
3325 x_msg_data,
3326 '_PVT'
3327 );
3328 END update_row;
3329
3330 ---------------------------------------------------------------------------
3331 -- PROCEDURE delete_row
3332 ---------------------------------------------------------------------------
3333 ------------------------------------
3334 -- delete_row for:IEX_EXT_AGNCY_B --
3335 ------------------------------------
3336 PROCEDURE delete_row(
3337 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3338 x_return_status OUT NOCOPY VARCHAR2,
3339 x_msg_count OUT NOCOPY NUMBER,
3340 x_msg_data OUT NOCOPY VARCHAR2,
3341 p_iea_rec IN iea_rec_type) AS
3342
3343 l_api_version CONSTANT NUMBER := 1;
3344 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
3345 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3346 l_iea_rec iea_rec_type := p_iea_rec;
3347 l_row_notfound BOOLEAN := TRUE;
3348 BEGIN
3349 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3350 p_init_msg_list,
3351 '_PVT',
3352 x_return_status);
3353 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3354 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3355 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3356 RAISE OKC_API.G_EXCEPTION_ERROR;
3357 END IF;
3358
3359 DELETE FROM IEX_EXT_AGNCY_B
3360 WHERE EXTERNAL_AGENCY_ID = p_iea_rec.external_agency_id;
3361
3362 x_return_status := l_return_status;
3363 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3364 EXCEPTION
3365 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3366 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3367 (
3368 l_api_name,
3369 G_PKG_NAME,
3370 'OKC_API.G_RET_STS_ERROR',
3371 x_msg_count,
3372 x_msg_data,
3373 '_PVT'
3374 );
3375 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3376 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3377 (
3378 l_api_name,
3379 G_PKG_NAME,
3380 'OKC_API.G_RET_STS_UNEXP_ERROR',
3381 x_msg_count,
3382 x_msg_data,
3383 '_PVT'
3384 );
3385 WHEN OTHERS THEN
3386 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3387 (
3388 l_api_name,
3389 G_PKG_NAME,
3390 'OTHERS',
3391 x_msg_count,
3392 x_msg_data,
3393 '_PVT'
3394 );
3395 END delete_row;
3396 -------------------------------------
3397 -- delete_row for:IEX_EXT_AGNCY_TL --
3398 -------------------------------------
3399 PROCEDURE delete_row(
3400 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3401 x_return_status OUT NOCOPY VARCHAR2,
3402 x_msg_count OUT NOCOPY NUMBER,
3403 x_msg_data OUT NOCOPY VARCHAR2,
3404 p_ieat_rec IN ieat_rec_type) AS
3405
3406 l_api_version CONSTANT NUMBER := 1;
3407 l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
3408 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3409 l_ieat_rec ieat_rec_type := p_ieat_rec;
3410 l_row_notfound BOOLEAN := TRUE;
3411 BEGIN
3412 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3413 p_init_msg_list,
3414 '_PVT',
3415 x_return_status);
3416 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3417 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3418 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3419 RAISE OKC_API.G_EXCEPTION_ERROR;
3420 END IF;
3421
3422 DELETE FROM IEX_EXT_AGNCY_TL
3423 WHERE EXTERNAL_AGENCY_ID = p_ieat_rec.external_agency_id;
3424
3425 x_return_status := l_return_status;
3426 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3427 EXCEPTION
3428 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3429 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3430 (
3431 l_api_name,
3432 G_PKG_NAME,
3433 'OKC_API.G_RET_STS_ERROR',
3434 x_msg_count,
3435 x_msg_data,
3436 '_PVT'
3437 );
3438 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3439 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3440 (
3441 l_api_name,
3442 G_PKG_NAME,
3443 'OKC_API.G_RET_STS_UNEXP_ERROR',
3444 x_msg_count,
3445 x_msg_data,
3446 '_PVT'
3447 );
3448 WHEN OTHERS THEN
3449 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3450 (
3451 l_api_name,
3452 G_PKG_NAME,
3453 'OTHERS',
3454 x_msg_count,
3455 x_msg_data,
3456 '_PVT'
3457 );
3458 END delete_row;
3459 ------------------------------------
3460 -- delete_row for:IEX_EXT_AGNCY_V --
3461 ------------------------------------
3462 PROCEDURE delete_row(
3463 p_api_version IN NUMBER,
3464 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3465 x_return_status OUT NOCOPY VARCHAR2,
3466 x_msg_count OUT NOCOPY NUMBER,
3467 x_msg_data OUT NOCOPY VARCHAR2,
3468 p_ieav_rec IN ieav_rec_type) AS
3469
3470 l_api_version CONSTANT NUMBER := 1;
3471 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
3472 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3473 l_ieav_rec ieav_rec_type := p_ieav_rec;
3474 l_ieat_rec ieat_rec_type;
3475 l_iea_rec iea_rec_type;
3476 BEGIN
3477 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3478 G_PKG_NAME,
3479 p_init_msg_list,
3480 l_api_version,
3481 p_api_version,
3482 '_PVT',
3483 x_return_status);
3484 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3485 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3486 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3487 RAISE OKC_API.G_EXCEPTION_ERROR;
3488 END IF;
3489 -----------------------------------------
3490 -- Move VIEW record to "Child" records --
3491 -----------------------------------------
3492 migrate(l_ieav_rec, l_ieat_rec);
3493 migrate(l_ieav_rec, l_iea_rec);
3494 -----------------------------------------------
3495 -- Call the DELETE_ROW for each child record --
3496 -----------------------------------------------
3497 delete_row(
3498 p_init_msg_list,
3499 l_return_status,
3500 x_msg_count,
3501 x_msg_data,
3502 l_ieat_rec
3503 );
3504 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3505 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3506 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3507 RAISE OKC_API.G_EXCEPTION_ERROR;
3508 END IF;
3509 delete_row(
3510 p_init_msg_list,
3511 l_return_status,
3512 x_msg_count,
3513 x_msg_data,
3514 l_iea_rec
3515 );
3516 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3517 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3518 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3519 RAISE OKC_API.G_EXCEPTION_ERROR;
3520 END IF;
3521 x_return_status := l_return_status;
3522 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3523 EXCEPTION
3524 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3525 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3526 (
3527 l_api_name,
3528 G_PKG_NAME,
3529 'OKC_API.G_RET_STS_ERROR',
3530 x_msg_count,
3531 x_msg_data,
3532 '_PVT'
3533 );
3534 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3535 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3536 (
3537 l_api_name,
3538 G_PKG_NAME,
3539 'OKC_API.G_RET_STS_UNEXP_ERROR',
3540 x_msg_count,
3541 x_msg_data,
3542 '_PVT'
3543 );
3544 WHEN OTHERS THEN
3545 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3546 (
3547 l_api_name,
3548 G_PKG_NAME,
3549 'OTHERS',
3550 x_msg_count,
3551 x_msg_data,
3552 '_PVT'
3553 );
3554 END delete_row;
3555 -----------------------------------------------
3556 -- PL/SQL TBL delete_row for:IEX_EXT_AGNCY_V --
3557 -----------------------------------------------
3558 PROCEDURE delete_row(
3559 p_api_version IN NUMBER,
3560 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3561 x_return_status OUT NOCOPY VARCHAR2,
3562 x_msg_count OUT NOCOPY NUMBER,
3563 x_msg_data OUT NOCOPY VARCHAR2,
3564 p_ieav_tbl IN ieav_tbl_type,
3565 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) AS
3566
3567 l_api_version CONSTANT NUMBER := 1;
3568 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
3569 i NUMBER := 0;
3570 BEGIN
3571 OKC_API.init_msg_list(p_init_msg_list);
3572 -- Make sure PL/SQL table has records in it before passing
3573 IF (p_ieav_tbl.COUNT > 0) THEN
3574 i := p_ieav_tbl.FIRST;
3575 LOOP
3576 DECLARE
3577 l_error_rec OKL_API.ERROR_REC_TYPE;
3578 BEGIN
3579 l_error_rec.api_name := l_api_name;
3580 l_error_rec.api_package := G_PKG_NAME;
3581 l_error_rec.idx := i;
3582 delete_row (
3583 p_api_version => p_api_version,
3584 p_init_msg_list => OKC_API.G_FALSE,
3585 x_return_status => l_error_rec.error_type,
3586 x_msg_count => l_error_rec.msg_count,
3587 x_msg_data => l_error_rec.msg_data,
3588 p_ieav_rec => p_ieav_tbl(i));
3589 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
3590 l_error_rec.sqlcode := SQLCODE;
3591 load_error_tbl(l_error_rec, px_error_tbl);
3592 ELSE
3593 x_msg_count := l_error_rec.msg_count;
3594 x_msg_data := l_error_rec.msg_data;
3595 END IF;
3596 EXCEPTION
3597 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3598 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
3599 l_error_rec.sqlcode := SQLCODE;
3600 load_error_tbl(l_error_rec, px_error_tbl);
3601 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3602 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
3603 l_error_rec.sqlcode := SQLCODE;
3604 load_error_tbl(l_error_rec, px_error_tbl);
3605 WHEN OTHERS THEN
3606 l_error_rec.error_type := 'OTHERS';
3607 l_error_rec.sqlcode := SQLCODE;
3608 load_error_tbl(l_error_rec, px_error_tbl);
3609 END;
3610 EXIT WHEN (i = p_ieav_tbl.LAST);
3611 i := p_ieav_tbl.NEXT(i);
3612 END LOOP;
3613 END IF;
3614 -- Loop through the error_tbl to find the error with the highest severity
3615 -- and return it.
3616 x_return_status := find_highest_exception(px_error_tbl);
3617 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3618 EXCEPTION
3619 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3620 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3621 (
3622 l_api_name,
3623 G_PKG_NAME,
3624 'OKC_API.G_RET_STS_ERROR',
3625 x_msg_count,
3626 x_msg_data,
3627 '_PVT'
3628 );
3629 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3630 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3631 (
3632 l_api_name,
3633 G_PKG_NAME,
3634 'OKC_API.G_RET_STS_UNEXP_ERROR',
3635 x_msg_count,
3636 x_msg_data,
3637 '_PVT'
3638 );
3639 WHEN OTHERS THEN
3640 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3641 (
3642 l_api_name,
3643 G_PKG_NAME,
3644 'OTHERS',
3645 x_msg_count,
3646 x_msg_data,
3647 '_PVT'
3648 );
3649 END delete_row;
3650
3651 -----------------------------------------------
3652 -- PL/SQL TBL delete_row for:IEX_EXT_AGNCY_V --
3653 -----------------------------------------------
3654 PROCEDURE delete_row(
3655 p_api_version IN NUMBER,
3656 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3657 x_return_status OUT NOCOPY VARCHAR2,
3658 x_msg_count OUT NOCOPY NUMBER,
3659 x_msg_data OUT NOCOPY VARCHAR2,
3660 p_ieav_tbl IN ieav_tbl_type) AS
3661
3662 l_api_version CONSTANT NUMBER := 1;
3663 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3664 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3665 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3666 BEGIN
3667 OKC_API.init_msg_list(p_init_msg_list);
3668 -- Make sure PL/SQL table has records in it before passing
3669 IF (p_ieav_tbl.COUNT > 0) THEN
3670 delete_row (
3671 p_api_version => p_api_version,
3672 p_init_msg_list => OKC_API.G_FALSE,
3673 x_return_status => x_return_status,
3674 x_msg_count => x_msg_count,
3675 x_msg_data => x_msg_data,
3676 p_ieav_tbl => p_ieav_tbl,
3677 px_error_tbl => l_error_tbl);
3678 END IF;
3679 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3680 EXCEPTION
3681 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3682 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3683 (
3684 l_api_name,
3685 G_PKG_NAME,
3686 'OKC_API.G_RET_STS_ERROR',
3687 x_msg_count,
3688 x_msg_data,
3689 '_PVT'
3690 );
3691 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3692 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3693 (
3694 l_api_name,
3695 G_PKG_NAME,
3696 'OKC_API.G_RET_STS_UNEXP_ERROR',
3697 x_msg_count,
3698 x_msg_data,
3699 '_PVT'
3700 );
3701 WHEN OTHERS THEN
3702 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3703 (
3704 l_api_name,
3705 G_PKG_NAME,
3706 'OTHERS',
3707 x_msg_count,
3708 x_msg_data,
3709 '_PVT'
3710 );
3711 END delete_row;
3712
3713 END IEX_IEA_PVT;