DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_FNA_UTIL

Source


1 PACKAGE BODY QP_Fna_Util AS
2 /* $Header: QPXUFNAB.pls 120.3 2006/04/21 18:03:51 gtippire noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Fna_Util';
7 
8 --  Procedure Clear_Dependent_Attr
9 
10 PROCEDURE Clear_Dependent_Attr
11 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
12 ,   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
13 ,   p_old_FNA_rec                   IN  QP_Attr_Map_PUB.Fna_Rec_Type :=
14                                         QP_Attr_Map_PUB.G_MISS_FNA_REC
15 ,   x_FNA_rec                       OUT NOCOPY QP_Attr_Map_PUB.Fna_Rec_Type
16 )
17 IS
18 l_index                       NUMBER := 0;
19 l_src_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22 
23     --  Load out record
24 
25     x_FNA_rec := p_FNA_rec;
26 
27     --  If attr_id is missing compare old and new records and for
28     --  every changed attribute clear its dependent fields.
29 
30     IF p_attr_id = FND_API.G_MISS_NUM THEN
31 
32         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute1,p_old_FNA_rec.attribute1)
33         THEN
34             l_index := l_index + 1;
35             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE1;
36         END IF;
37 
38         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute10,p_old_FNA_rec.attribute10)
39         THEN
40             l_index := l_index + 1;
41             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE10;
42         END IF;
43 
44         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute11,p_old_FNA_rec.attribute11)
45         THEN
46             l_index := l_index + 1;
47             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE11;
48         END IF;
49 
50         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute12,p_old_FNA_rec.attribute12)
51         THEN
52             l_index := l_index + 1;
53             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE12;
54         END IF;
55 
56         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute13,p_old_FNA_rec.attribute13)
57         THEN
58             l_index := l_index + 1;
59             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE13;
60         END IF;
61 
62         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute14,p_old_FNA_rec.attribute14)
63         THEN
64             l_index := l_index + 1;
65             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE14;
66         END IF;
67 
68         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute15,p_old_FNA_rec.attribute15)
69         THEN
70             l_index := l_index + 1;
71             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE15;
72         END IF;
73 
74         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute2,p_old_FNA_rec.attribute2)
75         THEN
76             l_index := l_index + 1;
77             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE2;
78         END IF;
79 
80         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute3,p_old_FNA_rec.attribute3)
81         THEN
82             l_index := l_index + 1;
83             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE3;
84         END IF;
85 
86         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute4,p_old_FNA_rec.attribute4)
87         THEN
88             l_index := l_index + 1;
89             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE4;
90         END IF;
91 
92         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute5,p_old_FNA_rec.attribute5)
93         THEN
94             l_index := l_index + 1;
95             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE5;
96         END IF;
97 
98         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute6,p_old_FNA_rec.attribute6)
99         THEN
100             l_index := l_index + 1;
101             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE6;
102         END IF;
103 
104         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute7,p_old_FNA_rec.attribute7)
105         THEN
106             l_index := l_index + 1;
107             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE7;
108         END IF;
109 
110         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute8,p_old_FNA_rec.attribute8)
111         THEN
112             l_index := l_index + 1;
113             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE8;
114         END IF;
115 
116         IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute9,p_old_FNA_rec.attribute9)
117         THEN
118             l_index := l_index + 1;
119             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE9;
120         END IF;
121 
122         IF NOT QP_GLOBALS.Equal(p_FNA_rec.context,p_old_FNA_rec.context)
123         THEN
124             l_index := l_index + 1;
125             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_CONTEXT;
126         END IF;
127 
128         IF NOT QP_GLOBALS.Equal(p_FNA_rec.created_by,p_old_FNA_rec.created_by)
129         THEN
130             l_index := l_index + 1;
131             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_CREATED_BY;
132         END IF;
133 
134         IF NOT QP_GLOBALS.Equal(p_FNA_rec.creation_date,p_old_FNA_rec.creation_date)
135         THEN
136             l_index := l_index + 1;
137             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_CREATION_DATE;
138         END IF;
139 
140         IF NOT QP_GLOBALS.Equal(p_FNA_rec.enabled_flag,p_old_FNA_rec.enabled_flag)
141         THEN
142             l_index := l_index + 1;
143             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ENABLED;
144         END IF;
145 
146         IF NOT QP_GLOBALS.Equal(p_FNA_rec.functional_area_id,p_old_FNA_rec.functional_area_id)
147         THEN
148             l_index := l_index + 1;
149             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_FUNCTIONAL_AREA;
150         END IF;
151 
152         IF NOT QP_GLOBALS.Equal(p_FNA_rec.last_updated_by,p_old_FNA_rec.last_updated_by)
153         THEN
154             l_index := l_index + 1;
155             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_LAST_UPDATED_BY;
156         END IF;
157 
158         IF NOT QP_GLOBALS.Equal(p_FNA_rec.last_update_date,p_old_FNA_rec.last_update_date)
159         THEN
160             l_index := l_index + 1;
161             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_LAST_UPDATE_DATE;
162         END IF;
163 
164         IF NOT QP_GLOBALS.Equal(p_FNA_rec.last_update_login,p_old_FNA_rec.last_update_login)
165         THEN
166             l_index := l_index + 1;
167             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_LAST_UPDATE_LOGIN;
168         END IF;
169 
170         IF NOT QP_GLOBALS.Equal(p_FNA_rec.program_application_id,p_old_FNA_rec.program_application_id)
171         THEN
172             l_index := l_index + 1;
173             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PROGRAM_APPLICATION;
174         END IF;
175 
176         IF NOT QP_GLOBALS.Equal(p_FNA_rec.program_id,p_old_FNA_rec.program_id)
177         THEN
178             l_index := l_index + 1;
179             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PROGRAM;
180         END IF;
181 
182         IF NOT QP_GLOBALS.Equal(p_FNA_rec.program_update_date,p_old_FNA_rec.program_update_date)
183         THEN
184             l_index := l_index + 1;
185             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PROGRAM_UPDATE_DATE;
186         END IF;
187 
188         IF NOT QP_GLOBALS.Equal(p_FNA_rec.pte_sourcesystem_fnarea_id,p_old_FNA_rec.pte_sourcesystem_fnarea_id)
189         THEN
190             l_index := l_index + 1;
191             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PTE_SOURCESYSTEM_FNAREA;
192         END IF;
193 
194         IF NOT QP_GLOBALS.Equal(p_FNA_rec.pte_source_system_id,p_old_FNA_rec.pte_source_system_id)
195         THEN
196             l_index := l_index + 1;
197             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PTE_SOURCE_SYSTEM;
198         END IF;
199 
200         IF NOT QP_GLOBALS.Equal(p_FNA_rec.request_id,p_old_FNA_rec.request_id)
201         THEN
202             l_index := l_index + 1;
203             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_REQUEST;
204         END IF;
205 
206         IF NOT QP_GLOBALS.Equal(p_FNA_rec.seeded_flag,p_old_FNA_rec.seeded_flag)
207         THEN
208             l_index := l_index + 1;
209             l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_SEEDED;
210         END IF;
211 
212     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
213         l_index := l_index + 1;
214         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE1;
215     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
216         l_index := l_index + 1;
217         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE10;
218     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
219         l_index := l_index + 1;
220         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE11;
221     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
222         l_index := l_index + 1;
223         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE12;
224     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
225         l_index := l_index + 1;
226         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE13;
227     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
228         l_index := l_index + 1;
229         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE14;
230     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
231         l_index := l_index + 1;
232         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE15;
233     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
234         l_index := l_index + 1;
235         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE2;
236     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
237         l_index := l_index + 1;
238         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE3;
239     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
240         l_index := l_index + 1;
241         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE4;
242     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
243         l_index := l_index + 1;
244         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE5;
245     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
246         l_index := l_index + 1;
247         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE6;
248     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
249         l_index := l_index + 1;
250         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE7;
251     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
252         l_index := l_index + 1;
253         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE8;
254     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
255         l_index := l_index + 1;
256         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ATTRIBUTE9;
257     ELSIF p_attr_id = G_CONTEXT THEN
258         l_index := l_index + 1;
259         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_CONTEXT;
260     ELSIF p_attr_id = G_CREATED_BY THEN
261         l_index := l_index + 1;
262         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_CREATED_BY;
263     ELSIF p_attr_id = G_CREATION_DATE THEN
264         l_index := l_index + 1;
265         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_CREATION_DATE;
266     ELSIF p_attr_id = G_ENABLED THEN
267         l_index := l_index + 1;
268         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_ENABLED;
269     ELSIF p_attr_id = G_FUNCTIONAL_AREA THEN
270         l_index := l_index + 1;
271         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_FUNCTIONAL_AREA;
272     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
273         l_index := l_index + 1;
274         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_LAST_UPDATED_BY;
275     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
276         l_index := l_index + 1;
277         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_LAST_UPDATE_DATE;
278     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
279         l_index := l_index + 1;
280         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_LAST_UPDATE_LOGIN;
281     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
282         l_index := l_index + 1;
283         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PROGRAM_APPLICATION;
284     ELSIF p_attr_id = G_PROGRAM THEN
285         l_index := l_index + 1;
286         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PROGRAM;
287     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
288         l_index := l_index + 1;
289         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PROGRAM_UPDATE_DATE;
290     ELSIF p_attr_id = G_PTE_SOURCESYSTEM_FNAREA THEN
291         l_index := l_index + 1;
292         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PTE_SOURCESYSTEM_FNAREA;
293     ELSIF p_attr_id = G_PTE_SOURCE_SYSTEM THEN
294         l_index := l_index + 1;
295         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_PTE_SOURCE_SYSTEM;
296     ELSIF p_attr_id = G_REQUEST THEN
297         l_index := l_index + 1;
298         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_REQUEST;
299     ELSIF p_attr_id = G_SEEDED THEN
300         l_index := l_index + 1;
301         l_src_attr_tbl(l_index) := QP_FNA_UTIL.G_SEEDED;
302     END IF;
303 
304 END Clear_Dependent_Attr;
305 
306 --  Procedure Apply_Attribute_Changes
307 
308 PROCEDURE Apply_Attribute_Changes
309 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
310 ,   p_old_FNA_rec                   IN  QP_Attr_Map_PUB.Fna_Rec_Type :=
311                                         QP_Attr_Map_PUB.G_MISS_FNA_REC
312 ,   p_called_from_ui                IN  VARCHAR2
313 ,   x_FNA_rec                       OUT NOCOPY QP_Attr_Map_PUB.Fna_Rec_Type
314 )
315 IS
316 l_dummy_ret_status            VARCHAR2(1);
317 BEGIN
318 
319     --  Load out record
320 
321     x_FNA_rec := p_FNA_rec;
322 
323     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute1,p_old_FNA_rec.attribute1)
324     THEN
325         NULL;
326     END IF;
327 
328     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute10,p_old_FNA_rec.attribute10)
329     THEN
330         NULL;
331     END IF;
332 
333     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute11,p_old_FNA_rec.attribute11)
334     THEN
335         NULL;
336     END IF;
337 
338     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute12,p_old_FNA_rec.attribute12)
339     THEN
340         NULL;
341     END IF;
342 
343     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute13,p_old_FNA_rec.attribute13)
344     THEN
345         NULL;
346     END IF;
347 
348     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute14,p_old_FNA_rec.attribute14)
349     THEN
350         NULL;
351     END IF;
352 
353     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute15,p_old_FNA_rec.attribute15)
354     THEN
355         NULL;
356     END IF;
357 
358     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute2,p_old_FNA_rec.attribute2)
359     THEN
360         NULL;
361     END IF;
362 
363     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute3,p_old_FNA_rec.attribute3)
364     THEN
365         NULL;
366     END IF;
367 
368     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute4,p_old_FNA_rec.attribute4)
369     THEN
370         NULL;
371     END IF;
372 
373     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute5,p_old_FNA_rec.attribute5)
374     THEN
375         NULL;
376     END IF;
377 
378     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute6,p_old_FNA_rec.attribute6)
379     THEN
380         NULL;
381     END IF;
382 
383     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute7,p_old_FNA_rec.attribute7)
384     THEN
385         NULL;
386     END IF;
387 
388     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute8,p_old_FNA_rec.attribute8)
389     THEN
390         NULL;
391     END IF;
392 
393     IF NOT QP_GLOBALS.Equal(p_FNA_rec.attribute9,p_old_FNA_rec.attribute9)
394     THEN
395         NULL;
396     END IF;
397 
398     IF NOT QP_GLOBALS.Equal(p_FNA_rec.context,p_old_FNA_rec.context)
399     THEN
400         NULL;
401     END IF;
402 
403     IF NOT QP_GLOBALS.Equal(p_FNA_rec.created_by,p_old_FNA_rec.created_by)
404     THEN
405         NULL;
406     END IF;
407 
408     IF NOT QP_GLOBALS.Equal(p_FNA_rec.creation_date,p_old_FNA_rec.creation_date)
409     THEN
410         NULL;
411     END IF;
412 
413     IF NOT QP_GLOBALS.Equal(p_FNA_rec.enabled_flag,p_old_FNA_rec.enabled_flag)
414     THEN
415       -- If enabled flag has been changed from 'Y', log DR to check for enabled
416       --  functional area mappings
417 
418       IF p_old_FNA_rec.enabled_flag = 'Y' THEN
419       qp_delayed_requests_PVT.log_request(
420            p_entity_code => QP_GLOBALS.G_ENTITY_FNA,
421            p_entity_id  => p_FNA_rec.pte_source_system_id,
422            p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_FNA,
423            p_requesting_entity_id => p_FNA_rec.pte_source_system_id,
424            p_request_type => QP_GLOBALS.G_CHECK_ENABLED_FUNC_AREAS,
425            x_return_status => l_dummy_ret_status);
426 
427       IF p_called_from_ui = 'N' THEN
428         Warn_Disable_Delete_Fna
429           ( p_action             => 'DISABLE'
430           , p_called_from_ui     => p_called_from_ui
431           , p_functional_area_id => p_FNA_rec.functional_area_id
432           , p_pte_ss_id          => p_FNA_rec.pte_source_system_id
433           );
434       END IF;
435 
436       END IF;
437     END IF;
438 
439     IF NOT QP_GLOBALS.Equal(p_FNA_rec.functional_area_id,p_old_FNA_rec.functional_area_id)
440     THEN
441         NULL;
442     END IF;
443 
444     IF NOT QP_GLOBALS.Equal(p_FNA_rec.last_updated_by,p_old_FNA_rec.last_updated_by)
445     THEN
446         NULL;
447     END IF;
448 
449     IF NOT QP_GLOBALS.Equal(p_FNA_rec.last_update_date,p_old_FNA_rec.last_update_date)
450     THEN
451         NULL;
452     END IF;
453 
454     IF NOT QP_GLOBALS.Equal(p_FNA_rec.last_update_login,p_old_FNA_rec.last_update_login)
455     THEN
456         NULL;
457     END IF;
458 
459     IF NOT QP_GLOBALS.Equal(p_FNA_rec.program_application_id,p_old_FNA_rec.program_application_id)
460     THEN
461         NULL;
462     END IF;
463 
464     IF NOT QP_GLOBALS.Equal(p_FNA_rec.program_id,p_old_FNA_rec.program_id)
465     THEN
466         NULL;
467     END IF;
468 
469     IF NOT QP_GLOBALS.Equal(p_FNA_rec.program_update_date,p_old_FNA_rec.program_update_date)
470     THEN
471         NULL;
472     END IF;
473 
474     IF NOT QP_GLOBALS.Equal(p_FNA_rec.pte_sourcesystem_fnarea_id,p_old_FNA_rec.pte_sourcesystem_fnarea_id)
475     THEN
476         NULL;
477     END IF;
478 
479     IF NOT QP_GLOBALS.Equal(p_FNA_rec.pte_source_system_id,p_old_FNA_rec.pte_source_system_id)
480     THEN
481         NULL;
482     END IF;
483 
484     IF NOT QP_GLOBALS.Equal(p_FNA_rec.request_id,p_old_FNA_rec.request_id)
485     THEN
486         NULL;
487     END IF;
488 
489     IF NOT QP_GLOBALS.Equal(p_FNA_rec.seeded_flag,p_old_FNA_rec.seeded_flag)
490     THEN
491         NULL;
492     END IF;
493 
494 END Apply_Attribute_Changes;
495 
496 --  Function Complete_Record
497 
498 FUNCTION Complete_Record
499 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
500 ,   p_old_FNA_rec                   IN  QP_Attr_Map_PUB.Fna_Rec_Type
501 ) RETURN QP_Attr_Map_PUB.Fna_Rec_Type
502 IS
503 l_FNA_rec                     QP_Attr_Map_PUB.Fna_Rec_Type := p_FNA_rec;
504 BEGIN
505 
506     IF l_FNA_rec.attribute1 = FND_API.G_MISS_CHAR THEN
507         l_FNA_rec.attribute1 := p_old_FNA_rec.attribute1;
508     END IF;
509 
510     IF l_FNA_rec.attribute10 = FND_API.G_MISS_CHAR THEN
511         l_FNA_rec.attribute10 := p_old_FNA_rec.attribute10;
512     END IF;
513 
514     IF l_FNA_rec.attribute11 = FND_API.G_MISS_CHAR THEN
515         l_FNA_rec.attribute11 := p_old_FNA_rec.attribute11;
516     END IF;
517 
518     IF l_FNA_rec.attribute12 = FND_API.G_MISS_CHAR THEN
519         l_FNA_rec.attribute12 := p_old_FNA_rec.attribute12;
520     END IF;
521 
522     IF l_FNA_rec.attribute13 = FND_API.G_MISS_CHAR THEN
523         l_FNA_rec.attribute13 := p_old_FNA_rec.attribute13;
524     END IF;
525 
526     IF l_FNA_rec.attribute14 = FND_API.G_MISS_CHAR THEN
527         l_FNA_rec.attribute14 := p_old_FNA_rec.attribute14;
528     END IF;
529 
530     IF l_FNA_rec.attribute15 = FND_API.G_MISS_CHAR THEN
531         l_FNA_rec.attribute15 := p_old_FNA_rec.attribute15;
532     END IF;
533 
534     IF l_FNA_rec.attribute2 = FND_API.G_MISS_CHAR THEN
535         l_FNA_rec.attribute2 := p_old_FNA_rec.attribute2;
536     END IF;
537 
538     IF l_FNA_rec.attribute3 = FND_API.G_MISS_CHAR THEN
539         l_FNA_rec.attribute3 := p_old_FNA_rec.attribute3;
540     END IF;
541 
542     IF l_FNA_rec.attribute4 = FND_API.G_MISS_CHAR THEN
543         l_FNA_rec.attribute4 := p_old_FNA_rec.attribute4;
544     END IF;
545 
546     IF l_FNA_rec.attribute5 = FND_API.G_MISS_CHAR THEN
547         l_FNA_rec.attribute5 := p_old_FNA_rec.attribute5;
548     END IF;
549 
550     IF l_FNA_rec.attribute6 = FND_API.G_MISS_CHAR THEN
551         l_FNA_rec.attribute6 := p_old_FNA_rec.attribute6;
552     END IF;
553 
554     IF l_FNA_rec.attribute7 = FND_API.G_MISS_CHAR THEN
555         l_FNA_rec.attribute7 := p_old_FNA_rec.attribute7;
556     END IF;
557 
558     IF l_FNA_rec.attribute8 = FND_API.G_MISS_CHAR THEN
559         l_FNA_rec.attribute8 := p_old_FNA_rec.attribute8;
560     END IF;
561 
562     IF l_FNA_rec.attribute9 = FND_API.G_MISS_CHAR THEN
563         l_FNA_rec.attribute9 := p_old_FNA_rec.attribute9;
564     END IF;
565 
566     IF l_FNA_rec.context = FND_API.G_MISS_CHAR THEN
567         l_FNA_rec.context := p_old_FNA_rec.context;
568     END IF;
569 
570     IF l_FNA_rec.created_by = FND_API.G_MISS_NUM THEN
571         l_FNA_rec.created_by := p_old_FNA_rec.created_by;
572     END IF;
573 
574     IF l_FNA_rec.creation_date = FND_API.G_MISS_DATE THEN
575         l_FNA_rec.creation_date := p_old_FNA_rec.creation_date;
576     END IF;
577 
578     IF l_FNA_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
579         l_FNA_rec.enabled_flag := p_old_FNA_rec.enabled_flag;
580     END IF;
581 
582     IF l_FNA_rec.functional_area_id = FND_API.G_MISS_NUM THEN
583         l_FNA_rec.functional_area_id := p_old_FNA_rec.functional_area_id;
584     END IF;
585 
586     IF l_FNA_rec.last_updated_by = FND_API.G_MISS_NUM THEN
587         l_FNA_rec.last_updated_by := p_old_FNA_rec.last_updated_by;
588     END IF;
589 
590     IF l_FNA_rec.last_update_date = FND_API.G_MISS_DATE THEN
591         l_FNA_rec.last_update_date := p_old_FNA_rec.last_update_date;
592     END IF;
593 
594     IF l_FNA_rec.last_update_login = FND_API.G_MISS_NUM THEN
595         l_FNA_rec.last_update_login := p_old_FNA_rec.last_update_login;
596     END IF;
597 
598     IF l_FNA_rec.program_application_id = FND_API.G_MISS_NUM THEN
599         l_FNA_rec.program_application_id := p_old_FNA_rec.program_application_id;
600     END IF;
601 
602     IF l_FNA_rec.program_id = FND_API.G_MISS_NUM THEN
603         l_FNA_rec.program_id := p_old_FNA_rec.program_id;
604     END IF;
605 
606     IF l_FNA_rec.program_update_date = FND_API.G_MISS_DATE THEN
607         l_FNA_rec.program_update_date := p_old_FNA_rec.program_update_date;
608     END IF;
609 
610     IF l_FNA_rec.pte_sourcesystem_fnarea_id = FND_API.G_MISS_NUM THEN
611         l_FNA_rec.pte_sourcesystem_fnarea_id := p_old_FNA_rec.pte_sourcesystem_fnarea_id;
612     END IF;
613 
614     IF l_FNA_rec.pte_source_system_id = FND_API.G_MISS_NUM THEN
615         l_FNA_rec.pte_source_system_id := p_old_FNA_rec.pte_source_system_id;
616     END IF;
617 
618     IF l_FNA_rec.request_id = FND_API.G_MISS_NUM THEN
619         l_FNA_rec.request_id := p_old_FNA_rec.request_id;
620     END IF;
621 
622     IF l_FNA_rec.seeded_flag = FND_API.G_MISS_CHAR THEN
623         l_FNA_rec.seeded_flag := p_old_FNA_rec.seeded_flag;
624     END IF;
625 
626     RETURN l_FNA_rec;
627 
628 END Complete_Record;
629 
630 --  Function Convert_Miss_To_Null
631 
632 FUNCTION Convert_Miss_To_Null
633 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
634 ) RETURN QP_Attr_Map_PUB.Fna_Rec_Type
635 IS
636 l_FNA_rec                     QP_Attr_Map_PUB.Fna_Rec_Type := p_FNA_rec;
637 BEGIN
638     IF l_FNA_rec.attribute1 = FND_API.G_MISS_CHAR THEN
639         l_FNA_rec.attribute1 := NULL;
640     END IF;
641 
642     IF l_FNA_rec.attribute10 = FND_API.G_MISS_CHAR THEN
643         l_FNA_rec.attribute10 := NULL;
644     END IF;
645 
646     IF l_FNA_rec.attribute11 = FND_API.G_MISS_CHAR THEN
647         l_FNA_rec.attribute11 := NULL;
648     END IF;
649 
650     IF l_FNA_rec.attribute12 = FND_API.G_MISS_CHAR THEN
651         l_FNA_rec.attribute12 := NULL;
652     END IF;
653 
654     IF l_FNA_rec.attribute13 = FND_API.G_MISS_CHAR THEN
655         l_FNA_rec.attribute13 := NULL;
656     END IF;
657 
658     IF l_FNA_rec.attribute14 = FND_API.G_MISS_CHAR THEN
659         l_FNA_rec.attribute14 := NULL;
660     END IF;
661 
662     IF l_FNA_rec.attribute15 = FND_API.G_MISS_CHAR THEN
663         l_FNA_rec.attribute15 := NULL;
664     END IF;
665 
666     IF l_FNA_rec.attribute2 = FND_API.G_MISS_CHAR THEN
667         l_FNA_rec.attribute2 := NULL;
668     END IF;
669 
670     IF l_FNA_rec.attribute3 = FND_API.G_MISS_CHAR THEN
671         l_FNA_rec.attribute3 := NULL;
672     END IF;
673 
674     IF l_FNA_rec.attribute4 = FND_API.G_MISS_CHAR THEN
675         l_FNA_rec.attribute4 := NULL;
676     END IF;
677 
678     IF l_FNA_rec.attribute5 = FND_API.G_MISS_CHAR THEN
679         l_FNA_rec.attribute5 := NULL;
680     END IF;
681 
682     IF l_FNA_rec.attribute6 = FND_API.G_MISS_CHAR THEN
683         l_FNA_rec.attribute6 := NULL;
684     END IF;
685 
686     IF l_FNA_rec.attribute7 = FND_API.G_MISS_CHAR THEN
687         l_FNA_rec.attribute7 := NULL;
688     END IF;
689 
690     IF l_FNA_rec.attribute8 = FND_API.G_MISS_CHAR THEN
691         l_FNA_rec.attribute8 := NULL;
692     END IF;
693 
694     IF l_FNA_rec.attribute9 = FND_API.G_MISS_CHAR THEN
695         l_FNA_rec.attribute9 := NULL;
696     END IF;
697 
698     IF l_FNA_rec.context = FND_API.G_MISS_CHAR THEN
699         l_FNA_rec.context := NULL;
700     END IF;
701 
702     IF l_FNA_rec.created_by = FND_API.G_MISS_NUM THEN
703         l_FNA_rec.created_by := NULL;
704     END IF;
705 
706     IF l_FNA_rec.creation_date = FND_API.G_MISS_DATE THEN
707         l_FNA_rec.creation_date := NULL;
708     END IF;
709 
710     IF l_FNA_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
711         l_FNA_rec.enabled_flag := NULL;
712     END IF;
713 
714     IF l_FNA_rec.functional_area_id = FND_API.G_MISS_NUM THEN
715         l_FNA_rec.functional_area_id := NULL;
716     END IF;
717 
718     IF l_FNA_rec.last_updated_by = FND_API.G_MISS_NUM THEN
719         l_FNA_rec.last_updated_by := NULL;
720     END IF;
721 
722     IF l_FNA_rec.last_update_date = FND_API.G_MISS_DATE THEN
723         l_FNA_rec.last_update_date := NULL;
724     END IF;
725 
726     IF l_FNA_rec.last_update_login = FND_API.G_MISS_NUM THEN
727         l_FNA_rec.last_update_login := NULL;
728     END IF;
729 
730     IF l_FNA_rec.program_application_id = FND_API.G_MISS_NUM THEN
731         l_FNA_rec.program_application_id := NULL;
732     END IF;
733 
734     IF l_FNA_rec.program_id = FND_API.G_MISS_NUM THEN
735         l_FNA_rec.program_id := NULL;
736     END IF;
737 
738     IF l_FNA_rec.program_update_date = FND_API.G_MISS_DATE THEN
739         l_FNA_rec.program_update_date := NULL;
740     END IF;
741 
742     IF l_FNA_rec.pte_sourcesystem_fnarea_id = FND_API.G_MISS_NUM THEN
743         l_FNA_rec.pte_sourcesystem_fnarea_id := NULL;
744     END IF;
745 
746     IF l_FNA_rec.pte_source_system_id = FND_API.G_MISS_NUM THEN
747         l_FNA_rec.pte_source_system_id := NULL;
748     END IF;
749 
750     IF l_FNA_rec.request_id = FND_API.G_MISS_NUM THEN
751         l_FNA_rec.request_id := NULL;
752     END IF;
753 
754     IF l_FNA_rec.seeded_flag = FND_API.G_MISS_CHAR THEN
755         l_FNA_rec.seeded_flag := NULL;
756     END IF;
757 
758     RETURN l_FNA_rec;
759 
760 END Convert_Miss_To_Null;
761 
762 --  Procedure Update_Row
763 
764 PROCEDURE Update_Row
765 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
766 )
767 IS
768 BEGIN
769 
770     UPDATE  QP_SOURCESYSTEM_FNAREA_MAP
771     SET     ATTRIBUTE1                     = p_FNA_rec.attribute1
772     ,       ATTRIBUTE10                    = p_FNA_rec.attribute10
773     ,       ATTRIBUTE11                    = p_FNA_rec.attribute11
774     ,       ATTRIBUTE12                    = p_FNA_rec.attribute12
775     ,       ATTRIBUTE13                    = p_FNA_rec.attribute13
776     ,       ATTRIBUTE14                    = p_FNA_rec.attribute14
777     ,       ATTRIBUTE15                    = p_FNA_rec.attribute15
778     ,       ATTRIBUTE2                     = p_FNA_rec.attribute2
779     ,       ATTRIBUTE3                     = p_FNA_rec.attribute3
780     ,       ATTRIBUTE4                     = p_FNA_rec.attribute4
781     ,       ATTRIBUTE5                     = p_FNA_rec.attribute5
782     ,       ATTRIBUTE6                     = p_FNA_rec.attribute6
783     ,       ATTRIBUTE7                     = p_FNA_rec.attribute7
784     ,       ATTRIBUTE8                     = p_FNA_rec.attribute8
785     ,       ATTRIBUTE9                     = p_FNA_rec.attribute9
786     ,       CONTEXT                        = p_FNA_rec.context
787     ,       CREATED_BY                     = p_FNA_rec.created_by
788     ,       CREATION_DATE                  = p_FNA_rec.creation_date
789     ,       ENABLED_FLAG                   = p_FNA_rec.enabled_flag
790     ,       FUNCTIONAL_AREA_ID             = p_FNA_rec.functional_area_id
791     ,       LAST_UPDATED_BY                = p_FNA_rec.last_updated_by
792     ,       LAST_UPDATE_DATE               = p_FNA_rec.last_update_date
793     ,       LAST_UPDATE_LOGIN              = p_FNA_rec.last_update_login
794     ,       PROGRAM_APPLICATION_ID         = p_FNA_rec.program_application_id
795     ,       PROGRAM_ID                     = p_FNA_rec.program_id
796     ,       PROGRAM_UPDATE_DATE            = p_FNA_rec.program_update_date
797     ,       PTE_SOURCESYSTEM_FNAREA_ID     = p_FNA_rec.pte_sourcesystem_fnarea_id
798     ,       PTE_SOURCE_SYSTEM_ID           = p_FNA_rec.pte_source_system_id
799     ,       REQUEST_ID                     = p_FNA_rec.request_id
800     ,       SEEDED_FLAG                    = p_FNA_rec.seeded_flag
801     WHERE   PTE_SOURCESYSTEM_FNAREA_ID = p_FNA_rec.pte_sourcesystem_fnarea_id
802     ;
803 
804 EXCEPTION
805 
806     WHEN OTHERS THEN
807 
808         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
809         THEN
810             OE_MSG_PUB.Add_Exc_Msg
811             (   G_PKG_NAME
812             ,   'Update_Row'
813             );
814         END IF;
815 
816         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
817 
818 END Update_Row;
819 
820 --  Procedure Insert_Row
821 
822 PROCEDURE Insert_Row
823 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
824 )
825 IS
826 BEGIN
827 
828     INSERT  INTO QP_SOURCESYSTEM_FNAREA_MAP
829     (       ATTRIBUTE1
830     ,       ATTRIBUTE10
831     ,       ATTRIBUTE11
832     ,       ATTRIBUTE12
833     ,       ATTRIBUTE13
834     ,       ATTRIBUTE14
835     ,       ATTRIBUTE15
836     ,       ATTRIBUTE2
837     ,       ATTRIBUTE3
838     ,       ATTRIBUTE4
839     ,       ATTRIBUTE5
840     ,       ATTRIBUTE6
841     ,       ATTRIBUTE7
842     ,       ATTRIBUTE8
843     ,       ATTRIBUTE9
844     ,       CONTEXT
845     ,       CREATED_BY
846     ,       CREATION_DATE
847     ,       ENABLED_FLAG
848     ,       FUNCTIONAL_AREA_ID
849     ,       LAST_UPDATED_BY
850     ,       LAST_UPDATE_DATE
851     ,       LAST_UPDATE_LOGIN
852     ,       PROGRAM_APPLICATION_ID
853     ,       PROGRAM_ID
854     ,       PROGRAM_UPDATE_DATE
855     ,       PTE_SOURCESYSTEM_FNAREA_ID
856     ,       PTE_SOURCE_SYSTEM_ID
857     ,       REQUEST_ID
858     ,       SEEDED_FLAG
859     )
860     VALUES
861     (       p_FNA_rec.attribute1
862     ,       p_FNA_rec.attribute10
863     ,       p_FNA_rec.attribute11
864     ,       p_FNA_rec.attribute12
865     ,       p_FNA_rec.attribute13
866     ,       p_FNA_rec.attribute14
867     ,       p_FNA_rec.attribute15
868     ,       p_FNA_rec.attribute2
869     ,       p_FNA_rec.attribute3
870     ,       p_FNA_rec.attribute4
871     ,       p_FNA_rec.attribute5
872     ,       p_FNA_rec.attribute6
873     ,       p_FNA_rec.attribute7
874     ,       p_FNA_rec.attribute8
875     ,       p_FNA_rec.attribute9
876     ,       p_FNA_rec.context
877     ,       p_FNA_rec.created_by
878     ,       p_FNA_rec.creation_date
879     ,       p_FNA_rec.enabled_flag
880     ,       p_FNA_rec.functional_area_id
881     ,       p_FNA_rec.last_updated_by
882     ,       p_FNA_rec.last_update_date
883     ,       p_FNA_rec.last_update_login
884     ,       p_FNA_rec.program_application_id
885     ,       p_FNA_rec.program_id
886     ,       p_FNA_rec.program_update_date
887     ,       p_FNA_rec.pte_sourcesystem_fnarea_id
888     ,       p_FNA_rec.pte_source_system_id
889     ,       p_FNA_rec.request_id
890     ,       p_FNA_rec.seeded_flag
891     );
892 
893 EXCEPTION
894 
895     WHEN OTHERS THEN
896 
897         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
898         THEN
899             OE_MSG_PUB.Add_Exc_Msg
900             (   G_PKG_NAME
901             ,   'Insert_Row'
902             );
903         END IF;
904 
905         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
906 
907 END Insert_Row;
908 
909 --  Procedure Delete_Row
910 
911 PROCEDURE Delete_Row
912 (   p_pte_sourcesystem_fnarea_id    IN  NUMBER
913 )
914 IS
915 BEGIN
916 
917     DELETE  FROM QP_SOURCESYSTEM_FNAREA_MAP
918     WHERE   PTE_SOURCESYSTEM_FNAREA_ID = p_pte_sourcesystem_fnarea_id
919     ;
920 
921 EXCEPTION
922 
923     WHEN OTHERS THEN
924 
925         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
926         THEN
927             OE_MSG_PUB.Add_Exc_Msg
928             (   G_PKG_NAME
929             ,   'Delete_Row'
930             );
931         END IF;
932 
933         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
934 
935 END Delete_Row;
936 
937 --  Function Query_Row
938 
939 FUNCTION Query_Row
940 (   p_pte_sourcesystem_fnarea_id    IN  NUMBER
941 ) RETURN QP_Attr_Map_PUB.Fna_Rec_Type
942 IS
943 BEGIN
944 
945     RETURN Query_Rows
946         (   p_pte_sourcesystem_fnarea_id  => p_pte_sourcesystem_fnarea_id
947         )(1);
948 
949 END Query_Row;
950 
951 --  Function Query_Rows
952 
953 --
954 
955 FUNCTION Query_Rows
956 (   p_pte_sourcesystem_fnarea_id    IN  NUMBER :=
957                                         FND_API.G_MISS_NUM
958 ,   p_pte_source_system_id          IN  NUMBER :=
959                                         FND_API.G_MISS_NUM
960 ) RETURN QP_Attr_Map_PUB.Fna_Tbl_Type
961 IS
962 l_FNA_rec                     QP_Attr_Map_PUB.Fna_Rec_Type;
963 l_FNA_tbl                     QP_Attr_Map_PUB.Fna_Tbl_Type;
964 
965 CURSOR l_FNA_csr IS
966     SELECT  ATTRIBUTE1
967     ,       ATTRIBUTE10
968     ,       ATTRIBUTE11
969     ,       ATTRIBUTE12
970     ,       ATTRIBUTE13
971     ,       ATTRIBUTE14
972     ,       ATTRIBUTE15
973     ,       ATTRIBUTE2
974     ,       ATTRIBUTE3
975     ,       ATTRIBUTE4
976     ,       ATTRIBUTE5
977     ,       ATTRIBUTE6
978     ,       ATTRIBUTE7
979     ,       ATTRIBUTE8
980     ,       ATTRIBUTE9
981     ,       CONTEXT
982     ,       CREATED_BY
983     ,       CREATION_DATE
984     ,       ENABLED_FLAG
985     ,       FUNCTIONAL_AREA_ID
986     ,       LAST_UPDATED_BY
987     ,       LAST_UPDATE_DATE
988     ,       LAST_UPDATE_LOGIN
989     ,       PROGRAM_APPLICATION_ID
990     ,       PROGRAM_ID
991     ,       PROGRAM_UPDATE_DATE
992     ,       PTE_SOURCESYSTEM_FNAREA_ID
993     ,       PTE_SOURCE_SYSTEM_ID
994     ,       REQUEST_ID
995     ,       SEEDED_FLAG
996     FROM    QP_SOURCESYSTEM_FNAREA_MAP
997     WHERE ( PTE_SOURCESYSTEM_FNAREA_ID = p_pte_sourcesystem_fnarea_id
998     )
999     OR (    PTE_SOURCE_SYSTEM_ID = p_pte_source_system_id
1000     );
1001 
1002 BEGIN
1003 
1004     IF
1005     (p_pte_sourcesystem_fnarea_id IS NOT NULL
1006      AND
1007      p_pte_sourcesystem_fnarea_id <> FND_API.G_MISS_NUM)
1008     AND
1009     (p_pte_source_system_id IS NOT NULL
1010      AND
1011      p_pte_source_system_id <> FND_API.G_MISS_NUM)
1012     THEN
1013             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1014             THEN
1015                 OE_MSG_PUB.Add_Exc_Msg
1016                 (   G_PKG_NAME
1017                 ,   'Query Rows'
1018                 ,   'Keys are mutually exclusive: pte_sourcesystem_fnarea_id = '|| p_pte_sourcesystem_fnarea_id || ', pte_source_system_id = '|| p_pte_source_system_id
1019                 );
1020             END IF;
1021 
1022         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1023 
1024     END IF;
1025 
1026 
1027     --  Loop over fetched records
1028 
1029     FOR l_implicit_rec IN l_FNA_csr LOOP
1030 
1031         l_FNA_rec.attribute1           := l_implicit_rec.ATTRIBUTE1;
1032         l_FNA_rec.attribute10          := l_implicit_rec.ATTRIBUTE10;
1033         l_FNA_rec.attribute11          := l_implicit_rec.ATTRIBUTE11;
1034         l_FNA_rec.attribute12          := l_implicit_rec.ATTRIBUTE12;
1035         l_FNA_rec.attribute13          := l_implicit_rec.ATTRIBUTE13;
1036         l_FNA_rec.attribute14          := l_implicit_rec.ATTRIBUTE14;
1037         l_FNA_rec.attribute15          := l_implicit_rec.ATTRIBUTE15;
1038         l_FNA_rec.attribute2           := l_implicit_rec.ATTRIBUTE2;
1039         l_FNA_rec.attribute3           := l_implicit_rec.ATTRIBUTE3;
1040         l_FNA_rec.attribute4           := l_implicit_rec.ATTRIBUTE4;
1041         l_FNA_rec.attribute5           := l_implicit_rec.ATTRIBUTE5;
1042         l_FNA_rec.attribute6           := l_implicit_rec.ATTRIBUTE6;
1043         l_FNA_rec.attribute7           := l_implicit_rec.ATTRIBUTE7;
1044         l_FNA_rec.attribute8           := l_implicit_rec.ATTRIBUTE8;
1045         l_FNA_rec.attribute9           := l_implicit_rec.ATTRIBUTE9;
1046         l_FNA_rec.context              := l_implicit_rec.CONTEXT;
1047         l_FNA_rec.created_by           := l_implicit_rec.CREATED_BY;
1048         l_FNA_rec.creation_date        := l_implicit_rec.CREATION_DATE;
1049         l_FNA_rec.enabled_flag         := l_implicit_rec.ENABLED_FLAG;
1050         l_FNA_rec.functional_area_id   := l_implicit_rec.FUNCTIONAL_AREA_ID;
1051         l_FNA_rec.last_updated_by      := l_implicit_rec.LAST_UPDATED_BY;
1052         l_FNA_rec.last_update_date     := l_implicit_rec.LAST_UPDATE_DATE;
1053         l_FNA_rec.last_update_login    := l_implicit_rec.LAST_UPDATE_LOGIN;
1054         l_FNA_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
1055         l_FNA_rec.program_id           := l_implicit_rec.PROGRAM_ID;
1056         l_FNA_rec.program_update_date  := l_implicit_rec.PROGRAM_UPDATE_DATE;
1057         l_FNA_rec.pte_sourcesystem_fnarea_id := l_implicit_rec.PTE_SOURCESYSTEM_FNAREA_ID;
1058         l_FNA_rec.pte_source_system_id := l_implicit_rec.PTE_SOURCE_SYSTEM_ID;
1059         l_FNA_rec.request_id           := l_implicit_rec.REQUEST_ID;
1060         l_FNA_rec.seeded_flag          := l_implicit_rec.SEEDED_FLAG;
1061 
1062         l_FNA_tbl(l_FNA_tbl.COUNT + 1) := l_FNA_rec;
1063     END LOOP;
1064 
1065 
1066     --  PK sent and no rows found
1067 
1068     IF
1069     (p_pte_sourcesystem_fnarea_id IS NOT NULL
1070      AND
1071      p_pte_sourcesystem_fnarea_id <> FND_API.G_MISS_NUM)
1072     AND
1073     (l_FNA_tbl.COUNT = 0)
1074     THEN
1075         RAISE NO_DATA_FOUND;
1076     END IF;
1077 
1078 
1079     --  Return fetched table
1080 
1081     RETURN l_FNA_tbl;
1082 
1083 EXCEPTION
1084 
1085     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1086 
1087         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1088 
1089     WHEN OTHERS THEN
1090 
1091         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1092         THEN
1093             OE_MSG_PUB.Add_Exc_Msg
1094             (   G_PKG_NAME
1095             ,   'Query_Rows'
1096             );
1097         END IF;
1098 
1099         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1100 
1101 END Query_Rows;
1102 
1103 --  Procedure       lock_Row
1104 --
1105 
1106 PROCEDURE Lock_Row
1107 (   x_return_status                 OUT NOCOPY VARCHAR2
1108 ,   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
1109 ,   x_FNA_rec                       OUT NOCOPY QP_Attr_Map_PUB.Fna_Rec_Type
1110 )
1111 IS
1112 l_FNA_rec                     QP_Attr_Map_PUB.Fna_Rec_Type;
1113 BEGIN
1114 
1115     SELECT  ATTRIBUTE1
1116     ,       ATTRIBUTE10
1117     ,       ATTRIBUTE11
1118     ,       ATTRIBUTE12
1119     ,       ATTRIBUTE13
1120     ,       ATTRIBUTE14
1121     ,       ATTRIBUTE15
1122     ,       ATTRIBUTE2
1123     ,       ATTRIBUTE3
1124     ,       ATTRIBUTE4
1125     ,       ATTRIBUTE5
1126     ,       ATTRIBUTE6
1127     ,       ATTRIBUTE7
1128     ,       ATTRIBUTE8
1129     ,       ATTRIBUTE9
1130     ,       CONTEXT
1131     ,       CREATED_BY
1132     ,       CREATION_DATE
1133     ,       ENABLED_FLAG
1134     ,       FUNCTIONAL_AREA_ID
1135     ,       LAST_UPDATED_BY
1136     ,       LAST_UPDATE_DATE
1137     ,       LAST_UPDATE_LOGIN
1138     ,       PROGRAM_APPLICATION_ID
1139     ,       PROGRAM_ID
1140     ,       PROGRAM_UPDATE_DATE
1141     ,       PTE_SOURCESYSTEM_FNAREA_ID
1142     ,       PTE_SOURCE_SYSTEM_ID
1143     ,       REQUEST_ID
1144     ,       SEEDED_FLAG
1145     INTO    l_FNA_rec.attribute1
1146     ,       l_FNA_rec.attribute10
1147     ,       l_FNA_rec.attribute11
1148     ,       l_FNA_rec.attribute12
1149     ,       l_FNA_rec.attribute13
1150     ,       l_FNA_rec.attribute14
1151     ,       l_FNA_rec.attribute15
1152     ,       l_FNA_rec.attribute2
1153     ,       l_FNA_rec.attribute3
1154     ,       l_FNA_rec.attribute4
1155     ,       l_FNA_rec.attribute5
1156     ,       l_FNA_rec.attribute6
1157     ,       l_FNA_rec.attribute7
1158     ,       l_FNA_rec.attribute8
1159     ,       l_FNA_rec.attribute9
1160     ,       l_FNA_rec.context
1161     ,       l_FNA_rec.created_by
1162     ,       l_FNA_rec.creation_date
1163     ,       l_FNA_rec.enabled_flag
1164     ,       l_FNA_rec.functional_area_id
1165     ,       l_FNA_rec.last_updated_by
1166     ,       l_FNA_rec.last_update_date
1167     ,       l_FNA_rec.last_update_login
1168     ,       l_FNA_rec.program_application_id
1169     ,       l_FNA_rec.program_id
1170     ,       l_FNA_rec.program_update_date
1171     ,       l_FNA_rec.pte_sourcesystem_fnarea_id
1172     ,       l_FNA_rec.pte_source_system_id
1173     ,       l_FNA_rec.request_id
1174     ,       l_FNA_rec.seeded_flag
1175     FROM    QP_SOURCESYSTEM_FNAREA_MAP
1176     WHERE   PTE_SOURCESYSTEM_FNAREA_ID = p_FNA_rec.pte_sourcesystem_fnarea_id
1177         FOR UPDATE NOWAIT;
1178 
1179     --  Row locked. Compare IN attributes to DB attributes.
1180 
1181     IF  QP_GLOBALS.Equal(p_FNA_rec.attribute1,
1182                          l_FNA_rec.attribute1)
1183     AND QP_GLOBALS.Equal(p_FNA_rec.attribute10,
1184                          l_FNA_rec.attribute10)
1185     AND QP_GLOBALS.Equal(p_FNA_rec.attribute11,
1186                          l_FNA_rec.attribute11)
1187     AND QP_GLOBALS.Equal(p_FNA_rec.attribute12,
1188                          l_FNA_rec.attribute12)
1189     AND QP_GLOBALS.Equal(p_FNA_rec.attribute13,
1190                          l_FNA_rec.attribute13)
1191     AND QP_GLOBALS.Equal(p_FNA_rec.attribute14,
1192                          l_FNA_rec.attribute14)
1193     AND QP_GLOBALS.Equal(p_FNA_rec.attribute15,
1194                          l_FNA_rec.attribute15)
1195     AND QP_GLOBALS.Equal(p_FNA_rec.attribute2,
1196                          l_FNA_rec.attribute2)
1197     AND QP_GLOBALS.Equal(p_FNA_rec.attribute3,
1198                          l_FNA_rec.attribute3)
1199     AND QP_GLOBALS.Equal(p_FNA_rec.attribute4,
1200                          l_FNA_rec.attribute4)
1201     AND QP_GLOBALS.Equal(p_FNA_rec.attribute5,
1202                          l_FNA_rec.attribute5)
1203     AND QP_GLOBALS.Equal(p_FNA_rec.attribute6,
1204                          l_FNA_rec.attribute6)
1205     AND QP_GLOBALS.Equal(p_FNA_rec.attribute7,
1206                          l_FNA_rec.attribute7)
1207     AND QP_GLOBALS.Equal(p_FNA_rec.attribute8,
1208                          l_FNA_rec.attribute8)
1209     AND QP_GLOBALS.Equal(p_FNA_rec.attribute9,
1210                          l_FNA_rec.attribute9)
1211     AND QP_GLOBALS.Equal(p_FNA_rec.context,
1212                          l_FNA_rec.context)
1213     AND QP_GLOBALS.Equal(p_FNA_rec.created_by,
1214                          l_FNA_rec.created_by)
1215     AND QP_GLOBALS.Equal(p_FNA_rec.creation_date,
1216                          l_FNA_rec.creation_date)
1217     AND QP_GLOBALS.Equal(p_FNA_rec.enabled_flag,
1218                          l_FNA_rec.enabled_flag)
1219     AND QP_GLOBALS.Equal(p_FNA_rec.functional_area_id,
1220                          l_FNA_rec.functional_area_id)
1221     AND QP_GLOBALS.Equal(p_FNA_rec.last_updated_by,
1222                          l_FNA_rec.last_updated_by)
1223     AND QP_GLOBALS.Equal(p_FNA_rec.last_update_date,
1224                          l_FNA_rec.last_update_date)
1225     AND QP_GLOBALS.Equal(p_FNA_rec.last_update_login,
1226                          l_FNA_rec.last_update_login)
1227     AND QP_GLOBALS.Equal(p_FNA_rec.program_application_id,
1228                          l_FNA_rec.program_application_id)
1229     AND QP_GLOBALS.Equal(p_FNA_rec.program_id,
1230                          l_FNA_rec.program_id)
1231     AND QP_GLOBALS.Equal(p_FNA_rec.program_update_date,
1232                          l_FNA_rec.program_update_date)
1233     AND QP_GLOBALS.Equal(p_FNA_rec.pte_sourcesystem_fnarea_id,
1234                          l_FNA_rec.pte_sourcesystem_fnarea_id)
1235     AND QP_GLOBALS.Equal(p_FNA_rec.pte_source_system_id,
1236                          l_FNA_rec.pte_source_system_id)
1237     AND QP_GLOBALS.Equal(p_FNA_rec.request_id,
1238                          l_FNA_rec.request_id)
1239     AND QP_GLOBALS.Equal(p_FNA_rec.seeded_flag,
1240                          l_FNA_rec.seeded_flag)
1241     THEN
1242 
1243         --  Row has not changed. Set out parameter.
1244 
1245         x_FNA_rec                      := l_FNA_rec;
1246 
1247         --  Set return status
1248 
1249         x_return_status                := FND_API.G_RET_STS_SUCCESS;
1250         x_FNA_rec.return_status        := FND_API.G_RET_STS_SUCCESS;
1251 
1252     ELSE
1253 
1254         --  Row has changed by another user.
1255 
1256         x_return_status                := FND_API.G_RET_STS_ERROR;
1257         x_FNA_rec.return_status        := FND_API.G_RET_STS_ERROR;
1258 
1259         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1260         THEN
1261 
1262             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1263             OE_MSG_PUB.Add;
1264 
1265         END IF;
1266 
1267     END IF;
1268 
1269 EXCEPTION
1270 
1271     WHEN NO_DATA_FOUND THEN
1272 
1273         x_return_status                := FND_API.G_RET_STS_ERROR;
1274         x_FNA_rec.return_status        := FND_API.G_RET_STS_ERROR;
1275 
1276         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1277         THEN
1278 
1279             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1280             OE_MSG_PUB.Add;
1281 
1282         END IF;
1283     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1284 
1285         x_return_status                := FND_API.G_RET_STS_ERROR;
1286         x_FNA_rec.return_status        := FND_API.G_RET_STS_ERROR;
1287 
1288         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1289         THEN
1290 
1291             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1292             OE_MSG_PUB.Add;
1293 
1294         END IF;
1295     WHEN OTHERS THEN
1296 
1297         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1298         x_FNA_rec.return_status        := FND_API.G_RET_STS_UNEXP_ERROR;
1299 
1300         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1301         THEN
1302             OE_MSG_PUB.Add_Exc_Msg
1303             (   G_PKG_NAME
1304             ,   'Lock_Row'
1305             );
1306         END IF;
1307 
1308 END Lock_Row;
1309 
1310 --  Function Get_Values
1311 
1312 FUNCTION Get_Values
1313 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
1314 ,   p_old_FNA_rec                   IN  QP_Attr_Map_PUB.Fna_Rec_Type :=
1315                                         QP_Attr_Map_PUB.G_MISS_FNA_REC
1316 ) RETURN QP_Attr_Map_PUB.Fna_Val_Rec_Type
1317 IS
1318 l_FNA_val_rec                 QP_Attr_Map_PUB.Fna_Val_Rec_Type;
1319 BEGIN
1320 
1321     IF p_FNA_rec.enabled_flag IS NOT NULL AND
1322         p_FNA_rec.enabled_flag <> FND_API.G_MISS_CHAR AND
1323         NOT QP_GLOBALS.Equal(p_FNA_rec.enabled_flag,
1324         p_old_FNA_rec.enabled_flag)
1325     THEN
1326         l_FNA_val_rec.enabled := QP_Id_To_Value.Enabled
1327         (   p_enabled_flag                => p_FNA_rec.enabled_flag
1328         );
1329     END IF;
1330 
1331     IF p_FNA_rec.functional_area_id IS NOT NULL AND
1332         p_FNA_rec.functional_area_id <> FND_API.G_MISS_NUM AND
1333         NOT QP_GLOBALS.Equal(p_FNA_rec.functional_area_id,
1334         p_old_FNA_rec.functional_area_id)
1335     THEN
1336         l_FNA_val_rec.functional_area := QP_Id_To_Value.Functional_Area
1337         (   p_functional_area_id          => p_FNA_rec.functional_area_id
1338         );
1339     END IF;
1340 
1341     IF p_FNA_rec.pte_sourcesystem_fnarea_id IS NOT NULL AND
1342         p_FNA_rec.pte_sourcesystem_fnarea_id <> FND_API.G_MISS_NUM AND
1343         NOT QP_GLOBALS.Equal(p_FNA_rec.pte_sourcesystem_fnarea_id,
1344         p_old_FNA_rec.pte_sourcesystem_fnarea_id)
1345     THEN
1346       -- We comment this code out because we have a pte_sourcesystem_fnarea_id,
1347       --  but there is no corresponding value.  The code changes the value from
1348       --  G_MISS_CHAR to NULL, and this throws an "Invalid Item ID" error.
1349       NULL;
1350 /*
1351        l_FNA_val_rec.pte_sourcesystem_fnarea := QP_Id_To_Value.Pte_Sourcesystem_Fnarea
1352         (   p_pte_sourcesystem_fnarea_id  => p_FNA_rec.pte_sourcesystem_fnarea_id
1353         );
1354 */
1355     END IF;
1356 
1357 
1358     IF p_FNA_rec.pte_source_system_id IS NOT NULL AND
1359         p_FNA_rec.pte_source_system_id <> FND_API.G_MISS_NUM AND
1360         NOT QP_GLOBALS.Equal(p_FNA_rec.pte_source_system_id,
1361         p_old_FNA_rec.pte_source_system_id)
1362     THEN
1363         l_FNA_val_rec.pte_source_system := QP_Id_To_Value.Pte_Source_System
1364         (   p_pte_source_system_id        => p_FNA_rec.pte_source_system_id
1365         );
1366     END IF;
1367 
1368 
1369     IF p_FNA_rec.seeded_flag IS NOT NULL AND
1370         p_FNA_rec.seeded_flag <> FND_API.G_MISS_CHAR AND
1371         NOT QP_GLOBALS.Equal(p_FNA_rec.seeded_flag,
1372         p_old_FNA_rec.seeded_flag)
1373     THEN
1374         l_FNA_val_rec.seeded := QP_Id_To_Value.Seeded
1375         (   p_seeded_flag                 => p_FNA_rec.seeded_flag
1376         );
1377     END IF;
1378 
1379     RETURN l_FNA_val_rec;
1380 
1381 END Get_Values;
1382 
1383 --  Function Get_Ids
1384 
1385 FUNCTION Get_Ids
1386 (   p_FNA_rec                       IN  QP_Attr_Map_PUB.Fna_Rec_Type
1387 ,   p_FNA_val_rec                   IN  QP_Attr_Map_PUB.Fna_Val_Rec_Type
1388 ) RETURN QP_Attr_Map_PUB.Fna_Rec_Type
1389 IS
1390 l_FNA_rec                     QP_Attr_Map_PUB.Fna_Rec_Type;
1391 BEGIN
1392 
1393     --  initialize  return_status.
1394 
1395     l_FNA_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1396 
1397     --  initialize l_FNA_rec.
1398 
1399     l_FNA_rec := p_FNA_rec;
1400 
1401     IF  p_FNA_val_rec.enabled <> FND_API.G_MISS_CHAR
1402     THEN
1403 
1404         IF p_FNA_rec.enabled_flag <> FND_API.G_MISS_CHAR THEN
1405 
1406             l_FNA_rec.enabled_flag := p_FNA_rec.enabled_flag;
1407 
1408             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1409             THEN
1410 
1411                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1412                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','enabled');
1413                 OE_MSG_PUB.Add;
1414 
1415             END IF;
1416 
1417         ELSE
1418 
1419             l_FNA_rec.enabled_flag := QP_Value_To_Id.enabled
1420             (   p_enabled                     => p_FNA_val_rec.enabled
1421             );
1422 
1423             IF l_FNA_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
1424                 l_FNA_rec.return_status := FND_API.G_RET_STS_ERROR;
1425             END IF;
1426 
1427         END IF;
1428 
1429     END IF;
1430 
1431     IF  p_FNA_val_rec.functional_area <> FND_API.G_MISS_CHAR
1432     THEN
1433 
1434         IF p_FNA_rec.functional_area_id <> FND_API.G_MISS_NUM THEN
1435 
1436             l_FNA_rec.functional_area_id := p_FNA_rec.functional_area_id;
1437 
1438             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1439             THEN
1440 
1441                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1442                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','functional_area');
1443                 OE_MSG_PUB.Add;
1444 
1445             END IF;
1446 
1447         ELSE
1448 
1449             l_FNA_rec.functional_area_id := QP_Value_To_Id.functional_area
1450             (   p_functional_area             => p_FNA_val_rec.functional_area
1451             );
1452 
1453             IF l_FNA_rec.functional_area_id = FND_API.G_MISS_NUM THEN
1454                 l_FNA_rec.return_status := FND_API.G_RET_STS_ERROR;
1455             END IF;
1456 
1457         END IF;
1458 
1459     END IF;
1460 
1461     IF  p_FNA_val_rec.pte_sourcesystem_fnarea <> FND_API.G_MISS_CHAR
1462     THEN
1463 
1464         IF p_FNA_rec.pte_sourcesystem_fnarea_id <> FND_API.G_MISS_NUM THEN
1465 
1466             l_FNA_rec.pte_sourcesystem_fnarea_id := p_FNA_rec.pte_sourcesystem_fnarea_id;
1467 
1468             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1469             THEN
1470 
1471                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1472                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pte_sourcesystem_fnarea');
1473                 OE_MSG_PUB.Add;
1474 
1475             END IF;
1476 
1477         ELSE
1478 
1479             l_FNA_rec.pte_sourcesystem_fnarea_id := QP_Value_To_Id.pte_sourcesystem_fnarea
1480             (   p_pte_sourcesystem_fnarea     => p_FNA_val_rec.pte_sourcesystem_fnarea
1481             );
1482 
1483             IF l_FNA_rec.pte_sourcesystem_fnarea_id = FND_API.G_MISS_NUM THEN
1484                 l_FNA_rec.return_status := FND_API.G_RET_STS_ERROR;
1485             END IF;
1486 
1487         END IF;
1488 
1489     END IF;
1490 
1491     IF  p_FNA_val_rec.pte_source_system <> FND_API.G_MISS_CHAR
1492     THEN
1493 
1494         IF p_FNA_rec.pte_source_system_id <> FND_API.G_MISS_NUM THEN
1495 
1496             l_FNA_rec.pte_source_system_id := p_FNA_rec.pte_source_system_id;
1497 
1498             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1499             THEN
1500 
1501                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1502                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pte_source_system');
1503                 OE_MSG_PUB.Add;
1504 
1505             END IF;
1506 
1507         ELSE
1508 
1509             l_FNA_rec.pte_source_system_id := QP_Value_To_Id.pte_source_system
1510             (   p_pte_source_system           => p_FNA_val_rec.pte_source_system
1511             );
1512 
1513             IF l_FNA_rec.pte_source_system_id = FND_API.G_MISS_NUM THEN
1514                 l_FNA_rec.return_status := FND_API.G_RET_STS_ERROR;
1515             END IF;
1516 
1517         END IF;
1518 
1519     END IF;
1520 
1521     IF  p_FNA_val_rec.seeded <> FND_API.G_MISS_CHAR
1522     THEN
1523 
1524         IF p_FNA_rec.seeded_flag <> FND_API.G_MISS_CHAR THEN
1525 
1526             l_FNA_rec.seeded_flag := p_FNA_rec.seeded_flag;
1527 
1528             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1529             THEN
1530 
1531                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1532                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','seeded');
1533                 OE_MSG_PUB.Add;
1534 
1535             END IF;
1536 
1537         ELSE
1538 
1539             l_FNA_rec.seeded_flag := QP_Value_To_Id.seeded
1540             (   p_seeded                      => p_FNA_val_rec.seeded
1541             );
1542 
1543             IF l_FNA_rec.seeded_flag = FND_API.G_MISS_CHAR THEN
1544                 l_FNA_rec.return_status := FND_API.G_RET_STS_ERROR;
1545             END IF;
1546 
1547         END IF;
1548 
1549     END IF;
1550 
1551 
1552     RETURN l_FNA_rec;
1553 
1554 END Get_Ids;
1555 
1556 
1557 PROCEDURE Warn_Disable_Delete_Fna
1558 ( p_action IN VARCHAR2
1559 , p_called_from_ui IN VARCHAR2
1560 , p_functional_area_id NUMBER
1561 , p_pte_ss_id IN NUMBER)
1562 IS
1563 l_action   VARCHAR2(40);
1564 l_msg_name VARCHAR2(40);
1565 l_pte      VARCHAR2(30);
1566 l_ss       VARCHAR2(30);
1567 l_fna_desc VARCHAR2(80);
1568 BEGIN
1569 
1570   IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1571   THEN
1572     -- Get l_msg_name and l_action
1573     IF p_action = 'DELETE' OR
1574        p_action = 'DISABLE' THEN
1575 
1576       IF p_called_from_ui = 'Y' THEN
1577         l_msg_name := 'QP_WARN_DISABLE_FUNC_AREA_UI';
1578         FND_MESSAGE.set_name('QP', 'QP_' || p_action || 'D');
1579       ELSE
1580         l_msg_name := 'QP_WARN_DISABLE_FUNC_AREA_BOI' ;
1581         FND_MESSAGE.set_name('QP', 'QP_' || p_action || 'D');
1582       END IF;
1583 
1584       l_action := fnd_message.get;
1585 
1586     ELSE
1587       RETURN;
1588     END IF;
1589 
1590     -- Get PTE and SS
1591     select pte_code, application_short_name
1592     into l_pte, l_ss
1593     from qp_pte_source_systems
1594     where pte_source_system_id = p_pte_ss_id;
1595 
1596     -- Get Functional Area Description
1597     select functional_area_desc
1598     into l_fna_desc
1599     from qp_fass_v
1600     where functional_area_id = p_functional_area_id;
1601 
1602     -- Add Message
1603     FND_MESSAGE.set_name('QP', l_msg_name);
1604     FND_MESSAGE.set_token('ACTION', l_action);
1605     FND_MESSAGE.set_token('FNAREA', l_fna_desc);
1606     FND_MESSAGE.set_token('PTE', l_pte);
1607     FND_MESSAGE.set_token('SS', l_ss);
1608     OE_MSG_PUB.Add;
1609   END IF;
1610 
1611 END Warn_Disable_Delete_Fna;
1612 
1613 
1614 END QP_Fna_Util;