DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QP_FORM_QUALIFIER_RULES

Source


1 PACKAGE BODY QP_QP_Form_Qualifier_Rules AS
2 /* $Header: QPXFQPRB.pls 120.1 2005/06/14 00:10:41 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_QP_Form_Qualifier_Rules';
7 
8 --  Global variables holding cached record.
9 
10 g_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
11 g_db_QUALIFIER_RULES_rec      QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_QUALIFIER_RULES
16 (   p_QUALIFIER_RULES_rec           IN  QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_QUALIFIER_RULES
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_qualifier_rule_id             IN  NUMBER
23 )
24 RETURN QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
25 
26 PROCEDURE Clear_QUALIFIER_RULES;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    QP_Qualifier_Rules_PUB.Qualifier_Rules_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
38 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 ,   x_description                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 ,   x_name                          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 ,   x_qualifier_rule_id             OUT NOCOPY /* file.sql.39 change */ NUMBER
58 ,   x_qualifier_rule                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 )
60 IS
61 l_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
62 l_QUALIFIER_RULES_val_rec     QP_Qualifier_Rules_PUB.Qualifier_Rules_Val_Rec_Type;
63 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
64 l_return_status               VARCHAR2(1);
65 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
66 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
67 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
68 BEGIN
69 
70     oe_debug_pub.ADD('in forms default attributes');
71 
72 
73 
74     --  Set control flags.
75 
76     l_control_rec.controlled_operation := TRUE;
77     l_control_rec.default_attributes   := TRUE;
78 
79     l_control_rec.change_attributes    := FALSE;
80     l_control_rec.validate_entity      := FALSE;
81     l_control_rec.write_to_DB          := FALSE;
82     l_control_rec.process              := FALSE;
83 
84     --  Instruct API to retain its caches
85 
86     l_control_rec.clear_api_cache      := FALSE;
87     l_control_rec.clear_api_requests   := FALSE;
88 
89     --  Load IN parameters if any exist
90 
91 
92     --  Defaulting of flex values is currently done by the form.
93     --  Set flex attributes to NULL in order to avoid defaulting them.
94 
95     l_QUALIFIER_RULES_rec.attribute1              := NULL;
96     l_QUALIFIER_RULES_rec.attribute10             := NULL;
97     l_QUALIFIER_RULES_rec.attribute11             := NULL;
98     l_QUALIFIER_RULES_rec.attribute12             := NULL;
99     l_QUALIFIER_RULES_rec.attribute13             := NULL;
100     l_QUALIFIER_RULES_rec.attribute14             := NULL;
101     l_QUALIFIER_RULES_rec.attribute15             := NULL;
102     l_QUALIFIER_RULES_rec.attribute2              := NULL;
103     l_QUALIFIER_RULES_rec.attribute3              := NULL;
104     l_QUALIFIER_RULES_rec.attribute4              := NULL;
105     l_QUALIFIER_RULES_rec.attribute5              := NULL;
106     l_QUALIFIER_RULES_rec.attribute6              := NULL;
107     l_QUALIFIER_RULES_rec.attribute7              := NULL;
108     l_QUALIFIER_RULES_rec.attribute8              := NULL;
109     l_QUALIFIER_RULES_rec.attribute9              := NULL;
110     l_QUALIFIER_RULES_rec.context                 := NULL;
111 
112     --  Set Operation to Create
113 
114     l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_CREATE;
115 
116     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
117 
118 
119     oe_debug_pub.add('calling private process qualifier_rules');
120 
121 
122 
123     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
124     (   p_api_version_number          => 1.0
125     ,   p_init_msg_list               => FND_API.G_TRUE
126     ,   x_return_status               => l_return_status
127     ,   x_msg_count                   => x_msg_count
128     ,   x_msg_data                    => x_msg_data
129     ,   p_control_rec                 => l_control_rec
130     ,   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
131     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
132     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
133     );
134 
135     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
136         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
137     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
138         RAISE FND_API.G_EXC_ERROR;
139     END IF;
140 
141 
142     --  Load OUT parameters.
143 
144     x_attribute1                   := l_x_QUALIFIER_RULES_rec.attribute1;
145     x_attribute10                  := l_x_QUALIFIER_RULES_rec.attribute10;
146     x_attribute11                  := l_x_QUALIFIER_RULES_rec.attribute11;
147     x_attribute12                  := l_x_QUALIFIER_RULES_rec.attribute12;
148     x_attribute13                  := l_x_QUALIFIER_RULES_rec.attribute13;
149     x_attribute14                  := l_x_QUALIFIER_RULES_rec.attribute14;
150     x_attribute15                  := l_x_QUALIFIER_RULES_rec.attribute15;
151     x_attribute2                   := l_x_QUALIFIER_RULES_rec.attribute2;
152     x_attribute3                   := l_x_QUALIFIER_RULES_rec.attribute3;
153     x_attribute4                   := l_x_QUALIFIER_RULES_rec.attribute4;
154     x_attribute5                   := l_x_QUALIFIER_RULES_rec.attribute5;
155     x_attribute6                   := l_x_QUALIFIER_RULES_rec.attribute6;
156     x_attribute7                   := l_x_QUALIFIER_RULES_rec.attribute7;
157     x_attribute8                   := l_x_QUALIFIER_RULES_rec.attribute8;
158     x_attribute9                   := l_x_QUALIFIER_RULES_rec.attribute9;
159     x_context                      := l_x_QUALIFIER_RULES_rec.context;
160     x_description                  := l_x_QUALIFIER_RULES_rec.description;
161     x_name                         := l_x_QUALIFIER_RULES_rec.name;
162     x_qualifier_rule_id            := l_x_QUALIFIER_RULES_rec.qualifier_rule_id;
163 
164     --  Load display out parameters if any
165 
166     l_QUALIFIER_RULES_val_rec := QP_Qualifier_Rules_Util.Get_Values
167     (   p_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
168     );
169     x_qualifier_rule               := l_QUALIFIER_RULES_val_rec.qualifier_rule;
170 
171     --  Write to cache.
172     --  Set db_flag to False before writing to cache
173 
174     l_x_QUALIFIER_RULES_rec.db_flag := FND_API.G_FALSE;
175 
176     Write_QUALIFIER_RULES
177     (   p_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
178     );
179 
180     --  Set return status.
181 
182     x_return_status := FND_API.G_RET_STS_SUCCESS;
183 
184     --  Get message count and data
185 
186     OE_MSG_PUB.Count_And_Get
187     (   p_count                       => x_msg_count
188     ,   p_data                        => x_msg_data
189     );
190 
191 
192     oe_debug_pub.add('leaving forms default attributes');
193 
194 
195 EXCEPTION
196 
197     WHEN FND_API.G_EXC_ERROR THEN
198 
199         x_return_status := FND_API.G_RET_STS_ERROR;
200 
201         --  Get message count and data
202 
203         OE_MSG_PUB.Count_And_Get
204         (   p_count                       => x_msg_count
205         ,   p_data                        => x_msg_data
206         );
207 
208     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
209 
210         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
211 
212         --  Get message count and data
213 
214         OE_MSG_PUB.Count_And_Get
215         (   p_count                       => x_msg_count
216         ,   p_data                        => x_msg_data
217         );
218 
219     WHEN OTHERS THEN
220 
221         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
222 
223         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
224         THEN
225             OE_MSG_PUB.Add_Exc_Msg
226             (   G_PKG_NAME
227             ,   'Default_Attributes'
228             );
229         END IF;
230 
231         --  Get message count and data
232 
233         OE_MSG_PUB.Count_And_Get
234         (   p_count                       => x_msg_count
235         ,   p_data                        => x_msg_data
236         );
237 
238 END Default_Attributes;
239 
240 --  Procedure   :   Change_Attribute
241 --
242 
243 PROCEDURE Change_Attribute
244 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
245 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
246 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
247 ,   p_qualifier_rule_id             IN  NUMBER
248 ,   p_attr_id                       IN  NUMBER
249 ,   p_attr_value                    IN  VARCHAR2
250 ,   p_attribute1                    IN  VARCHAR2
251 ,   p_attribute10                   IN  VARCHAR2
252 ,   p_attribute11                   IN  VARCHAR2
253 ,   p_attribute12                   IN  VARCHAR2
254 ,   p_attribute13                   IN  VARCHAR2
255 ,   p_attribute14                   IN  VARCHAR2
256 ,   p_attribute15                   IN  VARCHAR2
257 ,   p_attribute2                    IN  VARCHAR2
258 ,   p_attribute3                    IN  VARCHAR2
259 ,   p_attribute4                    IN  VARCHAR2
260 ,   p_attribute5                    IN  VARCHAR2
261 ,   p_attribute6                    IN  VARCHAR2
262 ,   p_attribute7                    IN  VARCHAR2
263 ,   p_attribute8                    IN  VARCHAR2
264 ,   p_attribute9                    IN  VARCHAR2
265 ,   p_context                       IN  VARCHAR2
266 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
267 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
268 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
269 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
270 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
271 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
272 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
273 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
274 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
275 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
276 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
277 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
278 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
279 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
280 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
281 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
282 ,   x_description                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
283 ,   x_name                          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
284 ,   x_qualifier_rule_id             OUT NOCOPY /* file.sql.39 change */ NUMBER
285 ,   x_qualifier_rule                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
286 )
287 IS
288 l_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
289 l_old_QUALIFIER_RULES_rec     QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
290 l_QUALIFIER_RULES_val_rec     QP_Qualifier_Rules_PUB.Qualifier_Rules_Val_Rec_Type;
291 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
292 l_return_status               VARCHAR2(1);
293 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
294 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
295 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
296 BEGIN
297 
298     oe_debug_pub.add('entering forms change  attributes');
299 
300     oe_debug_pub.add('id is '||p_qualifier_rule_id);
301     oe_debug_pub.add('attr is' ||p_attr_value);
302     --  Set control flags.
303 
304     l_control_rec.controlled_operation := TRUE;
305     l_control_rec.change_attributes    := TRUE;
306 
307     l_control_rec.default_attributes   := FALSE;
308     l_control_rec.validate_entity      := FALSE;
309     l_control_rec.write_to_DB          := FALSE;
310     l_control_rec.process              := FALSE;
311 
312     --  Instruct API to retain its caches
313 
314     l_control_rec.clear_api_cache      := FALSE;
315     l_control_rec.clear_api_requests   := FALSE;
316 
317     --  Read QUALIFIER_RULES from cache
318 
319     l_QUALIFIER_RULES_rec := Get_QUALIFIER_RULES
320     (   p_db_record                   => FALSE
321     ,   p_qualifier_rule_id           => p_qualifier_rule_id
322     );
323 
324     l_old_QUALIFIER_RULES_rec      := l_QUALIFIER_RULES_rec;
325 
326     IF p_attr_id = QP_Qualifier_Rules_Util.G_DESCRIPTION THEN
327         l_QUALIFIER_RULES_rec.description := p_attr_value;
328     ELSIF p_attr_id = QP_Qualifier_Rules_Util.G_NAME THEN
329         l_QUALIFIER_RULES_rec.name := p_attr_value;
330     ELSIF p_attr_id = QP_Qualifier_Rules_Util.G_QUALIFIER_RULE THEN
331         l_QUALIFIER_RULES_rec.qualifier_rule_id := TO_NUMBER(p_attr_value);
332     ELSIF p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE1
333     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE10
334     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE11
335     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE12
336     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE13
337     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE14
338     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE15
339     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE2
340     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE3
341     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE4
342     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE5
343     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE6
344     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE7
345     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE8
346     OR     p_attr_id = QP_Qualifier_Rules_Util.G_ATTRIBUTE9
347     OR     p_attr_id = QP_Qualifier_Rules_Util.G_CONTEXT
348     THEN
349 
350         l_QUALIFIER_RULES_rec.attribute1 := p_attribute1;
351         l_QUALIFIER_RULES_rec.attribute10 := p_attribute10;
352         l_QUALIFIER_RULES_rec.attribute11 := p_attribute11;
353         l_QUALIFIER_RULES_rec.attribute12 := p_attribute12;
354         l_QUALIFIER_RULES_rec.attribute13 := p_attribute13;
355         l_QUALIFIER_RULES_rec.attribute14 := p_attribute14;
356         l_QUALIFIER_RULES_rec.attribute15 := p_attribute15;
357         l_QUALIFIER_RULES_rec.attribute2 := p_attribute2;
358         l_QUALIFIER_RULES_rec.attribute3 := p_attribute3;
359         l_QUALIFIER_RULES_rec.attribute4 := p_attribute4;
360         l_QUALIFIER_RULES_rec.attribute5 := p_attribute5;
361         l_QUALIFIER_RULES_rec.attribute6 := p_attribute6;
362         l_QUALIFIER_RULES_rec.attribute7 := p_attribute7;
363         l_QUALIFIER_RULES_rec.attribute8 := p_attribute8;
364         l_QUALIFIER_RULES_rec.attribute9 := p_attribute9;
365         l_QUALIFIER_RULES_rec.context  := p_context;
366 
367     ELSE
368 
369         --  Unexpected error, unrecognized attribute
370 
371         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
372         THEN
373             OE_MSG_PUB.Add_Exc_Msg
374             (   G_PKG_NAME
375             ,   'Change_Attribute'
376             ,   'Unrecognized attribute'
377             );
378         END IF;
379 
380         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
381 
382     END IF;
383 
384     --  Set Operation.
385 
386     IF FND_API.To_Boolean(l_QUALIFIER_RULES_rec.db_flag) THEN
387         l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
388     ELSE
389         l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_CREATE;
390     END IF;
391 
392     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
393 
394     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
395     (   p_api_version_number          => 1.0
396     ,   p_init_msg_list               => FND_API.G_TRUE
397     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
398     ,   x_return_status               => l_return_status
399     ,   x_msg_count                   => x_msg_count
400     ,   x_msg_data                    => x_msg_data
401     ,   p_control_rec                 => l_control_rec
402     ,   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
403     ,   p_old_QUALIFIER_RULES_rec     => l_old_QUALIFIER_RULES_rec
404     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
405     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
406     );
407 
408     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
409         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
410     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
411         RAISE FND_API.G_EXC_ERROR;
412     END IF;
413 
414 
415     --  Init OUT parameters to missing.
416 
417     x_attribute1                   := FND_API.G_MISS_CHAR;
418     x_attribute10                  := FND_API.G_MISS_CHAR;
419     x_attribute11                  := FND_API.G_MISS_CHAR;
420     x_attribute12                  := FND_API.G_MISS_CHAR;
421     x_attribute13                  := FND_API.G_MISS_CHAR;
422     x_attribute14                  := FND_API.G_MISS_CHAR;
423     x_attribute15                  := FND_API.G_MISS_CHAR;
424     x_attribute2                   := FND_API.G_MISS_CHAR;
425     x_attribute3                   := FND_API.G_MISS_CHAR;
426     x_attribute4                   := FND_API.G_MISS_CHAR;
427     x_attribute5                   := FND_API.G_MISS_CHAR;
428     x_attribute6                   := FND_API.G_MISS_CHAR;
429     x_attribute7                   := FND_API.G_MISS_CHAR;
430     x_attribute8                   := FND_API.G_MISS_CHAR;
431     x_attribute9                   := FND_API.G_MISS_CHAR;
432     x_context                      := FND_API.G_MISS_CHAR;
433     x_description                  := FND_API.G_MISS_CHAR;
434     x_name                         := FND_API.G_MISS_CHAR;
435     x_qualifier_rule_id            := FND_API.G_MISS_NUM;
436     x_qualifier_rule               := FND_API.G_MISS_CHAR;
437 
438     --  Load display out parameters if any
439 
440     l_QUALIFIER_RULES_val_rec := QP_Qualifier_Rules_Util.Get_Values
441     (   p_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
442     ,   p_old_QUALIFIER_RULES_rec     => l_QUALIFIER_RULES_rec
443     );
444 
445     --  Return changed attributes.
446 
447     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute1,
448                             l_QUALIFIER_RULES_rec.attribute1)
449     THEN
450         x_attribute1 := l_x_QUALIFIER_RULES_rec.attribute1;
451     END IF;
452 
453     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute10,
454                             l_QUALIFIER_RULES_rec.attribute10)
455     THEN
456         x_attribute10 := l_x_QUALIFIER_RULES_rec.attribute10;
457     END IF;
458 
459     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute11,
460                             l_QUALIFIER_RULES_rec.attribute11)
461     THEN
462         x_attribute11 := l_x_QUALIFIER_RULES_rec.attribute11;
463     END IF;
464 
465     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute12,
466                             l_QUALIFIER_RULES_rec.attribute12)
467     THEN
468         x_attribute12 := l_x_QUALIFIER_RULES_rec.attribute12;
469     END IF;
470 
471     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute13,
472                             l_QUALIFIER_RULES_rec.attribute13)
473     THEN
474         x_attribute13 := l_x_QUALIFIER_RULES_rec.attribute13;
475     END IF;
476 
477     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute14,
478                             l_QUALIFIER_RULES_rec.attribute14)
479     THEN
480         x_attribute14 := l_x_QUALIFIER_RULES_rec.attribute14;
481     END IF;
482 
483     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute15,
484                             l_QUALIFIER_RULES_rec.attribute15)
485     THEN
486         x_attribute15 := l_x_QUALIFIER_RULES_rec.attribute15;
487     END IF;
488 
489     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute2,
490                             l_QUALIFIER_RULES_rec.attribute2)
491     THEN
492         x_attribute2 := l_x_QUALIFIER_RULES_rec.attribute2;
493     END IF;
494 
495     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute3,
496                             l_QUALIFIER_RULES_rec.attribute3)
497     THEN
498         x_attribute3 := l_x_QUALIFIER_RULES_rec.attribute3;
499     END IF;
500 
501     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute4,
502                             l_QUALIFIER_RULES_rec.attribute4)
503     THEN
504         x_attribute4 := l_x_QUALIFIER_RULES_rec.attribute4;
505     END IF;
506 
507     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute5,
508                             l_QUALIFIER_RULES_rec.attribute5)
509     THEN
510         x_attribute5 := l_x_QUALIFIER_RULES_rec.attribute5;
511     END IF;
512 
513     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute6,
514                             l_QUALIFIER_RULES_rec.attribute6)
515     THEN
516         x_attribute6 := l_x_QUALIFIER_RULES_rec.attribute6;
517     END IF;
518 
519     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute7,
520                             l_QUALIFIER_RULES_rec.attribute7)
521     THEN
522         x_attribute7 := l_x_QUALIFIER_RULES_rec.attribute7;
523     END IF;
524 
525     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute8,
526                             l_QUALIFIER_RULES_rec.attribute8)
527     THEN
528         x_attribute8 := l_x_QUALIFIER_RULES_rec.attribute8;
529     END IF;
530 
531     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.attribute9,
532                             l_QUALIFIER_RULES_rec.attribute9)
533     THEN
534         x_attribute9 := l_x_QUALIFIER_RULES_rec.attribute9;
535     END IF;
536 
537     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.context,
538                             l_QUALIFIER_RULES_rec.context)
539     THEN
540         x_context := l_x_QUALIFIER_RULES_rec.context;
541     END IF;
542 
543     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.description,
544                             l_QUALIFIER_RULES_rec.description)
545     THEN
546         x_description := l_x_QUALIFIER_RULES_rec.description;
547     END IF;
548 
549     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.name,
550                             l_QUALIFIER_RULES_rec.name)
551     THEN
552         x_name := l_x_QUALIFIER_RULES_rec.name;
553     END IF;
554 
555     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIER_RULES_rec.qualifier_rule_id,
556                             l_QUALIFIER_RULES_rec.qualifier_rule_id)
557     THEN
558         x_qualifier_rule_id := l_x_QUALIFIER_RULES_rec.qualifier_rule_id;
559         --x_qualifier_rule := l_QUALIFIER_RULES_val_rec.qualifier_rule;
560     END IF;
561 
562 
563     --  Write to cache.
564 
565     Write_QUALIFIER_RULES
566     (   p_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
567     );
568 
569     --  Set return status.
570 
571     x_return_status := FND_API.G_RET_STS_SUCCESS;
572 
573     --  Get message count and data
574 
575     OE_MSG_PUB.Count_And_Get
576     (   p_count                       => x_msg_count
577     ,   p_data                        => x_msg_data
578     );
579 
580 
581     oe_debug_pub.add('leaving forms change  attributes');
582 EXCEPTION
583 
584     WHEN FND_API.G_EXC_ERROR THEN
585 
586         x_return_status := FND_API.G_RET_STS_ERROR;
587 
588         --  Get message count and data
589 
590         OE_MSG_PUB.Count_And_Get
591         (   p_count                       => x_msg_count
592         ,   p_data                        => x_msg_data
593         );
594 
595     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
596 
597         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
598 
599         --  Get message count and data
600 
601         OE_MSG_PUB.Count_And_Get
602         (   p_count                       => x_msg_count
603         ,   p_data                        => x_msg_data
604         );
605 
606     WHEN OTHERS THEN
607 
608         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
609 
610         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
611         THEN
612             OE_MSG_PUB.Add_Exc_Msg
613             (   G_PKG_NAME
614             ,   'Change_Attribute'
615             );
616         END IF;
617 
618         --  Get message count and data
619 
620         OE_MSG_PUB.Count_And_Get
621         (   p_count                       => x_msg_count
622         ,   p_data                        => x_msg_data
623         );
624 
625 END Change_Attribute;
626 
627 --  Procedure       Validate_And_Write
628 --
629 
630 PROCEDURE Validate_And_Write
631 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
632 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
633 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
634 ,   p_qualifier_rule_id             IN  NUMBER
635 ,   x_creation_date                 OUT NOCOPY /* file.sql.39 change */ DATE
636 ,   x_created_by                    OUT NOCOPY /* file.sql.39 change */ NUMBER
637 ,   x_last_update_date              OUT NOCOPY /* file.sql.39 change */ DATE
638 ,   x_last_updated_by               OUT NOCOPY /* file.sql.39 change */ NUMBER
639 ,   x_last_update_login             OUT NOCOPY /* file.sql.39 change */ NUMBER
640 )
641 IS
642 l_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
643 l_old_QUALIFIER_RULES_rec     QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
644 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
645 l_return_status               VARCHAR2(1);
646 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
647 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
648 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
649 BEGIN
650 
651 
652 
653    oe_debug_pub.add('in validate and write');
654 
655 
656 
657 
658 
659     --  Set control flags.
660 
661     l_control_rec.controlled_operation := TRUE;
662     l_control_rec.validate_entity      := TRUE;
663     l_control_rec.write_to_DB          := TRUE;
664 
665     l_control_rec.default_attributes   := FALSE;
666     l_control_rec.change_attributes    := FALSE;
667     l_control_rec.process              := FALSE;
668 
669     --  Instruct API to retain its caches
670 
671     l_control_rec.clear_api_cache      := FALSE;
672     l_control_rec.clear_api_requests   := FALSE;
673 
674     --  Read QUALIFIER_RULES from cache
675 
676     l_old_QUALIFIER_RULES_rec := Get_QUALIFIER_RULES
677     (   p_db_record                   => TRUE
678     ,   p_qualifier_rule_id           => p_qualifier_rule_id
679     );
680 
681     l_QUALIFIER_RULES_rec := Get_QUALIFIER_RULES
682     (   p_db_record                   => FALSE
683     ,   p_qualifier_rule_id           => p_qualifier_rule_id
684     );
685 
686     --  Set Operation.
687 
688     IF FND_API.To_Boolean(l_QUALIFIER_RULES_rec.db_flag) THEN
689         l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
690     ELSE
691         l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_CREATE;
692     END IF;
693 
694     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
695 
696 
697     oe_debug_pub.add('before calling process qualifier rule private opeartion is '||
698 				  l_QUALIFIER_RULES_rec.operation);
699 
700 
701     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
702     (   p_api_version_number          => 1.0
703     ,   p_init_msg_list               => FND_API.G_TRUE
704     ,   x_return_status               => l_return_status
705     ,   x_msg_count                   => x_msg_count
706     ,   x_msg_data                    => x_msg_data
707     ,   p_control_rec                 => l_control_rec
708     ,   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
709     ,   p_old_QUALIFIER_RULES_rec     => l_old_QUALIFIER_RULES_rec
710     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
711     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
712     );
713 
714     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
715         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
716     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
717         RAISE FND_API.G_EXC_ERROR;
718     END IF;
719 
720 
721     --  Load OUT parameters.
722 
723 
724     x_creation_date                := l_x_QUALIFIER_RULES_rec.creation_date;
725     x_created_by                   := l_x_QUALIFIER_RULES_rec.created_by;
726     x_last_update_date             := l_x_QUALIFIER_RULES_rec.last_update_date;
727     x_last_updated_by              := l_x_QUALIFIER_RULES_rec.last_updated_by;
728     x_last_update_login            := l_x_QUALIFIER_RULES_rec.last_update_login;
729 
730     --  Clear QUALIFIER_RULES record cache
731 
732     Clear_QUALIFIER_RULES;
733 
734     --  Keep track of performed operations.
735 
736     l_old_QUALIFIER_RULES_rec.operation := l_QUALIFIER_RULES_rec.operation;
737 
738 
739     --  Set return status.
740 
741     x_return_status := FND_API.G_RET_STS_SUCCESS;
742 
743     --  Get message count and data
744 
745     OE_MSG_PUB.Count_And_Get
746     (   p_count                       => x_msg_count
747     ,   p_data                        => x_msg_data
748     );
749 
750     oe_debug_pub.add('leaving validate and write');
751 
752 
753 EXCEPTION
754 
755     WHEN FND_API.G_EXC_ERROR THEN
756 
757         x_return_status := FND_API.G_RET_STS_ERROR;
758 
759         --  Get message count and data
760 
761         OE_MSG_PUB.Count_And_Get
762         (   p_count                       => x_msg_count
763         ,   p_data                        => x_msg_data
764         );
765 
766     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
767 
768         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
769 
770         --  Get message count and data
771 
772         OE_MSG_PUB.Count_And_Get
773         (   p_count                       => x_msg_count
774         ,   p_data                        => x_msg_data
775         );
776 
777     WHEN OTHERS THEN
778 
779         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
780 
781         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
782         THEN
783             OE_MSG_PUB.Add_Exc_Msg
784             (   G_PKG_NAME
785             ,   'Validate_And_Write'
786             );
787         END IF;
788 
789         --  Get message count and data
790 
791         OE_MSG_PUB.Count_And_Get
792         (   p_count                       => x_msg_count
793         ,   p_data                        => x_msg_data
794         );
795 
796 END Validate_And_Write;
797 
798 --  Procedure       Delete_Row
799 --
800 
801 PROCEDURE Delete_Row
802 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
803 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
804 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
805 ,   p_qualifier_rule_id             IN  NUMBER
806 )
807 IS
808 l_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
809 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
810 l_return_status               VARCHAR2(1);
811 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
812 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
813 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
814 BEGIN
815 
816     --  Set control flags.
817 
818     l_control_rec.controlled_operation := TRUE;
819     l_control_rec.validate_entity      := TRUE;
820     l_control_rec.write_to_DB          := TRUE;
821 
822     l_control_rec.default_attributes   := FALSE;
823     l_control_rec.change_attributes    := FALSE;
824     l_control_rec.process              := FALSE;
825 
826     --  Instruct API to retain its caches
827 
828     l_control_rec.clear_api_cache      := FALSE;
829     l_control_rec.clear_api_requests   := FALSE;
830 
831     --  Read DB record from cache
832 
833     l_QUALIFIER_RULES_rec := Get_QUALIFIER_RULES
834     (   p_db_record                   => TRUE
835     ,   p_qualifier_rule_id           => p_qualifier_rule_id
836     );
837 
838     --  Set Operation.
839 
840     l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_DELETE;
841 
842     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
843 
844     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
845     (   p_api_version_number          => 1.0
846     ,   p_init_msg_list               => FND_API.G_TRUE
847     ,   x_return_status               => l_return_status
848     ,   x_msg_count                   => x_msg_count
849     ,   x_msg_data                    => x_msg_data
850     ,   p_control_rec                 => l_control_rec
851     ,   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
852     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
853     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
854     );
855 
856     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
857         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
858     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
859         RAISE FND_API.G_EXC_ERROR;
860     END IF;
861 
862 
863     --  Clear QUALIFIER_RULES record cache
864 
865     Clear_QUALIFIER_RULES;
866 
867     --  Set return status.
868 
869     x_return_status := FND_API.G_RET_STS_SUCCESS;
870 
871     --  Get message count and data
872 
873     OE_MSG_PUB.Count_And_Get
874     (   p_count                       => x_msg_count
875     ,   p_data                        => x_msg_data
876     );
877 
878 
879 EXCEPTION
880 
881     WHEN FND_API.G_EXC_ERROR THEN
882 
883         x_return_status := FND_API.G_RET_STS_ERROR;
884 
885         --  Get message count and data
886 
887         OE_MSG_PUB.Count_And_Get
888         (   p_count                       => x_msg_count
889         ,   p_data                        => x_msg_data
890         );
891 
892     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
893 
894         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
895 
896         --  Get message count and data
897 
898         OE_MSG_PUB.Count_And_Get
899         (   p_count                       => x_msg_count
900         ,   p_data                        => x_msg_data
901         );
902 
903     WHEN OTHERS THEN
904 
905         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
906 
907         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
908         THEN
909             OE_MSG_PUB.Add_Exc_Msg
910             (   G_PKG_NAME
911             ,   'Delete_Row'
912             );
913         END IF;
914 
915         --  Get message count and data
916 
917         OE_MSG_PUB.Count_And_Get
918         (   p_count                       => x_msg_count
919         ,   p_data                        => x_msg_data
920         );
921 
922 END Delete_Row;
923 
924 --  Procedure       Process_Entity
925 --
926 
927 PROCEDURE Process_Entity
928 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
929 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
930 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
931 )
932 IS
933 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
934 l_return_status               VARCHAR2(1);
935 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
936 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
937 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
938 BEGIN
939 
940     --  Set control flags.
941 
942     l_control_rec.controlled_operation := TRUE;
943     l_control_rec.process              := TRUE;
944     l_control_rec.process_entity       := QP_GLOBALS.G_ENTITY_QUALIFIER_RULES;
945 
946     l_control_rec.default_attributes   := FALSE;
947     l_control_rec.change_attributes    := FALSE;
948     l_control_rec.validate_entity      := FALSE;
949     l_control_rec.write_to_DB          := FALSE;
950 
951     --  Instruct API to clear its request table
952 
953     l_control_rec.clear_api_cache      := FALSE;
954     l_control_rec.clear_api_requests   := FALSE;
955 
956     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
957 
958     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
959     (   p_api_version_number          => 1.0
960     ,   p_init_msg_list               => FND_API.G_TRUE
961     ,   x_return_status               => l_return_status
962     ,   x_msg_count                   => x_msg_count
963     ,   x_msg_data                    => x_msg_data
964     ,   p_control_rec                 => l_control_rec
965     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
966     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
967     );
968 
969     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
970         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
971     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
972         RAISE FND_API.G_EXC_ERROR;
973     END IF;
974 
975 
976     --  Set return status.
977 
978     x_return_status := FND_API.G_RET_STS_SUCCESS;
979 
980     --  Get message count and data
981 
982     OE_MSG_PUB.Count_And_Get
983     (   p_count                       => x_msg_count
984     ,   p_data                        => x_msg_data
985     );
986 
987 
988 EXCEPTION
989 
990     WHEN FND_API.G_EXC_ERROR THEN
991 
992         x_return_status := FND_API.G_RET_STS_ERROR;
993 
994         --  Get message count and data
995 
996         OE_MSG_PUB.Count_And_Get
997         (   p_count                       => x_msg_count
998         ,   p_data                        => x_msg_data
999         );
1000 
1001     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1002 
1003         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1004 
1005         --  Get message count and data
1006 
1007         OE_MSG_PUB.Count_And_Get
1008         (   p_count                       => x_msg_count
1009         ,   p_data                        => x_msg_data
1010         );
1011 
1012     WHEN OTHERS THEN
1013 
1014         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1015 
1016         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1017         THEN
1018             OE_MSG_PUB.Add_Exc_Msg
1019             (   G_PKG_NAME
1020             ,   'Process_Entity'
1021             );
1022         END IF;
1023 
1024         --  Get message count and data
1025 
1026         OE_MSG_PUB.Count_And_Get
1027         (   p_count                       => x_msg_count
1028         ,   p_data                        => x_msg_data
1029         );
1030 
1031 END Process_Entity;
1032 
1033 --  Procedure       Process_Object
1034 --
1035 
1036 PROCEDURE Process_Object
1037 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1038 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1039 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1040 )
1041 IS
1042 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1043 l_return_status               VARCHAR2(1);
1044 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
1045 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1046 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1047 BEGIN
1048 
1049     --  Set control flags.
1050 
1051     l_control_rec.controlled_operation := TRUE;
1052     l_control_rec.process              := TRUE;
1053     l_control_rec.process_entity       := QP_GLOBALS.G_ENTITY_ALL;
1054 
1055     l_control_rec.default_attributes   := FALSE;
1056     l_control_rec.change_attributes    := FALSE;
1057     l_control_rec.validate_entity      := FALSE;
1058     l_control_rec.write_to_DB          := FALSE;
1059 
1060     --  Instruct API to clear its request table
1061 
1062     l_control_rec.clear_api_cache      := FALSE;
1063     l_control_rec.clear_api_requests   := TRUE;
1064 
1065     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
1066 
1067     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
1068     (   p_api_version_number          => 1.0
1069     ,   p_init_msg_list               => FND_API.G_TRUE
1070     ,   x_return_status               => l_return_status
1071     ,   x_msg_count                   => x_msg_count
1072     ,   x_msg_data                    => x_msg_data
1073     ,   p_control_rec                 => l_control_rec
1074     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
1075     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1076     );
1077 
1078     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1079         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1080     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1081         RAISE FND_API.G_EXC_ERROR;
1082     END IF;
1083 
1084 
1085     --  Set return status.
1086 
1087     x_return_status := FND_API.G_RET_STS_SUCCESS;
1088 
1089     --  Get message count and data
1090 
1091     OE_MSG_PUB.Count_And_Get
1092     (   p_count                       => x_msg_count
1093     ,   p_data                        => x_msg_data
1094     );
1095 
1096 
1097 EXCEPTION
1098 
1099     WHEN FND_API.G_EXC_ERROR THEN
1100 
1101         x_return_status := FND_API.G_RET_STS_ERROR;
1102 
1103         --  Get message count and data
1104 
1105         OE_MSG_PUB.Count_And_Get
1106         (   p_count                       => x_msg_count
1107         ,   p_data                        => x_msg_data
1108         );
1109 
1110     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1111 
1112         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1113 
1114         --  Get message count and data
1115 
1116         OE_MSG_PUB.Count_And_Get
1117         (   p_count                       => x_msg_count
1118         ,   p_data                        => x_msg_data
1119         );
1120 
1121     WHEN OTHERS THEN
1122 
1123         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1124 
1125         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1126         THEN
1127             OE_MSG_PUB.Add_Exc_Msg
1128             (   G_PKG_NAME
1129             ,   'Process_Object'
1130             );
1131         END IF;
1132 
1133         --  Get message count and data
1134 
1135         OE_MSG_PUB.Count_And_Get
1136         (   p_count                       => x_msg_count
1137         ,   p_data                        => x_msg_data
1138         );
1139 
1140 END Process_Object;
1141 
1142 --  Procedure       lock_Row
1143 --
1144 
1145 PROCEDURE Lock_Row
1146 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1147 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1148 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1149 ,   p_attribute1                    IN  VARCHAR2
1150 ,   p_attribute10                   IN  VARCHAR2
1151 ,   p_attribute11                   IN  VARCHAR2
1152 ,   p_attribute12                   IN  VARCHAR2
1153 ,   p_attribute13                   IN  VARCHAR2
1154 ,   p_attribute14                   IN  VARCHAR2
1155 ,   p_attribute15                   IN  VARCHAR2
1156 ,   p_attribute2                    IN  VARCHAR2
1157 ,   p_attribute3                    IN  VARCHAR2
1158 ,   p_attribute4                    IN  VARCHAR2
1159 ,   p_attribute5                    IN  VARCHAR2
1160 ,   p_attribute6                    IN  VARCHAR2
1161 ,   p_attribute7                    IN  VARCHAR2
1162 ,   p_attribute8                    IN  VARCHAR2
1163 ,   p_attribute9                    IN  VARCHAR2
1164 ,   p_context                       IN  VARCHAR2
1165 ,   p_created_by                    IN  NUMBER
1166 ,   p_creation_date                 IN  DATE
1167 ,   p_description                   IN  VARCHAR2
1168 ,   p_last_updated_by               IN  NUMBER
1169 ,   p_last_update_date              IN  DATE
1170 ,   p_last_update_login             IN  NUMBER
1171 ,   p_name                          IN  VARCHAR2
1172 ,   p_program_application_id        IN  NUMBER
1173 ,   p_program_id                    IN  NUMBER
1174 ,   p_program_update_date           IN  DATE
1175 ,   p_qualifier_rule_id             IN  NUMBER
1176 ,   p_request_id                    IN  NUMBER
1177 )
1178 IS
1179 l_return_status               VARCHAR2(1);
1180 l_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
1181 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
1182 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1183 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1184 BEGIN
1185 
1186     --  Load QUALIFIER_RULES record
1187 
1188     oe_debug_pub.add('in lock row with name as '||p_name);
1189 
1190     l_QUALIFIER_RULES_rec.attribute1 := p_attribute1;
1191     l_QUALIFIER_RULES_rec.attribute10 := p_attribute10;
1192     l_QUALIFIER_RULES_rec.attribute11 := p_attribute11;
1193     l_QUALIFIER_RULES_rec.attribute12 := p_attribute12;
1194     l_QUALIFIER_RULES_rec.attribute13 := p_attribute13;
1195     l_QUALIFIER_RULES_rec.attribute14 := p_attribute14;
1196     l_QUALIFIER_RULES_rec.attribute15 := p_attribute15;
1197     l_QUALIFIER_RULES_rec.attribute2 := p_attribute2;
1198     l_QUALIFIER_RULES_rec.attribute3 := p_attribute3;
1199     l_QUALIFIER_RULES_rec.attribute4 := p_attribute4;
1200     l_QUALIFIER_RULES_rec.attribute5 := p_attribute5;
1201     l_QUALIFIER_RULES_rec.attribute6 := p_attribute6;
1202     l_QUALIFIER_RULES_rec.attribute7 := p_attribute7;
1203     l_QUALIFIER_RULES_rec.attribute8 := p_attribute8;
1204     l_QUALIFIER_RULES_rec.attribute9 := p_attribute9;
1205     l_QUALIFIER_RULES_rec.context  := p_context;
1206     l_QUALIFIER_RULES_rec.created_by := p_created_by;
1207     l_QUALIFIER_RULES_rec.creation_date := p_creation_date;
1208     l_QUALIFIER_RULES_rec.description := p_description;
1209     l_QUALIFIER_RULES_rec.last_updated_by := p_last_updated_by;
1210     l_QUALIFIER_RULES_rec.last_update_date := p_last_update_date;
1211     l_QUALIFIER_RULES_rec.last_update_login := p_last_update_login;
1212     l_QUALIFIER_RULES_rec.name     := p_name;
1213     l_QUALIFIER_RULES_rec.program_application_id := p_program_application_id;
1214     l_QUALIFIER_RULES_rec.program_id := p_program_id;
1215     l_QUALIFIER_RULES_rec.program_update_date := p_program_update_date;
1216     l_QUALIFIER_RULES_rec.qualifier_rule_id := p_qualifier_rule_id;
1217     l_QUALIFIER_RULES_rec.request_id := p_request_id;
1218 
1219     --  Call QP_Qualifier_Rules_PVT.Lock_QUALIFIER_RULES
1220 
1221 
1222     l_QUALIFIER_RULES_rec.operation := QP_GLOBALS.G_OPR_LOCK;
1223 
1224     QP_Qualifier_Rules_PVT.Lock_QUALIFIER_RULES
1225     (   p_api_version_number          => 1.0
1226     ,   p_init_msg_list               => FND_API.G_TRUE
1227     ,   x_return_status               => l_return_status
1228     ,   x_msg_count                   => x_msg_count
1229     ,   x_msg_data                    => x_msg_data
1230     ,   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
1231     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
1232     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1233     );
1234 
1235     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1236 
1237         --  Set DB flag and write record to cache.
1238 
1239         l_x_QUALIFIER_RULES_rec.db_flag := FND_API.G_TRUE;
1240 
1241         Write_QUALIFIER_RULES
1242         (   p_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
1243         ,   p_db_record                   => TRUE
1244         );
1245 
1246     END IF;
1247 
1248     --  Set return status.
1249 
1250     x_return_status := l_return_status;
1251 
1252     --  Get message count and data
1253 
1254     OE_MSG_PUB.Count_And_Get
1255     (   p_count                       => x_msg_count
1256     ,   p_data                        => x_msg_data
1257     );
1258 
1259 
1260 EXCEPTION
1261 
1262     WHEN OTHERS THEN
1263 
1264         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1265         THEN
1266             OE_MSG_PUB.Add_Exc_Msg
1267             (   G_PKG_NAME
1268             ,   'Lock_Row'
1269             );
1270         END IF;
1271 
1272         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1273 
1274         --  Get message count and data
1275 
1276         OE_MSG_PUB.Count_And_Get
1277         (   p_count                       => x_msg_count
1278         ,   p_data                        => x_msg_data
1279         );
1280 
1281 
1282 
1283 END Lock_Row;
1284 
1285 --  Procedures maintaining QUALIFIER_RULES record cache.
1286 
1287 PROCEDURE Write_QUALIFIER_RULES
1288 (   p_QUALIFIER_RULES_rec           IN  QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type
1289 ,   p_db_record                     IN  BOOLEAN := FALSE
1290 )
1291 IS
1292 BEGIN
1293 
1294     g_QUALIFIER_RULES_rec := p_QUALIFIER_RULES_rec;
1295 
1296     IF p_db_record THEN
1297 
1298         g_db_QUALIFIER_RULES_rec := p_QUALIFIER_RULES_rec;
1299 
1300     END IF;
1301 
1302 END Write_Qualifier_Rules;
1303 
1304 FUNCTION Get_QUALIFIER_RULES
1305 (   p_db_record                     IN  BOOLEAN := FALSE
1306 ,   p_qualifier_rule_id             IN  NUMBER
1307 )
1308 RETURN QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type
1309 IS
1310 BEGIN
1311 
1312     oe_debug_pub.add('Entering Get_qualifier_rules');
1313     oe_debug_pub.add('with _qualifier_rule_id '|| p_qualifier_rule_id);
1314 
1315 
1316 
1317     IF  p_qualifier_rule_id <> g_QUALIFIER_RULES_rec.qualifier_rule_id
1318     THEN
1319 
1320         --  Query row from DB
1321 
1322         g_QUALIFIER_RULES_rec := QP_Qualifier_Rules_Util.Query_Row
1323         (   p_qualifier_rule_id           => p_qualifier_rule_id
1324         );
1325 
1326         g_QUALIFIER_RULES_rec.db_flag  := FND_API.G_TRUE;
1327 
1328         --  Load DB record
1329 
1330         g_db_QUALIFIER_RULES_rec       := g_QUALIFIER_RULES_rec;
1331 
1332     END IF;
1333 
1334     oe_debug_pub.add('leaving  Get_qualifier_rules');
1335 
1336 
1337 
1338     IF p_db_record THEN
1339 
1340     oe_debug_pub.add('with qualifier_rule_db_rec as id '|| g_db_QUALIFIER_RULES_rec.qualifier_rule_id);
1341     oe_debug_pub.add('with qualifier_rule_db_rec as name  '|| g_db_QUALIFIER_RULES_rec.name);
1342     oe_debug_pub.add('with qualifier_rule_db_rec as decription '|| g_db_QUALIFIER_RULES_rec.description);
1343 
1344         RETURN g_db_QUALIFIER_RULES_rec;
1345 
1346     ELSE
1347 
1348     oe_debug_pub.add('with qualifier_rule_rec as id '|| g_QUALIFIER_RULES_rec.qualifier_rule_id);
1349     oe_debug_pub.add('with qualifier_rule_rec as name  '|| g_QUALIFIER_RULES_rec.name);
1350     oe_debug_pub.add('with qualifier_rule_rec as decription '|| g_QUALIFIER_RULES_rec.description);
1351 
1352 
1353         RETURN g_QUALIFIER_RULES_rec;
1354 
1355     END IF;
1356 
1357 
1358 
1359 END Get_Qualifier_Rules;
1360 
1361 PROCEDURE Clear_Qualifier_Rules
1362 IS
1363 BEGIN
1364 
1365     g_QUALIFIER_RULES_rec          := QP_Qualifier_Rules_PUB.G_MISS_QUALIFIER_RULES_REC;
1366     g_db_QUALIFIER_RULES_rec       := QP_Qualifier_Rules_PUB.G_MISS_QUALIFIER_RULES_REC;
1367 
1368 END Clear_Qualifier_Rules;
1369 
1370 
1371 
1372 -- This procedure will be called from the client when the user
1373 -- clears a record
1374 Procedure Clear_Record
1375 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1376 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1377 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1378 ,   p_qualifier_rule_id             IN  NUMBER
1379 )
1380 IS
1381 l_return_status                     Varchar2(30);
1382 BEGIN
1383      OE_MSG_PUB.initialize;
1384  	x_return_status := FND_API.G_RET_STS_SUCCESS;
1385        QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
1386 					p_entity_code  => QP_GLOBALS.G_ENTITY_QUALIFIER_RULES
1387 					,p_entity_id    => p_qualifier_rule_id
1388 				     ,x_return_status => l_return_status);
1389 
1390         OE_MSG_PUB.Count_And_Get
1391         (   p_count                       => x_msg_count
1392         ,   p_data                        => x_msg_data
1393         );
1394 
1395 -- Clear the controller cache
1396 	clear_qualifier_rules;
1397 
1398 EXCEPTION
1399     WHEN OTHERS THEN
1400         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1401         THEN
1402             OE_MSG_PUB.Add_Exc_Msg
1403             (   G_PKG_NAME
1404             ,   'Clear_Record'
1405             );
1406         END IF;
1407         --  Get message count and data
1408         OE_MSG_PUB.Count_And_Get
1409         (   p_count                       => x_msg_count
1410         ,   p_data                        => x_msg_data
1411         );
1412         x_return_status := FND_API.G_RET_STS_ERROR;
1413 
1414 END Clear_Record;
1415 
1416 
1417 
1418 
1419 
1420 
1421 
1422 END QP_QP_Form_Qualifier_Rules;