DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QUALIFIERS_UTIL

Source


1 PACKAGE BODY QP_Qualifiers_Util AS
2 /* $Header: QPXUQPQB.pls 120.16.12020000.2 2013/03/01 06:14:54 jputta ship $ */
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_Qualifier_Rules_PUB.Qualifiers_Rec_Type
13 ,   p_old_QUALIFIERS_rec            IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type :=
14                                         QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_REC
15 ,   x_QUALIFIERS_rec                OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_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    -- Following if statement is added by svdeshmu
28    -- If operator is updated from 'between' to '=' then qualifier_attr_value_to_code(ui field)
29    -- gets set to null.However qualifier_attr_value_to (database field) remains unclear.
30    --Hence if you query the record after this change, even though the operator is '='
31    -- 'value to 'is shown on the UI.(which is incorrect)
32    --Hence following statement is added to clear the qualifier_attr_value_to (database field)
33    --whenever operator is other than 'between'.
34 
35     if p_old_QUALIFIERS_rec.comparison_operator_code = 'BETWEEN' AND
36      p_QUALIFIERS_rec.comparison_operator_code <> 'BETWEEN' then
37 
38 	  x_QUALIFIERS_rec.qualifier_attr_value_to := null;
39      end if;
40 
41 
42 
43     --  If attr_id is missing compare old and new records and for
44     --  every changed attribute clear its dependent fields.
45 
46 
47     IF p_attr_id = FND_API.G_MISS_NUM THEN
48 
49         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute1,p_old_QUALIFIERS_rec.attribute1)
50         THEN
51             l_index := l_index + 1;
52             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE1;
53         END IF;
54 
55         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,p_old_QUALIFIERS_rec.attribute10)
56         THEN
57             l_index := l_index + 1;
58             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE10;
59         END IF;
60 
61         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,p_old_QUALIFIERS_rec.attribute11)
62         THEN
63             l_index := l_index + 1;
64             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE11;
65         END IF;
66 
67         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,p_old_QUALIFIERS_rec.attribute12)
68         THEN
69             l_index := l_index + 1;
70             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE12;
71         END IF;
72 
73         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,p_old_QUALIFIERS_rec.attribute13)
74         THEN
75             l_index := l_index + 1;
76             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE13;
77         END IF;
78 
79         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,p_old_QUALIFIERS_rec.attribute14)
80         THEN
81             l_index := l_index + 1;
82             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE14;
83         END IF;
84 
85         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,p_old_QUALIFIERS_rec.attribute15)
86         THEN
87             l_index := l_index + 1;
88             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE15;
89         END IF;
90 
91         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,p_old_QUALIFIERS_rec.attribute2)
92         THEN
93             l_index := l_index + 1;
94             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE2;
95         END IF;
96 
97         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,p_old_QUALIFIERS_rec.attribute3)
98         THEN
99             l_index := l_index + 1;
100             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE3;
101         END IF;
102 
103         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,p_old_QUALIFIERS_rec.attribute4)
104         THEN
105             l_index := l_index + 1;
106             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE4;
107         END IF;
108 
109         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,p_old_QUALIFIERS_rec.attribute5)
110         THEN
111             l_index := l_index + 1;
112             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE5;
113         END IF;
114 
115         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,p_old_QUALIFIERS_rec.attribute6)
116         THEN
117             l_index := l_index + 1;
118             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE6;
119         END IF;
120 
121         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,p_old_QUALIFIERS_rec.attribute7)
122         THEN
123             l_index := l_index + 1;
124             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE7;
125         END IF;
126 
127         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,p_old_QUALIFIERS_rec.attribute8)
128         THEN
129             l_index := l_index + 1;
130             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE8;
131         END IF;
132 
133         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,p_old_QUALIFIERS_rec.attribute9)
134         THEN
135             l_index := l_index + 1;
136             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE9;
137         END IF;
138 
139         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,p_old_QUALIFIERS_rec.comparison_operator_code)
140         THEN
141             l_index := l_index + 1;
142             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_COMPARISON_OPERATOR;
143         END IF;
144 
145         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,p_old_QUALIFIERS_rec.context)
146         THEN
147             l_index := l_index + 1;
148             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CONTEXT;
149         END IF;
150 
151         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,p_old_QUALIFIERS_rec.created_by)
152         THEN
153             l_index := l_index + 1;
154             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_BY;
155         END IF;
156 
157         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,p_old_QUALIFIERS_rec.created_from_rule_id)
158         THEN
159             l_index := l_index + 1;
160             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_FROM_RULE;
161         END IF;
162 
163         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,p_old_QUALIFIERS_rec.creation_date)
164         THEN
165             l_index := l_index + 1;
166             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATION_DATE;
167         END IF;
168 
169         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,p_old_QUALIFIERS_rec.end_date_active)
170         THEN
171             l_index := l_index + 1;
172             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_END_DATE_ACTIVE;
173         END IF;
174 
175         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,p_old_QUALIFIERS_rec.excluder_flag)
176         THEN
177             l_index := l_index + 1;
178             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_EXCLUDER;
179         END IF;
180 
181         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,p_old_QUALIFIERS_rec.last_updated_by)
182         THEN
183             l_index := l_index + 1;
184             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATED_BY;
185         END IF;
186 
187         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,p_old_QUALIFIERS_rec.last_update_date)
188         THEN
189             l_index := l_index + 1;
190             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_DATE;
191         END IF;
192 
193         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,p_old_QUALIFIERS_rec.last_update_login)
194         THEN
195             l_index := l_index + 1;
196             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_LOGIN;
197         END IF;
198 
199         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,p_old_QUALIFIERS_rec.list_header_id)
200         THEN
201             l_index := l_index + 1;
202             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_HEADER;
203         END IF;
204 
205         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,p_old_QUALIFIERS_rec.list_line_id)
206         THEN
207             l_index := l_index + 1;
208             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_LINE;
209         END IF;
210 
211         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,p_old_QUALIFIERS_rec.program_application_id)
212         THEN
213             l_index := l_index + 1;
214             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_APPLICATION;
215         END IF;
216 
217         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,p_old_QUALIFIERS_rec.program_id)
218         THEN
219             l_index := l_index + 1;
220             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM;
221         END IF;
222 
223         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,p_old_QUALIFIERS_rec.program_update_date)
224         THEN
225             l_index := l_index + 1;
226             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_UPDATE_DATE;
227         END IF;
228 
229         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,p_old_QUALIFIERS_rec.qualifier_attribute)
230         THEN
231             l_index := l_index + 1;
232             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTRIBUTE;
233         END IF;
234 
235         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,p_old_QUALIFIERS_rec.qualifier_attr_value)
236         THEN
237             l_index := l_index + 1;
238             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTR_VALUE;
239         END IF;
240 
241 
242         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value_to,p_old_QUALIFIERS_rec.qualifier_attr_value_to)
243         THEN
244             l_index := l_index + 1;
245             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTR_VALUE_TO;
246         END IF;
247 
248 
249 
250 
251 
252         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,p_old_QUALIFIERS_rec.qualifier_context)
253         THEN
254             l_index := l_index + 1;
255             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_CONTEXT;
256         END IF;
257 
258         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_datatype,p_old_QUALIFIERS_rec.qualifier_datatype)
259         THEN
260             l_index := l_index + 1;
261             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_DATATYPE;
262         END IF;
263 
264     /*    IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_date_format,p_old_QUALIFIERS_rec.qualifier_date_format)
265         THEN
266             l_index := l_index + 1;
267             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_DATE_FORMAT;
268         END IF;*/
269 
270         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,p_old_QUALIFIERS_rec.qualifier_grouping_no)
271         THEN
272             l_index := l_index + 1;
273             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_GROUPING_NO;
274         END IF;
275 
276         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,p_old_QUALIFIERS_rec.qualifier_id)
277         THEN
278             l_index := l_index + 1;
279             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER;
280         END IF;
281 
282        /* IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_number_format,p_old_QUALIFIERS_rec.qualifier_number_format)
283         THEN
284             l_index := l_index + 1;
285             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_NUMBER_FORMAT;
286         END IF;*/
287 
288         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_precedence,p_old_QUALIFIERS_rec.qualifier_precedence)
289         THEN
290             l_index := l_index + 1;
291             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_PRECEDENCE;
292         END IF;
293 
294         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,p_old_QUALIFIERS_rec.qualifier_rule_id)
295         THEN
296             l_index := l_index + 1;
297             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_RULE;
298         END IF;
299 
300         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,p_old_QUALIFIERS_rec.request_id)
301         THEN
302             l_index := l_index + 1;
303             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_REQUEST;
304         END IF;
305 
306         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,p_old_QUALIFIERS_rec.start_date_active)
307         THEN
308             l_index := l_index + 1;
309             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_START_DATE_ACTIVE;
310         END IF;
311 -- Added for TCA
312         IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualify_hier_descendent_flag,p_old_QUALIFIERS_rec.qualify_hier_descendent_flag)
313         THEN
314             l_index := l_index + 1;
315             l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFY_HIER_DESCENDENT_FLAG;
316         END IF;
317 
318     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
319         l_index := l_index + 1;
320         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE1;
321     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
322         l_index := l_index + 1;
323         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE10;
324     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
325         l_index := l_index + 1;
326         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE11;
327     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
328         l_index := l_index + 1;
329         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE12;
330     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
331         l_index := l_index + 1;
332         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE13;
333     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
334         l_index := l_index + 1;
335         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE14;
336     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
337         l_index := l_index + 1;
338         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE15;
339     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
340         l_index := l_index + 1;
341         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE2;
342     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
343         l_index := l_index + 1;
344         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE3;
345     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
346         l_index := l_index + 1;
347         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE4;
348     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
349         l_index := l_index + 1;
350         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE5;
351     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
352         l_index := l_index + 1;
353         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE6;
354     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
355         l_index := l_index + 1;
356         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE7;
357     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
358         l_index := l_index + 1;
359         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE8;
360     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
361         l_index := l_index + 1;
362         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_ATTRIBUTE9;
363     ELSIF p_attr_id = G_COMPARISON_OPERATOR THEN
364         l_index := l_index + 1;
365         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_COMPARISON_OPERATOR;
366     ELSIF p_attr_id = G_CONTEXT THEN
367         l_index := l_index + 1;
368         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CONTEXT;
369     ELSIF p_attr_id = G_CREATED_BY THEN
370         l_index := l_index + 1;
371         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_BY;
372     ELSIF p_attr_id = G_CREATED_FROM_RULE THEN
373         l_index := l_index + 1;
374         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATED_FROM_RULE;
375     ELSIF p_attr_id = G_CREATION_DATE THEN
376         l_index := l_index + 1;
377         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_CREATION_DATE;
378     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
379         l_index := l_index + 1;
380         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_END_DATE_ACTIVE;
381     ELSIF p_attr_id = G_EXCLUDER THEN
382         l_index := l_index + 1;
383         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_EXCLUDER;
384     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
385         l_index := l_index + 1;
386         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATED_BY;
387     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
388         l_index := l_index + 1;
389         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_DATE;
390     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
391         l_index := l_index + 1;
392         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LAST_UPDATE_LOGIN;
393     ELSIF p_attr_id = G_LIST_HEADER THEN
394         l_index := l_index + 1;
395         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_HEADER;
396     ELSIF p_attr_id = G_LIST_LINE THEN
397         l_index := l_index + 1;
398         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_LIST_LINE;
399     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
400         l_index := l_index + 1;
401         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_APPLICATION;
402     ELSIF p_attr_id = G_PROGRAM THEN
403         l_index := l_index + 1;
404         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM;
405     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
406         l_index := l_index + 1;
407         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_PROGRAM_UPDATE_DATE;
408     ELSIF p_attr_id = G_QUALIFIER_ATTRIBUTE THEN
409         l_index := l_index + 1;
410         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTRIBUTE;
411     ELSIF p_attr_id = G_QUALIFIER_ATTR_VALUE THEN
412         l_index := l_index + 1;
413         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTR_VALUE;
414     ELSIF p_attr_id = G_QUALIFIER_ATTR_VALUE_TO THEN
415         l_index := l_index + 1;
416        l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_ATTR_VALUE_TO;
417     ELSIF p_attr_id = G_QUALIFIER_CONTEXT THEN
418         l_index := l_index + 1;
419         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_CONTEXT;
420     ELSIF p_attr_id = G_QUALIFIER_DATATYPE THEN
421         l_index := l_index + 1;
422         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_DATATYPE;
423     --ELSIF p_attr_id = G_QUALIFIER_DATE_FORMAT THEN
424      --   l_index := l_index + 1;
425      --   l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_DATE_FORMAT;
426     ELSIF p_attr_id = G_QUALIFIER_GROUPING_NO THEN
427         l_index := l_index + 1;
428         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_GROUPING_NO;
429     ELSIF p_attr_id = G_QUALIFIER THEN
430         l_index := l_index + 1;
431         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER;
432     --ELSIF p_attr_id = G_QUALIFIER_NUMBER_FORMAT THEN
433     --    l_index := l_index + 1;
434     --    l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_NUMBER_FORMAT;
435     ELSIF p_attr_id = G_QUALIFIER_PRECEDENCE THEN
436         l_index := l_index + 1;
437         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_PRECEDENCE;
438     ELSIF p_attr_id = G_QUALIFIER_RULE THEN
439         l_index := l_index + 1;
440         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFIER_RULE;
441     ELSIF p_attr_id = G_REQUEST THEN
442         l_index := l_index + 1;
443         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_REQUEST;
444     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
445         l_index := l_index + 1;
446         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_START_DATE_ACTIVE;
447 -- Added for TCA
448     ELSIF p_attr_id = G_QUALIFY_HIER_DESCENDENT_FLAG THEN
449         l_index := l_index + 1;
450         l_src_attr_tbl(l_index) := QP_QUALIFIERS_UTIL.G_QUALIFY_HIER_DESCENDENT_FLAG;
451     END IF;
452 
453 END Clear_Dependent_Attr;
454 
455 --  Procedure Apply_Attribute_Changes
456 
457 PROCEDURE Apply_Attribute_Changes
458 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
459 ,   p_old_QUALIFIERS_rec            IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type :=
460                                         QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_REC
461 ,   x_QUALIFIERS_rec                OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
462 )
463 IS
464 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
465 BEGIN
466 
467 
468       oe_debug_pub.add('in apply attribute changes');
469 
470 
471     --  Load out record
472 
473     x_QUALIFIERS_rec := p_QUALIFIERS_rec;
474 
475     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute1,p_old_QUALIFIERS_rec.attribute1)
476     THEN
477         NULL;
478     END IF;
479 
480     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,p_old_QUALIFIERS_rec.attribute10)
481     THEN
482         NULL;
483     END IF;
484 
485     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,p_old_QUALIFIERS_rec.attribute11)
486     THEN
487         NULL;
488     END IF;
489 
490     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,p_old_QUALIFIERS_rec.attribute12)
491     THEN
492         NULL;
493     END IF;
494 
495     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,p_old_QUALIFIERS_rec.attribute13)
496     THEN
497         NULL;
498     END IF;
499 
500     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,p_old_QUALIFIERS_rec.attribute14)
501     THEN
502         NULL;
503     END IF;
504 
505     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,p_old_QUALIFIERS_rec.attribute15)
506     THEN
507         NULL;
508     END IF;
509 
510     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,p_old_QUALIFIERS_rec.attribute2)
511     THEN
512         NULL;
513     END IF;
514 
515     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,p_old_QUALIFIERS_rec.attribute3)
516     THEN
517         NULL;
518     END IF;
519 
520     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,p_old_QUALIFIERS_rec.attribute4)
521     THEN
522         NULL;
523     END IF;
524 
525     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,p_old_QUALIFIERS_rec.attribute5)
526     THEN
527         NULL;
528     END IF;
529 
530     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,p_old_QUALIFIERS_rec.attribute6)
531     THEN
532         NULL;
533     END IF;
534 
535     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,p_old_QUALIFIERS_rec.attribute7)
536     THEN
537         NULL;
538     END IF;
539 
540     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,p_old_QUALIFIERS_rec.attribute8)
541     THEN
542         NULL;
543     END IF;
544 
545     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,p_old_QUALIFIERS_rec.attribute9)
546     THEN
547         NULL;
548     END IF;
549 
550     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,p_old_QUALIFIERS_rec.comparison_operator_code)
551     THEN
552         NULL;
553     END IF;
554 
555     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,p_old_QUALIFIERS_rec.context)
556     THEN
557         NULL;
558     END IF;
559 
560     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,p_old_QUALIFIERS_rec.created_by)
561     THEN
562         NULL;
563     END IF;
564 
565     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,p_old_QUALIFIERS_rec.created_from_rule_id)
566     THEN
567         NULL;
568     END IF;
569 
570     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,p_old_QUALIFIERS_rec.creation_date)
571     THEN
572         NULL;
573     END IF;
574 
575     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,p_old_QUALIFIERS_rec.end_date_active)
576     THEN
577         NULL;
578     END IF;
579 
580     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,p_old_QUALIFIERS_rec.excluder_flag)
581     THEN
582         NULL;
583     END IF;
584 
585     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,p_old_QUALIFIERS_rec.last_updated_by)
586     THEN
587         NULL;
588     END IF;
589 
590     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,p_old_QUALIFIERS_rec.last_update_date)
591     THEN
592         NULL;
593     END IF;
594 
595     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,p_old_QUALIFIERS_rec.last_update_login)
596     THEN
597         NULL;
598     END IF;
599 
600     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,p_old_QUALIFIERS_rec.list_header_id)
601     THEN
602 	   NULL;
603     END IF;
604 
605     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,p_old_QUALIFIERS_rec.list_line_id)
606     THEN
607         NULL;
608     END IF;
609 
610     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,p_old_QUALIFIERS_rec.program_application_id)
611     THEN
612         NULL;
613     END IF;
614 
615     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,p_old_QUALIFIERS_rec.program_id)
616     THEN
617         NULL;
618     END IF;
619 
620     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,p_old_QUALIFIERS_rec.program_update_date)
621     THEN
622         NULL;
623     END IF;
624 
625     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,p_old_QUALIFIERS_rec.qualifier_attribute)
626     THEN
627         NULL;
628     END IF;
629 
630     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,p_old_QUALIFIERS_rec.qualifier_attr_value)
631     THEN
632         NULL;
633     END IF;
634     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value_to,p_old_QUALIFIERS_rec.qualifier_attr_value_to)
635     THEN
636         NULL;
637     END IF;
638 
639     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,p_old_QUALIFIERS_rec.qualifier_context)
640     THEN
641         NULL;
642     END IF;
643 
644     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_datatype,p_old_QUALIFIERS_rec.qualifier_datatype)
645     THEN
646         NULL;
647     END IF;
648 
649     /*IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_date_format,p_old_QUALIFIERS_rec.qualifier_date_format)
650     THEN
651         NULL;
652     END IF;*/
653 
654     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,p_old_QUALIFIERS_rec.qualifier_grouping_no)
655     THEN
656         NULL;
657     END IF;
658 
659     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,p_old_QUALIFIERS_rec.qualifier_id)
660     THEN
661         NULL;
662     END IF;
663 
664    /* IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_number_format,p_old_QUALIFIERS_rec.qualifier_number_format)
665     THEN
666         NULL;
667     END IF;*/
668 
669     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_precedence,p_old_QUALIFIERS_rec.qualifier_precedence)
670     THEN
671         NULL;
672     END IF;
673 
674     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,p_old_QUALIFIERS_rec.qualifier_rule_id)
675     THEN
676         NULL;
677     END IF;
678 
679     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,p_old_QUALIFIERS_rec.request_id)
680     THEN
681         NULL;
682     END IF;
683 
684     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,p_old_QUALIFIERS_rec.start_date_active)
685     THEN
686         NULL;
687     END IF;
688 -- Added for TCA
689     IF NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualify_hier_descendent_flag,p_old_QUALIFIERS_rec.qualify_hier_descendent_flag)
690     THEN
691         NULL;
692     END IF;
693       oe_debug_pub.add(' leaving  apply attribute changes');
694 
695 END Apply_Attribute_Changes;
696 
697 --  Function Complete_Record
698 
699 FUNCTION Complete_Record
700 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
701 ,   p_old_QUALIFIERS_rec            IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
702 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
703 IS
704 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type := p_QUALIFIERS_rec;
705 BEGIN
706 
707     IF l_QUALIFIERS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
708         l_QUALIFIERS_rec.attribute1 := p_old_QUALIFIERS_rec.attribute1;
709     END IF;
710 
711     IF l_QUALIFIERS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
712         l_QUALIFIERS_rec.attribute10 := p_old_QUALIFIERS_rec.attribute10;
713     END IF;
714 
715     IF l_QUALIFIERS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
716         l_QUALIFIERS_rec.attribute11 := p_old_QUALIFIERS_rec.attribute11;
717     END IF;
718 
719     IF l_QUALIFIERS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
720         l_QUALIFIERS_rec.attribute12 := p_old_QUALIFIERS_rec.attribute12;
721     END IF;
722 
723     IF l_QUALIFIERS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
724         l_QUALIFIERS_rec.attribute13 := p_old_QUALIFIERS_rec.attribute13;
725     END IF;
726 
727     IF l_QUALIFIERS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
728         l_QUALIFIERS_rec.attribute14 := p_old_QUALIFIERS_rec.attribute14;
729     END IF;
730 
731     IF l_QUALIFIERS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
732         l_QUALIFIERS_rec.attribute15 := p_old_QUALIFIERS_rec.attribute15;
733     END IF;
734 
735     IF l_QUALIFIERS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
736         l_QUALIFIERS_rec.attribute2 := p_old_QUALIFIERS_rec.attribute2;
737     END IF;
738 
739     IF l_QUALIFIERS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
740         l_QUALIFIERS_rec.attribute3 := p_old_QUALIFIERS_rec.attribute3;
741     END IF;
742 
743     IF l_QUALIFIERS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
744         l_QUALIFIERS_rec.attribute4 := p_old_QUALIFIERS_rec.attribute4;
745     END IF;
746 
747     IF l_QUALIFIERS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
748         l_QUALIFIERS_rec.attribute5 := p_old_QUALIFIERS_rec.attribute5;
749     END IF;
750 
751     IF l_QUALIFIERS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
752         l_QUALIFIERS_rec.attribute6 := p_old_QUALIFIERS_rec.attribute6;
753     END IF;
754 
755     IF l_QUALIFIERS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
756         l_QUALIFIERS_rec.attribute7 := p_old_QUALIFIERS_rec.attribute7;
757     END IF;
758 
759     IF l_QUALIFIERS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
760         l_QUALIFIERS_rec.attribute8 := p_old_QUALIFIERS_rec.attribute8;
761     END IF;
762 
763     IF l_QUALIFIERS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
764         l_QUALIFIERS_rec.attribute9 := p_old_QUALIFIERS_rec.attribute9;
765     END IF;
766 
767     IF l_QUALIFIERS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
768         l_QUALIFIERS_rec.comparison_operator_code := p_old_QUALIFIERS_rec.comparison_operator_code;
769     END IF;
770 
771     IF l_QUALIFIERS_rec.context = FND_API.G_MISS_CHAR THEN
772         l_QUALIFIERS_rec.context := p_old_QUALIFIERS_rec.context;
773     END IF;
774 
775     IF l_QUALIFIERS_rec.created_by = FND_API.G_MISS_NUM THEN
776         l_QUALIFIERS_rec.created_by := p_old_QUALIFIERS_rec.created_by;
777     END IF;
778 
779     IF l_QUALIFIERS_rec.created_from_rule_id = FND_API.G_MISS_NUM THEN
780         l_QUALIFIERS_rec.created_from_rule_id := p_old_QUALIFIERS_rec.created_from_rule_id;
781     END IF;
782 
783     IF l_QUALIFIERS_rec.creation_date = FND_API.G_MISS_DATE THEN
784         l_QUALIFIERS_rec.creation_date := p_old_QUALIFIERS_rec.creation_date;
785     END IF;
786 
787     IF l_QUALIFIERS_rec.end_date_active = FND_API.G_MISS_DATE THEN
788         l_QUALIFIERS_rec.end_date_active := p_old_QUALIFIERS_rec.end_date_active;
789     END IF;
790 
791     IF l_QUALIFIERS_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
792         l_QUALIFIERS_rec.excluder_flag := p_old_QUALIFIERS_rec.excluder_flag;
793     END IF;
794 
795     IF l_QUALIFIERS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
796         l_QUALIFIERS_rec.last_updated_by := p_old_QUALIFIERS_rec.last_updated_by;
797     END IF;
798 
799     IF l_QUALIFIERS_rec.last_update_date = FND_API.G_MISS_DATE THEN
800         l_QUALIFIERS_rec.last_update_date := p_old_QUALIFIERS_rec.last_update_date;
801     END IF;
802 
803     IF l_QUALIFIERS_rec.last_update_login = FND_API.G_MISS_NUM THEN
804         l_QUALIFIERS_rec.last_update_login := p_old_QUALIFIERS_rec.last_update_login;
805     END IF;
806 
807     IF l_QUALIFIERS_rec.list_header_id = FND_API.G_MISS_NUM THEN
808         l_QUALIFIERS_rec.list_header_id := p_old_QUALIFIERS_rec.list_header_id;
809     END IF;
810 
811     IF l_QUALIFIERS_rec.list_line_id = FND_API.G_MISS_NUM THEN
812         l_QUALIFIERS_rec.list_line_id := p_old_QUALIFIERS_rec.list_line_id;
813     END IF;
814 
815     IF l_QUALIFIERS_rec.program_application_id = FND_API.G_MISS_NUM THEN
816         l_QUALIFIERS_rec.program_application_id := p_old_QUALIFIERS_rec.program_application_id;
817     END IF;
818 
819     IF l_QUALIFIERS_rec.program_id = FND_API.G_MISS_NUM THEN
820         l_QUALIFIERS_rec.program_id := p_old_QUALIFIERS_rec.program_id;
821     END IF;
822 
823     IF l_QUALIFIERS_rec.program_update_date = FND_API.G_MISS_DATE THEN
824         l_QUALIFIERS_rec.program_update_date := p_old_QUALIFIERS_rec.program_update_date;
825     END IF;
826 
827     IF l_QUALIFIERS_rec.qualifier_attribute = FND_API.G_MISS_CHAR THEN
828         l_QUALIFIERS_rec.qualifier_attribute := p_old_QUALIFIERS_rec.qualifier_attribute;
829     END IF;
830 
831     IF l_QUALIFIERS_rec.qualifier_attr_value = FND_API.G_MISS_CHAR THEN
832         l_QUALIFIERS_rec.qualifier_attr_value := p_old_QUALIFIERS_rec.qualifier_attr_value;
833     END IF;
834    IF l_QUALIFIERS_rec.qualifier_attr_value_to = FND_API.G_MISS_CHAR THEN
835         l_QUALIFIERS_rec.qualifier_attr_value_to := p_old_QUALIFIERS_rec.qualifier_attr_value_to;
836     END IF;
837 
838     IF l_QUALIFIERS_rec.qualifier_context = FND_API.G_MISS_CHAR THEN
839         l_QUALIFIERS_rec.qualifier_context := p_old_QUALIFIERS_rec.qualifier_context;
840     END IF;
841 
842     IF l_QUALIFIERS_rec.qualifier_datatype = FND_API.G_MISS_CHAR THEN
843         l_QUALIFIERS_rec.qualifier_datatype := p_old_QUALIFIERS_rec.qualifier_datatype;
844     END IF;
845 
846     /*IF l_QUALIFIERS_rec.qualifier_date_format = FND_API.G_MISS_CHAR THEN
847         l_QUALIFIERS_rec.qualifier_date_format := p_old_QUALIFIERS_rec.qualifier_date_format;
848     END IF;*/
849 
850     IF l_QUALIFIERS_rec.qualifier_grouping_no = FND_API.G_MISS_NUM THEN
851         l_QUALIFIERS_rec.qualifier_grouping_no := p_old_QUALIFIERS_rec.qualifier_grouping_no;
852     END IF;
853 
854     IF l_QUALIFIERS_rec.qualifier_id = FND_API.G_MISS_NUM THEN
855         l_QUALIFIERS_rec.qualifier_id := p_old_QUALIFIERS_rec.qualifier_id;
856     END IF;
857 
858     /*IF l_QUALIFIERS_rec.qualifier_number_format = FND_API.G_MISS_CHAR THEN
859         l_QUALIFIERS_rec.qualifier_number_format := p_old_QUALIFIERS_rec.qualifier_number_format;
860     END IF;*/
861 
862     IF l_QUALIFIERS_rec.qualifier_precedence = FND_API.G_MISS_NUM THEN
863         l_QUALIFIERS_rec.qualifier_precedence := p_old_QUALIFIERS_rec.qualifier_precedence;
864     END IF;
865 
866     IF l_QUALIFIERS_rec.qualifier_rule_id = FND_API.G_MISS_NUM THEN
867         l_QUALIFIERS_rec.qualifier_rule_id := p_old_QUALIFIERS_rec.qualifier_rule_id;
868     END IF;
869 
870     IF l_QUALIFIERS_rec.request_id = FND_API.G_MISS_NUM THEN
871         l_QUALIFIERS_rec.request_id := p_old_QUALIFIERS_rec.request_id;
872     END IF;
873 
874     IF l_QUALIFIERS_rec.start_date_active = FND_API.G_MISS_DATE THEN
875         l_QUALIFIERS_rec.start_date_active := p_old_QUALIFIERS_rec.start_date_active;
876     END IF;
877 -- Added for TCA
878     IF l_QUALIFIERS_rec.qualify_hier_descendent_flag = FND_API.G_MISS_CHAR THEN
879         l_QUALIFIERS_rec.qualify_hier_descendent_flag := p_old_QUALIFIERS_rec.qualify_hier_descendent_flag;
880     END IF;
881 
882     RETURN l_QUALIFIERS_rec;
883 
884 END Complete_Record;
885 
886 --  Function Convert_Miss_To_Null
887 
888 FUNCTION Convert_Miss_To_Null
889 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
890 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
891 IS
892 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type := p_QUALIFIERS_rec;
893 BEGIN
894 
895     IF l_QUALIFIERS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
896         l_QUALIFIERS_rec.attribute1 := NULL;
897     END IF;
898 
899     IF l_QUALIFIERS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
900         l_QUALIFIERS_rec.attribute10 := NULL;
901     END IF;
902 
903     IF l_QUALIFIERS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
904         l_QUALIFIERS_rec.attribute11 := NULL;
905     END IF;
906 
907     IF l_QUALIFIERS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
908         l_QUALIFIERS_rec.attribute12 := NULL;
909     END IF;
910 
911     IF l_QUALIFIERS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
912         l_QUALIFIERS_rec.attribute13 := NULL;
913     END IF;
914 
915     IF l_QUALIFIERS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
916         l_QUALIFIERS_rec.attribute14 := NULL;
917     END IF;
918 
919     IF l_QUALIFIERS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
920         l_QUALIFIERS_rec.attribute15 := NULL;
921     END IF;
922 
923     IF l_QUALIFIERS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
924         l_QUALIFIERS_rec.attribute2 := NULL;
925     END IF;
926 
927     IF l_QUALIFIERS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
928         l_QUALIFIERS_rec.attribute3 := NULL;
929     END IF;
930 
931     IF l_QUALIFIERS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
932         l_QUALIFIERS_rec.attribute4 := NULL;
933     END IF;
934 
935     IF l_QUALIFIERS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
936         l_QUALIFIERS_rec.attribute5 := NULL;
937     END IF;
938 
939     IF l_QUALIFIERS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
940         l_QUALIFIERS_rec.attribute6 := NULL;
941     END IF;
942 
943     IF l_QUALIFIERS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
944         l_QUALIFIERS_rec.attribute7 := NULL;
945     END IF;
946 
947     IF l_QUALIFIERS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
948         l_QUALIFIERS_rec.attribute8 := NULL;
949     END IF;
950 
951     IF l_QUALIFIERS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
952         l_QUALIFIERS_rec.attribute9 := NULL;
953     END IF;
954 
955     IF l_QUALIFIERS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
956         l_QUALIFIERS_rec.comparison_operator_code := NULL;
957     END IF;
958 
959     IF l_QUALIFIERS_rec.context = FND_API.G_MISS_CHAR THEN
960         l_QUALIFIERS_rec.context := NULL;
961     END IF;
962 
963     IF l_QUALIFIERS_rec.created_by = FND_API.G_MISS_NUM THEN
964         l_QUALIFIERS_rec.created_by := NULL;
965     END IF;
966 
967     IF l_QUALIFIERS_rec.created_from_rule_id = FND_API.G_MISS_NUM THEN
968         l_QUALIFIERS_rec.created_from_rule_id := NULL;
969     END IF;
970 
971     IF l_QUALIFIERS_rec.creation_date = FND_API.G_MISS_DATE THEN
972         l_QUALIFIERS_rec.creation_date := NULL;
973     END IF;
974 
975     IF l_QUALIFIERS_rec.end_date_active = FND_API.G_MISS_DATE THEN
976         l_QUALIFIERS_rec.end_date_active := NULL;
977     END IF;
978 
979     IF l_QUALIFIERS_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
980         l_QUALIFIERS_rec.excluder_flag := NULL;
981     END IF;
982 
983     IF l_QUALIFIERS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
984         l_QUALIFIERS_rec.last_updated_by := NULL;
985     END IF;
986 
987     IF l_QUALIFIERS_rec.last_update_date = FND_API.G_MISS_DATE THEN
988         l_QUALIFIERS_rec.last_update_date := NULL;
989     END IF;
990 
991     IF l_QUALIFIERS_rec.last_update_login = FND_API.G_MISS_NUM THEN
992         l_QUALIFIERS_rec.last_update_login := NULL;
993     END IF;
994 
995     IF l_QUALIFIERS_rec.list_header_id = FND_API.G_MISS_NUM THEN
996         l_QUALIFIERS_rec.list_header_id := NULL;
997     END IF;
998 
999     IF l_QUALIFIERS_rec.list_line_id = FND_API.G_MISS_NUM THEN
1000         l_QUALIFIERS_rec.list_line_id := NULL;
1001     END IF;
1002 
1003     IF l_QUALIFIERS_rec.program_application_id = FND_API.G_MISS_NUM THEN
1004         l_QUALIFIERS_rec.program_application_id := NULL;
1005     END IF;
1006 
1007     IF l_QUALIFIERS_rec.program_id = FND_API.G_MISS_NUM THEN
1008         l_QUALIFIERS_rec.program_id := NULL;
1009     END IF;
1010 
1011     IF l_QUALIFIERS_rec.program_update_date = FND_API.G_MISS_DATE THEN
1012         l_QUALIFIERS_rec.program_update_date := NULL;
1013     END IF;
1014 
1015     IF l_QUALIFIERS_rec.qualifier_attribute = FND_API.G_MISS_CHAR THEN
1016         l_QUALIFIERS_rec.qualifier_attribute := NULL;
1017     END IF;
1018 
1019     IF l_QUALIFIERS_rec.qualifier_attr_value = FND_API.G_MISS_CHAR THEN
1020         l_QUALIFIERS_rec.qualifier_attr_value := NULL;
1021     END IF;
1022 
1023     IF l_QUALIFIERS_rec.qualifier_attr_value_to = FND_API.G_MISS_CHAR THEN
1024         l_QUALIFIERS_rec.qualifier_attr_value_to := NULL;
1025     END IF;
1026 
1027     IF l_QUALIFIERS_rec.qualifier_context = FND_API.G_MISS_CHAR THEN
1028         l_QUALIFIERS_rec.qualifier_context := NULL;
1029     END IF;
1030 
1031     IF l_QUALIFIERS_rec.qualifier_datatype = FND_API.G_MISS_CHAR THEN
1032         l_QUALIFIERS_rec.qualifier_datatype := NULL;
1033     END IF;
1034 
1035     /*IF l_QUALIFIERS_rec.qualifier_date_format = FND_API.G_MISS_CHAR THEN
1036         l_QUALIFIERS_rec.qualifier_date_format := NULL;
1037     END IF;*/
1038 
1039     IF l_QUALIFIERS_rec.qualifier_grouping_no = FND_API.G_MISS_NUM THEN
1040         l_QUALIFIERS_rec.qualifier_grouping_no := NULL;
1041     END IF;
1042 
1043     IF l_QUALIFIERS_rec.qualifier_id = FND_API.G_MISS_NUM THEN
1044         l_QUALIFIERS_rec.qualifier_id := NULL;
1045     END IF;
1046 
1047     /*IF l_QUALIFIERS_rec.qualifier_number_format = FND_API.G_MISS_CHAR THEN
1048         l_QUALIFIERS_rec.qualifier_number_format := NULL;
1049     END IF;*/
1050 
1051     IF l_QUALIFIERS_rec.qualifier_precedence = FND_API.G_MISS_NUM THEN
1052         l_QUALIFIERS_rec.qualifier_precedence := NULL;
1053     END IF;
1054 
1055     IF l_QUALIFIERS_rec.qualifier_rule_id = FND_API.G_MISS_NUM THEN
1056         l_QUALIFIERS_rec.qualifier_rule_id := NULL;
1057     END IF;
1058 
1059     IF l_QUALIFIERS_rec.request_id = FND_API.G_MISS_NUM THEN
1060         l_QUALIFIERS_rec.request_id := NULL;
1061     END IF;
1062 
1063     IF l_QUALIFIERS_rec.start_date_active = FND_API.G_MISS_DATE THEN
1064         l_QUALIFIERS_rec.start_date_active := NULL;
1065     END IF;
1066 -- Added for TCA
1067     IF l_QUALIFIERS_rec.qualify_hier_descendent_flag = FND_API.G_MISS_CHAR THEN
1068         l_QUALIFIERS_rec.qualify_hier_descendent_flag := NULL;
1069     END IF;
1070 
1071     RETURN l_QUALIFIERS_rec;
1072 
1073 END Convert_Miss_To_Null;
1074 
1075 --  Procedure Update_Row
1076 
1077 PROCEDURE Update_Row
1078 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
1079 )
1080 IS
1081 l_check_active_flag VARCHAR2(1);
1082 l_qual_attr_value_from_number NUMBER := NULL;
1083 l_qual_attr_value_to_number NUMBER := NULL;
1084 l_qual_attr_value_from VARCHAR2(240);
1085 --l_status VARCHAR2(1);
1086 --l_qualifiers_rec   QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1087 BEGIN
1088 
1089    -- l_qualifiers_rec:=Query_Row(p_QUALIFIERS_rec.qualifier_id);
1090 
1091    BEGIN
1092     IF p_QUALIFIERS_rec.qualifier_datatype = 'N'
1093     then
1094             l_qual_attr_value_from_number :=
1095             qp_number.canonical_to_number(p_QUALIFIERS_rec.qualifier_attr_value);
1096 
1097             l_qual_attr_value_to_number :=
1098             qp_number.canonical_to_number(p_QUALIFIERS_rec.qualifier_attr_value_to);
1099 
1100             l_qual_attr_value_from :=
1101             qp_number.number_to_canonical(l_qual_attr_value_from_number);   --4418053
1102     ELSE
1103 
1104             l_qual_attr_value_from := p_QUALIFIERS_rec.qualifier_attr_value;  --4418053
1105 
1106     end if;
1107 
1108      EXCEPTION
1109             WHEN VALUE_ERROR THEN
1110                   NULL;
1111             WHEN OTHERS THEN
1112                   NULL;
1113      END;
1114 
1115     UPDATE  QP_QUALIFIERS
1116     SET     ATTRIBUTE1                     = p_QUALIFIERS_rec.attribute1
1117     ,       ATTRIBUTE10                    = p_QUALIFIERS_rec.attribute10
1118     ,       ATTRIBUTE11                    = p_QUALIFIERS_rec.attribute11
1119     ,       ATTRIBUTE12                    = p_QUALIFIERS_rec.attribute12
1120     ,       ATTRIBUTE13                    = p_QUALIFIERS_rec.attribute13
1121     ,       ATTRIBUTE14                    = p_QUALIFIERS_rec.attribute14
1122     ,       ATTRIBUTE15                    = p_QUALIFIERS_rec.attribute15
1123     ,       ATTRIBUTE2                     = p_QUALIFIERS_rec.attribute2
1124     ,       ATTRIBUTE3                     = p_QUALIFIERS_rec.attribute3
1125     ,       ATTRIBUTE4                     = p_QUALIFIERS_rec.attribute4
1126     ,       ATTRIBUTE5                     = p_QUALIFIERS_rec.attribute5
1127     ,       ATTRIBUTE6                     = p_QUALIFIERS_rec.attribute6
1128     ,       ATTRIBUTE7                     = p_QUALIFIERS_rec.attribute7
1129     ,       ATTRIBUTE8                     = p_QUALIFIERS_rec.attribute8
1130     ,       ATTRIBUTE9                     = p_QUALIFIERS_rec.attribute9
1131     ,       COMPARISON_OPERATOR_CODE       = p_QUALIFIERS_rec.comparison_operator_code
1132     ,       CONTEXT                        = p_QUALIFIERS_rec.context
1133     ,       CREATED_BY                     = p_QUALIFIERS_rec.created_by
1134     ,       CREATED_FROM_RULE_ID           = p_QUALIFIERS_rec.created_from_rule_id
1135     ,       CREATION_DATE                  = p_QUALIFIERS_rec.creation_date
1136     ,       END_DATE_ACTIVE                = p_QUALIFIERS_rec.end_date_active
1137     ,       EXCLUDER_FLAG                  = p_QUALIFIERS_rec.excluder_flag
1138     ,       LAST_UPDATED_BY                = p_QUALIFIERS_rec.last_updated_by
1139     ,       LAST_UPDATE_DATE               = p_QUALIFIERS_rec.last_update_date
1140     ,       LAST_UPDATE_LOGIN              = p_QUALIFIERS_rec.last_update_login
1141     ,       LIST_HEADER_ID                 = p_QUALIFIERS_rec.list_header_id
1142     ,       LIST_LINE_ID                   = p_QUALIFIERS_rec.list_line_id
1143     ,       PROGRAM_APPLICATION_ID         = p_QUALIFIERS_rec.program_application_id
1144     ,       PROGRAM_ID                     = p_QUALIFIERS_rec.program_id
1145     ,       PROGRAM_UPDATE_DATE            = p_QUALIFIERS_rec.program_update_date
1146     ,       QUALIFIER_ATTRIBUTE            = p_QUALIFIERS_rec.qualifier_attribute
1147     ,       QUALIFIER_ATTR_VALUE           = l_qual_attr_value_from
1148     ,       QUALIFIER_ATTR_VALUE_TO        = p_QUALIFIERS_rec.qualifier_attr_value_to
1149     ,       QUALIFIER_CONTEXT              = p_QUALIFIERS_rec.qualifier_context
1150     ,       QUALIFIER_DATATYPE             = p_QUALIFIERS_rec.qualifier_datatype
1151    -- ,       QUALIFIER_DATE_FORMAT          = p_QUALIFIERS_rec.qualifier_date_format
1152     ,       QUALIFIER_GROUPING_NO          = p_QUALIFIERS_rec.qualifier_grouping_no
1153     ,       QUALIFIER_ID                   = p_QUALIFIERS_rec.qualifier_id
1154     --,       QUALIFIER_NUMBER_FORMAT        = p_QUALIFIERS_rec.qualifier_number_format
1155     ,       QUALIFIER_PRECEDENCE           = p_QUALIFIERS_rec.qualifier_precedence
1156     ,       QUALIFIER_RULE_ID              = p_QUALIFIERS_rec.qualifier_rule_id
1157     ,       REQUEST_ID                     = p_QUALIFIERS_rec.request_id
1158     ,       START_DATE_ACTIVE              = p_QUALIFIERS_rec.start_date_active
1159     ,       QUAL_ATTR_VALUE_FROM_NUMBER    = l_qual_attr_value_from_number
1160     ,       QUAL_ATTR_VALUE_TO_NUMBER      = l_qual_attr_value_to_number
1161     ,       QUALIFY_HIER_DESCENDENTS_FLAG  = p_QUALIFIERS_rec.qualify_hier_descendent_flag -- Added for TCA
1162     WHERE   QUALIFIER_ID = p_QUALIFIERS_rec.qualifier_id
1163     ;
1164 
1165 
1166 
1167 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1168 
1169 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND p_QUALIFIERS_rec.active_flag='Y') THEN
1170 
1171  IF(p_QUALIFIERS_rec.qualifier_context IS NOT NULL) AND
1172   (p_QUALIFIERS_rec.qualifier_attribute IS NOT NULL) THEN
1173 
1174   UPDATE qp_pte_segments SET used_in_setup='Y'
1175   WHERE  nvl(used_in_setup,'N')='N'
1176   AND segment_id IN
1177   (SELECT a.segment_id
1178    FROM   qp_segments_b a,qp_prc_contexts_b b
1179    WHERE a.segment_mapping_column=p_QUALIFIERS_rec.qualifier_attribute
1180    AND   a.prc_context_id=b.prc_context_id
1181    AND   b.prc_context_type='QUALIFIER'
1182    AND   b.prc_context_code=p_QUALIFIERS_rec.qualifier_context);
1183  END IF;
1184 END IF;
1185 
1186 EXCEPTION
1187 
1188     WHEN OTHERS THEN
1189 
1190         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1191         THEN
1192             OE_MSG_PUB.Add_Exc_Msg
1193             (   G_PKG_NAME
1194             ,   'Update_Row'
1195             );
1196         END IF;
1197 
1198         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1199 
1200 END Update_Row;
1201 --  Procedure Update_coupon_Row Added for bug 7316016
1202 
1203 PROCEDURE Update_coupon_Row
1204 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
1205 )
1206 IS
1207 BEGIN
1208 UPDATE QP_COUPONS
1209     SET expiration_date=p_QUALIFIERS_rec.end_date_active
1210 	,start_date=p_QUALIFIERS_rec.start_date_active
1211 	,LAST_UPDATED_BY=p_QUALIFIERS_rec.LAST_UPDATED_BY
1212         ,LAST_UPDATE_DATE=p_QUALIFIERS_rec.LAST_UPDATE_DATE
1213         ,LAST_UPDATE_LOGIN=p_QUALIFIERS_rec.LAST_UPDATE_LOGIN
1214     WHERE coupon_id = p_QUALIFIERS_rec.qualifier_attr_value;
1215 EXCEPTION
1216 
1217     WHEN OTHERS THEN
1218 
1219         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1220         THEN
1221             FND_MSG_PUB.Add_Exc_Msg
1222             (   G_PKG_NAME
1223             ,   'Update_Coupon_Row'
1224             );
1225         END IF;
1226 
1227         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1228 END Update_Coupon_Row;
1229 
1230 --  Procedure Insert_Row
1231 
1232 PROCEDURE Insert_Row
1233 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
1234 )
1235 IS
1236 l_list_type_code VARCHAR2(30) := '';
1237 l_active_flag VARCHAR2(1) := '';
1238 l_qualifier_grouping_no NUMBER;
1239 l_qual_attr_value_from_number NUMBER := NULL;
1240 l_qual_attr_value_to_number NUMBER := NULL;
1241 l_check_active_flag VARCHAR2(1);
1242 l_qual_attr_value_from VARCHAR2(240);
1243 
1244 
1245 
1246 cursor update_pte_cur(l_qual_context varchar2,l_qual_attribute varchar2) is
1247    SELECT a.segment_id
1248    FROM   qp_segments_b a,qp_prc_contexts_b b
1249    WHERE a.segment_mapping_column=l_qual_attribute
1250    AND   a.prc_context_id=b.prc_context_id
1251    AND   b.prc_context_type='QUALIFIER'
1252    AND   b.prc_context_code=l_qual_context;
1253 
1254 
1255 BEGIN
1256 
1257     l_qualifier_grouping_no := p_QUALIFIERS_rec.qualifier_grouping_no;
1258 
1259     IF p_QUALIFIERS_rec.qualifier_context = 'MODLIST' AND
1260 	  p_QUALIFIERS_rec.qualifier_attribute = 'QUALIFIER_ATTRIBUTE4' AND
1261 	  p_QUALIFIERS_rec.qualifier_grouping_no <> -1
1262     THEN
1263 	  BEGIN
1264           SELECT list_type_code
1265 	     INTO   l_list_type_code
1266 	     FROM   qp_list_headers_vl
1267 	     WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id;
1268 	  EXCEPTION
1269 	    WHEN OTHERS THEN
1270 		  NULL;
1271 	  END;
1272 
1273 	  IF l_list_type_code IN ('PRL', 'AGR') THEN
1274           l_qualifier_grouping_no := -1;
1275 	  END IF;
1276     END IF;
1277 
1278     BEGIN
1279 
1280 	 SELECT ACTIVE_FLAG, LIST_TYPE_CODE
1281 	 INTO   l_active_flag, l_list_type_code
1282 	 FROM   QP_LIST_HEADERS_B
1283 	 WHERE  LIST_HEADER_ID = p_QUALIFIERS_rec.list_header_id;
1284 
1285      EXCEPTION
1286 	    WHEN OTHERS THEN
1287 		  NULL;
1288      END;
1289 
1290 
1291     BEGIN
1292 
1293     IF p_QUALIFIERS_rec.qualifier_datatype = 'N'
1294     then
1295             l_qual_attr_value_from_number :=
1296             qp_number.canonical_to_number(p_QUALIFIERS_rec.qualifier_attr_value);
1297 
1298             l_qual_attr_value_to_number :=
1299             qp_number.canonical_to_number(p_QUALIFIERS_rec.qualifier_attr_value_to);
1300 
1301             l_qual_attr_value_from :=
1302             qp_number.number_to_canonical(l_qual_attr_value_from_number);   --4418053
1303     ELSE
1304 
1305             l_qual_attr_value_from := p_QUALIFIERS_rec.qualifier_attr_value;  --4418053
1306 
1307     end if;
1308 
1309      EXCEPTION
1310             WHEN VALUE_ERROR THEN
1311                   NULL;
1312             WHEN OTHERS THEN
1313                   NULL;
1314 
1315     END;
1316 
1317     INSERT  INTO QP_QUALIFIERS
1318     (       ATTRIBUTE1
1319     ,       ATTRIBUTE10
1320     ,       ATTRIBUTE11
1321     ,       ATTRIBUTE12
1322     ,       ATTRIBUTE13
1323     ,       ATTRIBUTE14
1324     ,       ATTRIBUTE15
1325     ,       ATTRIBUTE2
1326     ,       ATTRIBUTE3
1327     ,       ATTRIBUTE4
1328     ,       ATTRIBUTE5
1329     ,       ATTRIBUTE6
1330     ,       ATTRIBUTE7
1331     ,       ATTRIBUTE8
1332     ,       ATTRIBUTE9
1333     ,       COMPARISON_OPERATOR_CODE
1334     ,       CONTEXT
1335     ,       CREATED_BY
1336     ,       CREATED_FROM_RULE_ID
1337     ,       CREATION_DATE
1338     ,       END_DATE_ACTIVE
1339     ,       EXCLUDER_FLAG
1340     ,       LAST_UPDATED_BY
1341     ,       LAST_UPDATE_DATE
1342     ,       LAST_UPDATE_LOGIN
1343     ,       LIST_HEADER_ID
1344     ,       LIST_LINE_ID
1345     ,       PROGRAM_APPLICATION_ID
1346     ,       PROGRAM_ID
1347     ,       PROGRAM_UPDATE_DATE
1348     ,       QUALIFIER_ATTRIBUTE
1349     ,       QUALIFIER_ATTR_VALUE
1350     ,       QUALIFIER_ATTR_VALUE_TO
1351     ,       QUALIFIER_CONTEXT
1352     ,       QUALIFIER_DATATYPE
1353     --,       QUALIFIER_DATE_FORMAT
1354     ,       QUALIFIER_GROUPING_NO
1355     ,       QUALIFIER_ID
1356     --,       QUALIFIER_NUMBER_FORMAT
1357     ,       QUALIFIER_PRECEDENCE
1358     ,       QUALIFIER_RULE_ID
1359     ,       REQUEST_ID
1360     ,       START_DATE_ACTIVE
1361     ,       ACTIVE_FLAG
1362     ,       LIST_TYPE_CODE
1363     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1364     ,       QUAL_ATTR_VALUE_TO_NUMBER
1365     ,	  SEARCH_IND
1366     ,	  QUALIFIER_GROUP_CNT
1367     ,	  HEADER_QUALS_EXIST_FLAG
1368     ,	  DISTINCT_ROW_COUNT
1369     ,     QUALIFY_HIER_DESCENDENTS_FLAG   -- Added for TCA
1370      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1371      ,ORIG_SYS_QUALIFIER_REF
1372      ,ORIG_SYS_LINE_REF
1373      ,ORIG_SYS_HEADER_REF
1374     )
1375     VALUES
1376     (       p_QUALIFIERS_rec.attribute1
1377     ,       p_QUALIFIERS_rec.attribute10
1378     ,       p_QUALIFIERS_rec.attribute11
1379     ,       p_QUALIFIERS_rec.attribute12
1380     ,       p_QUALIFIERS_rec.attribute13
1381     ,       p_QUALIFIERS_rec.attribute14
1382     ,       p_QUALIFIERS_rec.attribute15
1383     ,       p_QUALIFIERS_rec.attribute2
1384     ,       p_QUALIFIERS_rec.attribute3
1385     ,       p_QUALIFIERS_rec.attribute4
1386     ,       p_QUALIFIERS_rec.attribute5
1387     ,       p_QUALIFIERS_rec.attribute6
1388     ,       p_QUALIFIERS_rec.attribute7
1389     ,       p_QUALIFIERS_rec.attribute8
1390     ,       p_QUALIFIERS_rec.attribute9
1391     ,       p_QUALIFIERS_rec.comparison_operator_code
1392     ,       p_QUALIFIERS_rec.context
1393     ,       p_QUALIFIERS_rec.created_by
1394     ,       p_QUALIFIERS_rec.created_from_rule_id
1395     ,       p_QUALIFIERS_rec.creation_date
1396     ,       p_QUALIFIERS_rec.end_date_active
1397     ,       p_QUALIFIERS_rec.excluder_flag
1398     ,       p_QUALIFIERS_rec.last_updated_by
1399     ,       p_QUALIFIERS_rec.last_update_date
1400     ,       p_QUALIFIERS_rec.last_update_login
1401     ,       p_QUALIFIERS_rec.list_header_id
1402     ,       p_QUALIFIERS_rec.list_line_id
1403     ,       p_QUALIFIERS_rec.program_application_id
1404     ,       p_QUALIFIERS_rec.program_id
1405     ,       p_QUALIFIERS_rec.program_update_date
1406     ,       p_QUALIFIERS_rec.qualifier_attribute
1407     ,       l_qual_attr_value_from
1408     ,       p_QUALIFIERS_rec.qualifier_attr_value_to
1409     ,       p_QUALIFIERS_rec.qualifier_context
1410     ,       p_QUALIFIERS_rec.qualifier_datatype
1411     --,       p_QUALIFIERS_rec.qualifier_date_format
1412     ,       l_qualifier_grouping_no
1413     ,       p_QUALIFIERS_rec.qualifier_id
1414     --,       p_QUALIFIERS_rec.qualifier_number_format
1415     ,       p_QUALIFIERS_rec.qualifier_precedence
1416     ,       p_QUALIFIERS_rec.qualifier_rule_id
1417     ,       p_QUALIFIERS_rec.request_id
1418     ,       p_QUALIFIERS_rec.start_date_active
1419     ,       l_active_flag
1420     ,       l_list_type_code
1421     ,       l_qual_attr_value_from_number
1422     ,       l_qual_attr_value_to_number
1423     ,	  p_QUALIFIERS_rec.search_ind
1424     ,	  p_QUALIFIERS_rec.qualifier_group_cnt
1425     ,	  p_QUALIFIERS_rec.header_quals_exist_flag
1426     ,	  p_QUALIFIERS_rec.distinct_row_count
1427     ,     p_QUALIFIERS_rec.qualify_hier_descendent_flag  -- Added for TCA
1428      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1429      ,to_char(p_QUALIFIERS_rec.qualifier_id)
1430      ,(select l.ORIG_SYS_LINE_REF from qp_list_lines l where l.list_line_id=p_QUALIFIERS_rec.list_line_id)
1431      ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_QUALIFIERS_rec.list_header_id)
1432     );
1433 
1434 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1435 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1436  IF(p_QUALIFIERS_rec.qualifier_context IS NOT NULL) AND
1437   (p_QUALIFIERS_rec.qualifier_attribute IS NOT NULL) THEN
1438 	/* USed the cursor update_pte_cur instead of a nested subquery for the update statement
1439 	 * for the bug 3544961*/
1440 
1441 
1442 	for i in  update_pte_cur(p_QUALIFIERS_rec.qualifier_context, p_QUALIFIERS_rec.qualifier_attribute) loop
1443 
1444 	update qp_pte_segments set used_in_setup='Y'
1445 	where nvl(used_in_Setup,'N')='N'
1446 	  and segment_id = i.segment_id;
1447 
1448 
1449 	end loop;
1450 
1451  END IF;
1452 END IF;
1453 /*l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1454 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1455  IF(p_QUALIFIERS_rec.qualifier_context IS NOT NULL) AND
1456   (p_QUALIFIERS_rec.qualifier_attribute IS NOT NULL) THEN
1457 
1458   UPDATE qp_pte_segments SET used_in_setup='Y'
1459   WHERE  nvl(used_in_setup,'N')='N'
1460   AND segment_id IN
1461   (SELECT a.segment_id
1462    FROM   qp_segments_b a,qp_prc_contexts_b b
1463    WHERE a.segment_mapping_column=p_QUALIFIERS_rec.qualifier_attribute
1464    AND   a.prc_context_id=b.prc_context_id AND   b.prc_context_type='QUALIFIER'
1465    AND   b.prc_context_code=p_QUALIFIERS_rec.qualifier_context);
1466  END IF;
1467 END IF;
1468 */
1469 EXCEPTION
1470     WHEN OTHERS THEN
1471 
1472         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1473         THEN
1474             OE_MSG_PUB.Add_Exc_Msg
1475             (   G_PKG_NAME
1476             ,   'Insert_Row'
1477             );
1478         END IF;
1479 
1480         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1481 
1482 END Insert_Row;
1483 
1484 --This procedure will be used by HTML Qualifier UI
1485 --to insert qualifiers into dummy table for updates
1486 PROCEDURE Insert_Row(p_qual_grp_no IN NUMBER,
1487                      p_list_header_id IN NUMBER,
1488                      p_list_line_id IN NUMBER,
1489 		     p_transaction_id IN NUMBER) IS
1490 PRAGMA AUTONOMOUS_TRANSACTION;
1491 BEGIN
1492 
1493 insert into qp_qualifiers_fwk_dummy
1494     (       ATTRIBUTE1
1495     ,       ATTRIBUTE10
1496     ,       ATTRIBUTE11
1497     ,       ATTRIBUTE12
1498     ,       ATTRIBUTE13
1499     ,       ATTRIBUTE14
1500     ,       ATTRIBUTE15
1501     ,       ATTRIBUTE2
1502     ,       ATTRIBUTE3
1503     ,       ATTRIBUTE4
1504     ,       ATTRIBUTE5
1505     ,       ATTRIBUTE6
1506     ,       ATTRIBUTE7
1507     ,       ATTRIBUTE8
1508     ,       ATTRIBUTE9
1509     ,       COMPARISON_OPERATOR_CODE
1510     ,       CONTEXT
1511     ,       CREATED_BY
1512     ,       CREATED_FROM_RULE_ID
1513     ,       CREATION_DATE
1514     ,       END_DATE_ACTIVE
1515     ,       EXCLUDER_FLAG
1516     ,       LAST_UPDATED_BY
1517     ,       LAST_UPDATE_DATE
1518     ,       LAST_UPDATE_LOGIN
1519     ,       LIST_HEADER_ID
1520     ,       LIST_LINE_ID
1521     ,       PROGRAM_APPLICATION_ID
1522     ,       PROGRAM_ID
1523     ,       PROGRAM_UPDATE_DATE
1524     ,       QUALIFIER_ATTRIBUTE
1525     ,       QUALIFIER_ATTR_VALUE
1526     ,       QUALIFIER_ATTR_VALUE_TO
1527     ,       QUALIFIER_CONTEXT
1528     ,       QUALIFIER_DATATYPE
1529     --,       QUALIFIER_DATE_FORMAT
1530     ,       QUALIFIER_GROUPING_NO
1531     ,       QUALIFIER_ID
1532     --,       QUALIFIER_NUMBER_FORMAT
1533     ,       QUALIFIER_PRECEDENCE
1534     ,       QUALIFIER_RULE_ID
1535     ,       REQUEST_ID
1536     ,       START_DATE_ACTIVE
1537     ,       ACTIVE_FLAG
1538     ,       LIST_TYPE_CODE
1539     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1540     ,       QUAL_ATTR_VALUE_TO_NUMBER
1541     ,	  SEARCH_IND
1542     ,	  QUALIFIER_GROUP_CNT
1543     ,	  HEADER_QUALS_EXIST_FLAG
1544     ,	  DISTINCT_ROW_COUNT
1545     ,     TRANSACTION_ID
1546     ,     QUALIFY_HIER_DESCENDENTS_FLAG    -- Added for TCA
1547      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1548      ,ORIG_SYS_QUALIFIER_REF
1549      ,ORIG_SYS_LINE_REF
1550      ,ORIG_SYS_HEADER_REF
1551     )
1552      select
1553            ATTRIBUTE1
1554     ,       ATTRIBUTE10
1555     ,       ATTRIBUTE11
1556     ,       ATTRIBUTE12
1557     ,       ATTRIBUTE13
1558     ,       ATTRIBUTE14
1559     ,       ATTRIBUTE15
1560     ,       ATTRIBUTE2
1561     ,       ATTRIBUTE3
1562     ,       ATTRIBUTE4
1563     ,       ATTRIBUTE5
1564     ,       ATTRIBUTE6
1565     ,       ATTRIBUTE7
1566     ,       ATTRIBUTE8
1567     ,       ATTRIBUTE9
1568     ,       COMPARISON_OPERATOR_CODE
1569     ,       CONTEXT
1570     ,       CREATED_BY
1571     ,       CREATED_FROM_RULE_ID
1572     ,       CREATION_DATE
1573     ,       END_DATE_ACTIVE
1574     ,       EXCLUDER_FLAG
1575     ,       LAST_UPDATED_BY
1576     ,       sysdate
1577     ,       LAST_UPDATE_LOGIN
1578     ,       LIST_HEADER_ID
1579     ,       LIST_LINE_ID
1580     ,       PROGRAM_APPLICATION_ID
1581     ,       PROGRAM_ID
1582     ,       PROGRAM_UPDATE_DATE
1583     ,       QUALIFIER_ATTRIBUTE
1584     ,       QUALIFIER_ATTR_VALUE
1585     ,       QUALIFIER_ATTR_VALUE_TO
1586     ,       QUALIFIER_CONTEXT
1587     ,       QUALIFIER_DATATYPE
1588     --,       QUALIFIER_DATE_FORMAT
1589     ,       QUALIFIER_GROUPING_NO
1590     ,       QUALIFIER_ID
1591     --,       QUALIFIER_NUMBER_FORMAT
1592     ,       QUALIFIER_PRECEDENCE
1593     ,       QUALIFIER_RULE_ID
1594     ,       REQUEST_ID
1595     ,       START_DATE_ACTIVE
1596     ,       ACTIVE_FLAG
1597     ,       LIST_TYPE_CODE
1598     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1599     ,       QUAL_ATTR_VALUE_TO_NUMBER
1600     ,	  SEARCH_IND
1601     ,	  QUALIFIER_GROUP_CNT
1602     ,	  'Q'
1603     ,	  DISTINCT_ROW_COUNT
1604     ,     p_transaction_id
1605     ,     QUALIFY_HIER_DESCENDENTS_FLAG     -- Added for TCA
1606      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1607      ,to_char(qualifier_id)
1608      ,nvl(ORIG_SYS_LINE_REF,(select l.ORIG_SYS_LINE_REF from qp_list_lines l where l.list_line_id=p_list_line_id))
1609      ,nvl(ORIG_SYS_HEADER_REF,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_list_header_id))
1610 from qp_qualifiers qual
1611 where list_header_id = p_list_header_id
1612 and list_line_id = p_list_line_id
1613 and ((p_qual_grp_no = -1
1614 and qualifier_grouping_no = p_qual_grp_no)
1615 or (p_qual_grp_no <> -1
1616 and (qualifier_grouping_no = -1
1617 or qualifier_grouping_no = p_qual_grp_no)))
1618 and ((qual.list_type_code = 'PRL'
1619 and not (qual.qualifier_context = 'MODLIST' and qual.qualifier_attribute = 'QUALIFIER_ATTRIBUTE4'))
1620 or (qual.list_type_code <> 'PRL'))
1621 and not exists (select 'Y' from qp_qualifiers_fwk_dummy dummy
1622   where dummy.qualifier_id = qual.qualifier_id
1623   and dummy.transaction_id = p_transaction_id);
1624 
1625   --AUTONOMOUS commit
1626   commit;
1627 EXCEPTION
1628 When OTHERS Then
1629 null;
1630 END Insert_Row;
1631 
1632 --This procedure will be used by HTML Qualifier UI
1633 --to delete rows from dummy table
1634 Procedure Delete_Dummy_Rows(p_transaction_id IN NUMBER) IS
1635 PRAGMA AUTONOMOUS_TRANSACTION;
1636 BEGIN
1637   delete from qp_qualifiers_fwk_dummy where transaction_id = p_transaction_id
1638   or last_update_date < sysdate-5;
1639 --  where list_header_id = p_list_header_id
1640 --  and list_line_id = p_list_line_id;
1641 
1642   --AUTONOMOUS commit
1643   commit;
1644 EXCEPTION
1645 When OTHERS Then
1646   null;
1647 END Delete_Dummy_Rows;
1648 
1649 --This procedure will mark given qualifier as DELETED
1650 Procedure Mark_Delete_Dummy_Qual(p_qual_id IN NUMBER
1651                                 ,p_mode IN VARCHAR2
1652                                 ,p_transaction_id IN NUMBER) IS
1653 PRAGMA AUTONOMOUS_TRANSACTION;
1654 BEGIN
1655 update qp_qualifiers_fwk_dummy set header_quals_exist_flag = decode(p_mode, 'HGRID', 'X', 'D'),
1656                                    last_update_date = sysdate
1657 where qualifier_id = p_qual_id
1658 and transaction_id = p_transaction_id;
1659 
1660 IF SQL%ROWCOUNT < 1 THEN
1661   insert into qp_qualifiers_fwk_dummy
1662     (       ATTRIBUTE1
1663     ,       ATTRIBUTE10
1664     ,       ATTRIBUTE11
1665     ,       ATTRIBUTE12
1666     ,       ATTRIBUTE13
1667     ,       ATTRIBUTE14
1668     ,       ATTRIBUTE15
1669     ,       ATTRIBUTE2
1670     ,       ATTRIBUTE3
1671     ,       ATTRIBUTE4
1672     ,       ATTRIBUTE5
1673     ,       ATTRIBUTE6
1674     ,       ATTRIBUTE7
1675     ,       ATTRIBUTE8
1676     ,       ATTRIBUTE9
1677     ,       COMPARISON_OPERATOR_CODE
1678     ,       CONTEXT
1679     ,       CREATED_BY
1680     ,       CREATED_FROM_RULE_ID
1681     ,       CREATION_DATE
1682     ,       END_DATE_ACTIVE
1683     ,       EXCLUDER_FLAG
1684     ,       LAST_UPDATED_BY
1685     ,       LAST_UPDATE_DATE
1686     ,       LAST_UPDATE_LOGIN
1687     ,       LIST_HEADER_ID
1688     ,       LIST_LINE_ID
1689     ,       PROGRAM_APPLICATION_ID
1690     ,       PROGRAM_ID
1691     ,       PROGRAM_UPDATE_DATE
1692     ,       QUALIFIER_ATTRIBUTE
1693     ,       QUALIFIER_ATTR_VALUE
1694     ,       QUALIFIER_ATTR_VALUE_TO
1695     ,       QUALIFIER_CONTEXT
1696     ,       QUALIFIER_DATATYPE
1697     --,       QUALIFIER_DATE_FORMAT
1698     ,       QUALIFIER_GROUPING_NO
1699     ,       QUALIFIER_ID
1700     --,       QUALIFIER_NUMBER_FORMAT
1701     ,       QUALIFIER_PRECEDENCE
1702     ,       QUALIFIER_RULE_ID
1703     ,       REQUEST_ID
1704     ,       START_DATE_ACTIVE
1705     ,       ACTIVE_FLAG
1706     ,       LIST_TYPE_CODE
1707     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1708     ,       QUAL_ATTR_VALUE_TO_NUMBER
1709     ,	  SEARCH_IND
1710     ,	  QUALIFIER_GROUP_CNT
1711     ,	  HEADER_QUALS_EXIST_FLAG
1712     ,	  DISTINCT_ROW_COUNT
1713     ,     TRANSACTION_ID
1714     ,     QUALIFY_HIER_DESCENDENTS_FLAG    -- Added for TCA
1715      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1716      ,ORIG_SYS_QUALIFIER_REF
1717      ,ORIG_SYS_LINE_REF
1718      ,ORIG_SYS_HEADER_REF
1719     )
1720      select
1721            ATTRIBUTE1
1722     ,       ATTRIBUTE10
1723     ,       ATTRIBUTE11
1724     ,       ATTRIBUTE12
1725     ,       ATTRIBUTE13
1726     ,       ATTRIBUTE14
1727     ,       ATTRIBUTE15
1728     ,       ATTRIBUTE2
1729     ,       ATTRIBUTE3
1730     ,       ATTRIBUTE4
1731     ,       ATTRIBUTE5
1732     ,       ATTRIBUTE6
1733     ,       ATTRIBUTE7
1734     ,       ATTRIBUTE8
1735     ,       ATTRIBUTE9
1736     ,       COMPARISON_OPERATOR_CODE
1737     ,       CONTEXT
1738     ,       CREATED_BY
1739     ,       CREATED_FROM_RULE_ID
1740     ,       CREATION_DATE
1741     ,       END_DATE_ACTIVE
1742     ,       EXCLUDER_FLAG
1743     ,       LAST_UPDATED_BY
1744     ,       sysdate
1745     ,       LAST_UPDATE_LOGIN
1746     ,       LIST_HEADER_ID
1747     ,       LIST_LINE_ID
1748     ,       PROGRAM_APPLICATION_ID
1749     ,       PROGRAM_ID
1750     ,       PROGRAM_UPDATE_DATE
1751     ,       QUALIFIER_ATTRIBUTE
1752     ,       QUALIFIER_ATTR_VALUE
1753     ,       QUALIFIER_ATTR_VALUE_TO
1754     ,       QUALIFIER_CONTEXT
1755     ,       QUALIFIER_DATATYPE
1756     --,       QUALIFIER_DATE_FORMAT
1757     ,       QUALIFIER_GROUPING_NO
1758     ,       QUALIFIER_ID
1759     --,       QUALIFIER_NUMBER_FORMAT
1760     ,       QUALIFIER_PRECEDENCE
1761     ,       QUALIFIER_RULE_ID
1762     ,       REQUEST_ID
1763     ,       START_DATE_ACTIVE
1764     ,       ACTIVE_FLAG
1765     ,       LIST_TYPE_CODE
1766     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1767     ,       QUAL_ATTR_VALUE_TO_NUMBER
1768     ,	  SEARCH_IND
1769     ,	  QUALIFIER_GROUP_CNT
1770     ,	  decode(p_mode, 'HGRID', 'X', 'D')
1771     ,	  DISTINCT_ROW_COUNT
1772     ,     p_transaction_id
1773     ,     QUALIFY_HIER_DESCENDENTS_FLAG    -- Added for TCA
1774      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1775      ,to_char(qual.qualifier_id)
1776      ,nvl(qual.ORIG_SYS_LINE_REF,(select l.ORIG_SYS_LINE_REF from qp_list_lines l where l.list_line_id=qual.list_line_id))
1777      ,nvl(qual.ORIG_SYS_HEADER_REF,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=qual.list_header_id))
1778   from qp_qualifiers qual
1779   where qualifier_id = p_qual_id;
1780 END IF;--SQL%ROWCOUNT
1781   --AUTONOMOUS commit
1782   commit;
1783 EXCEPTION
1784 WHEN OTHERS THEN
1785   null;
1786 END Mark_Delete_Dummy_Qual;
1787 
1788 --This procedure will mark given qualifiergroup as DELETED
1789 Procedure Mark_Delete_Dummy_Qual(p_qual_grp_no IN NUMBER,
1790                          p_list_header_id IN NUMBER,
1791                          p_list_line_id IN NUMBER,
1792                          p_transaction_id IN NUMBER) IS
1793 PRAGMA AUTONOMOUS_TRANSACTION;
1794 BEGIN
1795 update qp_qualifiers_fwk_dummy set header_quals_exist_flag = 'X'
1796                                   ,last_update_date = sysdate
1797 where qualifier_grouping_no = p_qual_grp_no
1798 and list_header_id = p_list_header_id
1799 and list_line_id = p_list_line_id
1800 and ((list_type_code = 'PRL'
1801 and not (qualifier_context = 'MODLIST' and qualifier_attribute = 'QUALIFIER_ATTRIBUTE4'))
1802 or (list_type_code <> 'PRL'))
1803 and transaction_id = p_transaction_id;
1804 
1805 IF SQL%ROWCOUNT < 1 THEN
1806   insert into qp_qualifiers_fwk_dummy
1807     (       ATTRIBUTE1
1808     ,       ATTRIBUTE10
1809     ,       ATTRIBUTE11
1810     ,       ATTRIBUTE12
1811     ,       ATTRIBUTE13
1812     ,       ATTRIBUTE14
1813     ,       ATTRIBUTE15
1814     ,       ATTRIBUTE2
1815     ,       ATTRIBUTE3
1816     ,       ATTRIBUTE4
1817     ,       ATTRIBUTE5
1818     ,       ATTRIBUTE6
1819     ,       ATTRIBUTE7
1820     ,       ATTRIBUTE8
1821     ,       ATTRIBUTE9
1822     ,       COMPARISON_OPERATOR_CODE
1823     ,       CONTEXT
1824     ,       CREATED_BY
1825     ,       CREATED_FROM_RULE_ID
1826     ,       CREATION_DATE
1827     ,       END_DATE_ACTIVE
1828     ,       EXCLUDER_FLAG
1829     ,       LAST_UPDATED_BY
1830     ,       LAST_UPDATE_DATE
1831     ,       LAST_UPDATE_LOGIN
1832     ,       LIST_HEADER_ID
1833     ,       LIST_LINE_ID
1834     ,       PROGRAM_APPLICATION_ID
1835     ,       PROGRAM_ID
1836     ,       PROGRAM_UPDATE_DATE
1837     ,       QUALIFIER_ATTRIBUTE
1838     ,       QUALIFIER_ATTR_VALUE
1839     ,       QUALIFIER_ATTR_VALUE_TO
1840     ,       QUALIFIER_CONTEXT
1841     ,       QUALIFIER_DATATYPE
1842     --,       QUALIFIER_DATE_FORMAT
1843     ,       QUALIFIER_GROUPING_NO
1844     ,       QUALIFIER_ID
1845     --,       QUALIFIER_NUMBER_FORMAT
1846     ,       QUALIFIER_PRECEDENCE
1847     ,       QUALIFIER_RULE_ID
1848     ,       REQUEST_ID
1849     ,       START_DATE_ACTIVE
1850     ,       ACTIVE_FLAG
1851     ,       LIST_TYPE_CODE
1852     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1853     ,       QUAL_ATTR_VALUE_TO_NUMBER
1854     ,	  SEARCH_IND
1855     ,	  QUALIFIER_GROUP_CNT
1856     ,	  HEADER_QUALS_EXIST_FLAG
1857     ,	  DISTINCT_ROW_COUNT
1858     ,     TRANSACTION_ID
1859     ,     QUALIFY_HIER_DESCENDENTS_FLAG   -- Added for TCA
1860      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1861      ,ORIG_SYS_QUALIFIER_REF
1862      ,ORIG_SYS_LINE_REF
1863      ,ORIG_SYS_HEADER_REF
1864     )
1865      select
1866            ATTRIBUTE1
1867     ,       ATTRIBUTE10
1868     ,       ATTRIBUTE11
1869     ,       ATTRIBUTE12
1870     ,       ATTRIBUTE13
1871     ,       ATTRIBUTE14
1872     ,       ATTRIBUTE15
1873     ,       ATTRIBUTE2
1874     ,       ATTRIBUTE3
1875     ,       ATTRIBUTE4
1876     ,       ATTRIBUTE5
1877     ,       ATTRIBUTE6
1878     ,       ATTRIBUTE7
1879     ,       ATTRIBUTE8
1880     ,       ATTRIBUTE9
1881     ,       COMPARISON_OPERATOR_CODE
1882     ,       CONTEXT
1883     ,       CREATED_BY
1884     ,       CREATED_FROM_RULE_ID
1885     ,       CREATION_DATE
1886     ,       END_DATE_ACTIVE
1887     ,       EXCLUDER_FLAG
1888     ,       LAST_UPDATED_BY
1889     ,       sysdate
1890     ,       LAST_UPDATE_LOGIN
1891     ,       LIST_HEADER_ID
1892     ,       LIST_LINE_ID
1893     ,       PROGRAM_APPLICATION_ID
1894     ,       PROGRAM_ID
1895     ,       PROGRAM_UPDATE_DATE
1896     ,       QUALIFIER_ATTRIBUTE
1897     ,       QUALIFIER_ATTR_VALUE
1898     ,       QUALIFIER_ATTR_VALUE_TO
1899     ,       QUALIFIER_CONTEXT
1900     ,       QUALIFIER_DATATYPE
1901     --,       QUALIFIER_DATE_FORMAT
1902     ,       QUALIFIER_GROUPING_NO
1903     ,       QUALIFIER_ID
1904     --,       QUALIFIER_NUMBER_FORMAT
1905     ,       QUALIFIER_PRECEDENCE
1906     ,       QUALIFIER_RULE_ID
1907     ,       REQUEST_ID
1908     ,       START_DATE_ACTIVE
1909     ,       ACTIVE_FLAG
1910     ,       LIST_TYPE_CODE
1911     ,       QUAL_ATTR_VALUE_FROM_NUMBER
1912     ,       QUAL_ATTR_VALUE_TO_NUMBER
1913     ,	  SEARCH_IND
1914     ,	  QUALIFIER_GROUP_CNT
1915     ,	  'X'
1916     ,	  DISTINCT_ROW_COUNT
1917     ,     p_transaction_id
1918     ,     QUALIFY_HIER_DESCENDENTS_FLAG    -- Added for TCA
1919      --ENH Upgrade BOAPI for orig_sys...ref RAVI
1920      ,to_char(qualifier_id)
1921      ,nvl(ORIG_SYS_LINE_REF,(select l.ORIG_SYS_LINE_REF from qp_list_lines l where l.list_line_id=p_list_line_id))
1922      ,nvl(ORIG_SYS_HEADER_REF,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_list_header_id))
1923   from qp_qualifiers qual
1924   where list_header_id = p_list_header_id
1925   and list_line_id = p_list_line_id
1926   and qualifier_grouping_no = p_qual_grp_no
1927 and ((qual.list_type_code = 'PRL'
1928 and not (qual.qualifier_context = 'MODLIST' and qual.qualifier_attribute = 'QUALIFIER_ATTRIBUTE4'))
1929 or (qual.list_type_code <> 'PRL'));
1930 END IF;--SQL%ROWCOUNT
1931   --AUTONOMOUS commit
1932   commit;
1933 EXCEPTION
1934 WHEN OTHERS THEN
1935   null;
1936 END Mark_Delete_Dummy_Qual;
1937 
1938 --This procedure will delete the dummy qualifiers inserted for updates
1939 Procedure Remove_Dummy_Quals(p_action_type IN VARCHAR2,
1940                          p_list_header_id IN NUMBER,
1941                          p_list_line_id IN NUMBER,
1942                          p_transaction_id IN NUMBER) IS
1943 PRAGMA AUTONOMOUS_TRANSACTION;
1944 BEGIN
1945 IF p_action_type = 'CANCEL' THEN
1946   delete from qp_qualifiers_fwk_dummy
1947   where list_header_id = p_list_header_id
1948   and list_line_id = p_list_line_id
1949   and transaction_id = p_transaction_id
1950   and nvl(header_quals_exist_flag, 'N') in ('Q');--, 'D', 'U', 'N');
1951 ELSIF p_action_type = 'APPLY' THEN
1952   delete from qp_qualifiers_fwk_dummy
1953   where list_header_id = p_list_header_id
1954   and list_line_id = p_list_line_id
1955   and transaction_id = p_transaction_id
1956   and nvl(header_quals_exist_flag, 'N') = 'Q';
1957 END IF;--p_action_type
1958   --AUTONOMOUS commit
1959   commit;
1960 EXCEPTION
1961 WHEN OTHERS THEN
1962   null;
1963 END Remove_Dummy_Quals;
1964 
1965 --  Procedure Delete_Row
1966 
1967 PROCEDURE Delete_Row
1968 (   p_qualifier_id                  IN  NUMBER := FND_API.G_MISS_NUM,
1969     p_qualifier_rule_id             IN  NUMBER := FND_API.G_MISS_NUM
1970 )
1971 IS
1972 --l_check_active_flag VARCHAR2(1);
1973 --l_status VARCHAR2(1);
1974 --l_qualifiers_rec   QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1975 BEGIN
1976   -- l_qualifiers_rec:=Query_Row(p_qualifier_id);
1977    IF p_qualifier_rule_id <> FND_API.G_MISS_NUM
1978    THEN
1979 
1980        DELETE  FROM QP_QUALIFIERS
1981        WHERE   QUALIFIER_RULE_ID = p_qualifier_rule_id ;
1982    ELSE
1983 
1984     DELETE  FROM QP_QUALIFIERS
1985     WHERE   QUALIFIER_ID = p_qualifier_id ;
1986 
1987    END IF;
1988 
1989 /*
1990 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1991 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_qualifiers_rec.active_flag='Y') THEN
1992  IF(l_qualifiers_rec.qualifier_context IS NOT NULL) AND
1993   (l_qualifiers_rec.qualifier_attribute IS NOT NULL) THEN
1994   l_status:=QP_UTIL.Is_Used('QUALIFIER',
1995                             l_qualifiers_rec.qualifier_context,
1996                             l_qualifiers_rec.qualifier_attribute);
1997   IF l_status='N' THEN
1998   UPDATE qp_pte_segments SET used_in_setup='N'
1999   WHERE
2000    segment_id IN
2001   (SELECT a.segment_id
2002    FROM   qp_segments_b a,qp_prc_contexts_b b
2003    WHERE a.segment_mapping_column=l_qualifiers_rec.qualifier_attribute
2004    AND   a.prc_context_id=b.prc_context_id
2005    AND   b.prc_context_type='QUALIFIER'
2006    AND   b.prc_context_code=l_qualifiers_rec.qualifier_context);
2007   END IF;
2008  END IF;
2009 END IF;
2010 */
2011 
2012 EXCEPTION
2013 
2014     WHEN OTHERS THEN
2015 
2016         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2017         THEN
2018             OE_MSG_PUB.Add_Exc_Msg
2019             (   G_PKG_NAME
2020             ,   'Delete_Row'
2021             );
2022         END IF;
2023 
2024         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2025 
2026 END Delete_Row;
2027 
2028 PROCEDURE Delete_Row(p_qual_grp_no IN NUMBER,
2029                      p_list_header_id IN NUMBER,
2030                      p_list_line_id IN NUMBER,
2031                      p_transaction_id IN NUMBER)
2032 IS
2033 PRAGMA AUTONOMOUS_TRANSACTION;
2034 BEGIN
2035 
2036   delete from qp_qualifiers_fwk_dummy
2037   where transaction_id = p_transaction_id
2038   or last_update_date < sysdate - 5;
2039   --where qualifier_grouping_no = p_qual_grp_no
2040   --and list_header_id = p_list_header_id
2041   --and list_line_id = p_list_line_id;
2042 
2043   COMMIT;
2044 
2045 EXCEPTION
2046     WHEN OTHERS THEN
2047     null;
2048 End Delete_Row;
2049 
2050 --  Function Query_Row
2051 
2052 FUNCTION Query_Row
2053 (   p_qualifier_id                  IN  NUMBER
2054 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
2055 IS
2056 BEGIN
2057 
2058     RETURN Query_Rows
2059         (   p_qualifier_id                => p_qualifier_id
2060         )(1);
2061 
2062 END Query_Row;
2063 
2064 --  Function Query_Rows
2065 
2066 --
2067 
2068 FUNCTION Query_Rows
2069 (   p_qualifier_id                  IN  NUMBER :=
2070                                         FND_API.G_MISS_NUM
2071 ,   p_qualifier_rule_id             IN  NUMBER :=
2072                                         FND_API.G_MISS_NUM
2073 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type
2074 IS
2075 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
2076 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
2077 
2078 CURSOR l_QUALIFIERS_csr IS
2079     SELECT  ATTRIBUTE1
2080     ,       ATTRIBUTE10
2081     ,       ATTRIBUTE11
2082     ,       ATTRIBUTE12
2083     ,       ATTRIBUTE13
2084     ,       ATTRIBUTE14
2085     ,       ATTRIBUTE15
2086     ,       ATTRIBUTE2
2087     ,       ATTRIBUTE3
2088     ,       ATTRIBUTE4
2089     ,       ATTRIBUTE5
2090     ,       ATTRIBUTE6
2091     ,       ATTRIBUTE7
2092     ,       ATTRIBUTE8
2093     ,       ATTRIBUTE9
2094     ,       COMPARISON_OPERATOR_CODE
2095     ,       CONTEXT
2096     ,       CREATED_BY
2097     ,       CREATED_FROM_RULE_ID
2098     ,       CREATION_DATE
2099     ,       END_DATE_ACTIVE
2100     ,       EXCLUDER_FLAG
2101     ,       LAST_UPDATED_BY
2102     ,       LAST_UPDATE_DATE
2103     ,       LAST_UPDATE_LOGIN
2104     ,       LIST_HEADER_ID
2105     ,       LIST_LINE_ID
2106     ,       PROGRAM_APPLICATION_ID
2107     ,       PROGRAM_ID
2108     ,       PROGRAM_UPDATE_DATE
2109     ,       QUALIFIER_ATTRIBUTE
2110     ,       QUALIFIER_ATTR_VALUE
2111     ,       QUALIFIER_ATTR_VALUE_TO
2112     ,       QUALIFIER_CONTEXT
2113     ,       QUALIFIER_DATATYPE
2114    -- ,       QUALIFIER_DATE_FORMAT
2115     ,       QUALIFIER_GROUPING_NO
2116     ,       QUALIFIER_ID
2117    -- ,       QUALIFIER_NUMBER_FORMAT
2118     ,       QUALIFIER_PRECEDENCE
2119     ,       QUALIFIER_RULE_ID
2120     ,       REQUEST_ID
2121     ,       START_DATE_ACTIVE
2122     ,       LIST_TYPE_CODE
2123     ,       QUAL_ATTR_VALUE_FROM_NUMBER
2124     ,       QUAL_ATTR_VALUE_TO_NUMBER
2125     ,       ACTIVE_FLAG
2126     ,	  SEARCH_IND
2127     ,	  QUALIFIER_GROUP_CNT
2128     ,	  HEADER_QUALS_EXIST_FLAG
2129     ,	  DISTINCT_ROW_COUNT
2130     ,     QUALIFY_HIER_DESCENDENTS_FLAG    -- Added for TCA
2131     FROM    QP_QUALIFIERS
2132     WHERE ( QUALIFIER_ID = p_qualifier_id
2133     )
2134     OR (    QUALIFIER_RULE_ID = p_qualifier_rule_id
2135     );
2136 
2137 BEGIN
2138 
2139     IF
2140     (p_qualifier_id IS NOT NULL
2141      AND
2142      p_qualifier_id <> FND_API.G_MISS_NUM)
2143     AND
2144     (p_qualifier_rule_id IS NOT NULL
2145      AND
2146      p_qualifier_rule_id <> FND_API.G_MISS_NUM)
2147     THEN
2148             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2149             THEN
2150                 OE_MSG_PUB.Add_Exc_Msg
2151                 (   G_PKG_NAME
2152                 ,   'Query Rows'
2153                 ,   'Keys are mutually exclusive: qualifier_id = '|| p_qualifier_id || ', qualifier_rule_id = '|| p_qualifier_rule_id
2154                 );
2155             END IF;
2156 
2157         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2158 
2159     END IF;
2160 
2161 
2162     --  Loop over fetched records
2163 
2164     FOR l_implicit_rec IN l_QUALIFIERS_csr LOOP
2165 
2166         l_QUALIFIERS_rec.attribute1    := l_implicit_rec.ATTRIBUTE1;
2167         l_QUALIFIERS_rec.attribute10   := l_implicit_rec.ATTRIBUTE10;
2168         l_QUALIFIERS_rec.attribute11   := l_implicit_rec.ATTRIBUTE11;
2169         l_QUALIFIERS_rec.attribute12   := l_implicit_rec.ATTRIBUTE12;
2170         l_QUALIFIERS_rec.attribute13   := l_implicit_rec.ATTRIBUTE13;
2171         l_QUALIFIERS_rec.attribute14   := l_implicit_rec.ATTRIBUTE14;
2172         l_QUALIFIERS_rec.attribute15   := l_implicit_rec.ATTRIBUTE15;
2173         l_QUALIFIERS_rec.attribute2    := l_implicit_rec.ATTRIBUTE2;
2174         l_QUALIFIERS_rec.attribute3    := l_implicit_rec.ATTRIBUTE3;
2175         l_QUALIFIERS_rec.attribute4    := l_implicit_rec.ATTRIBUTE4;
2176         l_QUALIFIERS_rec.attribute5    := l_implicit_rec.ATTRIBUTE5;
2177         l_QUALIFIERS_rec.attribute6    := l_implicit_rec.ATTRIBUTE6;
2178         l_QUALIFIERS_rec.attribute7    := l_implicit_rec.ATTRIBUTE7;
2179         l_QUALIFIERS_rec.attribute8    := l_implicit_rec.ATTRIBUTE8;
2180         l_QUALIFIERS_rec.attribute9    := l_implicit_rec.ATTRIBUTE9;
2181         l_QUALIFIERS_rec.comparison_operator_code := l_implicit_rec.COMPARISON_OPERATOR_CODE;
2182         l_QUALIFIERS_rec.context       := l_implicit_rec.CONTEXT;
2183         l_QUALIFIERS_rec.created_by    := l_implicit_rec.CREATED_BY;
2184         l_QUALIFIERS_rec.created_from_rule_id := l_implicit_rec.CREATED_FROM_RULE_ID;
2185         l_QUALIFIERS_rec.creation_date := l_implicit_rec.CREATION_DATE;
2186         l_QUALIFIERS_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2187         l_QUALIFIERS_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
2188         l_QUALIFIERS_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2189         l_QUALIFIERS_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2190         l_QUALIFIERS_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2191         l_QUALIFIERS_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2192         l_QUALIFIERS_rec.list_line_id  := l_implicit_rec.LIST_LINE_ID;
2193         l_QUALIFIERS_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2194         l_QUALIFIERS_rec.program_id    := l_implicit_rec.PROGRAM_ID;
2195         l_QUALIFIERS_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2196         l_QUALIFIERS_rec.qualifier_attribute := l_implicit_rec.QUALIFIER_ATTRIBUTE;
2197         l_QUALIFIERS_rec.qualifier_attr_value := l_implicit_rec.QUALIFIER_ATTR_VALUE;
2198         l_QUALIFIERS_rec.qualifier_attr_value_to := l_implicit_rec.QUALIFIER_ATTR_VALUE_TO;
2199         l_QUALIFIERS_rec.qualifier_context := l_implicit_rec.QUALIFIER_CONTEXT;
2200         l_QUALIFIERS_rec.qualifier_datatype := l_implicit_rec.QUALIFIER_DATATYPE;
2201        -- l_QUALIFIERS_rec.qualifier_date_format := l_implicit_rec.QUALIFIER_DATE_FORMAT;
2202         l_QUALIFIERS_rec.qualifier_grouping_no := l_implicit_rec.QUALIFIER_GROUPING_NO;
2203         l_QUALIFIERS_rec.qualifier_id  := l_implicit_rec.QUALIFIER_ID;
2204         --l_QUALIFIERS_rec.qualifier_number_format := l_implicit_rec.QUALIFIER_NUMBER_FORMAT;
2205         l_QUALIFIERS_rec.qualifier_precedence := l_implicit_rec.QUALIFIER_PRECEDENCE;
2206         l_QUALIFIERS_rec.qualifier_rule_id := l_implicit_rec.QUALIFIER_RULE_ID;
2207         l_QUALIFIERS_rec.request_id    := l_implicit_rec.REQUEST_ID;
2208         l_QUALIFIERS_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2209         l_QUALIFIERS_rec.list_type_code := l_implicit_rec.LIST_TYPE_CODE;
2210         l_QUALIFIERS_rec.qual_attr_value_from_number := l_implicit_rec.QUAL_ATTR_VALUE_FROM_NUMBER;
2211         l_QUALIFIERS_rec.qual_attr_value_to_number := l_implicit_rec.QUAL_ATTR_VALUE_TO_NUMBER;
2212 	   l_QUALIFIERS_rec.active_flag := l_implicit_rec.ACTIVE_FLAG;
2213 	   l_QUALIFIERS_rec.search_ind := l_implicit_rec.SEARCH_IND;
2214 	   l_QUALIFIERS_rec.qualifier_group_cnt := l_implicit_rec.QUALIFIER_GROUP_CNT;
2215 	   l_QUALIFIERS_rec.header_quals_exist_flag := l_implicit_rec.HEADER_QUALS_EXIST_FLAG;
2216 	   l_QUALIFIERS_rec.distinct_row_count := l_implicit_rec.DISTINCT_ROW_COUNT;
2217            l_QUALIFIERS_rec.qualify_hier_descendent_flag := l_implicit_rec.QUALIFY_HIER_DESCENDENTS_FLAG ; -- Added for TCA
2218 
2219         l_QUALIFIERS_tbl(l_QUALIFIERS_tbl.COUNT + 1) := l_QUALIFIERS_rec;
2220 
2221     END LOOP;
2222 
2223 
2224     --  PK sent and no rows found
2225 
2226     IF
2227     (p_qualifier_id IS NOT NULL
2228      AND
2229      p_qualifier_id <> FND_API.G_MISS_NUM)
2230     AND
2231     (l_QUALIFIERS_tbl.COUNT = 0)
2232     THEN
2233         RAISE NO_DATA_FOUND;
2234     END IF;
2235 
2236 
2237     --  Return fetched table
2238 
2239     RETURN l_QUALIFIERS_tbl;
2240 
2241 EXCEPTION
2242 
2243     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2244 
2245         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2246 
2247     WHEN OTHERS THEN
2248 
2249         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2250         THEN
2251             OE_MSG_PUB.Add_Exc_Msg
2252             (   G_PKG_NAME
2253             ,   'Query_Rows'
2254             );
2255         END IF;
2256 
2257         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2258 
2259 END Query_Rows;
2260 
2261 --  Procedure       lock_Row
2262 --
2263 
2264 PROCEDURE Lock_Row
2265 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2266 ,   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
2267 ,   x_QUALIFIERS_rec                OUT NOCOPY /* file.sql.39 change */ QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
2268 )
2269 IS
2270 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
2271 BEGIN
2272 
2273    oe_debug_pub.add('in QPXUQPQB.pls lock row');
2274 
2275 
2276 
2277 
2278     SELECT  ATTRIBUTE1
2279     ,       ATTRIBUTE10
2280     ,       ATTRIBUTE11
2281     ,       ATTRIBUTE12
2282     ,       ATTRIBUTE13
2283     ,       ATTRIBUTE14
2284     ,       ATTRIBUTE15
2285     ,       ATTRIBUTE2
2286     ,       ATTRIBUTE3
2287     ,       ATTRIBUTE4
2288     ,       ATTRIBUTE5
2289     ,       ATTRIBUTE6
2290     ,       ATTRIBUTE7
2291     ,       ATTRIBUTE8
2292     ,       ATTRIBUTE9
2293     ,       COMPARISON_OPERATOR_CODE
2294     ,       CONTEXT
2295     ,       CREATED_BY
2296     ,       CREATED_FROM_RULE_ID
2297     ,       CREATION_DATE
2298     ,       END_DATE_ACTIVE
2299     ,       EXCLUDER_FLAG
2300     ,       LAST_UPDATED_BY
2301     ,       LAST_UPDATE_DATE
2302     ,       LAST_UPDATE_LOGIN
2303     ,       LIST_HEADER_ID
2304     ,       LIST_LINE_ID
2305     ,       PROGRAM_APPLICATION_ID
2306     ,       PROGRAM_ID
2307     ,       PROGRAM_UPDATE_DATE
2308     ,       QUALIFIER_ATTRIBUTE
2309     ,       QUALIFIER_ATTR_VALUE
2310     ,       QUALIFIER_ATTR_VALUE_TO
2311     ,       QUALIFIER_CONTEXT
2312     ,       QUALIFIER_DATATYPE
2313     --,       QUALIFIER_DATE_FORMAT
2314     ,       QUALIFIER_GROUPING_NO
2315     ,       QUALIFIER_ID
2316     --,       QUALIFIER_NUMBER_FORMAT
2317     ,       QUALIFIER_PRECEDENCE
2318     ,       QUALIFIER_RULE_ID
2319     ,       REQUEST_ID
2320     ,       START_DATE_ACTIVE
2321     ,       QUALIFY_HIER_DESCENDENTS_FLAG    -- Added for TCA
2322     INTO    l_QUALIFIERS_rec.attribute1
2323     ,       l_QUALIFIERS_rec.attribute10
2324     ,       l_QUALIFIERS_rec.attribute11
2325     ,       l_QUALIFIERS_rec.attribute12
2326     ,       l_QUALIFIERS_rec.attribute13
2327     ,       l_QUALIFIERS_rec.attribute14
2328     ,       l_QUALIFIERS_rec.attribute15
2329     ,       l_QUALIFIERS_rec.attribute2
2330     ,       l_QUALIFIERS_rec.attribute3
2331     ,       l_QUALIFIERS_rec.attribute4
2332     ,       l_QUALIFIERS_rec.attribute5
2333     ,       l_QUALIFIERS_rec.attribute6
2334     ,       l_QUALIFIERS_rec.attribute7
2335     ,       l_QUALIFIERS_rec.attribute8
2336     ,       l_QUALIFIERS_rec.attribute9
2337     ,       l_QUALIFIERS_rec.comparison_operator_code
2338     ,       l_QUALIFIERS_rec.context
2339     ,       l_QUALIFIERS_rec.created_by
2340     ,       l_QUALIFIERS_rec.created_from_rule_id
2341     ,       l_QUALIFIERS_rec.creation_date
2342     ,       l_QUALIFIERS_rec.end_date_active
2343     ,       l_QUALIFIERS_rec.excluder_flag
2344     ,       l_QUALIFIERS_rec.last_updated_by
2345     ,       l_QUALIFIERS_rec.last_update_date
2346     ,       l_QUALIFIERS_rec.last_update_login
2347     ,       l_QUALIFIERS_rec.list_header_id
2348     ,       l_QUALIFIERS_rec.list_line_id
2349     ,       l_QUALIFIERS_rec.program_application_id
2350     ,       l_QUALIFIERS_rec.program_id
2351     ,       l_QUALIFIERS_rec.program_update_date
2352     ,       l_QUALIFIERS_rec.qualifier_attribute
2353     ,       l_QUALIFIERS_rec.qualifier_attr_value
2354     ,       l_QUALIFIERS_rec.qualifier_attr_value_to
2355     ,       l_QUALIFIERS_rec.qualifier_context
2356     ,       l_QUALIFIERS_rec.qualifier_datatype
2357     --,       l_QUALIFIERS_rec.qualifier_date_format
2358     ,       l_QUALIFIERS_rec.qualifier_grouping_no
2359     ,       l_QUALIFIERS_rec.qualifier_id
2360     --,       l_QUALIFIERS_rec.qualifier_number_format
2361     ,       l_QUALIFIERS_rec.qualifier_precedence
2362     ,       l_QUALIFIERS_rec.qualifier_rule_id
2363     ,       l_QUALIFIERS_rec.request_id
2364     ,       l_QUALIFIERS_rec.start_date_active
2365     ,       l_QUALIFIERS_rec.qualify_hier_descendent_flag   -- Added for TCA
2366     FROM    QP_QUALIFIERS
2367     WHERE   QUALIFIER_ID = p_QUALIFIERS_rec.qualifier_id
2368         FOR UPDATE NOWAIT;
2369 
2370     --  Row locked. Compare IN attributes to DB attributes.
2371 
2372 
2373     /*IF  QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute1,
2374                          l_QUALIFIERS_rec.attribute1)
2375     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,
2376                          l_QUALIFIERS_rec.attribute10)
2377     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,
2378                          l_QUALIFIERS_rec.attribute11)
2379     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,
2380                          l_QUALIFIERS_rec.attribute12)
2381     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,
2382                          l_QUALIFIERS_rec.attribute13)
2383     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,
2384                          l_QUALIFIERS_rec.attribute14)
2385     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,
2386                          l_QUALIFIERS_rec.attribute15)
2387     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,
2388                          l_QUALIFIERS_rec.attribute2)
2389     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,
2390                          l_QUALIFIERS_rec.attribute3)
2391     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,
2392                          l_QUALIFIERS_rec.attribute4)
2393     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,
2394                          l_QUALIFIERS_rec.attribute5)
2395     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,
2396                          l_QUALIFIERS_rec.attribute6)
2397     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,
2398                          l_QUALIFIERS_rec.attribute7)
2399     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,
2400                          l_QUALIFIERS_rec.attribute8)
2401     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,
2402                          l_QUALIFIERS_rec.attribute9)
2403     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,
2404                          l_QUALIFIERS_rec.comparison_operator_code)
2405     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,
2406                          l_QUALIFIERS_rec.context)
2407     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,
2408                         l_QUALIFIERS_rec.created_by)
2409     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,
2410                          l_QUALIFIERS_rec.created_from_rule_id)
2411     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,
2412     --                     l_QUALIFIERS_rec.creation_date)
2413     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,
2414                          l_QUALIFIERS_rec.end_date_active)
2415     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,
2416                          l_QUALIFIERS_rec.excluder_flag)
2417     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,
2418     --                     l_QUALIFIERS_rec.last_updated_by)
2419     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,
2420     --                     l_QUALIFIERS_rec.last_update_date)
2421     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,
2422                          l_QUALIFIERS_rec.last_update_login)
2423     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,
2424                          l_QUALIFIERS_rec.list_header_id)
2425     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,
2426                          l_QUALIFIERS_rec.list_line_id)
2427     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,
2428                          l_QUALIFIERS_rec.program_application_id)
2429     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,
2430                          l_QUALIFIERS_rec.program_id)
2431     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,
2432     --                     l_QUALIFIERS_rec.program_update_date)
2433     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,
2434                          l_QUALIFIERS_rec.qualifier_attribute)
2435     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,
2436                          l_QUALIFIERS_rec.qualifier_attr_value)
2437     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value_to,
2438                          l_QUALIFIERS_rec.qualifier_attr_value_to)
2439     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,
2440                          l_QUALIFIERS_rec.qualifier_context)
2441     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_datatype,
2442                          l_QUALIFIERS_rec.qualifier_datatype)
2443     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_date_format,
2444     --                     l_QUALIFIERS_rec.qualifier_date_format)
2445     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
2446                          l_QUALIFIERS_rec.qualifier_grouping_no)
2447     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,
2448                          l_QUALIFIERS_rec.qualifier_id)
2449     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_number_format,
2450     --                     l_QUALIFIERS_rec.qualifier_number_format)
2451     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_precedence,
2452                          l_QUALIFIERS_rec.qualifier_precedence)
2453     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,
2454                          l_QUALIFIERS_rec.qualifier_rule_id)
2455     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,
2456                          l_QUALIFIERS_rec.request_id)
2457     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,
2458                          l_QUALIFIERS_rec.start_date_active)*/
2459 
2460 
2461     IF  QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute1,
2462                          l_QUALIFIERS_rec.attribute1)
2463     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute10,
2464                          l_QUALIFIERS_rec.attribute10)
2465     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute11,
2466                          l_QUALIFIERS_rec.attribute11)
2467     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute12,
2468                          l_QUALIFIERS_rec.attribute12)
2469     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute13,
2470                          l_QUALIFIERS_rec.attribute13)
2471     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute14,
2472                          l_QUALIFIERS_rec.attribute14)
2473     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute15,
2474                          l_QUALIFIERS_rec.attribute15)
2475     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute2,
2476                          l_QUALIFIERS_rec.attribute2)
2477     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute3,
2478                          l_QUALIFIERS_rec.attribute3)
2479     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute4,
2480                          l_QUALIFIERS_rec.attribute4)
2481     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute5,
2482                          l_QUALIFIERS_rec.attribute5)
2483     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute6,
2484                          l_QUALIFIERS_rec.attribute6)
2485     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute7,
2486                          l_QUALIFIERS_rec.attribute7)
2487     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute8,
2488                          l_QUALIFIERS_rec.attribute8)
2489     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.attribute9,
2490                          l_QUALIFIERS_rec.attribute9)
2491     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,
2492                          l_QUALIFIERS_rec.comparison_operator_code)
2493     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.context,
2494                          l_QUALIFIERS_rec.context)
2495     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_by,
2496     --                     l_QUALIFIERS_rec.created_by)
2497     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,
2498                          l_QUALIFIERS_rec.created_from_rule_id)
2499     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.creation_date,
2500     --                     l_QUALIFIERS_rec.creation_date)
2501     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.end_date_active,
2502                          l_QUALIFIERS_rec.end_date_active)
2503     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,
2504                          l_QUALIFIERS_rec.excluder_flag)
2505     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_updated_by,
2506     --                     l_QUALIFIERS_rec.last_updated_by)
2507     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_date,
2508     --                     l_QUALIFIERS_rec.last_update_date)
2509     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.last_update_login,
2510     --                     l_QUALIFIERS_rec.last_update_login)
2511     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,
2512                          l_QUALIFIERS_rec.list_header_id)
2513     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,
2514                          l_QUALIFIERS_rec.list_line_id)
2515     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_application_id,
2516     --                     l_QUALIFIERS_rec.program_application_id)
2517     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_id,
2518     --                     l_QUALIFIERS_rec.program_id)
2519     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.program_update_date,
2520     --                     l_QUALIFIERS_rec.program_update_date)
2521     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,
2522                          l_QUALIFIERS_rec.qualifier_attribute)
2523     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value,
2524                          l_QUALIFIERS_rec.qualifier_attr_value)
2525     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attr_value_to,
2526                          l_QUALIFIERS_rec.qualifier_attr_value_to)
2527     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_context,
2528                          l_QUALIFIERS_rec.qualifier_context)
2529     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_datatype,
2530                          l_QUALIFIERS_rec.qualifier_datatype)
2531     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_date_format,
2532     --                     l_QUALIFIERS_rec.qualifier_date_format)
2533     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
2534                          l_QUALIFIERS_rec.qualifier_grouping_no)
2535     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,
2536                          l_QUALIFIERS_rec.qualifier_id)
2537     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_number_format,
2538     --                     l_QUALIFIERS_rec.qualifier_number_format)
2539     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_precedence,
2540                          l_QUALIFIERS_rec.qualifier_precedence)
2541     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,
2542                          l_QUALIFIERS_rec.qualifier_rule_id)
2543     --AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.request_id,
2544     --                     l_QUALIFIERS_rec.request_id)
2545     AND QP_GLOBALS.Equal(p_QUALIFIERS_rec.start_date_active,
2546                          l_QUALIFIERS_rec.start_date_active)
2547 -- Added for TCA
2548     AND (QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualify_hier_descendent_flag,
2549                          l_QUALIFIERS_rec.qualify_hier_descendent_flag)
2550 		OR (p_QUALIFIERS_rec.qualify_hier_descendent_flag = FND_API.G_MISS_CHAR
2551 			and l_QUALIFIERS_rec.qualify_hier_descendent_flag is null))
2552     THEN
2553 
2554         --  Row has not changed. Set out parameter.
2555 
2556         oe_debug_pub.add('row not changed');
2557         x_QUALIFIERS_rec               := l_QUALIFIERS_rec;
2558 
2559         --  Set return status
2560 
2561         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2562         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2563 
2564     ELSE
2565 	--8594682 - Add debug messages for OE_LOCK error
2566 	oe_debug_pub.ADD('-------------------Data compare in Price list line Qualifier(database vs record)------------------');
2567 	oe_debug_pub.ADD('qualifier_id		:'||l_QUALIFIERS_rec.qualifier_id||':'||p_QUALIFIERS_rec.qualifier_id||':');
2568 	oe_debug_pub.ADD('attribute1		:'||l_QUALIFIERS_rec.attribute1||':'||p_QUALIFIERS_rec.attribute1||':');
2569 	oe_debug_pub.ADD('attribute10		:'||l_QUALIFIERS_rec.attribute10||':'||p_QUALIFIERS_rec.attribute10||':');
2570 	oe_debug_pub.ADD('attribute11		:'||l_QUALIFIERS_rec.attribute11||':'||p_QUALIFIERS_rec.attribute11||':');
2571 	oe_debug_pub.ADD('attribute12		:'||l_QUALIFIERS_rec.attribute12||':'||p_QUALIFIERS_rec.attribute12||':');
2572 	oe_debug_pub.ADD('attribute13		:'||l_QUALIFIERS_rec.attribute13||':'||p_QUALIFIERS_rec.attribute13||':');
2573 	oe_debug_pub.ADD('attribute14		:'||l_QUALIFIERS_rec.attribute14||':'||p_QUALIFIERS_rec.attribute14||':');
2574 	oe_debug_pub.ADD('attribute15		:'||l_QUALIFIERS_rec.attribute15||':'||p_QUALIFIERS_rec.attribute15||':');
2575 	oe_debug_pub.ADD('attribute2		:'||l_QUALIFIERS_rec.attribute2||':'||p_QUALIFIERS_rec.attribute2||':');
2576 	oe_debug_pub.ADD('attribute3		:'||l_QUALIFIERS_rec.attribute3||':'||p_QUALIFIERS_rec.attribute3||':');
2577 	oe_debug_pub.ADD('attribute4		:'||l_QUALIFIERS_rec.attribute4||':'||p_QUALIFIERS_rec.attribute4||':');
2578 	oe_debug_pub.ADD('attribute5		:'||l_QUALIFIERS_rec.attribute5||':'||p_QUALIFIERS_rec.attribute5||':');
2579 	oe_debug_pub.ADD('attribute6		:'||l_QUALIFIERS_rec.attribute6||':'||p_QUALIFIERS_rec.attribute6||':');
2580 	oe_debug_pub.ADD('attribute7		:'||l_QUALIFIERS_rec.attribute7||':'||p_QUALIFIERS_rec.attribute7||':');
2581 	oe_debug_pub.ADD('attribute8		:'||l_QUALIFIERS_rec.attribute8||':'||p_QUALIFIERS_rec.attribute8||':');
2582 	oe_debug_pub.ADD('attribute9		:'||l_QUALIFIERS_rec.attribute9||':'||p_QUALIFIERS_rec.attribute9||':');
2583 	oe_debug_pub.ADD('comparison_operator_code:'||l_QUALIFIERS_rec.comparison_operator_code||':'||p_QUALIFIERS_rec.comparison_operator_code||':');
2584 	oe_debug_pub.ADD('context		:'||l_QUALIFIERS_rec.context||':'||p_QUALIFIERS_rec.context||':');
2585 	oe_debug_pub.ADD('created_by		:'||l_QUALIFIERS_rec.created_by||':'||p_QUALIFIERS_rec.created_by||':');
2586 	oe_debug_pub.ADD('created_from_rule_id	:'||l_QUALIFIERS_rec.created_from_rule_id||':'||p_QUALIFIERS_rec.created_from_rule_id||':');
2587 	oe_debug_pub.ADD('creation_date		:'||l_QUALIFIERS_rec.creation_date||':'||p_QUALIFIERS_rec.creation_date||':');
2588 	oe_debug_pub.ADD('end_date_active	:'||l_QUALIFIERS_rec.end_date_active||':'||p_QUALIFIERS_rec.end_date_active||':');
2589 	oe_debug_pub.ADD('excluder_flag		:'||l_QUALIFIERS_rec.excluder_flag||':'||p_QUALIFIERS_rec.excluder_flag||':');
2590 	oe_debug_pub.ADD('last_updated_by	:'||l_QUALIFIERS_rec.last_updated_by||':'||p_QUALIFIERS_rec.last_updated_by||':');
2591 	oe_debug_pub.ADD('last_update_date	:'||l_QUALIFIERS_rec.last_update_date||':'||p_QUALIFIERS_rec.last_update_date||':');
2592 	oe_debug_pub.ADD('last_update_login	:'||l_QUALIFIERS_rec.last_update_login||':'||p_QUALIFIERS_rec.last_update_login||':');
2593 	oe_debug_pub.ADD('list_header_id	:'||l_QUALIFIERS_rec.list_header_id||':'||p_QUALIFIERS_rec.list_header_id||':');
2594 	oe_debug_pub.ADD('list_line_id		:'||l_QUALIFIERS_rec.list_line_id||':'||p_QUALIFIERS_rec.list_line_id||':');
2595 	oe_debug_pub.ADD('program_application_id:'||l_QUALIFIERS_rec.program_application_id||':'||p_QUALIFIERS_rec.program_application_id||':');
2596 	oe_debug_pub.ADD('program_id		:'||l_QUALIFIERS_rec.program_id||':'||p_QUALIFIERS_rec.program_id||':');
2597 	oe_debug_pub.ADD('program_update_date	:'||l_QUALIFIERS_rec.program_update_date||':'||p_QUALIFIERS_rec.program_update_date||':');
2598 	oe_debug_pub.ADD('qualifier_attribute	:'||l_QUALIFIERS_rec.qualifier_attribute||':'||p_QUALIFIERS_rec.qualifier_attribute||':');
2599 	oe_debug_pub.ADD('qualifier_attr_value	:'||l_QUALIFIERS_rec.qualifier_attr_value||':'||p_QUALIFIERS_rec.qualifier_attr_value||':');
2600 	oe_debug_pub.ADD('qualifier_attr_value_to:'||l_QUALIFIERS_rec.qualifier_attr_value_to||':'||p_QUALIFIERS_rec.qualifier_attr_value_to||':');
2601 	oe_debug_pub.ADD('qualifier_context	:'||l_QUALIFIERS_rec.qualifier_context||':'||p_QUALIFIERS_rec.qualifier_context||':');
2602 	oe_debug_pub.ADD('qualifier_datatype	:'||l_QUALIFIERS_rec.qualifier_datatype||':'||p_QUALIFIERS_rec.qualifier_datatype||':');
2603 	oe_debug_pub.ADD('qualifier_grouping_no	:'||l_QUALIFIERS_rec.qualifier_grouping_no||':'||p_QUALIFIERS_rec.qualifier_grouping_no||':');
2604 	oe_debug_pub.ADD('qualifier_id		:'||l_QUALIFIERS_rec.qualifier_id||':'||p_QUALIFIERS_rec.qualifier_id||':');
2605 	oe_debug_pub.ADD('qualifier_precedence	:'||l_QUALIFIERS_rec.qualifier_precedence||':'||p_QUALIFIERS_rec.qualifier_precedence||':');
2606 	oe_debug_pub.ADD('qualifier_rule_id	:'||l_QUALIFIERS_rec.qualifier_rule_id||':'||p_QUALIFIERS_rec.qualifier_rule_id||':');
2607 	oe_debug_pub.ADD('request_id		:'||l_QUALIFIERS_rec.request_id||':'||p_QUALIFIERS_rec.request_id||':');
2608 	oe_debug_pub.ADD('start_date_active	:'||l_QUALIFIERS_rec.start_date_active||':'||p_QUALIFIERS_rec.start_date_active||':');
2609 	oe_debug_pub.ADD('-------------------Data compare in price list line qualifier end------------------');
2610 	--  Row has changed by another user.
2611 	--End 8594682 - Add debug messages for OE_LOCK error
2612 
2613         --  Row has changed by another user.
2614         oe_debug_pub.add('row changed');
2615 
2616         x_return_status                := FND_API.G_RET_STS_ERROR;
2617         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2618 
2619         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2620         THEN
2621 
2622             FND_MESSAGE.SET_NAME('QP','QP_LOCK_ROW_CHANGED');
2623             OE_MSG_PUB.Add;
2624 
2625         END IF;
2626 
2627     END IF;
2628 
2629 EXCEPTION
2630 
2631     WHEN NO_DATA_FOUND THEN
2632 
2633         x_return_status                := FND_API.G_RET_STS_ERROR;
2634         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2635 
2636         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2637         THEN
2638 
2639             oe_debug_pub.add('row deleted');
2640             FND_MESSAGE.SET_NAME('QP','QP_LOCK_ROW_DELETED');
2641             OE_MSG_PUB.Add;
2642 
2643         END IF;
2644     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2645 
2646         x_return_status                := FND_API.G_RET_STS_ERROR;
2647         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2648 
2649         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2650         THEN
2651 
2652             FND_MESSAGE.SET_NAME('QP','QP_LOCK_ROW_ALREADY_LOCKED');
2653             OE_MSG_PUB.Add;
2654 
2655         END IF;
2656     WHEN OTHERS THEN
2657 
2658         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2659         x_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2660 
2661         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2662         THEN
2663             OE_MSG_PUB.Add_Exc_Msg
2664             (   G_PKG_NAME
2665             ,   'Lock_Row'
2666             );
2667         END IF;
2668 
2669 END Lock_Row;
2670 
2671 --  Function Get_Values
2672 
2673 FUNCTION Get_Values
2674 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
2675 ,   p_old_QUALIFIERS_rec            IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type :=
2676                                         QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_REC
2677 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Val_Rec_Type
2678 IS
2679 l_QUALIFIERS_val_rec          QP_Qualifier_Rules_PUB.Qualifiers_Val_Rec_Type;
2680 BEGIN
2681 
2682     /*IF p_QUALIFIERS_rec.comparison_operator_code IS NOT NULL AND
2683         p_QUALIFIERS_rec.comparison_operator_code <> FND_API.G_MISS_CHAR AND
2684         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.comparison_operator_code,
2685         p_old_QUALIFIERS_rec.comparison_operator_code)
2686     THEN
2687         l_QUALIFIERS_val_rec.comparison_operator := QP_Id_To_Value.Comparison_Operator
2688         (   p_comparison_operator_code    => p_QUALIFIERS_rec.comparison_operator_code
2689         );
2690     END IF;*/
2691 
2692     IF p_QUALIFIERS_rec.created_from_rule_id IS NOT NULL AND
2693         p_QUALIFIERS_rec.created_from_rule_id <> FND_API.G_MISS_NUM AND
2694         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.created_from_rule_id,
2695         p_old_QUALIFIERS_rec.created_from_rule_id)
2696     THEN
2697         l_QUALIFIERS_val_rec.created_from_rule := QP_Id_To_Value.Created_From_Rule
2698         (   p_created_from_rule_id        => p_QUALIFIERS_rec.created_from_rule_id
2699         );
2700     END IF;
2701 
2702    /* IF p_QUALIFIERS_rec.excluder_flag IS NOT NULL AND
2703         p_QUALIFIERS_rec.excluder_flag <> FND_API.G_MISS_CHAR AND
2704         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.excluder_flag,
2705         p_old_QUALIFIERS_rec.excluder_flag)
2706     THEN
2707         l_QUALIFIERS_val_rec.excluder := QP_Id_To_Value.Excluder
2708         (   p_excluder_flag               => p_QUALIFIERS_rec.excluder_flag
2709         );
2710     END IF;*/
2711 
2712     IF p_QUALIFIERS_rec.list_header_id IS NOT NULL AND
2713         p_QUALIFIERS_rec.list_header_id <> FND_API.G_MISS_NUM AND
2714         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_header_id,
2715         p_old_QUALIFIERS_rec.list_header_id)
2716     THEN
2717         l_QUALIFIERS_val_rec.list_header := QP_Id_To_Value.List_Header
2718         (   p_list_header_id              => p_QUALIFIERS_rec.list_header_id
2719         );
2720     END IF;
2721 
2722     IF p_QUALIFIERS_rec.list_line_id IS NOT NULL AND
2723         p_QUALIFIERS_rec.list_line_id <> FND_API.G_MISS_NUM AND
2724         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.list_line_id,
2725         p_old_QUALIFIERS_rec.list_line_id)
2726     THEN
2727         l_QUALIFIERS_val_rec.list_line := QP_Id_To_Value.List_Line
2728         (   p_list_line_id                => p_QUALIFIERS_rec.list_line_id
2729         );
2730     END IF;
2731 
2732     /*IF p_QUALIFIERS_rec.qualifier_id IS NOT NULL AND
2733         p_QUALIFIERS_rec.qualifier_id <> FND_API.G_MISS_NUM AND
2734         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_id,
2735         p_old_QUALIFIERS_rec.qualifier_id)
2736     THEN
2737         l_QUALIFIERS_val_rec.qualifier := QP_Id_To_Value.Qualifier
2738         (   p_qualifier_id                => p_QUALIFIERS_rec.qualifier_id
2739         );
2740     END IF;*/
2741 
2742     IF p_QUALIFIERS_rec.qualifier_rule_id IS NOT NULL AND
2743         p_QUALIFIERS_rec.qualifier_rule_id <> FND_API.G_MISS_NUM AND
2744         NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_rule_id,
2745         p_old_QUALIFIERS_rec.qualifier_rule_id)
2746     THEN
2747         l_QUALIFIERS_val_rec.qualifier_rule := QP_Id_To_Value.Qualifier_Rule
2748         (   p_qualifier_rule_id           => p_QUALIFIERS_rec.qualifier_rule_id
2749         );
2750     END IF;
2751 
2752     RETURN l_QUALIFIERS_val_rec;
2753 
2754 END Get_Values;
2755 
2756 --  Function Get_Ids
2757 
2758 FUNCTION Get_Ids
2759 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
2760 ,   p_QUALIFIERS_val_rec            IN  QP_Qualifier_Rules_PUB.Qualifiers_Val_Rec_Type
2761 ) RETURN QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
2762 IS
2763 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
2764 BEGIN
2765 
2766     --  initialize  return_status.
2767 
2768     l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2769 
2770     --  initialize l_QUALIFIERS_rec.
2771 
2772     l_QUALIFIERS_rec := p_QUALIFIERS_rec;
2773 
2774 /*    IF  p_QUALIFIERS_val_rec.comparison_operator <> FND_API.G_MISS_CHAR
2775     THEN
2776 
2777         IF p_QUALIFIERS_rec.comparison_operator_code <> FND_API.G_MISS_CHAR THEN
2778 
2779             l_QUALIFIERS_rec.comparison_operator_code := p_QUALIFIERS_rec.comparison_operator_code;
2780 
2781             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2782             THEN
2783 
2784                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2785                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','comparison_operator');
2786                 OE_MSG_PUB.Add;
2787 
2788             END IF;
2789 
2790         ELSE
2791 
2792             l_QUALIFIERS_rec.comparison_operator_code := QP_Value_To_Id.comparison_operator
2793             (   p_comparison_operator         => p_QUALIFIERS_val_rec.comparison_operator
2794             );
2795 
2796             IF l_QUALIFIERS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
2797                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2798             END IF;
2799 
2800         END IF;
2801 
2802     END IF;*/
2803 
2804     IF  p_QUALIFIERS_val_rec.created_from_rule <> FND_API.G_MISS_CHAR
2805     THEN
2806 
2807         IF p_QUALIFIERS_rec.created_from_rule_id <> FND_API.G_MISS_NUM THEN
2808 
2809             l_QUALIFIERS_rec.created_from_rule_id := p_QUALIFIERS_rec.created_from_rule_id;
2810 
2811             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2812             THEN
2813 
2814                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2815                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','created_from_rule');
2816                 OE_MSG_PUB.Add;
2817 
2818             END IF;
2819 
2820         ELSE
2821 
2822             l_QUALIFIERS_rec.created_from_rule_id := QP_Value_To_Id.created_from_rule
2823             (   p_created_from_rule           => p_QUALIFIERS_val_rec.created_from_rule
2824             );
2825 
2826             IF l_QUALIFIERS_rec.created_from_rule_id = FND_API.G_MISS_NUM THEN
2827                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2828             END IF;
2829 
2830         END IF;
2831 
2832     END IF;
2833 
2834  /*   IF  p_QUALIFIERS_val_rec.excluder <> FND_API.G_MISS_CHAR
2835     THEN
2836 
2837         IF p_QUALIFIERS_rec.excluder_flag <> FND_API.G_MISS_CHAR THEN
2838 
2839             l_QUALIFIERS_rec.excluder_flag := p_QUALIFIERS_rec.excluder_flag;
2840 
2841             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2842             THEN
2843 
2844                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2845                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','excluder');
2846                 OE_MSG_PUB.Add;
2847 
2848             END IF;
2849 
2850         ELSE
2851 
2852             l_QUALIFIERS_rec.excluder_flag := QP_Value_To_Id.excluder
2853             (   p_excluder                    => p_QUALIFIERS_val_rec.excluder
2854             );
2855 
2856             IF l_QUALIFIERS_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
2857                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2858             END IF;
2859 
2860         END IF;
2861 
2862     END IF;*/
2863 
2864     IF  p_QUALIFIERS_val_rec.list_header <> FND_API.G_MISS_CHAR
2865     THEN
2866 
2867         IF p_QUALIFIERS_rec.list_header_id <> FND_API.G_MISS_NUM THEN
2868 
2869             l_QUALIFIERS_rec.list_header_id := p_QUALIFIERS_rec.list_header_id;
2870 
2871             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2872             THEN
2873 
2874                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2875                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
2876                 OE_MSG_PUB.Add;
2877 
2878             END IF;
2879 
2880         ELSE
2881 
2882             l_QUALIFIERS_rec.list_header_id := QP_Value_To_Id.list_header
2883             (   p_list_header                 => p_QUALIFIERS_val_rec.list_header
2884             );
2885 
2886             IF l_QUALIFIERS_rec.list_header_id = FND_API.G_MISS_NUM THEN
2887                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2888             END IF;
2889 
2890         END IF;
2891 
2892     END IF;
2893 
2894     IF  p_QUALIFIERS_val_rec.list_line <> FND_API.G_MISS_CHAR
2895     THEN
2896 
2897         IF p_QUALIFIERS_rec.list_line_id <> FND_API.G_MISS_NUM THEN
2898 
2899             l_QUALIFIERS_rec.list_line_id := p_QUALIFIERS_rec.list_line_id;
2900 
2901             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2902             THEN
2903 
2904                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2905                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line');
2906                 OE_MSG_PUB.Add;
2907 
2908             END IF;
2909 
2910         ELSE
2911 
2912             l_QUALIFIERS_rec.list_line_id := QP_Value_To_Id.list_line
2913             (   p_list_line                   => p_QUALIFIERS_val_rec.list_line
2914             );
2915 
2916             IF l_QUALIFIERS_rec.list_line_id = FND_API.G_MISS_NUM THEN
2917                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2918             END IF;
2919 
2920         END IF;
2921 
2922     END IF;
2923 
2924   /*  IF  p_QUALIFIERS_val_rec.qualifier <> FND_API.G_MISS_CHAR
2925     THEN
2926 
2927         IF p_QUALIFIERS_rec.qualifier_id <> FND_API.G_MISS_NUM THEN
2928 
2929             l_QUALIFIERS_rec.qualifier_id := p_QUALIFIERS_rec.qualifier_id;
2930 
2931             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2932             THEN
2933 
2934                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2935                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier');
2936                 OE_MSG_PUB.Add;
2937 
2938             END IF;
2939 
2940         ELSE
2941 
2942             l_QUALIFIERS_rec.qualifier_id := QP_Value_To_Id.qualifier
2943             (   p_qualifier                   => p_QUALIFIERS_val_rec.qualifier
2944             );
2945 
2946             IF l_QUALIFIERS_rec.qualifier_id = FND_API.G_MISS_NUM THEN
2947                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2948             END IF;
2949 
2950         END IF;
2951 
2952     END IF;*/
2953 
2954     IF  p_QUALIFIERS_val_rec.qualifier_rule <> FND_API.G_MISS_CHAR
2955     THEN
2956 
2957         IF p_QUALIFIERS_rec.qualifier_rule_id <> FND_API.G_MISS_NUM THEN
2958 
2959             l_QUALIFIERS_rec.qualifier_rule_id := p_QUALIFIERS_rec.qualifier_rule_id;
2960 
2961             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2962             THEN
2963 
2964                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2965                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_rule');
2966                 OE_MSG_PUB.Add;
2967 
2968             END IF;
2969 
2970         ELSE
2971 
2972             l_QUALIFIERS_rec.qualifier_rule_id := QP_Value_To_Id.qualifier_rule
2973             (   p_qualifier_rule              => p_QUALIFIERS_val_rec.qualifier_rule
2974             );
2975 
2976             IF l_QUALIFIERS_rec.qualifier_rule_id = FND_API.G_MISS_NUM THEN
2977                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
2978             END IF;
2979 
2980         END IF;
2981 
2982     END IF;
2983 
2984 /**************************************************************************
2985 Added code for value_to_id conversion for qualifier_attribute,
2986 qualifier_attr_value and qualifier_attr_value_to
2987 ***************************************************************************/
2988 
2989     IF  p_QUALIFIERS_val_rec.qualifier_attribute_desc <> FND_API.G_MISS_CHAR
2990     THEN
2991 
2992         IF p_QUALIFIERS_rec.qualifier_attribute <> FND_API.G_MISS_CHAR THEN
2993 
2994             l_QUALIFIERS_rec.qualifier_attribute := p_QUALIFIERS_rec.qualifier_attribute;
2995 
2996             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
2997             THEN
2998 
2999                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3000                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attribute');
3001                 OE_MSG_PUB.Add;
3002 
3003             END IF;
3004 
3005         ELSE
3006 
3007             l_QUALIFIERS_rec.qualifier_attribute := QP_Value_To_Id.qualifier_attribute
3008             (   p_qualifier_attribute_desc              => p_QUALIFIERS_val_rec.qualifier_attribute_desc,
3009 			 p_context => l_QUALIFIERS_rec.qualifier_context
3010             );
3011 
3012             IF l_QUALIFIERS_rec.qualifier_attribute = FND_API.G_MISS_CHAR THEN
3013                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
3014             END IF;
3015 
3016         END IF;
3017 
3018     END IF;
3019 
3020     IF  p_QUALIFIERS_val_rec.qualifier_attr_value_desc <> FND_API.G_MISS_CHAR
3021     THEN
3022 
3023         IF p_QUALIFIERS_rec.qualifier_attr_value <> FND_API.G_MISS_CHAR THEN
3024 
3025             l_QUALIFIERS_rec.qualifier_attr_value := p_QUALIFIERS_rec.qualifier_attr_value;
3026 
3027             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
3028             THEN
3029 
3030                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3031                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attr_value');
3032                 OE_MSG_PUB.Add;
3033 
3034             END IF;
3035 
3036         ELSE
3037 
3038             l_QUALIFIERS_rec.qualifier_attr_value := QP_Value_To_Id.qualifier_attr_value
3039             ( p_qualifier_attr_value_desc  => p_QUALIFIERS_val_rec.qualifier_attr_value_desc,
3040 		    p_context => l_QUALIFIERS_rec.qualifier_context,
3041 		    p_attribute => l_QUALIFIERS_rec.qualifier_attribute
3042             );
3043 
3044             IF l_QUALIFIERS_rec.qualifier_attr_value = FND_API.G_MISS_CHAR THEN
3045                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
3046             END IF;
3047 
3048         END IF;
3049 
3050     END IF;
3051 
3052     IF  p_QUALIFIERS_val_rec.qualifier_attr_value_to_desc <> FND_API.G_MISS_CHAR
3053     THEN
3054 
3055         IF p_QUALIFIERS_rec.qualifier_attr_value_to <> FND_API.G_MISS_CHAR THEN
3056 
3057             l_QUALIFIERS_rec.qualifier_attr_value_to := p_QUALIFIERS_rec.qualifier_attr_value_to;
3058 
3059             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
3060             THEN
3061 
3062                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3063                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_attr_value_to');
3064                 OE_MSG_PUB.Add;
3065 
3066             END IF;
3067 
3068         ELSE
3069 
3070             l_QUALIFIERS_rec.qualifier_attr_value_to := QP_Value_To_Id.qualifier_attr_value_to
3071             (   p_qualifier_attr_value_to_desc  => p_QUALIFIERS_val_rec.qualifier_attr_value_to_desc,
3072 		    p_context => l_QUALIFIERS_rec.qualifier_context,
3073 		    p_attribute => l_QUALIFIERS_rec.qualifier_attribute
3074             );
3075 
3076             IF l_QUALIFIERS_rec.qualifier_attr_value_to = FND_API.G_MISS_CHAR THEN
3077                 l_QUALIFIERS_rec.return_status := FND_API.G_RET_STS_ERROR;
3078             END IF;
3079 
3080         END IF;
3081 
3082     END IF;
3083 
3084 
3085     RETURN l_QUALIFIERS_rec;
3086 
3087 END Get_Ids;
3088 
3089 Procedure Pre_Write_Process
3090 (   p_QUALIFIERS_rec                      IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
3091 ,   p_old_QUALIFIERS_rec                  IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type :=
3092 						QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_REC
3093 ,   x_QUALIFIERS_rec                      OUT NOCOPY /* file.sql.39 change */  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
3094 ) IS
3095 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type := p_QUALIFIERS_rec;
3096 l_return_status       varchar2(30);
3097 l_hlq_count           NUMBER := 0;
3098 		   --Header Level Qualifier Count
3099 l_llq_count           NUMBER := 0;
3100 		   --Line Level Qualifier Count
3101 l_list_type_code      VARCHAR2(30);
3102 l_denormalize_qual  varchar2(1) := nvl(fnd_profile.value('QP_DENORMALIZE_QUALIFIERS'),'Y');
3103                        --7120399
3104 
3105 BEGIN
3106 
3107   oe_debug_pub.Add('Entering OE_QUALIFIERS_Util.pre_write_process');
3108   oe_debug_pub.Add('mkarya - p_QUALIFIERS_rec.operation = ' ||p_QUALIFIERS_rec.operation);
3109 
3110 
3111   x_QUALIFIERS_rec := l_QUALIFIERS_rec;
3112 
3113   IF   ( p_QUALIFIERS_rec.operation IN (QP_GLOBALS.G_OPR_CREATE,
3114 								QP_GLOBALS.G_OPR_DELETE) ) THEN
3115     -- Get the List Type Code
3116     BEGIN
3117       SELECT list_type_code
3118       INTO   l_list_type_code
3119       FROM   qp_list_headers_vl
3120       WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id;
3121     EXCEPTION
3122 	 WHEN OTHERS THEN
3123 	   NULL;
3124     END;
3125 
3126     -- Get the List Header Level Qualifier count
3127     IF l_list_type_code IN ('PRL', 'AGR') THEN
3128     BEGIN
3129 	 /*SELECT 1
3130 	 INTO   l_hlq_count
3131          FROM DUAL
3132          WHERE EXISTS (SELECT 'X'
3133 	               FROM   qp_qualifiers
3134 	               WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id
3135 	               AND    list_line_id = -1
3136 	               AND    NOT (qualifier_context = 'MODLIST' AND
3137 			   qualifier_attribute = 'QUALIFIER_ATTRIBUTE4'));*/
3138 
3139 	/* changed the sql query from where exists to 'and rownum=1'*/
3140 
3141          SELECT count(1) into l_hlq_count
3142 	               FROM   qp_qualifiers
3143 	               WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id
3144 	               AND    list_line_id = -1
3145 	               AND    NOT (qualifier_context = 'MODLIST' AND qualifier_attribute = 'QUALIFIER_ATTRIBUTE4');
3146 			 --      and rownum=1;
3147             --Do not consider qualifiers corresponding to Primary PL as
3148 		  --qualifier for Secondary PL
3149     EXCEPTION
3150        WHEN NO_DATA_FOUND THEN
3151         l_hlq_count := 0;
3152     END;
3153 
3154     ELSE -- All other list type codes
3155     BEGIN
3156       /*SELECT 1
3157       INTO   l_hlq_count
3158       FROM DUAL
3159       WHERE EXISTS (SELECT 'X'
3160                     FROM   qp_qualifiers
3161                     WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id
3162                     AND    list_line_id = -1);  */
3163 
3164 	/* changed the sql query from where exists to 'and rownum=1'*/
3165       SELECT 1 into l_hlq_count
3166                     FROM   qp_qualifiers
3167                     WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id
3168                     AND    list_line_id = -1
3169 					and rownum = 1;
3170     EXCEPTION
3171        WHEN NO_DATA_FOUND THEN
3172         l_hlq_count := 0;
3173     END;
3174 
3175     END IF; -- list type code is PRL or AGR
3176 
3177 
3178     -- Get the List Line Level Qualifier count
3179     BEGIN
3180 /*    SELECT 1 INTO l_llq_count
3181     FROM DUAL
3182     WHERE EXISTS ( SELECT 'X'
3183                    FROM   qp_qualifiers
3184                    WHERE  list_line_id = p_QUALIFIERS_rec.list_line_id);*/
3185 
3186 	/* changed the sql query from where exists to 'and rownum=1'*/
3187     SELECT 1 into l_llq_count
3188                    FROM   qp_qualifiers
3189                    WHERE  list_line_id = p_QUALIFIERS_rec.list_line_id
3190 				   and rownum=1;
3191     EXCEPTION
3192        WHEN NO_DATA_FOUND THEN
3193         l_llq_count := 0;
3194     END;
3195 
3196     --Submit a Header Level Delayed Request to update qualification_ind
3197     --while creating the first or deleting the last header level qualifier.
3198     IF  (p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_CREATE  AND
3199 	    p_QUALIFIERS_rec.list_line_id = -1                    AND
3200          l_hlq_count = 0)  OR
3201 	   (p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE  AND
3202 	    p_QUALIFIERS_rec.list_line_id = -1                    AND
3203          l_hlq_count = 1)
3204     THEN
3205 
3206        /* Bug 4191955 No need to log delayed request to update header qualification indicator
3207           for secondary price list */
3208 
3209        		IF NOT (l_list_type_code = 'PRL' and p_QUALIFIERS_rec.qualifier_context='MODLIST'
3210                           and p_QUALIFIERS_rec.qualifier_attribute='QUALIFIER_ATTRIBUTE4') THEN
3211 
3212         		qp_delayed_requests_PVT.log_request(
3213                  	p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3214    	            	p_entity_id  => p_QUALIFIERS_rec.list_header_id,
3215                  	p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3216                  	p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3217                  	p_request_type =>QP_GLOBALS.G_UPDATE_LIST_QUAL_IND,
3218                  	x_return_status => l_return_status);
3219                  END IF;
3220 
3221             IF l_list_type_code NOT IN ('PRL', 'AGR') THEN
3222 
3223       oe_debug_pub.add('log delayed request------------');
3224 
3225                qp_delayed_requests_PVT.log_request(
3226                  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3227                  p_param1 => p_QUALIFIERS_rec.list_header_id,
3228    	            p_entity_id  => p_QUALIFIERS_rec.qualifier_id,
3229                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3230                  p_requesting_entity_id => p_QUALIFIERS_rec.qualifier_id,
3231                  p_request_type =>QP_GLOBALS.G_MAINTAIN_LIST_HEADER_PHASES,
3232                  x_return_status => l_return_status);
3233 
3234              END IF;
3235 
3236     --Submit a Line Level Delayed Request to update qualification_ind
3237     --while creating the first or deleting the last line level qualifier.
3238     ELSIF (p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_CREATE  AND
3239 	      p_QUALIFIERS_rec.list_line_id <> -1                   AND
3240            l_llq_count = 0) OR
3241 		(p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE  AND
3242 	      p_QUALIFIERS_rec.list_line_id <> -1                   AND
3243            l_llq_count = 1)
3244     THEN
3245          qp_delayed_requests_PVT.log_request(
3246                  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3247    	            p_entity_id  => p_QUALIFIERS_rec.list_line_id,
3248                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3249                  p_requesting_entity_id => p_QUALIFIERS_rec.list_line_id,
3250                  p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
3251                  x_return_status => l_return_status);
3252 
3253          -- mkarya for bug1769955 - log the MAINTAIN_LIST_HEADER_PHASES request for line qualifier
3254          IF l_list_type_code NOT IN ('PRL', 'AGR') THEN
3255             qp_delayed_requests_PVT.log_request(
3256               p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3257               p_param1 => p_QUALIFIERS_rec.list_header_id,
3258    	      p_entity_id  => p_QUALIFIERS_rec.qualifier_id,
3259               p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3260               p_requesting_entity_id => p_QUALIFIERS_rec.qualifier_id,
3261               p_request_type =>QP_GLOBALS.G_MAINTAIN_LIST_HEADER_PHASES,
3262               x_return_status => l_return_status);
3263          END IF;
3264 
3265     END IF;
3266 
3267   END IF; -- If operation is create or delete.
3268 
3269 /*  Added for 7120399 */
3270 if p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_UPDATE then
3271 
3272     BEGIN
3273       SELECT list_type_code
3274       INTO   l_list_type_code
3275       FROM   qp_list_headers_vl
3276       WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id;
3277     EXCEPTION
3278 	 WHEN OTHERS THEN
3279 	   NULL;
3280     END;
3281 end if;
3282 
3283   IF p_QUALIFIERS_rec.operation IN (QP_GLOBALS.G_OPR_CREATE,
3284 				    QP_GLOBALS.G_OPR_UPDATE,
3285 				    QP_GLOBALS.G_OPR_DELETE) THEN
3286 IF (l_list_type_code in ('PRL','AGR')) OR ((l_list_type_code NOT IN ('PRL','AGR')) AND (l_denormalize_qual= 'Y')) then   --7120399
3287 
3288          qp_delayed_requests_PVT.log_request(
3289                  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3290    	         p_entity_id  => p_QUALIFIERS_rec.list_header_id,
3291                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3292                  p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3293                  p_request_type => QP_GLOBALS.G_MAINTAIN_QUALIFIER_DEN_COLS,
3294                  x_return_status => l_return_status);
3295 END IF;
3296          --Added following delayed request for Attributes Manager
3297          qp_delayed_requests_PVT.log_request(
3298                  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3299    	         p_entity_id  => p_QUALIFIERS_rec.qualifier_id,
3300                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3301                  p_requesting_entity_id => p_QUALIFIERS_rec.qualifier_id,
3302                  p_request_type => QP_GLOBALS.G_MIXED_QUAL_SEG_LEVELS,
3303                  p_param1 => p_QUALIFIERS_rec.qualifier_rule_id,
3304                  x_return_status => l_return_status);
3305 
3306   END IF;
3307 
3308 /*
3309     IF (p_QUALIFIERS_rec.operation IN
3310 			(QP_GLOBALS.G_OPR_CREATE, QP_GLOBALS.G_OPR_UPDATE)) THEN
3311 
3312       oe_debug_pub.add('log delayed request--------warn_same_qual_grp');
3313 
3314              qp_delayed_requests_PVT.log_request(
3315 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3316 			p_entity_id  => p_QUALIFIERS_rec.list_header_id,
3317 			p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3318 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3319 			p_request_type =>QP_GLOBALS.G_WARN_SAME_QUALIFIER_GROUP,
3320 			p_param1             => p_QUALIFIERS_rec.list_line_id,
3321 			p_param2             => p_QUALIFIERS_rec.qualifier_grouping_no,
3322 			p_param3             => p_QUALIFIERS_rec.qualifier_context,
3323 			p_param4             => p_QUALIFIERS_rec.qualifier_attribute,
3324 			x_return_status => l_return_status);
3325 
3326     END IF;
3327     */
3328 
3329     -- Attribute Manager Change BEGIN - required for modifiers
3330     -- Logging the request here instead of apply_attribute_changes because list_line_id is -1 even
3331     -- if qualifier is LINE level in apply_attribute_changes
3332     --IF ( p_QUALIFIERS_rec.operation IN (QP_GLOBALS.G_OPR_CREATE,
3333 --								QP_GLOBALS.G_OPR_UPDATE) ) THEN
3334       IF qp_util.attrmgr_installed = 'Y' THEN
3335         IF (NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_attribute,
3336                                 p_old_QUALIFIERS_rec.qualifier_attribute))
3337            OR
3338            (NOT QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
3339                             p_old_QUALIFIERS_rec.qualifier_grouping_no))
3340            OR (p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE) THEN
3341           -- Get the List Type Code
3342           BEGIN
3343             SELECT list_type_code
3344               INTO   l_list_type_code
3345               FROM   qp_list_headers_vl
3346              WHERE  list_header_id = p_QUALIFIERS_rec.list_header_id;
3347           EXCEPTION
3348 	       WHEN OTHERS THEN
3349 	         NULL;
3350           END;
3351           IF l_list_type_code NOT IN ('PRL', 'AGR') THEN
3352             oe_debug_pub.add('list_header_id = ' || p_qualifiers_rec.list_header_id);
3353             oe_debug_pub.add('list_line_id = ' || p_qualifiers_rec.list_line_id);
3354             oe_debug_pub.add('qualifier_grouping_no = ' || p_qualifiers_rec.qualifier_grouping_no);
3355             qp_delayed_requests_PVT.log_request(
3356                  p_entity_code => QP_GLOBALS.G_ENTITY_QUALIFIERS,
3357                  p_request_unique_key1 => p_qualifiers_rec.list_header_id,
3358                  p_request_unique_key2 => p_qualifiers_rec.qualifier_grouping_no,
3359                  p_entity_id  => p_qualifiers_rec.list_line_id,
3360                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_QUALIFIERS,
3361                  p_requesting_entity_id => p_qualifiers_rec.list_line_id,
3362                  p_request_type =>QP_GLOBALS.G_CHECK_SEGMENT_LEVEL_IN_GROUP,
3363                  x_return_status => l_return_status);
3364 
3365             -- mkarya for attribute manager
3366             -- Log a delayed request to validate that if header level qualifier exist then at least
3367             -- one qualifier should exist for any existence of modifier line of modifier level
3368             -- 'LINE' or 'ORDER'
3369             if p_qualifiers_rec.list_line_id = -1 then
3370               qp_delayed_requests_PVT.log_request(
3371                  p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3372    	         p_entity_id  => l_qualifiers_rec.list_header_id,
3373                  p_request_unique_key1 => -1,
3374                  p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
3375                  p_requesting_entity_id => l_qualifiers_rec.list_header_id,
3376                  p_request_type =>QP_GLOBALS.G_CHECK_LINE_FOR_HEADER_QUAL,
3377                  x_return_status => l_return_status);
3378             end if;
3379 
3380             -- if qualifier_grouping_no is updated to -1 then log the request for all other
3381             -- qualifier_grouping_no for the given list_header_id and list_line_id
3382             if p_qualifiers_rec.qualifier_grouping_no = -1
3383               and p_qualifiers_rec.operation = QP_GLOBALS.G_OPR_UPDATE then
3384               declare
3385                   cursor c_qual_grp is
3386                  select distinct qualifier_grouping_no qualifier_grouping_no
3387                    from qp_qualifiers
3388                   where list_header_id =  p_qualifiers_rec.list_header_id
3389                     and list_line_id =  p_qualifiers_rec.list_line_id
3390                     and qualifier_grouping_no <> -1;
3391               begin
3392 
3393                for l_rec in c_qual_grp
3394                LOOP
3395                   oe_debug_pub.add('In LOOP - update of qualifier grp to -1');
3396                   oe_debug_pub.add('list_header_id = ' || p_qualifiers_rec.list_header_id);
3397                   oe_debug_pub.add('list_line_id = ' || p_qualifiers_rec.list_line_id);
3398                   oe_debug_pub.add('qualifier_grouping_no = ' || l_rec.qualifier_grouping_no);
3399                   qp_delayed_requests_PVT.log_request(
3400                            p_entity_code => QP_GLOBALS.G_ENTITY_QUALIFIERS,
3401                            p_request_unique_key1 => p_qualifiers_rec.list_header_id,
3402                            p_request_unique_key2 => l_rec.qualifier_grouping_no,
3403                            p_entity_id  => p_qualifiers_rec.list_line_id,
3404                            p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_QUALIFIERS,
3405                            p_requesting_entity_id => p_qualifiers_rec.list_line_id,
3406                            p_request_type =>QP_GLOBALS.G_CHECK_SEGMENT_LEVEL_IN_GROUP,
3407                            x_return_status => l_return_status);
3408 
3409                END LOOP;
3410 
3411               end;
3412             end if; -- grp_no is -1 and operation is update
3413            end if; -- list_type_code is for modifiers
3414          END IF; -- Change in either qualifier_grouping_no or qualifier_attribute
3415        END IF; -- Attribute Manager Installed
3416      --END IF; -- operation is insert or update
3417      -- Attribute Manager change end
3418 
3419 --pattern
3420 
3421     IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
3422 
3423       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_CREATE AND
3424          p_QUALIFIERS_rec.list_line_id = -1 			THEN
3425        -- header qualifier is added to price list/modifier
3426         IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3427 	    qp_delayed_requests_pvt.log_request(
3428 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3429 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3430 		p_request_unique_key1 => NULL,
3431 		p_request_unique_key2 => 'I',
3432 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3433 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3434 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3435 		x_return_status => l_return_status);
3436 	ELSE
3437 	    qp_delayed_requests_pvt.log_request(
3438 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3439 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3440 		p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3441 		p_request_unique_key2 => 'I',
3442 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3443 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3444 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3445 		x_return_status => l_return_status);
3446 	END IF;
3447       END IF;
3448 
3449       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_UPDATE AND
3450          p_QUALIFIERS_rec.list_line_id = -1 			THEN
3451        -- header qualifier is modified
3452            IF QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
3453                             p_old_QUALIFIERS_rec.qualifier_grouping_no) THEN
3454 		-- updated other than qualifier grouping number
3455 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3456 		    qp_delayed_requests_pvt.log_request(
3457 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3458 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3459 			p_request_unique_key1 => NULL,
3460 			p_request_unique_key2 => 'U',
3461 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3462 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3463 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3464 			x_return_status => l_return_status);
3465 		ELSE
3466 		    qp_delayed_requests_pvt.log_request(
3467 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3468 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3469 			p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3470 			p_request_unique_key2 => 'U',
3471 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3472 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3473 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3474 			x_return_status => l_return_status);
3475 		END IF;
3476 
3477 	   ELSE
3478 		-- qualifier grouping number is modified
3479                 IF (p_QUALIFIERS_rec.qualifier_grouping_no = -1 or
3480                     p_old_QUALIFIERS_rec.qualifier_grouping_no = -1) THEN
3481 		    qp_delayed_requests_pvt.log_request(
3482 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3483 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3484 			p_request_unique_key1 => NULL,
3485 			p_request_unique_key2 => 'U',
3486 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3487 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3488 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3489 			x_return_status => l_return_status);
3490 		ELSE
3491 		    qp_delayed_requests_pvt.log_request(
3492 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3493 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3494 			p_request_unique_key1 => p_old_QUALIFIERS_rec.qualifier_grouping_no,
3495 			p_request_unique_key2 => 'U',
3496 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3497 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3498 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3499 			x_return_status => l_return_status);
3500 		    qp_delayed_requests_pvt.log_request(
3501 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3502 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3503 			p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3504 			p_request_unique_key2 => 'U',
3505 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3506 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3507 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3508 			x_return_status => l_return_status);
3509 		END IF;
3510 	   END IF;
3511 
3512       END IF;
3513 
3514       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE AND
3515          p_QUALIFIERS_rec.list_line_id = -1 			THEN
3516 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 then
3517 		    qp_delayed_requests_pvt.log_request(
3518 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3519 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3520 			p_request_unique_key1 => NULL,
3521 			p_request_unique_key2 => 'D',
3522 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3523 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3524 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3525 			x_return_status => l_return_status);
3526 		ELSE
3527 		    qp_delayed_requests_pvt.log_request(
3528 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3529 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3530 			p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3531 			p_request_unique_key2 => 'D',
3532 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3533 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3534 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3535 			x_return_status => l_return_status);
3536 		END IF;
3537 
3538       END IF;
3539 -- line pattern
3540       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_CREATE AND
3541          p_QUALIFIERS_rec.list_line_id <> -1 			THEN
3542          IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3543 	    qp_delayed_requests_pvt.log_request(
3544 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3545 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3546 		p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3547 		p_request_unique_key2 => NULL,
3548 		p_request_unique_key3 => 'I',
3549 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3550 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3551 		p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3552 		x_return_status => l_return_status);
3553 	 ELSE
3554 	    qp_delayed_requests_pvt.log_request(
3555 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3556 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3557 		p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3558 		p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3559 		p_request_unique_key3 => 'I',
3560 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3561 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3562 		p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3563 		x_return_status => l_return_status);
3564 	 END IF;
3565       END IF;
3566 
3567       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_UPDATE AND
3568          p_QUALIFIERS_rec.list_line_id <> -1 			THEN
3569            IF QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
3570                             p_old_QUALIFIERS_rec.qualifier_grouping_no) THEN
3571 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3572 		    qp_delayed_requests_pvt.log_request(
3573 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3574 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3575 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3576 			p_request_unique_key2 => NULL,
3577 			p_request_unique_key3 => 'U',
3578 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3579 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3580 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3581 			x_return_status => l_return_status);
3582 		ELSE
3583 		    qp_delayed_requests_pvt.log_request(
3584 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3585 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3586 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3587 			p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3588 			p_request_unique_key3 => 'U',
3589 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3590 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3591 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3592 			x_return_status => l_return_status);
3593 		END IF;
3594 
3595 	   ELSE
3596                 IF (p_QUALIFIERS_rec.qualifier_grouping_no = -1 or
3597                     p_old_QUALIFIERS_rec.qualifier_grouping_no = -1) THEN
3598 		    qp_delayed_requests_pvt.log_request(
3599 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3600 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3601 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3602 			p_request_unique_key2 => NULL,
3603 			p_request_unique_key3 => 'U',
3604 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3605 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3606 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3607 			x_return_status => l_return_status);
3608 		ELSE
3609 		    qp_delayed_requests_pvt.log_request(
3610 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3611 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3612 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3613 			p_request_unique_key2 => p_old_QUALIFIERS_rec.qualifier_grouping_no,
3614 			p_request_unique_key3 => 'U',
3615 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3616 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3617 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3618 			x_return_status => l_return_status);
3619 		    qp_delayed_requests_pvt.log_request(
3620 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3621 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3622 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3623 			p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3624 			p_request_unique_key3 => 'U',
3625 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3626 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3627 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3628 			x_return_status => l_return_status);
3629 		END IF;
3630 	   END IF;
3631 
3632       END IF;
3633 
3634       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE AND
3635          p_QUALIFIERS_rec.list_line_id <> -1 			THEN
3636 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3637 		    qp_delayed_requests_pvt.log_request(
3638 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3639 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3640 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3641 			p_request_unique_key2 => NULL,
3642 			p_request_unique_key3 => 'D',
3643 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3644 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3645 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3646 			x_return_status => l_return_status);
3647 		ELSE
3648 		    qp_delayed_requests_pvt.log_request(
3649 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3650 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3651 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3652 			p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3653 			p_request_unique_key3 => 'D',
3654 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3655 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3656 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3657 			x_return_status => l_return_status);
3658 		END IF;
3659 
3660       END IF;
3661 
3662     END IF; --Java Engine Installed
3663 --pattern
3664 -- jagan's PL/SQL pattern
3665  IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
3666    IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'M' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' THEN
3667 
3668       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_CREATE AND
3669          p_QUALIFIERS_rec.list_line_id = -1 			THEN
3670        -- header qualifier is added to price list/modifier
3671         IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3672 	    qp_delayed_requests_pvt.log_request(
3673 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3674 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3675 		p_request_unique_key1 => NULL,
3676 		p_request_unique_key2 => 'I',
3677 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3678 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3679 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3680 		x_return_status => l_return_status);
3681 	ELSE
3682 	    qp_delayed_requests_pvt.log_request(
3683 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3684 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3685 		p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3686 		p_request_unique_key2 => 'I',
3687 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3688 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3689 		p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3690 		x_return_status => l_return_status);
3691 	END IF;
3692       END IF;
3693       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_UPDATE AND
3694          p_QUALIFIERS_rec.list_line_id = -1 			THEN
3695        -- header qualifier is modified
3696            IF QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
3697                             p_old_QUALIFIERS_rec.qualifier_grouping_no) THEN
3698 		-- updated other than qualifier grouping number
3699 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3700 		    qp_delayed_requests_pvt.log_request(
3701 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3702 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3703 			p_request_unique_key1 => NULL,
3704 			p_request_unique_key2 => 'U',
3705 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3706 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3707 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3708 			x_return_status => l_return_status);
3709 		ELSE
3710 		    qp_delayed_requests_pvt.log_request(
3711 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3712 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3713 			p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3714 			p_request_unique_key2 => 'U',
3715 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3716 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3717 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3718 			x_return_status => l_return_status);
3719 		END IF;
3720 	   ELSE
3721 		-- qualifier grouping number is modified
3722                 IF (p_QUALIFIERS_rec.qualifier_grouping_no = -1 or
3723                     p_old_QUALIFIERS_rec.qualifier_grouping_no = -1) THEN
3724 		    qp_delayed_requests_pvt.log_request(
3725 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3726 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3727 			p_request_unique_key1 => NULL,
3728 			p_request_unique_key2 => 'U',
3729 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3730 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3731 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3732 			x_return_status => l_return_status);
3733 		ELSE
3734 		    qp_delayed_requests_pvt.log_request(
3735 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3736 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3737 			p_request_unique_key1 => p_old_QUALIFIERS_rec.qualifier_grouping_no,
3738 			p_request_unique_key2 => 'U',
3739 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3740 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3741 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3742 			x_return_status => l_return_status);
3743 		    qp_delayed_requests_pvt.log_request(
3744 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3745 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3746 			p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3747 			p_request_unique_key2 => 'U',
3748 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3749 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3750 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3751 			x_return_status => l_return_status);
3752 		END IF;
3753 	   END IF;
3754 
3755       END IF;
3756       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE AND
3757          p_QUALIFIERS_rec.list_line_id = -1 			THEN
3758 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 then
3759 		    qp_delayed_requests_pvt.log_request(
3760 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3761 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3762 			p_request_unique_key1 => NULL,
3763 			p_request_unique_key2 => 'D',
3764 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3765 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3766 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3767 			x_return_status => l_return_status);
3768 		ELSE
3769 		    qp_delayed_requests_pvt.log_request(
3770 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3771 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3772 			p_request_unique_key1 => p_QUALIFIERS_rec.qualifier_grouping_no,
3773 			p_request_unique_key2 => 'D',
3774 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3775 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3776 			p_request_type => QP_GLOBALS.G_MAINTAIN_HEADER_PATTERN,
3777 			x_return_status => l_return_status);
3778 		END IF;
3779       END IF;
3780 -- line pattern
3781       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_CREATE AND
3782          p_QUALIFIERS_rec.list_line_id <> -1 			THEN
3783          IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3784 	    qp_delayed_requests_pvt.log_request(
3785 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3786 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3787 		p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3788 		p_request_unique_key2 => NULL,
3789 		p_request_unique_key3 => 'I',
3790 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3791 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3792 		p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3793 		x_return_status => l_return_status);
3794 	 ELSE
3795 	    qp_delayed_requests_pvt.log_request(
3796 		p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3797 		p_entity_id => p_QUALIFIERS_rec.list_header_id,
3798 		p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3799 		p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3800 		p_request_unique_key3 => 'I',
3801 		p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3802 		p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3803 		p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3804 		x_return_status => l_return_status);
3805 	 END IF;
3806       END IF;
3807       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_UPDATE AND
3808          p_QUALIFIERS_rec.list_line_id <> -1 			THEN
3809            IF QP_GLOBALS.Equal(p_QUALIFIERS_rec.qualifier_grouping_no,
3810                             p_old_QUALIFIERS_rec.qualifier_grouping_no) THEN
3811 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3812 		    qp_delayed_requests_pvt.log_request(
3813 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3814 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3815 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3816 			p_request_unique_key2 => NULL,
3817 			p_request_unique_key3 => 'U',
3818 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3819 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3820 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3821 			x_return_status => l_return_status);
3822 		ELSE
3823 		    qp_delayed_requests_pvt.log_request(
3824 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3825 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3826 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3827 			p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3828 			p_request_unique_key3 => 'U',
3829 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3830 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3831 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3832 			x_return_status => l_return_status);
3833 		END IF;
3834 	   ELSE
3835                 IF (p_QUALIFIERS_rec.qualifier_grouping_no = -1 or
3836                     p_old_QUALIFIERS_rec.qualifier_grouping_no = -1) THEN
3837 		    qp_delayed_requests_pvt.log_request(
3838 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3839 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3840 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3841 			p_request_unique_key2 => NULL,
3842 			p_request_unique_key3 => 'U',
3843 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3844 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3845 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3846 			x_return_status => l_return_status);
3847 		ELSE
3848 		    qp_delayed_requests_pvt.log_request(
3849 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3850 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3851 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3852 			p_request_unique_key2 => p_old_QUALIFIERS_rec.qualifier_grouping_no,
3853 			p_request_unique_key3 => 'U',
3854 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3855 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3856 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3857 			x_return_status => l_return_status);
3858 		    qp_delayed_requests_pvt.log_request(
3859 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3860 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3861 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3862 			p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3863 			p_request_unique_key3 => 'U',
3864 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3865 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3866 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3867 			x_return_status => l_return_status);
3868 		END IF;
3869 	   END IF;
3870 
3871       END IF;
3872       IF p_QUALIFIERS_rec.operation = QP_GLOBALS.G_OPR_DELETE AND
3873          p_QUALIFIERS_rec.list_line_id <> -1 			THEN
3874 		IF p_QUALIFIERS_rec.qualifier_grouping_no = -1 THEN
3875 		    qp_delayed_requests_pvt.log_request(
3876 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3877 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3878 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3879 			p_request_unique_key2 => NULL,
3880 			p_request_unique_key3 => 'D',
3881 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3882 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3883 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3884 			x_return_status => l_return_status);
3885 		ELSE
3886 		    qp_delayed_requests_pvt.log_request(
3887 			p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3888 			p_entity_id => p_QUALIFIERS_rec.list_header_id,
3889 			p_request_unique_key1 => p_QUALIFIERS_rec.list_line_id,
3890 			p_request_unique_key2 => p_QUALIFIERS_rec.qualifier_grouping_no,
3891 			p_request_unique_key3 => 'D',
3892 			p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
3893 			p_requesting_entity_id => p_QUALIFIERS_rec.list_header_id,
3894 			p_request_type => QP_GLOBALS.G_MAINTAIN_LINE_PATTERN,
3895 			x_return_status => l_return_status);
3896 		END IF;
3897 
3898       END IF;
3899 
3900     END IF; --Java Engine Installed
3901    END IF;  -- PL/SQL pattern search enabled
3902 
3903 EXCEPTION
3904     WHEN FND_API.G_EXC_ERROR THEN
3905         RAISE;
3906     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3907         RAISE;
3908     WHEN OTHERS THEN
3909         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
3910         THEN
3911             oe_msg_pub.Add_Exc_Msg
3912             (   G_PKG_NAME
3913             ,   'Pre_Write_Process'
3914             );
3915         END IF;
3916         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3917 END Pre_Write_Process;
3918 
3919 END QP_Qualifiers_Util;