DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QUALIFIERS_UTIL_MOD

Source


1 PACKAGE BODY QP_Qualifiers_Util_Mod AS
2 /* $Header: QPXUQRSB.pls 120.0 2005/06/02 01:19:00 appldev noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Qualifiers_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_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
13 ,   p_old_QUALIFIERS_rec            IN  QP_Modifiers_PUB.Qualifiers_Rec_Type :=
14                                         QP_Modifiers_PUB.G_MISS_QUALIFIERS_REC
15 ,   x_QUALIFIERS_rec                OUT QP_Modifiers_PUB.Qualifiers_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_QUALIFIERS_rec := p_QUALIFIERS_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_QUALIFIERS_rec.attribute1,p_old_QUALIFIERS_rec.attribute1)
33         THEN
34             l_index := l_index + 1;
35             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE1;
36         END IF;
37 
38         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,p_old_QUALIFIERS_rec.attribute10)
39         THEN
40             l_index := l_index + 1;
41             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE10;
42         END IF;
43 
44         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,p_old_QUALIFIERS_rec.attribute11)
45         THEN
46             l_index := l_index + 1;
47             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE11;
48         END IF;
49 
50         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,p_old_QUALIFIERS_rec.attribute12)
51         THEN
52             l_index := l_index + 1;
53             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE12;
54         END IF;
55 
56         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,p_old_QUALIFIERS_rec.attribute13)
57         THEN
58             l_index := l_index + 1;
59             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE13;
60         END IF;
61 
62         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,p_old_QUALIFIERS_rec.attribute14)
63         THEN
64             l_index := l_index + 1;
65             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE14;
66         END IF;
67 
68         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,p_old_QUALIFIERS_rec.attribute15)
69         THEN
70             l_index := l_index + 1;
71             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE15;
72         END IF;
73 
74         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,p_old_QUALIFIERS_rec.attribute2)
75         THEN
76             l_index := l_index + 1;
77             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE2;
78         END IF;
79 
80         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,p_old_QUALIFIERS_rec.attribute3)
81         THEN
82             l_index := l_index + 1;
83             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE3;
84         END IF;
85 
86         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,p_old_QUALIFIERS_rec.attribute4)
87         THEN
88             l_index := l_index + 1;
89             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE4;
90         END IF;
91 
92         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,p_old_QUALIFIERS_rec.attribute5)
93         THEN
94             l_index := l_index + 1;
95             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE5;
96         END IF;
97 
98         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,p_old_QUALIFIERS_rec.attribute6)
99         THEN
100             l_index := l_index + 1;
101             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE6;
102         END IF;
103 
104         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,p_old_QUALIFIERS_rec.attribute7)
105         THEN
106             l_index := l_index + 1;
107             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE7;
108         END IF;
109 
110         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,p_old_QUALIFIERS_rec.attribute8)
111         THEN
112             l_index := l_index + 1;
113             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE8;
114         END IF;
115 
116         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,p_old_QUALIFIERS_rec.attribute9)
117         THEN
118             l_index := l_index + 1;
119             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE9;
120         END IF;
121 
122         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,p_old_QUALIFIERS_rec.context)
123         THEN
124             l_index := l_index + 1;
125             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CONTEXT;
126         END IF;
127 
128         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,p_old_QUALIFIERS_rec.created_by)
129         THEN
130             l_index := l_index + 1;
131             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_BY;
132         END IF;
133 
134         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,p_old_QUALIFIERS_rec.created_from_rule_id)
135         THEN
136             l_index := l_index + 1;
137             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_FROM_RULE;
138         END IF;
139 
140         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,p_old_QUALIFIERS_rec.creation_date)
141         THEN
142             l_index := l_index + 1;
143             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATION_DATE;
144         END IF;
145 
146         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,p_old_QUALIFIERS_rec.end_date_active)
147         THEN
148             l_index := l_index + 1;
149             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_END_DATE_ACTIVE;
150         END IF;
151 
152         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,p_old_QUALIFIERS_rec.excluder_flag)
153         THEN
154             l_index := l_index + 1;
155             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_EXCLUDER;
156         END IF;
157 
158         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,p_old_QUALIFIERS_rec.last_updated_by)
159         THEN
160             l_index := l_index + 1;
161             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATED_BY;
162         END IF;
163 
164         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,p_old_QUALIFIERS_rec.last_update_date)
165         THEN
166             l_index := l_index + 1;
167             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_DATE;
168         END IF;
169 
170         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,p_old_QUALIFIERS_rec.last_update_login)
171         THEN
172             l_index := l_index + 1;
173             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_LOGIN;
174         END IF;
175 
176         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,p_old_QUALIFIERS_rec.list_header_id)
177         THEN
178             l_index := l_index + 1;
179             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_HEADER;
180         END IF;
181 
182         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,p_old_QUALIFIERS_rec.list_line_id)
183         THEN
184             l_index := l_index + 1;
185             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_LINE;
186         END IF;
187 
188         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,p_old_QUALIFIERS_rec.program_application_id)
189         THEN
190             l_index := l_index + 1;
191             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_APPLICATION;
192         END IF;
193 
194         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,p_old_QUALIFIERS_rec.program_id)
195         THEN
196             l_index := l_index + 1;
197             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM;
198         END IF;
199 
200         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,p_old_QUALIFIERS_rec.program_update_date)
201         THEN
202             l_index := l_index + 1;
203             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_UPDATE_DATE;
204         END IF;
205 
206         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,p_old_QUALIFIERS_rec.qualifier_attribute)
207         THEN
208             l_index := l_index + 1;
209             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTRIBUTE;
210         END IF;
211 
212         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,p_old_QUALIFIERS_rec.qualifier_attr_value)
213         THEN
214             l_index := l_index + 1;
215             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTR_VALUE;
216         END IF;
217 
218         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,p_old_QUALIFIERS_rec.qualifier_context)
219         THEN
220             l_index := l_index + 1;
221             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_CONTEXT;
222         END IF;
223 
224         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,p_old_QUALIFIERS_rec.qualifier_grouping_no)
225         THEN
226             l_index := l_index + 1;
227             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_GROUPING_NO;
228         END IF;
229 
230         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,p_old_QUALIFIERS_rec.qualifier_id)
231         THEN
232             l_index := l_index + 1;
233             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER;
234         END IF;
235 
236         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,p_old_QUALIFIERS_rec.qualifier_rule_id)
237         THEN
238             l_index := l_index + 1;
239             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_RULE;
240         END IF;
241 
242         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,p_old_QUALIFIERS_rec.request_id)
243         THEN
244             l_index := l_index + 1;
245             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_REQUEST;
246         END IF;
247 
248         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,p_old_QUALIFIERS_rec.start_date_active)
249         THEN
250             l_index := l_index + 1;
251             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_START_DATE_ACTIVE;
252         END IF;
253 
254     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
255         l_index := l_index + 1;
256         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE1;
257     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
258         l_index := l_index + 1;
259         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE10;
260     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
261         l_index := l_index + 1;
262         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE11;
263     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
264         l_index := l_index + 1;
265         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE12;
266     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
267         l_index := l_index + 1;
268         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE13;
269     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
270         l_index := l_index + 1;
271         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE14;
272     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
273         l_index := l_index + 1;
274         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE15;
275     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
276         l_index := l_index + 1;
277         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE2;
278     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
279         l_index := l_index + 1;
280         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE3;
281     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
282         l_index := l_index + 1;
283         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE4;
284     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
285         l_index := l_index + 1;
286         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE5;
287     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
288         l_index := l_index + 1;
289         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE6;
290     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
291         l_index := l_index + 1;
292         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE7;
293     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
294         l_index := l_index + 1;
295         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE8;
296     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
297         l_index := l_index + 1;
298         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE9;
299     ELSIF p_attr_id = G_COMPARISON_OPERATOR THEN
300         l_index := l_index + 1;
301         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_COMPARISON_OPERATOR;
302     ELSIF p_attr_id = G_CONTEXT THEN
303         l_index := l_index + 1;
304         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CONTEXT;
305     ELSIF p_attr_id = G_CREATED_BY THEN
306         l_index := l_index + 1;
307         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_BY;
308     ELSIF p_attr_id = G_CREATED_FROM_RULE THEN
309         l_index := l_index + 1;
310         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_FROM_RULE;
311     ELSIF p_attr_id = G_CREATION_DATE THEN
312         l_index := l_index + 1;
313         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATION_DATE;
314     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
315         l_index := l_index + 1;
316         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_END_DATE_ACTIVE;
317     ELSIF p_attr_id = G_EXCLUDER THEN
318         l_index := l_index + 1;
319         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_EXCLUDER;
320     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
321         l_index := l_index + 1;
322         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATED_BY;
323     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
324         l_index := l_index + 1;
325         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_DATE;
326     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
327         l_index := l_index + 1;
328         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_LOGIN;
329     ELSIF p_attr_id = G_LIST_HEADER THEN
330         l_index := l_index + 1;
331         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_HEADER;
332     ELSIF p_attr_id = G_LIST_LINE THEN
333         l_index := l_index + 1;
334         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_LINE;
335     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
336         l_index := l_index + 1;
337         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_APPLICATION;
338     ELSIF p_attr_id = G_PROGRAM THEN
339         l_index := l_index + 1;
340         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM;
341     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
342         l_index := l_index + 1;
343         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_UPDATE_DATE;
344     ELSIF p_attr_id = G_QUALIFIER_ATTRIBUTE THEN
345         l_index := l_index + 1;
346         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTRIBUTE;
347     ELSIF p_attr_id = G_QUALIFIER_ATTR_VALUE THEN
348         l_index := l_index + 1;
349         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTR_VALUE;
350     ELSIF p_attr_id = G_QUALIFIER_CONTEXT THEN
351         l_index := l_index + 1;
352         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_CONTEXT;
353     ELSIF p_attr_id = G_QUALIFIER_GROUPING_NO THEN
354         l_index := l_index + 1;
355         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_GROUPING_NO;
356     ELSIF p_attr_id = G_QUALIFIER THEN
357         l_index := l_index + 1;
358         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER;
359     ELSIF p_attr_id = G_QUALIFIER_RULE THEN
360         l_index := l_index + 1;
361         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_RULE;
362     ELSIF p_attr_id = G_REQUEST THEN
363         l_index := l_index + 1;
364         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_REQUEST;
365     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
366         l_index := l_index + 1;
367         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_START_DATE_ACTIVE;
368     END IF;
369 
370 END Clear_Dependent_Attr;
371 
372 --  Procedure Apply_Attribute_Changes
373 
374 PROCEDURE Apply_Attribute_Changes
375 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
376 ,   p_old_QUALIFIERS_rec            IN  QP_Modifiers_PUB.Qualifiers_Rec_Type :=
377                                         QP_Modifiers_PUB.G_MISS_QUALIFIERS_REC
378 ,   x_QUALIFIERS_rec                OUT QP_Modifiers_PUB.Qualifiers_Rec_Type
379 )
380 IS
381 BEGIN
382 
383     --  Load out record
384 
385     x_QUALIFIERS_rec := p_QUALIFIERS_rec;
386 
387     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute1,p_old_QUALIFIERS_rec.attribute1)
388     THEN
389         NULL;
390     END IF;
391 
392     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,p_old_QUALIFIERS_rec.attribute10)
393     THEN
394         NULL;
395     END IF;
396 
397     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,p_old_QUALIFIERS_rec.attribute11)
398     THEN
399         NULL;
400     END IF;
401 
402     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,p_old_QUALIFIERS_rec.attribute12)
403     THEN
404         NULL;
405     END IF;
406 
407     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,p_old_QUALIFIERS_rec.attribute13)
408     THEN
409         NULL;
410     END IF;
411 
412     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,p_old_QUALIFIERS_rec.attribute14)
413     THEN
414         NULL;
415     END IF;
416 
417     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,p_old_QUALIFIERS_rec.attribute15)
418     THEN
419         NULL;
420     END IF;
421 
422     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,p_old_QUALIFIERS_rec.attribute2)
423     THEN
424         NULL;
425     END IF;
426 
427     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,p_old_QUALIFIERS_rec.attribute3)
428     THEN
429         NULL;
430     END IF;
431 
432     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,p_old_QUALIFIERS_rec.attribute4)
433     THEN
434         NULL;
435     END IF;
436 
437     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,p_old_QUALIFIERS_rec.attribute5)
438     THEN
439         NULL;
440     END IF;
441 
442     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,p_old_QUALIFIERS_rec.attribute6)
443     THEN
444         NULL;
445     END IF;
446 
447     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,p_old_QUALIFIERS_rec.attribute7)
448     THEN
449         NULL;
450     END IF;
451 
452     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,p_old_QUALIFIERS_rec.attribute8)
453     THEN
454         NULL;
455     END IF;
456 
457     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,p_old_QUALIFIERS_rec.attribute9)
458     THEN
459         NULL;
460     END IF;
461 
462     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,p_old_QUALIFIERS_rec.comparison_operator_code)
463     THEN
464         NULL;
465     END IF;
466 
467     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,p_old_QUALIFIERS_rec.context)
468     THEN
469         NULL;
470     END IF;
471 
472     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,p_old_QUALIFIERS_rec.created_by)
473     THEN
474         NULL;
475     END IF;
476 
477     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,p_old_QUALIFIERS_rec.created_from_rule_id)
478     THEN
479         NULL;
480     END IF;
481 
482     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,p_old_QUALIFIERS_rec.creation_date)
483     THEN
484         NULL;
485     END IF;
486 
487     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,p_old_QUALIFIERS_rec.end_date_active)
488     THEN
489         NULL;
490     END IF;
491 
492     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,p_old_QUALIFIERS_rec.excluder_flag)
493     THEN
494         NULL;
495     END IF;
496 
497     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,p_old_QUALIFIERS_rec.last_updated_by)
498     THEN
499         NULL;
500     END IF;
501 
502     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,p_old_QUALIFIERS_rec.last_update_date)
503     THEN
504         NULL;
505     END IF;
506 
507     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,p_old_QUALIFIERS_rec.last_update_login)
508     THEN
509         NULL;
510     END IF;
511 
512     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,p_old_QUALIFIERS_rec.list_header_id)
513     THEN
514         NULL;
515     END IF;
516 
517     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,p_old_QUALIFIERS_rec.list_line_id)
518     THEN
519         NULL;
520     END IF;
521 
522     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,p_old_QUALIFIERS_rec.program_application_id)
523     THEN
524         NULL;
525     END IF;
526 
527     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,p_old_QUALIFIERS_rec.program_id)
528     THEN
529         NULL;
530     END IF;
531 
532     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,p_old_QUALIFIERS_rec.program_update_date)
533     THEN
534         NULL;
535     END IF;
536 
537     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,p_old_QUALIFIERS_rec.qualifier_attribute)
538     THEN
539         NULL;
540     END IF;
541 
542     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,p_old_QUALIFIERS_rec.qualifier_attr_value)
543     THEN
544         NULL;
545     END IF;
546 
547     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,p_old_QUALIFIERS_rec.qualifier_context)
548     THEN
549         NULL;
550     END IF;
551 
552     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,p_old_QUALIFIERS_rec.qualifier_grouping_no)
553     THEN
554         NULL;
555     END IF;
556 
557     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,p_old_QUALIFIERS_rec.qualifier_id)
558     THEN
559         NULL;
560     END IF;
561 
562     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,p_old_QUALIFIERS_rec.qualifier_rule_id)
563     THEN
564         NULL;
565     END IF;
566 
567     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,p_old_QUALIFIERS_rec.request_id)
568     THEN
569         NULL;
570     END IF;
571 
572     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,p_old_QUALIFIERS_rec.start_date_active)
573     THEN
574         NULL;
575     END IF;
576 
577 END Apply_Attribute_Changes;
578 
579 --  Function Complete_Record
580 
581 FUNCTION Complete_Record
582 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
583 ,   p_old_QUALIFIERS_rec            IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
584 ) RETURN QP_Modifiers_PUB.Qualifiers_Rec_Type
585 IS
586 l_QUALIFIERS_rec              QP_Modifiers_PUB.Qualifiers_Rec_Type := p_QUALIFIERS_rec;
587 BEGIN
588 
589     IF l_QUALIFIERS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
590         l_QUALIFIERS_rec.attribute1 := p_old_QUALIFIERS_rec.attribute1;
591     END IF;
592 
593     IF l_QUALIFIERS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
594         l_QUALIFIERS_rec.attribute10 := p_old_QUALIFIERS_rec.attribute10;
595     END IF;
596 
597     IF l_QUALIFIERS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
598         l_QUALIFIERS_rec.attribute11 := p_old_QUALIFIERS_rec.attribute11;
599     END IF;
600 
601     IF l_QUALIFIERS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
602         l_QUALIFIERS_rec.attribute12 := p_old_QUALIFIERS_rec.attribute12;
603     END IF;
604 
605     IF l_QUALIFIERS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
606         l_QUALIFIERS_rec.attribute13 := p_old_QUALIFIERS_rec.attribute13;
607     END IF;
608 
609     IF l_QUALIFIERS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
610         l_QUALIFIERS_rec.attribute14 := p_old_QUALIFIERS_rec.attribute14;
611     END IF;
612 
613     IF l_QUALIFIERS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
614         l_QUALIFIERS_rec.attribute15 := p_old_QUALIFIERS_rec.attribute15;
615     END IF;
616 
617     IF l_QUALIFIERS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
618         l_QUALIFIERS_rec.attribute2 := p_old_QUALIFIERS_rec.attribute2;
619     END IF;
620 
621     IF l_QUALIFIERS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
622         l_QUALIFIERS_rec.attribute3 := p_old_QUALIFIERS_rec.attribute3;
623     END IF;
624 
625     IF l_QUALIFIERS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
626         l_QUALIFIERS_rec.attribute4 := p_old_QUALIFIERS_rec.attribute4;
627     END IF;
628 
629     IF l_QUALIFIERS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
630         l_QUALIFIERS_rec.attribute5 := p_old_QUALIFIERS_rec.attribute5;
631     END IF;
632 
633     IF l_QUALIFIERS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
634         l_QUALIFIERS_rec.attribute6 := p_old_QUALIFIERS_rec.attribute6;
635     END IF;
636 
637     IF l_QUALIFIERS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
638         l_QUALIFIERS_rec.attribute7 := p_old_QUALIFIERS_rec.attribute7;
639     END IF;
640 
641     IF l_QUALIFIERS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
642         l_QUALIFIERS_rec.attribute8 := p_old_QUALIFIERS_rec.attribute8;
643     END IF;
644 
645     IF l_QUALIFIERS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
646         l_QUALIFIERS_rec.attribute9 := p_old_QUALIFIERS_rec.attribute9;
647     END IF;
648 
649     IF l_QUALIFIERS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
650         l_QUALIFIERS_rec.comparison_operator_code := p_old_QUALIFIERS_rec.comparison_operator_code;
651     END IF;
652 
653     IF l_QUALIFIERS_rec.context = FND_API.G_MISS_CHAR THEN
654         l_QUALIFIERS_rec.context := p_old_QUALIFIERS_rec.context;
655     END IF;
656 
657     IF l_QUALIFIERS_rec.created_by = FND_API.G_MISS_NUM THEN
658         l_QUALIFIERS_rec.created_by := p_old_QUALIFIERS_rec.created_by;
659     END IF;
660 
661     IF l_QUALIFIERS_rec.created_from_rule_id = FND_API.G_MISS_NUM THEN
662         l_QUALIFIERS_rec.created_from_rule_id := p_old_QUALIFIERS_rec.created_from_rule_id;
663     END IF;
664 
665     IF l_QUALIFIERS_rec.creation_date = FND_API.G_MISS_DATE THEN
666         l_QUALIFIERS_rec.creation_date := p_old_QUALIFIERS_rec.creation_date;
667     END IF;
668 
669     IF l_QUALIFIERS_rec.end_date_active = FND_API.G_MISS_DATE THEN
670         l_QUALIFIERS_rec.end_date_active := p_old_QUALIFIERS_rec.end_date_active;
671     END IF;
672 
673     IF l_QUALIFIERS_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
674         l_QUALIFIERS_rec.excluder_flag := p_old_QUALIFIERS_rec.excluder_flag;
675     END IF;
676 
677     IF l_QUALIFIERS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
678         l_QUALIFIERS_rec.last_updated_by := p_old_QUALIFIERS_rec.last_updated_by;
679     END IF;
680 
681     IF l_QUALIFIERS_rec.last_update_date = FND_API.G_MISS_DATE THEN
682         l_QUALIFIERS_rec.last_update_date := p_old_QUALIFIERS_rec.last_update_date;
683     END IF;
684 
685     IF l_QUALIFIERS_rec.last_update_login = FND_API.G_MISS_NUM THEN
686         l_QUALIFIERS_rec.last_update_login := p_old_QUALIFIERS_rec.last_update_login;
687     END IF;
688 
689     IF l_QUALIFIERS_rec.list_header_id = FND_API.G_MISS_NUM THEN
690         l_QUALIFIERS_rec.list_header_id := p_old_QUALIFIERS_rec.list_header_id;
691     END IF;
692 
693     IF l_QUALIFIERS_rec.list_line_id = FND_API.G_MISS_NUM THEN
694         l_QUALIFIERS_rec.list_line_id := p_old_QUALIFIERS_rec.list_line_id;
695     END IF;
696 
697     IF l_QUALIFIERS_rec.program_application_id = FND_API.G_MISS_NUM THEN
698         l_QUALIFIERS_rec.program_application_id := p_old_QUALIFIERS_rec.program_application_id;
699     END IF;
700 
701     IF l_QUALIFIERS_rec.program_id = FND_API.G_MISS_NUM THEN
702         l_QUALIFIERS_rec.program_id := p_old_QUALIFIERS_rec.program_id;
703     END IF;
704 
705     IF l_QUALIFIERS_rec.program_update_date = FND_API.G_MISS_DATE THEN
706         l_QUALIFIERS_rec.program_update_date := p_old_QUALIFIERS_rec.program_update_date;
707     END IF;
708 
709     IF l_QUALIFIERS_rec.qualifier_attribute = FND_API.G_MISS_CHAR THEN
710         l_QUALIFIERS_rec.qualifier_attribute := p_old_QUALIFIERS_rec.qualifier_attribute;
711     END IF;
712 
713     IF l_QUALIFIERS_rec.qualifier_attr_value = FND_API.G_MISS_CHAR THEN
714         l_QUALIFIERS_rec.qualifier_attr_value := p_old_QUALIFIERS_rec.qualifier_attr_value;
715     END IF;
716 
717     IF l_QUALIFIERS_rec.qualifier_context = FND_API.G_MISS_CHAR THEN
718         l_QUALIFIERS_rec.qualifier_context := p_old_QUALIFIERS_rec.qualifier_context;
719     END IF;
720 
721     IF l_QUALIFIERS_rec.qualifier_grouping_no = FND_API.G_MISS_NUM THEN
722         l_QUALIFIERS_rec.qualifier_grouping_no := p_old_QUALIFIERS_rec.qualifier_grouping_no;
723     END IF;
724 
725     IF l_QUALIFIERS_rec.qualifier_id = FND_API.G_MISS_NUM THEN
726         l_QUALIFIERS_rec.qualifier_id := p_old_QUALIFIERS_rec.qualifier_id;
727     END IF;
728 
729     IF l_QUALIFIERS_rec.qualifier_rule_id = FND_API.G_MISS_NUM THEN
730         l_QUALIFIERS_rec.qualifier_rule_id := p_old_QUALIFIERS_rec.qualifier_rule_id;
731     END IF;
732 
733     IF l_QUALIFIERS_rec.request_id = FND_API.G_MISS_NUM THEN
734         l_QUALIFIERS_rec.request_id := p_old_QUALIFIERS_rec.request_id;
735     END IF;
736 
737     IF l_QUALIFIERS_rec.start_date_active = FND_API.G_MISS_DATE THEN
738         l_QUALIFIERS_rec.start_date_active := p_old_QUALIFIERS_rec.start_date_active;
739     END IF;
740 
741     RETURN l_QUALIFIERS_rec;
742 
743 END Complete_Record;
744 
745 --  Function Convert_Miss_To_Null
746 
747 FUNCTION Convert_Miss_To_Null
748 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
749 ) RETURN QP_Modifiers_PUB.Qualifiers_Rec_Type
750 IS
751 l_QUALIFIERS_rec              QP_Modifiers_PUB.Qualifiers_Rec_Type := p_QUALIFIERS_rec;
752 BEGIN
753 
754     IF l_QUALIFIERS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
755         l_QUALIFIERS_rec.attribute1 := NULL;
756     END IF;
757 
758     IF l_QUALIFIERS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
759         l_QUALIFIERS_rec.attribute10 := NULL;
760     END IF;
761 
762     IF l_QUALIFIERS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
763         l_QUALIFIERS_rec.attribute11 := NULL;
764     END IF;
765 
766     IF l_QUALIFIERS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
767         l_QUALIFIERS_rec.attribute12 := NULL;
768     END IF;
769 
770     IF l_QUALIFIERS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
771         l_QUALIFIERS_rec.attribute13 := NULL;
772     END IF;
773 
774     IF l_QUALIFIERS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
775         l_QUALIFIERS_rec.attribute14 := NULL;
776     END IF;
777 
778     IF l_QUALIFIERS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
779         l_QUALIFIERS_rec.attribute15 := NULL;
780     END IF;
781 
782     IF l_QUALIFIERS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
783         l_QUALIFIERS_rec.attribute2 := NULL;
784     END IF;
785 
786     IF l_QUALIFIERS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
787         l_QUALIFIERS_rec.attribute3 := NULL;
788     END IF;
789 
790     IF l_QUALIFIERS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
791         l_QUALIFIERS_rec.attribute4 := NULL;
792     END IF;
793 
794     IF l_QUALIFIERS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
795         l_QUALIFIERS_rec.attribute5 := NULL;
796     END IF;
797 
798     IF l_QUALIFIERS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
799         l_QUALIFIERS_rec.attribute6 := NULL;
800     END IF;
801 
802     IF l_QUALIFIERS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
803         l_QUALIFIERS_rec.attribute7 := NULL;
804     END IF;
805 
806     IF l_QUALIFIERS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
807         l_QUALIFIERS_rec.attribute8 := NULL;
808     END IF;
809 
810     IF l_QUALIFIERS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
811         l_QUALIFIERS_rec.attribute9 := NULL;
812     END IF;
813 
814     IF l_QUALIFIERS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
815         l_QUALIFIERS_rec.comparison_operator_code := NULL;
816     END IF;
817 
818     IF l_QUALIFIERS_rec.context = FND_API.G_MISS_CHAR THEN
819         l_QUALIFIERS_rec.context := NULL;
820     END IF;
821 
822     IF l_QUALIFIERS_rec.created_by = FND_API.G_MISS_NUM THEN
823         l_QUALIFIERS_rec.created_by := NULL;
824     END IF;
825 
826     IF l_QUALIFIERS_rec.created_from_rule_id = FND_API.G_MISS_NUM THEN
827         l_QUALIFIERS_rec.created_from_rule_id := NULL;
828     END IF;
829 
830     IF l_QUALIFIERS_rec.creation_date = FND_API.G_MISS_DATE THEN
831         l_QUALIFIERS_rec.creation_date := NULL;
832     END IF;
833 
834     IF l_QUALIFIERS_rec.end_date_active = FND_API.G_MISS_DATE THEN
835         l_QUALIFIERS_rec.end_date_active := NULL;
836     END IF;
837 
838     IF l_QUALIFIERS_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
839         l_QUALIFIERS_rec.excluder_flag := NULL;
840     END IF;
841 
842     IF l_QUALIFIERS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
843         l_QUALIFIERS_rec.last_updated_by := NULL;
844     END IF;
845 
846     IF l_QUALIFIERS_rec.last_update_date = FND_API.G_MISS_DATE THEN
847         l_QUALIFIERS_rec.last_update_date := NULL;
848     END IF;
849 
850     IF l_QUALIFIERS_rec.last_update_login = FND_API.G_MISS_NUM THEN
851         l_QUALIFIERS_rec.last_update_login := NULL;
852     END IF;
853 
854     IF l_QUALIFIERS_rec.list_header_id = FND_API.G_MISS_NUM THEN
855         l_QUALIFIERS_rec.list_header_id := NULL;
856     END IF;
857 
858     IF l_QUALIFIERS_rec.list_line_id = FND_API.G_MISS_NUM THEN
859         l_QUALIFIERS_rec.list_line_id := NULL;
860     END IF;
861 
862     IF l_QUALIFIERS_rec.program_application_id = FND_API.G_MISS_NUM THEN
863         l_QUALIFIERS_rec.program_application_id := NULL;
864     END IF;
865 
866     IF l_QUALIFIERS_rec.program_id = FND_API.G_MISS_NUM THEN
867         l_QUALIFIERS_rec.program_id := NULL;
868     END IF;
869 
870     IF l_QUALIFIERS_rec.program_update_date = FND_API.G_MISS_DATE THEN
871         l_QUALIFIERS_rec.program_update_date := NULL;
872     END IF;
873 
874     IF l_QUALIFIERS_rec.qualifier_attribute = FND_API.G_MISS_CHAR THEN
875         l_QUALIFIERS_rec.qualifier_attribute := NULL;
876     END IF;
877 
878     IF l_QUALIFIERS_rec.qualifier_attr_value = FND_API.G_MISS_CHAR THEN
879         l_QUALIFIERS_rec.qualifier_attr_value := NULL;
880     END IF;
881 
882     IF l_QUALIFIERS_rec.qualifier_context = FND_API.G_MISS_CHAR THEN
883         l_QUALIFIERS_rec.qualifier_context := NULL;
884     END IF;
885 
886     IF l_QUALIFIERS_rec.qualifier_grouping_no = FND_API.G_MISS_NUM THEN
887         l_QUALIFIERS_rec.qualifier_grouping_no := NULL;
888     END IF;
889 
890     IF l_QUALIFIERS_rec.qualifier_id = FND_API.G_MISS_NUM THEN
891         l_QUALIFIERS_rec.qualifier_id := NULL;
892     END IF;
893 
894     IF l_QUALIFIERS_rec.qualifier_rule_id = FND_API.G_MISS_NUM THEN
895         l_QUALIFIERS_rec.qualifier_rule_id := NULL;
896     END IF;
897 
898     IF l_QUALIFIERS_rec.request_id = FND_API.G_MISS_NUM THEN
899         l_QUALIFIERS_rec.request_id := NULL;
900     END IF;
901 
902     IF l_QUALIFIERS_rec.start_date_active = FND_API.G_MISS_DATE THEN
903         l_QUALIFIERS_rec.start_date_active := NULL;
904     END IF;
905 
906     RETURN l_QUALIFIERS_rec;
907 
908 END Convert_Miss_To_Null;
909 
910 --  Procedure Update_Row
911 
912 PROCEDURE Update_Row
913 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
914 )
915 IS
916 l_check_active_flag VARCHAR2(1);
917 l_active_flag VARCHAR2(1);
918 --l_status VARCHAR2(1);
919 --l_qualifiers_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
920 BEGIN
921     SELECT ACTIVE_FLAG
922        INTO   l_active_flag
923        FROM   QP_LIST_HEADERS_B
924        WHERE  LIST_HEADER_ID = p_QUALIFIERS_rec.list_header_id;
925 
926     --l_qualifiers_rec:=Query_Row(p_QUALIFIERS_rec.qualifier_id);
927 
928     UPDATE  QP_QUALIFIERS
929     SET     ATTRIBUTE1                     = p_QUALIFIERS_rec.attribute1
930     ,       ATTRIBUTE10                    = p_QUALIFIERS_rec.attribute10
931     ,       ATTRIBUTE11                    = p_QUALIFIERS_rec.attribute11
932     ,       ATTRIBUTE12                    = p_QUALIFIERS_rec.attribute12
933     ,       ATTRIBUTE13                    = p_QUALIFIERS_rec.attribute13
934     ,       ATTRIBUTE14                    = p_QUALIFIERS_rec.attribute14
935     ,       ATTRIBUTE15                    = p_QUALIFIERS_rec.attribute15
936     ,       ATTRIBUTE2                     = p_QUALIFIERS_rec.attribute2
937     ,       ATTRIBUTE3                     = p_QUALIFIERS_rec.attribute3
938     ,       ATTRIBUTE4                     = p_QUALIFIERS_rec.attribute4
939     ,       ATTRIBUTE5                     = p_QUALIFIERS_rec.attribute5
940     ,       ATTRIBUTE6                     = p_QUALIFIERS_rec.attribute6
941     ,       ATTRIBUTE7                     = p_QUALIFIERS_rec.attribute7
942     ,       ATTRIBUTE8                     = p_QUALIFIERS_rec.attribute8
943     ,       ATTRIBUTE9                     = p_QUALIFIERS_rec.attribute9
944     ,       COMPARISON_OPERATOR_CODE       = p_QUALIFIERS_rec.comparison_operator_code
945     ,       CONTEXT                        = p_QUALIFIERS_rec.context
946     ,       CREATED_BY                     = p_QUALIFIERS_rec.created_by
947     ,       CREATED_FROM_RULE_ID           = p_QUALIFIERS_rec.created_from_rule_id
948     ,       CREATION_DATE                  = p_QUALIFIERS_rec.creation_date
949     ,       END_DATE_ACTIVE                = p_QUALIFIERS_rec.end_date_active
950     ,       EXCLUDER_FLAG                  = p_QUALIFIERS_rec.excluder_flag
951     ,       LAST_UPDATED_BY                = p_QUALIFIERS_rec.last_updated_by
952     ,       LAST_UPDATE_DATE               = p_QUALIFIERS_rec.last_update_date
953     ,       LAST_UPDATE_LOGIN              = p_QUALIFIERS_rec.last_update_login
954     ,       LIST_HEADER_ID                 = p_QUALIFIERS_rec.list_header_id
955     ,       LIST_LINE_ID                   = p_QUALIFIERS_rec.list_line_id
956     ,       PROGRAM_APPLICATION_ID         = p_QUALIFIERS_rec.program_application_id
957     ,       PROGRAM_ID                     = p_QUALIFIERS_rec.program_id
958     ,       PROGRAM_UPDATE_DATE            = p_QUALIFIERS_rec.program_update_date
959     ,       QUALIFIER_ATTRIBUTE            = p_QUALIFIERS_rec.qualifier_attribute
960     ,       QUALIFIER_ATTR_VALUE           = p_QUALIFIERS_rec.qualifier_attr_value
961     ,       QUALIFIER_CONTEXT              = p_QUALIFIERS_rec.qualifier_context
962     ,       QUALIFIER_GROUPING_NO          = p_QUALIFIERS_rec.qualifier_grouping_no
963     ,       QUALIFIER_ID                   = p_QUALIFIERS_rec.qualifier_id
964     ,       QUALIFIER_RULE_ID              = p_QUALIFIERS_rec.qualifier_rule_id
965     ,       REQUEST_ID                     = p_QUALIFIERS_rec.request_id
966     ,       START_DATE_ACTIVE              = p_QUALIFIERS_rec.start_date_active
967     WHERE   QUALIFIER_ID = p_QUALIFIERS_rec.qualifier_id
968     ;
969 
970 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
971 
972 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
973 
974  IF(p_QUALIFIERS_rec.qualifier_context IS NOT NULL) AND
975   (p_QUALIFIERS_rec.qualifier_attribute IS NOT NULL) THEN
976 
977   UPDATE qp_pte_segments SET used_in_setup='Y'
978   WHERE  nvl(used_in_setup,'N')='N'
979   AND segment_id IN
980   (SELECT a.segment_id
981    FROM   qp_segments_b a,qp_prc_contexts_b b
982    WHERE a.segment_mapping_column=p_QUALIFIERS_rec.qualifier_attribute
983    AND   a.prc_context_id=b.prc_context_id
984    AND   b.prc_context_type='QUALIFIER'
985    AND   b.prc_context_code=p_QUALIFIERS_rec.qualifier_context);
986  END IF;
987 END IF;
988 
989 EXCEPTION
990 
991     WHEN OTHERS THEN
992 
993         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
994         THEN
995             FND_MSG_PUB.Add_Exc_Msg
996             (   G_PKG_NAME
997             ,   'Update_Row'
998             );
999         END IF;
1000 
1001         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1002 
1003 END Update_Row;
1004 
1005 --  Procedure Insert_Row
1006 
1007 PROCEDURE Insert_Row
1008 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
1009 )
1010 IS
1011 l_check_active_flag VARCHAR2(1);
1012 l_active_flag VARCHAR2(1);
1013 BEGIN
1014 SELECT ACTIVE_FLAG
1015        INTO   l_active_flag
1016        FROM   QP_LIST_HEADERS_B
1017        WHERE  LIST_HEADER_ID = p_QUALIFIERS_rec.list_header_id;
1018 
1019     INSERT  INTO QP_QUALIFIERS
1020     (       ATTRIBUTE1
1021     ,       ATTRIBUTE10
1022     ,       ATTRIBUTE11
1023     ,       ATTRIBUTE12
1024     ,       ATTRIBUTE13
1025     ,       ATTRIBUTE14
1026     ,       ATTRIBUTE15
1027     ,       ATTRIBUTE2
1028     ,       ATTRIBUTE3
1029     ,       ATTRIBUTE4
1030     ,       ATTRIBUTE5
1031     ,       ATTRIBUTE6
1032     ,       ATTRIBUTE7
1033     ,       ATTRIBUTE8
1034     ,       ATTRIBUTE9
1035     ,       COMPARISON_OPERATOR_CODE
1036     ,       CONTEXT
1037     ,       CREATED_BY
1038     ,       CREATED_FROM_RULE_ID
1039     ,       CREATION_DATE
1040     ,       END_DATE_ACTIVE
1041     ,       EXCLUDER_FLAG
1042     ,       LAST_UPDATED_BY
1043     ,       LAST_UPDATE_DATE
1044     ,       LAST_UPDATE_LOGIN
1045     ,       LIST_HEADER_ID
1046     ,       LIST_LINE_ID
1047     ,       PROGRAM_APPLICATION_ID
1048     ,       PROGRAM_ID
1049     ,       PROGRAM_UPDATE_DATE
1050     ,       QUALIFIER_ATTRIBUTE
1051     ,       QUALIFIER_ATTR_VALUE
1052     ,       QUALIFIER_CONTEXT
1053     ,       QUALIFIER_GROUPING_NO
1054     ,       QUALIFIER_ID
1055     ,       QUALIFIER_RULE_ID
1056     ,       REQUEST_ID
1057     ,       START_DATE_ACTIVE
1058     )
1059     VALUES
1060     (       p_QUALIFIERS_rec.attribute1
1061     ,       p_QUALIFIERS_rec.attribute10
1062     ,       p_QUALIFIERS_rec.attribute11
1063     ,       p_QUALIFIERS_rec.attribute12
1064     ,       p_QUALIFIERS_rec.attribute13
1065     ,       p_QUALIFIERS_rec.attribute14
1066     ,       p_QUALIFIERS_rec.attribute15
1067     ,       p_QUALIFIERS_rec.attribute2
1068     ,       p_QUALIFIERS_rec.attribute3
1069     ,       p_QUALIFIERS_rec.attribute4
1070     ,       p_QUALIFIERS_rec.attribute5
1071     ,       p_QUALIFIERS_rec.attribute6
1072     ,       p_QUALIFIERS_rec.attribute7
1073     ,       p_QUALIFIERS_rec.attribute8
1074     ,       p_QUALIFIERS_rec.attribute9
1075     ,       p_QUALIFIERS_rec.comparison_operator_code
1076     ,       p_QUALIFIERS_rec.context
1077     ,       p_QUALIFIERS_rec.created_by
1078     ,       p_QUALIFIERS_rec.created_from_rule_id
1079     ,       p_QUALIFIERS_rec.creation_date
1080     ,       p_QUALIFIERS_rec.end_date_active
1081     ,       p_QUALIFIERS_rec.excluder_flag
1082     ,       p_QUALIFIERS_rec.last_updated_by
1083     ,       p_QUALIFIERS_rec.last_update_date
1084     ,       p_QUALIFIERS_rec.last_update_login
1085     ,       p_QUALIFIERS_rec.list_header_id
1086     ,       p_QUALIFIERS_rec.list_line_id
1087     ,       p_QUALIFIERS_rec.program_application_id
1088     ,       p_QUALIFIERS_rec.program_id
1089     ,       p_QUALIFIERS_rec.program_update_date
1090     ,       p_QUALIFIERS_rec.qualifier_attribute
1091     ,       p_QUALIFIERS_rec.qualifier_attr_value
1092     ,       p_QUALIFIERS_rec.qualifier_context
1093     ,       p_QUALIFIERS_rec.qualifier_grouping_no
1094     ,       p_QUALIFIERS_rec.qualifier_id
1095     ,       p_QUALIFIERS_rec.qualifier_rule_id
1096     ,       p_QUALIFIERS_rec.request_id
1097     ,       p_QUALIFIERS_rec.start_date_active
1098     );
1099 
1100 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1101 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1102 IF(p_QUALIFIERS_rec.qualifier_context IS NOT NULL) AND
1103   (p_QUALIFIERS_rec.qualifier_attribute IS NOT NULL) THEN
1104 
1105   UPDATE qp_pte_segments SET used_in_setup='Y'
1106   WHERE  nvl(used_in_setup,'N')='N'
1107   AND segment_id IN
1108   (SELECT a.segment_id
1109    FROM   qp_segments_b a,qp_prc_contexts_b b
1110    WHERE a.segment_mapping_column=p_QUALIFIERS_rec.qualifier_attribute
1111    AND   a.prc_context_id=b.prc_context_id
1112    AND   b.prc_context_type='QUALIFIER'
1113    AND   b.prc_context_code=p_QUALIFIERS_rec.qualifier_context);
1114 END IF;
1115 END IF;
1116 
1117 EXCEPTION
1118 
1119     WHEN OTHERS THEN
1120 
1121         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1122         THEN
1123             FND_MSG_PUB.Add_Exc_Msg
1124             (   G_PKG_NAME
1125             ,   'Insert_Row'
1126             );
1127         END IF;
1128 
1129         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1130 
1131 END Insert_Row;
1132 
1133 --  Procedure Delete_Row
1134 
1135 PROCEDURE Delete_Row
1136 (   p_qualifier_id                  IN  NUMBER
1137 )
1138 IS
1139 BEGIN
1140 
1141     DELETE  FROM QP_QUALIFIERS
1142     WHERE   QUALIFIER_ID = p_qualifier_id
1143     ;
1144 
1145 EXCEPTION
1146 
1147     WHEN OTHERS THEN
1148 
1149         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1150         THEN
1151             FND_MSG_PUB.Add_Exc_Msg
1152             (   G_PKG_NAME
1153             ,   'Delete_Row'
1154             );
1155         END IF;
1156 
1157         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1158 
1159 END Delete_Row;
1160 
1161 --  Function Query_Row
1162 
1163 FUNCTION Query_Row
1164 (   p_qualifier_id                  IN  NUMBER
1165 ) RETURN QP_Modifiers_PUB.Qualifiers_Rec_Type
1166 IS
1167 BEGIN
1168 
1169     RETURN Query_Rows
1170         (   p_qualifier_id                => p_qualifier_id
1171         )(1);
1172 
1173 END Query_Row;
1174 
1175 --  Function Query_Rows
1176 
1177 --
1178 */
1179 FUNCTION Query_Rows
1180 (   p_qualifier_id                  IN  NUMBER :=
1181                                         FND_API.G_MISS_NUM
1182 ,   p_list_header_id                IN  NUMBER :=
1183                                         FND_API.G_MISS_NUM
1184 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
1185 IS
1186 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1187 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1188 
1189 CURSOR l_QUALIFIERS_csr IS
1190     SELECT  ATTRIBUTE1
1191     ,       ATTRIBUTE10
1192     ,       ATTRIBUTE11
1193     ,       ATTRIBUTE12
1194     ,       ATTRIBUTE13
1195     ,       ATTRIBUTE14
1196     ,       ATTRIBUTE15
1197     ,       ATTRIBUTE2
1198     ,       ATTRIBUTE3
1199     ,       ATTRIBUTE4
1200     ,       ATTRIBUTE5
1201     ,       ATTRIBUTE6
1202     ,       ATTRIBUTE7
1203     ,       ATTRIBUTE8
1204     ,       ATTRIBUTE9
1205     ,       COMPARISON_OPERATOR_CODE
1206     ,       CONTEXT
1207     ,       CREATED_BY
1208     ,       CREATED_FROM_RULE_ID
1209     ,       CREATION_DATE
1210     ,       END_DATE_ACTIVE
1211     ,       EXCLUDER_FLAG
1212     ,       LAST_UPDATED_BY
1213     ,       LAST_UPDATE_DATE
1214     ,       LAST_UPDATE_LOGIN
1215     ,       LIST_HEADER_ID
1216     ,       LIST_LINE_ID
1217     ,       PROGRAM_APPLICATION_ID
1218     ,       PROGRAM_ID
1219     ,       PROGRAM_UPDATE_DATE
1220     ,       QUALIFIER_ATTRIBUTE
1221     ,       QUALIFIER_ATTR_VALUE
1222     ,       QUALIFIER_ATTR_VALUE_TO
1223     ,       QUALIFIER_CONTEXT
1224     ,       QUALIFIER_GROUPING_NO
1225     ,       QUALIFIER_ID
1226     ,       QUALIFIER_RULE_ID
1227     ,       REQUEST_ID
1228     ,       START_DATE_ACTIVE
1229     ,       LIST_TYPE_CODE
1230     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1231     ,       QUAL_ATTR_VALUE_TO_NUMBER
1232     ,       ACTIVE_FLAG
1233     ,       QUALIFIER_PRECEDENCE
1234     ,       QUALIFIER_DATATYPE
1235     ,	  SEARCH_IND
1236     ,	  QUALIFIER_GROUP_CNT
1237     ,	  HEADER_QUALS_EXIST_FLAG
1238     ,	  DISTINCT_ROW_COUNT
1239     FROM    QP_QUALIFIERS
1240     WHERE ( QUALIFIER_ID = p_qualifier_id
1241     )
1242     OR (    LIST_HEADER_ID = p_list_header_id
1243     );
1244 
1245 BEGIN
1246 
1247     IF
1248     (p_qualifier_id IS NOT NULL
1249      AND
1250      p_qualifier_id <> FND_API.G_MISS_NUM)
1251     AND
1252     (p_list_header_id IS NOT NULL
1253      AND
1254      p_list_header_id <> FND_API.G_MISS_NUM)
1255     THEN
1256             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1257             THEN
1258                 FND_MSG_PUB.Add_Exc_Msg
1259                 (   G_PKG_NAME
1260                 ,   'Query Rows'
1261                 ,   'Keys are mutually exclusive: qualifier_id = '|| p_qualifier_id || ', list_header_id = '|| p_list_header_id
1262                 );
1263             END IF;
1264 
1265         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1266 
1267     END IF;
1268 
1269 
1270     --  Loop over fetched records
1271 
1272     FOR l_implicit_rec IN l_QUALIFIERS_csr LOOP
1273 
1274         l_QUALIFIERS_rec.attribute1    := l_implicit_rec.ATTRIBUTE1;
1275         l_QUALIFIERS_rec.attribute10   := l_implicit_rec.ATTRIBUTE10;
1276         l_QUALIFIERS_rec.attribute11   := l_implicit_rec.ATTRIBUTE11;
1277         l_QUALIFIERS_rec.attribute12   := l_implicit_rec.ATTRIBUTE12;
1278         l_QUALIFIERS_rec.attribute13   := l_implicit_rec.ATTRIBUTE13;
1279         l_QUALIFIERS_rec.attribute14   := l_implicit_rec.ATTRIBUTE14;
1280         l_QUALIFIERS_rec.attribute15   := l_implicit_rec.ATTRIBUTE15;
1281         l_QUALIFIERS_rec.attribute2    := l_implicit_rec.ATTRIBUTE2;
1282         l_QUALIFIERS_rec.attribute3    := l_implicit_rec.ATTRIBUTE3;
1283         l_QUALIFIERS_rec.attribute4    := l_implicit_rec.ATTRIBUTE4;
1284         l_QUALIFIERS_rec.attribute5    := l_implicit_rec.ATTRIBUTE5;
1285         l_QUALIFIERS_rec.attribute6    := l_implicit_rec.ATTRIBUTE6;
1286         l_QUALIFIERS_rec.attribute7    := l_implicit_rec.ATTRIBUTE7;
1287         l_QUALIFIERS_rec.attribute8    := l_implicit_rec.ATTRIBUTE8;
1288         l_QUALIFIERS_rec.attribute9    := l_implicit_rec.ATTRIBUTE9;
1289         l_QUALIFIERS_rec.comparison_operator_code := l_implicit_rec.COMPARISON_OPERATOR_CODE;
1290         l_QUALIFIERS_rec.context       := l_implicit_rec.CONTEXT;
1291         l_QUALIFIERS_rec.created_by    := l_implicit_rec.CREATED_BY;
1292         l_QUALIFIERS_rec.created_from_rule_id := l_implicit_rec.CREATED_FROM_RULE_ID;
1293         l_QUALIFIERS_rec.creation_date := l_implicit_rec.CREATION_DATE;
1294         l_QUALIFIERS_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
1295         l_QUALIFIERS_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
1296         l_QUALIFIERS_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1297         l_QUALIFIERS_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1298         l_QUALIFIERS_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1299         l_QUALIFIERS_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
1300         l_QUALIFIERS_rec.list_line_id  := l_implicit_rec.LIST_LINE_ID;
1301         l_QUALIFIERS_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
1302         l_QUALIFIERS_rec.program_id    := l_implicit_rec.PROGRAM_ID;
1303         l_QUALIFIERS_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
1304         l_QUALIFIERS_rec.qualifier_attribute := l_implicit_rec.QUALIFIER_ATTRIBUTE;
1305         l_QUALIFIERS_rec.qualifier_attr_value := l_implicit_rec.QUALIFIER_ATTR_VALUE;
1306         l_QUALIFIERS_rec.qualifier_attr_value_to := l_implicit_rec.QUALIFIER_ATTR_VALUE_TO;
1307 
1308         l_QUALIFIERS_rec.qualifier_context := l_implicit_rec.QUALIFIER_CONTEXT;
1309         l_QUALIFIERS_rec.qualifier_grouping_no := l_implicit_rec.QUALIFIER_GROUPING_NO;
1310         l_QUALIFIERS_rec.qualifier_id  := l_implicit_rec.QUALIFIER_ID;
1311         l_QUALIFIERS_rec.qualifier_rule_id := l_implicit_rec.QUALIFIER_RULE_ID;
1312         l_QUALIFIERS_rec.request_id    := l_implicit_rec.REQUEST_ID;
1313         l_QUALIFIERS_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
1314         l_QUALIFIERS_rec.list_type_code := l_implicit_rec.LIST_TYPE_CODE;
1315 	   l_QUALIFIERS_rec.qual_attr_value_from_number := l_implicit_rec.QUAL_ATTR_VALUE_FROM_NUMBER;
1316 	   l_QUALIFIERS_rec.qual_attr_value_to_number := l_implicit_rec.QUAL_ATTR_VALUE_TO_NUMBER;
1317 	   l_QUALIFIERS_rec.active_flag := l_implicit_rec.ACTIVE_FLAG;
1318 	   l_QUALIFIERS_rec.qualifier_datatype := l_implicit_rec.QUALIFIER_DATATYPE;
1319 	   l_QUALIFIERS_rec.qualifier_precedence := l_implicit_rec.QUALIFIER_PRECEDENCE;
1320 
1321 	   l_QUALIFIERS_rec.search_ind := l_implicit_rec.SEARCH_IND;
1322 	   l_QUALIFIERS_rec.qualifier_group_cnt := l_implicit_rec.QUALIFIER_GROUP_CNT;
1323 	   l_QUALIFIERS_rec.header_quals_exist_flag := l_implicit_rec.HEADER_QUALS_EXIST_FLAG;
1324 	   l_QUALIFIERS_rec.distinct_row_count := l_implicit_rec.DISTINCT_ROW_COUNT;
1325 
1326         l_QUALIFIERS_tbl(l_QUALIFIERS_tbl.COUNT + 1) := l_QUALIFIERS_rec;
1327 
1328     END LOOP;
1329 
1330 
1331     --  PK sent and no rows found
1332 
1333     IF
1334     (p_qualifier_id IS NOT NULL
1335      AND
1336      p_qualifier_id <> FND_API.G_MISS_NUM)
1337     AND
1338     (l_QUALIFIERS_tbl.COUNT = 0)
1339     THEN
1340         RAISE NO_DATA_FOUND;
1341     END IF;
1342 
1343 
1344     --  Return fetched table
1345 
1346     RETURN l_QUALIFIERS_tbl;
1347 
1348 EXCEPTION
1349 
1350     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1351 
1352         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1353 
1354     WHEN OTHERS THEN
1355 
1356         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1357         THEN
1358             FND_MSG_PUB.Add_Exc_Msg
1359             (   G_PKG_NAME
1360             ,   'Query_Rows'
1361             );
1362         END IF;
1363 
1364         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1365 
1366 END Query_Rows;
1367 
1368 --  Procedure       lock_Row
1369 --
1370 /*
1371 PROCEDURE Lock_Row
1372 (   x_return_status                 OUT VARCHAR2
1373 ,   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
1374 ,   x_QUALIFIERS_rec                OUT QP_Modifiers_PUB.Qualifiers_Rec_Type
1375 )
1376 IS
1377 l_QUALIFIERS_rec              QP_Modifiers_PUB.Qualifiers_Rec_Type;
1378 BEGIN
1379 
1380     SELECT  ATTRIBUTE1
1381     ,       ATTRIBUTE10
1382     ,       ATTRIBUTE11
1383     ,       ATTRIBUTE12
1384     ,       ATTRIBUTE13
1385     ,       ATTRIBUTE14
1386     ,       ATTRIBUTE15
1387     ,       ATTRIBUTE2
1388     ,       ATTRIBUTE3
1389     ,       ATTRIBUTE4
1390     ,       ATTRIBUTE5
1391     ,       ATTRIBUTE6
1392     ,       ATTRIBUTE7
1393     ,       ATTRIBUTE8
1394     ,       ATTRIBUTE9
1395     ,       COMPARISON_OPERATOR_CODE
1396     ,       CONTEXT
1397     ,       CREATED_BY
1398     ,       CREATED_FROM_RULE_ID
1399     ,       CREATION_DATE
1400     ,       END_DATE_ACTIVE
1401     ,       EXCLUDER_FLAG
1402     ,       LAST_UPDATED_BY
1403     ,       LAST_UPDATE_DATE
1404     ,       LAST_UPDATE_LOGIN
1405     ,       LIST_HEADER_ID
1406     ,       LIST_LINE_ID
1407     ,       PROGRAM_APPLICATION_ID
1408     ,       PROGRAM_ID
1409     ,       PROGRAM_UPDATE_DATE
1410     ,       QUALIFIER_ATTRIBUTE
1411     ,       QUALIFIER_ATTR_VALUE
1412     ,       QUALIFIER_CONTEXT
1413     ,       QUALIFIER_GROUPING_NO
1414     ,       QUALIFIER_ID
1415     ,       QUALIFIER_RULE_ID
1416     ,       REQUEST_ID
1417     ,       START_DATE_ACTIVE
1418     INTO    l_QUALIFIERS_rec.attribute1
1419     ,       l_QUALIFIERS_rec.attribute10
1420     ,       l_QUALIFIERS_rec.attribute11
1421     ,       l_QUALIFIERS_rec.attribute12
1422     ,       l_QUALIFIERS_rec.attribute13
1423     ,       l_QUALIFIERS_rec.attribute14
1424     ,       l_QUALIFIERS_rec.attribute15
1425     ,       l_QUALIFIERS_rec.attribute2
1426     ,       l_QUALIFIERS_rec.attribute3
1427     ,       l_QUALIFIERS_rec.attribute4
1428     ,       l_QUALIFIERS_rec.attribute5
1429     ,       l_QUALIFIERS_rec.attribute6
1430     ,       l_QUALIFIERS_rec.attribute7
1431     ,       l_QUALIFIERS_rec.attribute8
1432     ,       l_QUALIFIERS_rec.attribute9
1433     ,       l_QUALIFIERS_rec.comparison_operator_code
1434     ,       l_QUALIFIERS_rec.context
1435     ,       l_QUALIFIERS_rec.created_by
1436     ,       l_QUALIFIERS_rec.created_from_rule_id
1437     ,       l_QUALIFIERS_rec.creation_date
1438     ,       l_QUALIFIERS_rec.end_date_active
1439     ,       l_QUALIFIERS_rec.excluder_flag
1440     ,       l_QUALIFIERS_rec.last_updated_by
1441     ,       l_QUALIFIERS_rec.last_update_date
1442     ,       l_QUALIFIERS_rec.last_update_login
1443     ,       l_QUALIFIERS_rec.list_header_id
1444     ,       l_QUALIFIERS_rec.list_line_id
1445     ,       l_QUALIFIERS_rec.program_application_id
1446     ,       l_QUALIFIERS_rec.program_id
1447     ,       l_QUALIFIERS_rec.program_update_date
1448     ,       l_QUALIFIERS_rec.qualifier_attribute
1449     ,       l_QUALIFIERS_rec.qualifier_attr_value
1450     ,       l_QUALIFIERS_rec.qualifier_context
1451     ,       l_QUALIFIERS_rec.qualifier_grouping_no
1452     ,       l_QUALIFIERS_rec.qualifier_id
1453     ,       l_QUALIFIERS_rec.qualifier_rule_id
1454     ,       l_QUALIFIERS_rec.request_id
1455     ,       l_QUALIFIERS_rec.start_date_active
1456     FROM    QP_QUALIFIERS
1457     WHERE   QUALIFIER_ID = p_QUALIFIERS_rec.qualifier_id
1458         FOR UPDATE NOWAIT;
1459 
1460     --  Row locked. Compare IN attributes to DB attributes.
1461 
1462     IF  QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute1,
1463                          l_QUALIFIERS_rec.attribute1)
1464     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,
1465                          l_QUALIFIERS_rec.attribute10)
1466     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,
1467                          l_QUALIFIERS_rec.attribute11)
1468     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,
1469                          l_QUALIFIERS_rec.attribute12)
1470     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,
1471                          l_QUALIFIERS_rec.attribute13)
1472     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,
1473                          l_QUALIFIERS_rec.attribute14)
1474     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,
1475                          l_QUALIFIERS_rec.attribute15)
1476     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,
1477                          l_QUALIFIERS_rec.attribute2)
1478     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,
1479                          l_QUALIFIERS_rec.attribute3)
1480     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,
1481                          l_QUALIFIERS_rec.attribute4)
1482     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,
1483                          l_QUALIFIERS_rec.attribute5)
1484     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,
1485                          l_QUALIFIERS_rec.attribute6)
1486     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,
1487                          l_QUALIFIERS_rec.attribute7)
1488     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,
1489                          l_QUALIFIERS_rec.attribute8)
1490     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,
1491                          l_QUALIFIERS_rec.attribute9)
1492     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,
1493                          l_QUALIFIERS_rec.comparison_operator_code)
1494     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,
1495                          l_QUALIFIERS_rec.context)
1496     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,
1497                          l_QUALIFIERS_rec.created_by)
1498     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,
1499                          l_QUALIFIERS_rec.created_from_rule_id)
1500     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,
1501                          l_QUALIFIERS_rec.creation_date)
1502     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,
1503                          l_QUALIFIERS_rec.end_date_active)
1504     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,
1505                          l_QUALIFIERS_rec.excluder_flag)
1506     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,
1507                          l_QUALIFIERS_rec.last_updated_by)
1508     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,
1509                          l_QUALIFIERS_rec.last_update_date)
1510     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,
1511                          l_QUALIFIERS_rec.last_update_login)
1512     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,
1513                          l_QUALIFIERS_rec.list_header_id)
1514     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,
1515                          l_QUALIFIERS_rec.list_line_id)
1516     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,
1517                          l_QUALIFIERS_rec.program_application_id)
1518     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,
1519                          l_QUALIFIERS_rec.program_id)
1520     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,
1521                          l_QUALIFIERS_rec.program_update_date)
1522     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,
1523                          l_QUALIFIERS_rec.qualifier_attribute)
1524     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,
1525                          l_QUALIFIERS_rec.qualifier_attr_value)
1526     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,
1527                          l_QUALIFIERS_rec.qualifier_context)
1528     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
1529                          l_QUALIFIERS_rec.qualifier_grouping_no)
1530     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,
1531                          l_QUALIFIERS_rec.qualifier_id)
1532     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,
1533                          l_QUALIFIERS_rec.qualifier_rule_id)
1534     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,
1535                          l_QUALIFIERS_rec.request_id)
1536     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,
1537                          l_QUALIFIERS_rec.start_date_active)
1538     THEN
1539 
1540         --  Row has not changed. Set out parameter.
1541 
1542         x_QUALIFIERS_rec               := l_QUALIFIERS_rec;
1543 
1544         --  Set return status
1545 
1546         x_return_status                := FND_API.G_RET_STS_SUCCESS;
1547         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1548 
1549     ELSE
1550 
1551         --  Row has changed by another user.
1552 
1553         x_return_status                := FND_API.G_RET_STS_ERROR;
1554         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1555 
1556         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1557         THEN
1558 
1559             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1560             FND_MSG_PUB.Add;
1561 
1562         END IF;
1563 
1564     END IF;
1565 
1566 EXCEPTION
1567 
1568     WHEN NO_DATA_FOUND THEN
1569 
1570         x_return_status                := FND_API.G_RET_STS_ERROR;
1571         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1572 
1573         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1574         THEN
1575 
1576             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1577             FND_MSG_PUB.Add;
1578 
1579         END IF;
1580     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1581 
1582         x_return_status                := FND_API.G_RET_STS_ERROR;
1583         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1584 
1585         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
1586         THEN
1587 
1588             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1589             FND_MSG_PUB.Add;
1590 
1591         END IF;
1592     WHEN OTHERS THEN
1593 
1594         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1595         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1596 
1597         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1598         THEN
1599             FND_MSG_PUB.Add_Exc_Msg
1600             (   G_PKG_NAME
1601             ,   'Lock_Row'
1602             );
1603         END IF;
1604 
1605 END Lock_Row;
1606 
1607 --  Function Get_Values
1608 
1609 FUNCTION Get_Values
1610 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
1611 ,   p_old_QUALIFIERS_rec            IN  QP_Modifiers_PUB.Qualifiers_Rec_Type :=
1612                                         QP_Modifiers_PUB.G_MISS_QUALIFIERS_REC
1613 ) RETURN QP_Modifiers_PUB.Qualifiers_Val_Rec_Type
1614 IS
1615 l_QUALIFIERS_val_rec          QP_Modifiers_PUB.Qualifiers_Val_Rec_Type;
1616 BEGIN
1617 
1618     IF p_QUALIFIERS_rec.comparison_operator_code IS NOT NULL AND
1619         p_QUALIFIERS_rec.comparison_operator_code <> FND_API.G_MISS_CHAR AND
1620         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,
1621         p_old_QUALIFIERS_rec.comparison_operator_code)
1622     THEN
1623 --        l_QUALIFIERS_val_rec.comparison_operator := QP_Id_To_Value.Comparison_Operator
1624 --        (   p_comparison_operator_code    => p_QUALIFIERS_rec.comparison_operator_code
1625 --        );
1626     END IF;
1627 
1628     IF p_QUALIFIERS_rec.created_from_rule_id IS NOT NULL AND
1629         p_QUALIFIERS_rec.created_from_rule_id <> FND_API.G_MISS_NUM AND
1630         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,
1631         p_old_QUALIFIERS_rec.created_from_rule_id)
1632     THEN
1633         l_QUALIFIERS_val_rec.created_from_rule := QP_Id_To_Value.Created_From_Rule
1634         (   p_created_from_rule_id        => p_QUALIFIERS_rec.created_from_rule_id
1635         );
1636     END IF;
1637 
1638     IF p_QUALIFIERS_rec.excluder_flag IS NOT NULL AND
1639         p_QUALIFIERS_rec.excluder_flag <> FND_API.G_MISS_CHAR AND
1640         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,
1641         p_old_QUALIFIERS_rec.excluder_flag)
1642     THEN
1643         l_QUALIFIERS_val_rec.excluder := QP_Id_To_Value.Excluder
1644         (   p_excluder_flag               => p_QUALIFIERS_rec.excluder_flag
1645         );
1646     END IF;
1647 
1648     IF p_QUALIFIERS_rec.list_header_id IS NOT NULL AND
1649         p_QUALIFIERS_rec.list_header_id <> FND_API.G_MISS_NUM AND
1650         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,
1651         p_old_QUALIFIERS_rec.list_header_id)
1652     THEN
1653         l_QUALIFIERS_val_rec.list_header := QP_Id_To_Value.List_Header
1654         (   p_list_header_id              => p_QUALIFIERS_rec.list_header_id
1655         );
1656     END IF;
1657 
1658     IF p_QUALIFIERS_rec.list_line_id IS NOT NULL AND
1659         p_QUALIFIERS_rec.list_line_id <> FND_API.G_MISS_NUM AND
1660         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,
1661         p_old_QUALIFIERS_rec.list_line_id)
1662     THEN
1663         l_QUALIFIERS_val_rec.list_line := QP_Id_To_Value.List_Line
1664         (   p_list_line_id                => p_QUALIFIERS_rec.list_line_id
1665         );
1666     END IF;
1667 
1668     IF p_QUALIFIERS_rec.qualifier_id IS NOT NULL AND
1669         p_QUALIFIERS_rec.qualifier_id <> FND_API.G_MISS_NUM AND
1670         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,
1671         p_old_QUALIFIERS_rec.qualifier_id)
1672     THEN
1673 --        l_QUALIFIERS_val_rec.qualifier := QP_Id_To_Value.Qualifier
1674 --        (   p_qualifier_id                => p_QUALIFIERS_rec.qualifier_id
1675 --        );
1676     END IF;
1677 
1678     IF p_QUALIFIERS_rec.qualifier_rule_id IS NOT NULL AND
1679         p_QUALIFIERS_rec.qualifier_rule_id <> FND_API.G_MISS_NUM AND
1680         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,
1681         p_old_QUALIFIERS_rec.qualifier_rule_id)
1682     THEN
1683         l_QUALIFIERS_val_rec.qualifier_rule := QP_Id_To_Value.Qualifier_Rule
1684         (   p_qualifier_rule_id           => p_QUALIFIERS_rec.qualifier_rule_id
1685         );
1686     END IF;
1687 
1688     RETURN l_QUALIFIERS_val_rec;
1689 
1690 END Get_Values;
1691 
1692 --  Function Get_Ids
1693 
1694 FUNCTION Get_Ids
1695 (   p_QUALIFIERS_rec                IN  QP_Modifiers_PUB.Qualifiers_Rec_Type
1696 ,   p_QUALIFIERS_val_rec            IN  QP_Modifiers_PUB.Qualifiers_Val_Rec_Type
1697 ) RETURN QP_Modifiers_PUB.Qualifiers_Rec_Type
1698 IS
1699 l_QUALIFIERS_rec              QP_Modifiers_PUB.Qualifiers_Rec_Type;
1700 BEGIN
1701 
1702     --  initialize  return_status.
1703 
1704     l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1705 
1706     --  initialize l_QUALIFIERS_rec.
1707 
1708     l_QUALIFIERS_rec := p_QUALIFIERS_rec;
1709 
1710     IF  p_QUALIFIERS_val_rec.comparison_operator <> FND_API.G_MISS_CHAR
1711     THEN
1712 
1713         IF p_QUALIFIERS_rec.comparison_operator_code <> FND_API.G_MISS_CHAR THEN
1714 
1715             l_QUALIFIERS_rec.comparison_operator_code := p_QUALIFIERS_rec.comparison_operator_code;
1716 
1717             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1718             THEN
1719 
1720                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1721                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','comparison_operator');
1722                 FND_MSG_PUB.Add;
1723 
1724             END IF;
1725 
1726         ELSE
1727 
1728 --            l_QUALIFIERS_rec.comparison_operator_code := QP_Value_To_Id.comparison_operator
1729 --            (   p_comparison_operator         => p_QUALIFIERS_val_rec.comparison_operator
1730 --            );
1731 
1732             IF l_QUALIFIERS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
1733                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1734             END IF;
1735 
1736         END IF;
1737 
1738     END IF;
1739 
1740     IF  p_QUALIFIERS_val_rec.created_from_rule <> FND_API.G_MISS_CHAR
1741     THEN
1742 
1743         IF p_QUALIFIERS_rec.created_from_rule_id <> FND_API.G_MISS_NUM THEN
1744 
1745             l_QUALIFIERS_rec.created_from_rule_id := p_QUALIFIERS_rec.created_from_rule_id;
1746 
1747             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1748             THEN
1749 
1750                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1751                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','created_from_rule');
1752                 FND_MSG_PUB.Add;
1753 
1754             END IF;
1755 
1756         ELSE
1757 
1758             l_QUALIFIERS_rec.created_from_rule_id := QP_Value_To_Id.created_from_rule
1759             (   p_created_from_rule           => p_QUALIFIERS_val_rec.created_from_rule
1760             );
1761 
1762             IF l_QUALIFIERS_rec.created_from_rule_id = FND_API.G_MISS_NUM THEN
1763                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1764             END IF;
1765 
1766         END IF;
1767 
1768     END IF;
1769 
1770     IF  p_QUALIFIERS_val_rec.excluder <> FND_API.G_MISS_CHAR
1771     THEN
1772 
1773         IF p_QUALIFIERS_rec.excluder_flag <> FND_API.G_MISS_CHAR THEN
1774 
1775             l_QUALIFIERS_rec.excluder_flag := p_QUALIFIERS_rec.excluder_flag;
1776 
1777             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1778             THEN
1779 
1780                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1781                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','excluder');
1782                 FND_MSG_PUB.Add;
1783 
1784             END IF;
1785 
1786         ELSE
1787 
1788             l_QUALIFIERS_rec.excluder_flag := QP_Value_To_Id.excluder
1789             (   p_excluder                    => p_QUALIFIERS_val_rec.excluder
1790             );
1791 
1792             IF l_QUALIFIERS_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
1793                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1794             END IF;
1795 
1796         END IF;
1797 
1798     END IF;
1799 
1800     IF  p_QUALIFIERS_val_rec.list_header <> FND_API.G_MISS_CHAR
1801     THEN
1802 
1803         IF p_QUALIFIERS_rec.list_header_id <> FND_API.G_MISS_NUM THEN
1804 
1805             l_QUALIFIERS_rec.list_header_id := p_QUALIFIERS_rec.list_header_id;
1806 
1807             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1808             THEN
1809 
1810                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1811                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
1812                 FND_MSG_PUB.Add;
1813 
1814             END IF;
1815 
1816         ELSE
1817 
1818             l_QUALIFIERS_rec.list_header_id := QP_Value_To_Id.list_header
1819             (   p_list_header                 => p_QUALIFIERS_val_rec.list_header
1820             );
1821 
1822             IF l_QUALIFIERS_rec.list_header_id = FND_API.G_MISS_NUM THEN
1823                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1824             END IF;
1825 
1826         END IF;
1827 
1828     END IF;
1829 
1830     IF  p_QUALIFIERS_val_rec.list_line <> FND_API.G_MISS_CHAR
1831     THEN
1832 
1833         IF p_QUALIFIERS_rec.list_line_id <> FND_API.G_MISS_NUM THEN
1834 
1835             l_QUALIFIERS_rec.list_line_id := p_QUALIFIERS_rec.list_line_id;
1836 
1837             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1838             THEN
1839 
1840                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1841                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line');
1842                 FND_MSG_PUB.Add;
1843 
1844             END IF;
1845 
1846         ELSE
1847 
1848             l_QUALIFIERS_rec.list_line_id := QP_Value_To_Id.list_line
1849             (   p_list_line                   => p_QUALIFIERS_val_rec.list_line
1850             );
1851 
1852             IF l_QUALIFIERS_rec.list_line_id = FND_API.G_MISS_NUM THEN
1853                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1854             END IF;
1855 
1856         END IF;
1857 
1858     END IF;
1859 
1860     IF  p_QUALIFIERS_val_rec.qualifier <> FND_API.G_MISS_CHAR
1861     THEN
1862 
1863         IF p_QUALIFIERS_rec.qualifier_id <> FND_API.G_MISS_NUM THEN
1864 
1865             l_QUALIFIERS_rec.qualifier_id := p_QUALIFIERS_rec.qualifier_id;
1866 
1867             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1868             THEN
1869 
1870                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1871                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier');
1872                 FND_MSG_PUB.Add;
1873 
1874             END IF;
1875 
1876         ELSE
1877 
1878 --            l_QUALIFIERS_rec.qualifier_id := QP_Value_To_Id.qualifier
1879 --            (   p_qualifier                   => p_QUALIFIERS_val_rec.qualifier
1880 --            );
1881 
1882             IF l_QUALIFIERS_rec.qualifier_id = FND_API.G_MISS_NUM THEN
1883                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1884             END IF;
1885 
1886         END IF;
1887 
1888     END IF;
1889 
1890     IF  p_QUALIFIERS_val_rec.qualifier_rule <> FND_API.G_MISS_CHAR
1891     THEN
1892 
1893         IF p_QUALIFIERS_rec.qualifier_rule_id <> FND_API.G_MISS_NUM THEN
1894 
1895             l_QUALIFIERS_rec.qualifier_rule_id := p_QUALIFIERS_rec.qualifier_rule_id;
1896 
1897             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
1898             THEN
1899 
1900                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1901                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_rule');
1902                 FND_MSG_PUB.Add;
1903 
1904             END IF;
1905 
1906         ELSE
1907 
1908             l_QUALIFIERS_rec.qualifier_rule_id := QP_Value_To_Id.qualifier_rule
1909             (   p_qualifier_rule              => p_QUALIFIERS_val_rec.qualifier_rule
1910             );
1911 
1912             IF l_QUALIFIERS_rec.qualifier_rule_id = FND_API.G_MISS_NUM THEN
1913                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
1914             END IF;
1915 
1916         END IF;
1917 
1918     END IF;
1919 
1920 
1921     RETURN l_QUALIFIERS_rec;
1922 
1923 END Get_Ids;
1924 */
1925 END QP_Qualifiers_Util_Mod;