[Home] [Help]
PACKAGE BODY: APPS.QP_DEFAULT_PSG
Source
1 PACKAGE BODY QP_Default_Psg AS
2 /* $Header: QPXDPSGB.pls 120.2 2005/07/06 04:31:33 appldev ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Default_Psg';
7
8 -- Package global used within the package.
9
10 g_PSG_rec QP_Attr_Map_PUB.Psg_Rec_Type;
11
12 -- Get functions.
13
14 FUNCTION Get_Limits_Enabled
15 RETURN VARCHAR2
16 IS
17 BEGIN
18
19 RETURN NULL;
20
21 END Get_Limits_Enabled;
22
23 FUNCTION Get_Lov_Enabled
24 RETURN VARCHAR2
25 IS
26 BEGIN
27
28 RETURN NULL;
29
30 END Get_Lov_Enabled;
31
32 FUNCTION Get_Pte
33 RETURN VARCHAR2
34 IS
35 BEGIN
36
37 RETURN NULL;
38
39 END Get_Pte;
40
41 FUNCTION Get_Seeded_Sourcing_Method
42 RETURN VARCHAR2
43 IS
44 BEGIN
45
46 RETURN NULL;
47
48 END Get_Seeded_Sourcing_Method;
49
50 FUNCTION Get_Segment
51 RETURN NUMBER
52 IS
53 BEGIN
54
55 RETURN NULL;
56
57 END Get_Segment;
58
59 FUNCTION Get_Segment_Level
60 RETURN VARCHAR2
61 IS
62 BEGIN
63
64 RETURN NULL;
65
66 END Get_Segment_Level;
67
68 FUNCTION Get_Segment_Pte
69 RETURN NUMBER
70 IS
71 l_segment_pte_id number(15);
72 BEGIN
73 select qp_pte_segments_s.nextval
74 into l_segment_pte_id
75 from dual;
76 RETURN (l_segment_pte_id);
77
78 END Get_Segment_Pte;
79
80 FUNCTION Get_Sourcing_Enabled
81 RETURN VARCHAR2
82 IS
83 BEGIN
84 RETURN NULL;
85
86 END Get_Sourcing_Enabled;
87
88 FUNCTION Get_Sourcing_Status
89 RETURN VARCHAR2
90 IS
91 BEGIN
92
93 RETURN NULL;
94
95 END Get_Sourcing_Status;
96
97 FUNCTION Get_User_Sourcing_Method
98 RETURN VARCHAR2
99 IS
100 BEGIN
101
102 RETURN NULL;
103
104 END Get_User_Sourcing_Method;
105
106 PROCEDURE Get_Flex_Psg
107 IS
108 BEGIN
109
110 -- In the future call Flex APIs for defaults
111
112 IF g_PSG_rec.attribute1 = FND_API.G_MISS_CHAR THEN
113 g_PSG_rec.attribute1 := NULL;
114 END IF;
115
116 IF g_PSG_rec.attribute10 = FND_API.G_MISS_CHAR THEN
117 g_PSG_rec.attribute10 := NULL;
118 END IF;
119
120 IF g_PSG_rec.attribute11 = FND_API.G_MISS_CHAR THEN
121 g_PSG_rec.attribute11 := NULL;
122 END IF;
123
124 IF g_PSG_rec.attribute12 = FND_API.G_MISS_CHAR THEN
125 g_PSG_rec.attribute12 := NULL;
126 END IF;
127
128 IF g_PSG_rec.attribute13 = FND_API.G_MISS_CHAR THEN
129 g_PSG_rec.attribute13 := NULL;
130 END IF;
131
132 IF g_PSG_rec.attribute14 = FND_API.G_MISS_CHAR THEN
133 g_PSG_rec.attribute14 := NULL;
134 END IF;
135
136 IF g_PSG_rec.attribute15 = FND_API.G_MISS_CHAR THEN
137 g_PSG_rec.attribute15 := NULL;
138 END IF;
139
140 IF g_PSG_rec.attribute2 = FND_API.G_MISS_CHAR THEN
141 g_PSG_rec.attribute2 := NULL;
142 END IF;
143
144 IF g_PSG_rec.attribute3 = FND_API.G_MISS_CHAR THEN
145 g_PSG_rec.attribute3 := NULL;
146 END IF;
147
148 IF g_PSG_rec.attribute4 = FND_API.G_MISS_CHAR THEN
149 g_PSG_rec.attribute4 := NULL;
150 END IF;
151
152 IF g_PSG_rec.attribute5 = FND_API.G_MISS_CHAR THEN
153 g_PSG_rec.attribute5 := NULL;
154 END IF;
155
156 IF g_PSG_rec.attribute6 = FND_API.G_MISS_CHAR THEN
157 g_PSG_rec.attribute6 := NULL;
158 END IF;
159
160 IF g_PSG_rec.attribute7 = FND_API.G_MISS_CHAR THEN
161 g_PSG_rec.attribute7 := NULL;
162 END IF;
163
164 IF g_PSG_rec.attribute8 = FND_API.G_MISS_CHAR THEN
165 g_PSG_rec.attribute8 := NULL;
166 END IF;
167
168 IF g_PSG_rec.attribute9 = FND_API.G_MISS_CHAR THEN
169 g_PSG_rec.attribute9 := NULL;
170 END IF;
171
172 IF g_PSG_rec.context = FND_API.G_MISS_CHAR THEN
173 g_PSG_rec.context := NULL;
174 END IF;
175
176 END Get_Flex_Psg;
177
178 -- Procedure Attributes
179
180 PROCEDURE Attributes
181 ( p_PSG_rec IN QP_Attr_Map_PUB.Psg_Rec_Type :=
182 QP_Attr_Map_PUB.G_MISS_PSG_REC
183 , p_iteration IN NUMBER := 1
184 , x_PSG_rec OUT NOCOPY /* file.sql.39 change */ QP_Attr_Map_PUB.Psg_Rec_Type
185 )
186 IS
187 g_p_PSG_rec QP_Attr_Map_PUB.Psg_Rec_Type;
188 BEGIN
189
190 -- Check number of iterations.
191
192 IF p_iteration > QP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
193
194 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
195 THEN
196
197 FND_MESSAGE.SET_NAME('QP','OE_DEF_MAX_ITERATION');
198 OE_MSG_PUB.Add;
199
200 END IF;
201
202 RAISE FND_API.G_EXC_ERROR;
203
204 END IF;
205
206 -- Initialize g_PSG_rec
207
208 g_PSG_rec := p_PSG_rec;
209
210 -- Default missing attributes.
211
212 IF g_PSG_rec.limits_enabled = FND_API.G_MISS_CHAR THEN
213
214 g_PSG_rec.limits_enabled := Get_Limits_Enabled;
215
216 IF g_PSG_rec.limits_enabled IS NOT NULL THEN
217
218 IF QP_Validate.Limits_Enabled(g_PSG_rec.limits_enabled)
219 THEN
220 g_p_PSG_rec := g_PSG_rec;
221 QP_Psg_Util.Clear_Dependent_Attr
222 ( p_attr_id => QP_Psg_Util.G_LIMITS_ENABLED
223 , p_PSG_rec => g_p_PSG_rec
224 , x_PSG_rec => g_PSG_rec
225 );
226 ELSE
227 g_PSG_rec.limits_enabled := NULL;
228 END IF;
229
230 END IF;
231
232 END IF;
233
234 IF g_PSG_rec.lov_enabled = FND_API.G_MISS_CHAR THEN
235
236 g_PSG_rec.lov_enabled := Get_Lov_Enabled;
237
238 IF g_PSG_rec.lov_enabled IS NOT NULL THEN
239
240 IF QP_Validate.Lov_Enabled(g_PSG_rec.lov_enabled)
241 THEN
242 g_p_PSG_rec := g_PSG_rec;
243 QP_Psg_Util.Clear_Dependent_Attr
244 ( p_attr_id => QP_Psg_Util.G_LOV_ENABLED
245 , p_PSG_rec => g_p_PSG_rec
246 , x_PSG_rec => g_PSG_rec
247 );
248 ELSE
249 g_PSG_rec.lov_enabled := NULL;
250 END IF;
251
252 END IF;
253
254 END IF;
255
256 IF g_PSG_rec.pte_code = FND_API.G_MISS_CHAR THEN
257
258 g_PSG_rec.pte_code := Get_Pte;
259
260 IF g_PSG_rec.pte_code IS NOT NULL THEN
261
262 IF QP_Validate.Pte(g_PSG_rec.pte_code)
263 THEN
264 g_p_PSG_rec := g_PSG_rec;
265 QP_Psg_Util.Clear_Dependent_Attr
266 ( p_attr_id => QP_Psg_Util.G_PTE
267 , p_PSG_rec => g_p_PSG_rec
268 , x_PSG_rec => g_PSG_rec
269 );
270 ELSE
271 g_PSG_rec.pte_code := NULL;
272 END IF;
273
274 END IF;
275
276 END IF;
277
278 IF g_PSG_rec.seeded_sourcing_method = FND_API.G_MISS_CHAR THEN
279
280 g_PSG_rec.seeded_sourcing_method := Get_Seeded_Sourcing_Method;
281
282 IF g_PSG_rec.seeded_sourcing_method IS NOT NULL THEN
283
284 IF QP_Validate.Seeded_Sourcing_Method(g_PSG_rec.seeded_sourcing_method)
285 THEN
286 g_p_PSG_rec := g_PSG_rec;
287 QP_Psg_Util.Clear_Dependent_Attr
288 ( p_attr_id => QP_Psg_Util.G_SEEDED_SOURCING_METHOD
289 , p_PSG_rec => g_p_PSG_rec
290 , x_PSG_rec => g_PSG_rec
291 );
292 ELSE
293 g_PSG_rec.seeded_sourcing_method := NULL;
294 END IF;
295
296 END IF;
297
298 END IF;
299
300 IF g_PSG_rec.segment_id = FND_API.G_MISS_NUM THEN
301
302 g_PSG_rec.segment_id := Get_Segment;
303
304 IF g_PSG_rec.segment_id IS NOT NULL THEN
305
306 IF QP_Validate.Segment(g_PSG_rec.segment_id)
307 THEN
308 g_p_PSG_rec := g_PSG_rec;
309 QP_Psg_Util.Clear_Dependent_Attr
310 ( p_attr_id => QP_Psg_Util.G_SEGMENT
311 , p_PSG_rec => g_p_PSG_rec
312 , x_PSG_rec => g_PSG_rec
313 );
314 ELSE
315 g_PSG_rec.segment_id := NULL;
316 END IF;
317
318 END IF;
319
320 END IF;
321
322 IF g_PSG_rec.segment_level = FND_API.G_MISS_CHAR THEN
323
324 g_PSG_rec.segment_level := Get_Segment_Level;
325
326 IF g_PSG_rec.segment_level IS NOT NULL THEN
327
328 IF QP_Validate.Segment_Level(g_PSG_rec.segment_level)
329 THEN
330 g_p_PSG_rec := g_PSG_rec;
331 QP_Psg_Util.Clear_Dependent_Attr
332 ( p_attr_id => QP_Psg_Util.G_SEGMENT_LEVEL
333 , p_PSG_rec => g_p_PSG_rec
334 , x_PSG_rec => g_PSG_rec
335 );
336 ELSE
337 g_PSG_rec.segment_level := NULL;
338 END IF;
339
340 END IF;
341
342 END IF;
343
344 IF g_PSG_rec.segment_pte_id = FND_API.G_MISS_NUM THEN
345
346 g_PSG_rec.segment_pte_id := Get_Segment_Pte;
347
348 IF g_PSG_rec.segment_pte_id IS NOT NULL THEN
349
350 IF QP_Validate.Segment_Pte(g_PSG_rec.segment_pte_id)
351 THEN
352 g_p_PSG_rec := g_PSG_rec;
353 QP_Psg_Util.Clear_Dependent_Attr
354 ( p_attr_id => QP_Psg_Util.G_SEGMENT_PTE
355 , p_PSG_rec => g_p_PSG_rec
356 , x_PSG_rec => g_PSG_rec
357 );
358 ELSE
359 g_PSG_rec.segment_pte_id := NULL;
360 END IF;
361
362 END IF;
363
364 END IF;
365
366 IF g_PSG_rec.sourcing_enabled = FND_API.G_MISS_CHAR THEN
367
368 g_PSG_rec.sourcing_enabled := Get_Sourcing_Enabled;
369
370 IF g_PSG_rec.sourcing_enabled IS NOT NULL THEN
371
372 IF QP_Validate.Sourcing_Enabled(g_PSG_rec.sourcing_enabled)
373 THEN
374 g_p_PSG_rec := g_PSG_rec;
375 QP_Psg_Util.Clear_Dependent_Attr
376 ( p_attr_id => QP_Psg_Util.G_SOURCING_ENABLED
377 , p_PSG_rec => g_p_PSG_rec
378 , x_PSG_rec => g_PSG_rec
379 );
380 ELSE
381 g_PSG_rec.sourcing_enabled := NULL;
382 END IF;
383
384 END IF;
385
386 END IF;
387
388 IF g_PSG_rec.sourcing_status = FND_API.G_MISS_CHAR THEN
389
390 g_PSG_rec.sourcing_status := Get_Sourcing_Status;
391
392 IF g_PSG_rec.sourcing_status IS NOT NULL THEN
393
394 IF QP_Validate.Sourcing_Status(g_PSG_rec.sourcing_status)
395 THEN
396 g_p_PSG_rec := g_PSG_rec;
397 QP_Psg_Util.Clear_Dependent_Attr
398 ( p_attr_id => QP_Psg_Util.G_SOURCING_STATUS
399 , p_PSG_rec => g_p_PSG_rec
400 , x_PSG_rec => g_PSG_rec
401 );
402 ELSE
403 g_PSG_rec.sourcing_status := NULL;
404 END IF;
405
406 END IF;
407
408 END IF;
409
410 IF g_PSG_rec.user_sourcing_method = FND_API.G_MISS_CHAR THEN
411
412 g_PSG_rec.user_sourcing_method := Get_User_Sourcing_Method;
413
414 IF g_PSG_rec.user_sourcing_method IS NOT NULL THEN
415
416 IF QP_Validate.User_Sourcing_Method(g_PSG_rec.user_sourcing_method)
417 THEN
418 g_p_PSG_rec := g_PSG_rec;
419 QP_Psg_Util.Clear_Dependent_Attr
420 ( p_attr_id => QP_Psg_Util.G_USER_SOURCING_METHOD
421 , p_PSG_rec => g_p_PSG_rec
422 , x_PSG_rec => g_PSG_rec
423 );
424 ELSE
425 g_PSG_rec.user_sourcing_method := NULL;
426 END IF;
427
428 END IF;
429
430 END IF;
431
432 IF g_PSG_rec.attribute1 = FND_API.G_MISS_CHAR
433 OR g_PSG_rec.attribute10 = FND_API.G_MISS_CHAR
434 OR g_PSG_rec.attribute11 = FND_API.G_MISS_CHAR
435 OR g_PSG_rec.attribute12 = FND_API.G_MISS_CHAR
436 OR g_PSG_rec.attribute13 = FND_API.G_MISS_CHAR
437 OR g_PSG_rec.attribute14 = FND_API.G_MISS_CHAR
438 OR g_PSG_rec.attribute15 = FND_API.G_MISS_CHAR
439 OR g_PSG_rec.attribute2 = FND_API.G_MISS_CHAR
440 OR g_PSG_rec.attribute3 = FND_API.G_MISS_CHAR
441 OR g_PSG_rec.attribute4 = FND_API.G_MISS_CHAR
442 OR g_PSG_rec.attribute5 = FND_API.G_MISS_CHAR
443 OR g_PSG_rec.attribute6 = FND_API.G_MISS_CHAR
444 OR g_PSG_rec.attribute7 = FND_API.G_MISS_CHAR
445 OR g_PSG_rec.attribute8 = FND_API.G_MISS_CHAR
446 OR g_PSG_rec.attribute9 = FND_API.G_MISS_CHAR
447 OR g_PSG_rec.context = FND_API.G_MISS_CHAR
448 THEN
449
450 Get_Flex_Psg;
451
452 END IF;
453
454 IF g_PSG_rec.created_by = FND_API.G_MISS_NUM THEN
455
456 g_PSG_rec.created_by := NULL;
457
458 END IF;
459
460 IF g_PSG_rec.creation_date = FND_API.G_MISS_DATE THEN
461
462 g_PSG_rec.creation_date := NULL;
463
464 END IF;
465
466 IF g_PSG_rec.last_updated_by = FND_API.G_MISS_NUM THEN
467
468 g_PSG_rec.last_updated_by := NULL;
469
470 END IF;
471
472 IF g_PSG_rec.last_update_date = FND_API.G_MISS_DATE THEN
473
474 g_PSG_rec.last_update_date := NULL;
475
476 END IF;
477
478 IF g_PSG_rec.last_update_login = FND_API.G_MISS_NUM THEN
479
480 g_PSG_rec.last_update_login := NULL;
481
482 END IF;
483
484 IF g_PSG_rec.program_application_id = FND_API.G_MISS_NUM THEN
485
486 g_PSG_rec.program_application_id := NULL;
487
488 END IF;
489
490 IF g_PSG_rec.program_id = FND_API.G_MISS_NUM THEN
491
492 g_PSG_rec.program_id := NULL;
493
494 END IF;
495
496 IF g_PSG_rec.program_update_date = FND_API.G_MISS_DATE THEN
497
498 g_PSG_rec.program_update_date := NULL;
499
500 END IF;
501
502 -- Redefault if there are any missing attributes.
503
504 IF g_PSG_rec.attribute1 = FND_API.G_MISS_CHAR
505 OR g_PSG_rec.attribute10 = FND_API.G_MISS_CHAR
506 OR g_PSG_rec.attribute11 = FND_API.G_MISS_CHAR
507 OR g_PSG_rec.attribute12 = FND_API.G_MISS_CHAR
508 OR g_PSG_rec.attribute13 = FND_API.G_MISS_CHAR
509 OR g_PSG_rec.attribute14 = FND_API.G_MISS_CHAR
510 OR g_PSG_rec.attribute15 = FND_API.G_MISS_CHAR
511 OR g_PSG_rec.attribute2 = FND_API.G_MISS_CHAR
512 OR g_PSG_rec.attribute3 = FND_API.G_MISS_CHAR
513 OR g_PSG_rec.attribute4 = FND_API.G_MISS_CHAR
514 OR g_PSG_rec.attribute5 = FND_API.G_MISS_CHAR
515 OR g_PSG_rec.attribute6 = FND_API.G_MISS_CHAR
516 OR g_PSG_rec.attribute7 = FND_API.G_MISS_CHAR
517 OR g_PSG_rec.attribute8 = FND_API.G_MISS_CHAR
518 OR g_PSG_rec.attribute9 = FND_API.G_MISS_CHAR
519 OR g_PSG_rec.context = FND_API.G_MISS_CHAR
520 OR g_PSG_rec.created_by = FND_API.G_MISS_NUM
521 OR g_PSG_rec.creation_date = FND_API.G_MISS_DATE
522 OR g_PSG_rec.last_updated_by = FND_API.G_MISS_NUM
523 OR g_PSG_rec.last_update_date = FND_API.G_MISS_DATE
524 OR g_PSG_rec.last_update_login = FND_API.G_MISS_NUM
525 OR g_PSG_rec.limits_enabled = FND_API.G_MISS_CHAR
526 OR g_PSG_rec.lov_enabled = FND_API.G_MISS_CHAR
527 OR g_PSG_rec.program_application_id = FND_API.G_MISS_NUM
528 OR g_PSG_rec.program_id = FND_API.G_MISS_NUM
529 OR g_PSG_rec.program_update_date = FND_API.G_MISS_DATE
530 OR g_PSG_rec.pte_code = FND_API.G_MISS_CHAR
531 OR g_PSG_rec.seeded_sourcing_method = FND_API.G_MISS_CHAR
532 OR g_PSG_rec.segment_id = FND_API.G_MISS_NUM
533 OR g_PSG_rec.segment_level = FND_API.G_MISS_CHAR
534 OR g_PSG_rec.segment_pte_id = FND_API.G_MISS_NUM
535 OR g_PSG_rec.sourcing_enabled = FND_API.G_MISS_CHAR
536 OR g_PSG_rec.sourcing_status = FND_API.G_MISS_CHAR
537 OR g_PSG_rec.user_sourcing_method = FND_API.G_MISS_CHAR
538 THEN
539
540 QP_Default_Psg.Attributes
541 ( p_PSG_rec => g_PSG_rec
542 , p_iteration => p_iteration + 1
543 , x_PSG_rec => x_PSG_rec
544 );
545
546 ELSE
547
548 -- Done defaulting attributes
549
550 x_PSG_rec := g_PSG_rec;
551
552 END IF;
553
554 END Attributes;
555
556 END QP_Default_Psg;