1 PACKAGE BODY QP_Validate_Fna AS
2 /* $Header: QPXLFNAB.pls 120.2 2005/08/18 15:46:23 sfiresto noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Validate_Fna';
7
8 FUNCTION Check_Duplicate_Fnarea(p_pte_ss_fnarea_id varchar2,
9 p_fnarea_id varchar2,
10 p_pte_ss_id varchar2) RETURN BOOLEAN IS
11
12 CURSOR c_duplicate(c_p_pte_ss_fnarea_id varchar2,
13 c_p_fnarea_id varchar2,
14 c_p_pte_ss_id varchar2) IS
15 SELECT 'DUPLICATE'
16 FROM qp_sourcesystem_fnarea_map
17 WHERE functional_area_id = c_p_fnarea_id
18 AND pte_source_system_id = c_p_pte_ss_id
19 AND pte_sourcesystem_fnarea_id <> c_p_pte_ss_fnarea_id;
20
21 l_status VARCHAR2(10);
22 BEGIN
23
24 OPEN c_duplicate(p_pte_ss_fnarea_id, p_fnarea_id, p_pte_ss_id);
25 FETCH c_duplicate INTO l_status;
26 CLOSE c_duplicate;
27
28 if l_status = 'DUPLICATE' then
29 RETURN TRUE;
30 else
31 RETURN FALSE;
32 end if;
33
34 END Check_Duplicate_Fnarea;
35
36 -- Procedure Entity
37
38 PROCEDURE Entity
39 ( x_return_status OUT NOCOPY VARCHAR2
40 , p_FNA_rec IN QP_Attr_Map_PUB.Fna_Rec_Type
41 , p_old_FNA_rec IN QP_Attr_Map_PUB.Fna_Rec_Type :=
42 QP_Attr_Map_PUB.G_MISS_FNA_REC
43 )
44 IS
45 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
46 l_fnarea VARCHAR2(80);
47 l_pte VARCHAR2(30);
48 l_ss VARCHAR2(30);
49 l_seed_err BOOLEAN := FALSE;
50 l_valid VARCHAR2(10);
51 BEGIN
52
53 -- Check required attributes.
54
55 IF p_FNA_rec.pte_sourcesystem_fnarea_id IS NULL
56 THEN
57
58 l_return_status := FND_API.G_RET_STS_ERROR;
59
60 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
61 THEN
62
63 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
64 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','PTE_SOURCESYSTEM_FNAREA_ID');
65 OE_MSG_PUB.Add;
66
67 END IF;
68
69 END IF;
70
71 --
72 -- Check rest of required attributes here.
73 --
74
75 IF p_FNA_rec.pte_source_system_id IS NULL
76 THEN
77
78 l_return_status := FND_API.G_RET_STS_ERROR;
79
80 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
81 THEN
82
83 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
84 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','PTE_SOURCE_SYSTEM_ID');
85 OE_MSG_PUB.Add;
86
87 END IF;
88
89 END IF;
90
91 IF p_FNA_rec.functional_area_id IS NULL
92 THEN
93
94 l_return_status := FND_API.G_RET_STS_ERROR;
95
96 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
97 THEN
98
99 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
100 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','FUNCTIONAL_AREA_ID');
101 OE_MSG_PUB.Add;
102
103 END IF;
104
105 END IF;
106
107 -- Return Error if a required attribute is missing.
108
109 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
110
111 RAISE FND_API.G_EXC_ERROR;
112
113 END IF;
114
115 --
116 -- Check conditionally required attributes here.
117 --
118
119
120 --
121 -- Validate attribute dependencies here.
122 --
123
124 --
125 -- Other Validations
126 --
127
128 -- Check for invalid functional area ID
129 BEGIN
130 SELECT 'VALID'
131 INTO l_valid
132 FROM mtl_default_category_sets
133 WHERE functional_area_id = p_fna_rec.functional_area_id;
134 EXCEPTION
135 WHEN NO_DATA_FOUND THEN
136 l_return_status := FND_API.G_RET_STS_ERROR;
137
138 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
139 THEN
140 select pte_code, application_short_name
141 into l_pte, l_ss
142 from qp_pte_source_systems
143 where pte_source_system_id = p_FNA_rec.pte_source_system_id;
144
145 FND_MESSAGE.SET_NAME('QP','QP_INVALID_FUNC_AREA');
146 FND_MESSAGE.SET_TOKEN('FNID', p_FNA_rec.functional_area_id);
147 FND_MESSAGE.SET_TOKEN('PTE', l_pte);
148 FND_MESSAGE.SET_TOKEN('SS', l_ss);
149 OE_MSG_PUB.Add;
150 END IF;
151 END;
152
153
154 -- Check for duplicate functional areas
155 IF Check_Duplicate_Fnarea(p_FNA_rec.pte_sourcesystem_fnarea_id,
156 p_FNA_rec.functional_area_id,
157 p_FNA_rec.pte_source_system_id) THEN
158
159 l_return_status := FND_API.G_RET_STS_ERROR;
160
161 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
162 THEN
163 select pte_code, application_short_name
164 into l_pte, l_ss
165 from qp_pte_source_systems
166 where pte_source_system_id = p_FNA_rec.pte_source_system_id;
167
168 select functional_area_desc
169 into l_fnarea
170 from mtl_default_category_sets_fk_v
171 where functional_area_id = p_FNA_rec.functional_area_id;
172
173 FND_MESSAGE.SET_NAME('QP','QP_DUP_FUNC_AREA_WITHIN_PTE');
174 FND_MESSAGE.SET_TOKEN('FNAREA', l_fnarea);
175 FND_MESSAGE.SET_TOKEN('PTE', l_pte);
176 FND_MESSAGE.SET_TOKEN('SS', l_ss);
177 OE_MSG_PUB.Add;
178 END IF;
179
180 END IF;
181
182 -- Check if not SEED DATAMERGE user
183 IF NOT QP_UTIL.is_seed_user THEN
184 -- Creation of seeded functional area mapping is not allowed
185 IF p_FNA_rec.seeded_flag = 'Y' AND p_FNA_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
186 l_seed_err := TRUE;
187 ELSIF p_FNA_rec.OPERATION = QP_GLOBALS.G_OPR_UPDATE THEN
188
189 -- In a seeded mapping, no attributes can be changed EXCEPT disabled_flag
190 IF p_old_FNA_rec.seeded_flag = 'Y' AND
191 (p_FNA_rec.PTE_SOURCESYSTEM_FNAREA_ID <> p_old_FNA_rec.PTE_SOURCESYSTEM_FNAREA_ID OR
192 p_FNA_rec.PTE_SOURCE_SYSTEM_ID <> p_old_FNA_rec.PTE_SOURCE_SYSTEM_ID OR
193 p_FNA_rec.FUNCTIONAL_AREA_ID <> p_old_FNA_rec.FUNCTIONAL_AREA_ID OR
194 p_FNA_rec.SEEDED_FLAG <> p_old_FNA_rec.SEEDED_FLAG OR
195 p_FNA_rec.CONTEXT <> p_old_FNA_rec.CONTEXT OR
196 p_FNA_rec.ATTRIBUTE1 <> p_old_FNA_rec.ATTRIBUTE1 OR
197 p_FNA_rec.ATTRIBUTE2 <> p_old_FNA_rec.ATTRIBUTE2 OR
198 p_FNA_rec.ATTRIBUTE3 <> p_old_FNA_rec.ATTRIBUTE3 OR
199 p_FNA_rec.ATTRIBUTE4 <> p_old_FNA_rec.ATTRIBUTE4 OR
200 p_FNA_rec.ATTRIBUTE5 <> p_old_FNA_rec.ATTRIBUTE5 OR
201 p_FNA_rec.ATTRIBUTE6 <> p_old_FNA_rec.ATTRIBUTE6 OR
202 p_FNA_rec.ATTRIBUTE7 <> p_old_FNA_rec.ATTRIBUTE7 OR
203 p_FNA_rec.ATTRIBUTE8 <> p_old_FNA_rec.ATTRIBUTE8 OR
204 p_FNA_rec.ATTRIBUTE9 <> p_old_FNA_rec.ATTRIBUTE9 OR
205 p_FNA_rec.ATTRIBUTE10 <> p_old_FNA_rec.ATTRIBUTE10 OR
206 p_FNA_rec.ATTRIBUTE11 <> p_old_FNA_rec.ATTRIBUTE11 OR
207 p_FNA_rec.ATTRIBUTE12 <> p_old_FNA_rec.ATTRIBUTE12 OR
208 p_FNA_rec.ATTRIBUTE13 <> p_old_FNA_rec.ATTRIBUTE13 OR
209 p_FNA_rec.ATTRIBUTE14 <> p_old_FNA_rec.ATTRIBUTE14 OR
210 p_FNA_rec.ATTRIBUTE15 <> p_old_FNA_rec.ATTRIBUTE15 OR
211 p_FNA_rec.CREATED_BY <> p_old_FNA_rec.CREATED_BY OR
212 p_FNA_rec.CREATION_DATE <> p_old_FNA_rec.CREATION_DATE) THEN
213 l_seed_err := TRUE;
214
215 -- Non-seeded mappings cannot be made seeded
216 ELSIF p_old_FNA_rec.seeded_flag <> 'Y' AND p_FNA_rec.seeded_flag = 'Y' THEN
217 l_seed_err := TRUE;
218 END IF;
219 END IF;
220
221
222 IF l_seed_err AND OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
223 THEN
224 l_return_status := FND_API.G_RET_STS_ERROR;
225 FND_MESSAGE.SET_NAME('QP','QP_CANNOT_SEED_FUNC_AREAS');
226 OE_MSG_PUB.Add;
227 END IF;
228 END IF;
229
230
231
232
233 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
234
235 RAISE FND_API.G_EXC_ERROR;
236
237 END IF;
238
239 -- Done validating entity
240
241 x_return_status := l_return_status;
242
243 EXCEPTION
244
245 WHEN FND_API.G_EXC_ERROR THEN
246
247 x_return_status := FND_API.G_RET_STS_ERROR;
248
249 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
250
251 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
252
253 WHEN OTHERS THEN
254
255 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
256
257 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
258 THEN
259 OE_MSG_PUB.Add_Exc_Msg
260 ( G_PKG_NAME
261 , 'Entity'
262 );
263 END IF;
264
265 END Entity;
266
267 -- Procedure Attributes
268
269 PROCEDURE Attributes
270 ( x_return_status OUT NOCOPY VARCHAR2
271 , p_FNA_rec IN QP_Attr_Map_PUB.Fna_Rec_Type
272 , p_old_FNA_rec IN QP_Attr_Map_PUB.Fna_Rec_Type :=
273 QP_Attr_Map_PUB.G_MISS_FNA_REC
274 )
275 IS
276 l_pte VARCHAR2(30);
277 l_ss VARCHAR2(30);
278 BEGIN
279 x_return_status := FND_API.G_RET_STS_SUCCESS;
280
281 -- Validate FNA attributes
282
283 IF p_FNA_rec.created_by IS NOT NULL AND
284 ( p_FNA_rec.created_by <>
285 p_old_FNA_rec.created_by OR
286 p_old_FNA_rec.created_by IS NULL )
287 THEN
288 IF NOT QP_Validate.Created_By(p_FNA_rec.created_by) THEN
289 x_return_status := FND_API.G_RET_STS_ERROR;
290 END IF;
291 END IF;
292
293 IF p_FNA_rec.creation_date IS NOT NULL AND
294 ( p_FNA_rec.creation_date <>
295 p_old_FNA_rec.creation_date OR
296 p_old_FNA_rec.creation_date IS NULL )
297 THEN
298 IF NOT QP_Validate.Creation_Date(p_FNA_rec.creation_date) THEN
299 x_return_status := FND_API.G_RET_STS_ERROR;
300 END IF;
301 END IF;
302
303 IF p_FNA_rec.enabled_flag IS NOT NULL AND
304 ( p_FNA_rec.enabled_flag <>
305 p_old_FNA_rec.enabled_flag OR
306 p_old_FNA_rec.enabled_flag IS NULL )
307 THEN
308 IF NOT QP_Validate.Enabled(p_FNA_rec.enabled_flag) THEN
309 x_return_status := FND_API.G_RET_STS_ERROR;
310 END IF;
311 END IF;
312
313 IF p_FNA_rec.functional_area_id IS NOT NULL AND
314 ( p_FNA_rec.functional_area_id <>
315 p_old_FNA_rec.functional_area_id OR
316 p_old_FNA_rec.functional_area_id IS NULL )
317 THEN
318 IF NOT QP_Validate.Functional_Area(p_FNA_rec.functional_area_id) THEN
319 x_return_status := FND_API.G_RET_STS_ERROR;
320 END IF;
321 END IF;
322
323 IF p_FNA_rec.last_updated_by IS NOT NULL AND
324 ( p_FNA_rec.last_updated_by <>
325 p_old_FNA_rec.last_updated_by OR
326 p_old_FNA_rec.last_updated_by IS NULL )
327 THEN
328 IF NOT QP_Validate.Last_Updated_By(p_FNA_rec.last_updated_by) THEN
329 x_return_status := FND_API.G_RET_STS_ERROR;
330 END IF;
331 END IF;
332
333 IF p_FNA_rec.last_update_date IS NOT NULL AND
334 ( p_FNA_rec.last_update_date <>
335 p_old_FNA_rec.last_update_date OR
336 p_old_FNA_rec.last_update_date IS NULL )
337 THEN
338 IF NOT QP_Validate.Last_Update_Date(p_FNA_rec.last_update_date) THEN
339 x_return_status := FND_API.G_RET_STS_ERROR;
340 END IF;
341 END IF;
342
343 IF p_FNA_rec.last_update_login IS NOT NULL AND
344 ( p_FNA_rec.last_update_login <>
345 p_old_FNA_rec.last_update_login OR
346 p_old_FNA_rec.last_update_login IS NULL )
347 THEN
348 IF NOT QP_Validate.Last_Update_Login(p_FNA_rec.last_update_login) THEN
349 x_return_status := FND_API.G_RET_STS_ERROR;
350 END IF;
351 END IF;
352
353 IF p_FNA_rec.program_application_id IS NOT NULL AND
354 ( p_FNA_rec.program_application_id <>
355 p_old_FNA_rec.program_application_id OR
356 p_old_FNA_rec.program_application_id IS NULL )
357 THEN
358 IF NOT QP_Validate.Program_Application(p_FNA_rec.program_application_id) THEN
359 x_return_status := FND_API.G_RET_STS_ERROR;
360 END IF;
361 END IF;
362
363 IF p_FNA_rec.program_id IS NOT NULL AND
364 ( p_FNA_rec.program_id <>
365 p_old_FNA_rec.program_id OR
366 p_old_FNA_rec.program_id IS NULL )
367 THEN
368 IF NOT QP_Validate.Program(p_FNA_rec.program_id) THEN
369 x_return_status := FND_API.G_RET_STS_ERROR;
370 END IF;
371 END IF;
372
373 IF p_FNA_rec.program_update_date IS NOT NULL AND
374 ( p_FNA_rec.program_update_date <>
375 p_old_FNA_rec.program_update_date OR
376 p_old_FNA_rec.program_update_date IS NULL )
377 THEN
378 IF NOT QP_Validate.Program_Update_Date(p_FNA_rec.program_update_date) THEN
379 x_return_status := FND_API.G_RET_STS_ERROR;
380 END IF;
381 END IF;
382
383 IF p_FNA_rec.pte_sourcesystem_fnarea_id IS NOT NULL AND
384 ( p_FNA_rec.pte_sourcesystem_fnarea_id <>
385 p_old_FNA_rec.pte_sourcesystem_fnarea_id OR
386 p_old_FNA_rec.pte_sourcesystem_fnarea_id IS NULL )
387 THEN
388 IF NOT QP_Validate.Pte_Sourcesystem_Fnarea(p_FNA_rec.pte_sourcesystem_fnarea_id) THEN
389 x_return_status := FND_API.G_RET_STS_ERROR;
390 END IF;
391 END IF;
392
393 IF p_FNA_rec.pte_source_system_id IS NOT NULL AND
394 ( p_FNA_rec.pte_source_system_id <>
395 p_old_FNA_rec.pte_source_system_id OR
396 p_old_FNA_rec.pte_source_system_id IS NULL )
397 THEN
398 IF NOT QP_Validate.Pte_Source_System(p_FNA_rec.pte_source_system_id) THEN
399 x_return_status := FND_API.G_RET_STS_ERROR;
400 END IF;
401 END IF;
402
403 IF p_FNA_rec.request_id IS NOT NULL AND
404 ( p_FNA_rec.request_id <>
405 p_old_FNA_rec.request_id OR
406 p_old_FNA_rec.request_id IS NULL )
407 THEN
408 IF NOT QP_Validate.Request(p_FNA_rec.request_id) THEN
409 x_return_status := FND_API.G_RET_STS_ERROR;
410 END IF;
411 END IF;
412
413 IF p_FNA_rec.seeded_flag IS NOT NULL AND
414 ( p_FNA_rec.seeded_flag <>
415 p_old_FNA_rec.seeded_flag OR
416 p_old_FNA_rec.seeded_flag IS NULL )
417 THEN
418 IF NOT QP_Validate.Seeded(p_FNA_rec.seeded_flag) THEN
419 x_return_status := FND_API.G_RET_STS_ERROR;
420 END IF;
421 END IF;
422
423 IF (p_FNA_rec.attribute1 IS NOT NULL AND
424 ( p_FNA_rec.attribute1 <>
425 p_old_FNA_rec.attribute1 OR
426 p_old_FNA_rec.attribute1 IS NULL ))
427 OR (p_FNA_rec.attribute10 IS NOT NULL AND
428 ( p_FNA_rec.attribute10 <>
429 p_old_FNA_rec.attribute10 OR
430 p_old_FNA_rec.attribute10 IS NULL ))
431 OR (p_FNA_rec.attribute11 IS NOT NULL AND
432 ( p_FNA_rec.attribute11 <>
433 p_old_FNA_rec.attribute11 OR
434 p_old_FNA_rec.attribute11 IS NULL ))
435 OR (p_FNA_rec.attribute12 IS NOT NULL AND
436 ( p_FNA_rec.attribute12 <>
437 p_old_FNA_rec.attribute12 OR
438 p_old_FNA_rec.attribute12 IS NULL ))
439 OR (p_FNA_rec.attribute13 IS NOT NULL AND
440 ( p_FNA_rec.attribute13 <>
441 p_old_FNA_rec.attribute13 OR
442 p_old_FNA_rec.attribute13 IS NULL ))
443 OR (p_FNA_rec.attribute14 IS NOT NULL AND
444 ( p_FNA_rec.attribute14 <>
445 p_old_FNA_rec.attribute14 OR
446 p_old_FNA_rec.attribute14 IS NULL ))
447 OR (p_FNA_rec.attribute15 IS NOT NULL AND
448 ( p_FNA_rec.attribute15 <>
449 p_old_FNA_rec.attribute15 OR
450 p_old_FNA_rec.attribute15 IS NULL ))
451 OR (p_FNA_rec.attribute2 IS NOT NULL AND
452 ( p_FNA_rec.attribute2 <>
453 p_old_FNA_rec.attribute2 OR
454 p_old_FNA_rec.attribute2 IS NULL ))
455 OR (p_FNA_rec.attribute3 IS NOT NULL AND
456 ( p_FNA_rec.attribute3 <>
457 p_old_FNA_rec.attribute3 OR
458 p_old_FNA_rec.attribute3 IS NULL ))
459 OR (p_FNA_rec.attribute4 IS NOT NULL AND
460 ( p_FNA_rec.attribute4 <>
461 p_old_FNA_rec.attribute4 OR
462 p_old_FNA_rec.attribute4 IS NULL ))
463 OR (p_FNA_rec.attribute5 IS NOT NULL AND
464 ( p_FNA_rec.attribute5 <>
465 p_old_FNA_rec.attribute5 OR
466 p_old_FNA_rec.attribute5 IS NULL ))
467 OR (p_FNA_rec.attribute6 IS NOT NULL AND
468 ( p_FNA_rec.attribute6 <>
469 p_old_FNA_rec.attribute6 OR
470 p_old_FNA_rec.attribute6 IS NULL ))
471 OR (p_FNA_rec.attribute7 IS NOT NULL AND
472 ( p_FNA_rec.attribute7 <>
473 p_old_FNA_rec.attribute7 OR
474 p_old_FNA_rec.attribute7 IS NULL ))
475 OR (p_FNA_rec.attribute8 IS NOT NULL AND
476 ( p_FNA_rec.attribute8 <>
477 p_old_FNA_rec.attribute8 OR
478 p_old_FNA_rec.attribute8 IS NULL ))
479 OR (p_FNA_rec.attribute9 IS NOT NULL AND
480 ( p_FNA_rec.attribute9 <>
481 p_old_FNA_rec.attribute9 OR
482 p_old_FNA_rec.attribute9 IS NULL ))
483 OR (p_FNA_rec.context IS NOT NULL AND
484 ( p_FNA_rec.context <>
485 p_old_FNA_rec.context OR
486 p_old_FNA_rec.context IS NULL ))
487 THEN
488
489 -- These calls are temporarily commented out
490
491 /*
492 FND_FLEX_DESC_VAL.Set_Column_Value
493 ( column_name => 'ATTRIBUTE1'
494 , column_value => p_FNA_rec.attribute1
495 );
496 FND_FLEX_DESC_VAL.Set_Column_Value
497 ( column_name => 'ATTRIBUTE10'
498 , column_value => p_FNA_rec.attribute10
499 );
500 FND_FLEX_DESC_VAL.Set_Column_Value
501 ( column_name => 'ATTRIBUTE11'
502 , column_value => p_FNA_rec.attribute11
503 );
504 FND_FLEX_DESC_VAL.Set_Column_Value
505 ( column_name => 'ATTRIBUTE12'
506 , column_value => p_FNA_rec.attribute12
507 );
508 FND_FLEX_DESC_VAL.Set_Column_Value
509 ( column_name => 'ATTRIBUTE13'
510 , column_value => p_FNA_rec.attribute13
511 );
512 FND_FLEX_DESC_VAL.Set_Column_Value
513 ( column_name => 'ATTRIBUTE14'
514 , column_value => p_FNA_rec.attribute14
515 );
516 FND_FLEX_DESC_VAL.Set_Column_Value
517 ( column_name => 'ATTRIBUTE15'
518 , column_value => p_FNA_rec.attribute15
519 );
520 FND_FLEX_DESC_VAL.Set_Column_Value
521 ( column_name => 'ATTRIBUTE2'
522 , column_value => p_FNA_rec.attribute2
523 );
524 FND_FLEX_DESC_VAL.Set_Column_Value
525 ( column_name => 'ATTRIBUTE3'
526 , column_value => p_FNA_rec.attribute3
527 );
528 FND_FLEX_DESC_VAL.Set_Column_Value
529 ( column_name => 'ATTRIBUTE4'
530 , column_value => p_FNA_rec.attribute4
531 );
532 FND_FLEX_DESC_VAL.Set_Column_Value
533 ( column_name => 'ATTRIBUTE5'
534 , column_value => p_FNA_rec.attribute5
535 );
536 FND_FLEX_DESC_VAL.Set_Column_Value
537 ( column_name => 'ATTRIBUTE6'
538 , column_value => p_FNA_rec.attribute6
539 );
540 FND_FLEX_DESC_VAL.Set_Column_Value
541 ( column_name => 'ATTRIBUTE7'
542 , column_value => p_FNA_rec.attribute7
543 );
544 FND_FLEX_DESC_VAL.Set_Column_Value
545 ( column_name => 'ATTRIBUTE8'
546 , column_value => p_FNA_rec.attribute8
547 );
548 FND_FLEX_DESC_VAL.Set_Column_Value
549 ( column_name => 'ATTRIBUTE9'
550 , column_value => p_FNA_rec.attribute9
551 );
552 FND_FLEX_DESC_VAL.Set_Column_Value
553 ( column_name => 'CONTEXT'
554 , column_value => p_FNA_rec.context
555 );
556 */
557
558 -- Validate descriptive flexfield.
559
560 IF NOT QP_Validate.Desc_Flex( 'FNA' ) THEN
561 x_return_status := FND_API.G_RET_STS_ERROR;
562 END IF;
563
564 END IF;
565
566 -- Done validating attributes
567
568 EXCEPTION
569
570 WHEN FND_API.G_EXC_ERROR THEN
571
572 x_return_status := FND_API.G_RET_STS_ERROR;
573
574 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
575
576 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
577
578 WHEN OTHERS THEN
579
580 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
581
582 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
583 THEN
584 OE_MSG_PUB.Add_Exc_Msg
585 ( G_PKG_NAME
586 , 'Attributes'
587 );
588 END IF;
589
590 END Attributes;
591
592 -- Procedure Entity_Delete
593
594 PROCEDURE Entity_Delete
595 ( x_return_status OUT NOCOPY VARCHAR2
596 , p_FNA_rec IN QP_Attr_Map_PUB.Fna_Rec_Type
597 )
598 IS
599 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
600 l_fnarea VARCHAR2(80);
601 l_pte VARCHAR2(30);
602 l_ss VARCHAR2(30);
603 BEGIN
604
605 -- Validate entity delete.
606
607 IF p_FNA_rec.seeded_flag = 'Y' THEN
608 l_return_status := FND_API.G_RET_STS_ERROR;
609
610 select pte_code, application_short_name
611 into l_pte, l_ss
612 from qp_pte_source_systems
613 where pte_source_system_id = p_FNA_rec.pte_source_system_id;
614
615 select functional_area_desc
616 into l_fnarea
617 from mtl_default_category_sets_fk_v
618 where functional_area_id = p_FNA_rec.functional_area_id;
619
620 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
621 THEN
622
623 FND_MESSAGE.SET_NAME('QP', 'QP_DEL_FUNC_AREA_NOT_ALLOW');
624 FND_MESSAGE.SET_TOKEN('FNAREA', l_fnarea);
625 FND_MESSAGE.SET_TOKEN('PTE', l_pte);
626 FND_MESSAGE.SET_TOKEN('SS', l_ss);
627 OE_MSG_PUB.Add;
628 END IF;
629 END IF;
630
631 -- Done.
632
633 x_return_status := l_return_status;
634
635 EXCEPTION
636
637 WHEN FND_API.G_EXC_ERROR THEN
638
639 x_return_status := FND_API.G_RET_STS_ERROR;
640
641 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642
643 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
644
645 WHEN OTHERS THEN
646
647 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
648
649 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
650 THEN
651 OE_MSG_PUB.Add_Exc_Msg
652 ( G_PKG_NAME
653 , 'Entity_Delete'
654 );
655 END IF;
656
657 END Entity_Delete;
658
659 END QP_Validate_Fna;