DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_XHR_PVT

Source


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