DBA Data[Home] [Help]
Skip to content

PACKAGE BODY: APPS.QP_QUALIFIER_RULES_PUB

Source


1 PACKAGE BODY QP_Qualifier_Rules_PUB AS
2 /* $Header: QPXPQRQB.pls 120.4 2006/10/25 07:06:45 nirmkuma ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Qualifier_Rules_PUB';
7 
8 --  Forward declaration of Procedure Id_To_Value
9 
10 PROCEDURE Id_To_Value
11 (   p_QUALIFIER_RULES_rec           IN  Qualifier_Rules_Rec_Type
12 ,   p_QUALIFIERS_tbl                IN  Qualifiers_Tbl_Type
13 ,   x_QUALIFIER_RULES_val_rec       OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Val_Rec_Type
14 ,   x_QUALIFIERS_val_tbl            OUT NOCOPY /* file.sql.39 change */ Qualifiers_Val_Tbl_Type
15 );
16 
17 --  Forward declaration of procedure Value_To_Id
18 
19 PROCEDURE Value_To_Id
20 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
21 ,   p_QUALIFIER_RULES_rec           IN  Qualifier_Rules_Rec_Type
22 ,   p_QUALIFIER_RULES_val_rec       IN  Qualifier_Rules_Val_Rec_Type
23 ,   p_QUALIFIERS_tbl                IN  Qualifiers_Tbl_Type
24 ,   p_QUALIFIERS_val_tbl            IN  Qualifiers_Val_Tbl_Type
25 ,   x_QUALIFIER_RULES_rec           OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Rec_Type
26 ,   x_QUALIFIERS_tbl                OUT NOCOPY /* file.sql.39 change */ Qualifiers_Tbl_Type
27 );
28 
29 --  Start of Comments
30 --  API name    Process_Qualifier_Rules
31 --  Type        Public
32 --  Function
33 --
34 --  Pre-reqs
35 --
36 --  Parameters
37 --
38 --  Version     Current version = 1.0
39 --              Initial version = 1.0
40 --
41 --  Notes
42 --
43 --  End of Comments
44 
45 PROCEDURE Process_Qualifier_Rules
46 (   p_api_version_number            IN  NUMBER
47 ,   p_init_msg_list                 IN  VARCHAR2 := FND_API.G_FALSE
48 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
49 ,   p_commit                        IN  VARCHAR2 := FND_API.G_FALSE
50 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
52 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 ,   p_QUALIFIER_RULES_rec           IN  Qualifier_Rules_Rec_Type :=
54                                         G_MISS_QUALIFIER_RULES_REC
55 ,   p_QUALIFIER_RULES_val_rec       IN  Qualifier_Rules_Val_Rec_Type :=
56                                         G_MISS_QUALIFIER_RULES_VAL_REC
57 ,   p_QUALIFIERS_tbl                IN  Qualifiers_Tbl_Type :=
58                                         G_MISS_QUALIFIERS_TBL
59 ,   p_QUALIFIERS_val_tbl            IN  Qualifiers_Val_Tbl_Type :=
60                                         G_MISS_QUALIFIERS_VAL_TBL
61 ,   x_QUALIFIER_RULES_rec           OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Rec_Type
62 ,   x_QUALIFIER_RULES_val_rec       OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Val_Rec_Type
63 ,   x_QUALIFIERS_tbl                OUT NOCOPY /* file.sql.39 change */ Qualifiers_Tbl_Type
64 ,   x_QUALIFIERS_val_tbl            OUT NOCOPY /* file.sql.39 change */ Qualifiers_Val_Tbl_Type
65 )
66 IS
67 l_api_version_number          CONSTANT NUMBER := 1.0;
68 l_api_name                    CONSTANT VARCHAR2(30):= 'Process_Qualifier_Rules';
69 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
70 l_return_status               VARCHAR2(1);
71 l_QUALIFIER_RULES_rec         Qualifier_Rules_Rec_Type;
72 l_p_QUALIFIER_RULES_rec       Qualifier_Rules_Rec_Type;
73 l_QUALIFIERS_tbl              Qualifiers_Tbl_Type;
74 l_p_QUALIFIERS_tbl            Qualifiers_Tbl_Type;
75 
76 l_qp_status                   VARCHAR2(1);
77 l_list_source_code            VARCHAR2(10); --Bug3385041
78 
79 BEGIN
80 
81           SAVEPOINT QP_PQR;
82         --dbms_output.put_line('in public process qualifiers');
83 
84 
85     --  Standard call to check for call compatibility
86 
87     IF NOT FND_API.Compatible_API_Call
88            (   l_api_version_number
89            ,   p_api_version_number
90            ,   l_api_name
91            ,   G_PKG_NAME
92            )
93     THEN
94         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
95     END IF;
96 
97     --bug#3385041 begin
98     begin
99 	select list_source_code into l_list_source_code
100 	from qp_list_headers_b
101 	where list_header_id = p_QUALIFIERS_tbl(1).list_header_id;
102     exception
103         when others then
104 	   oe_debug_pub.add('Process_Qualifier_Rules - l_list_source_code error : '||sqlerrm);
105 	   null;
106     end;
107     --bug#3385041 end
108 
109     l_qp_status := QP_UTIL.get_qp_status;
110 
111     IF l_qp_status = 'S'
112     AND nvl(l_list_source_code,'NULL') <> QP_GLOBALS.G_ENTITY_BSO --Bug3385041
113     THEN -- Public API unavailable for Basic Pricing
114 
115        l_return_status := FND_API.G_RET_STS_ERROR;
116 	  FND_MESSAGE.SET_NAME('QP', 'QP_BASIC_PRICING_UNAVAILABLE');
117 	  OE_MSG_PUB.Add;
118        RAISE FND_API.G_EXC_ERROR;
119 
120     END IF;
121 
122 
123     --  Perform Value to Id conversion
124 
125     Value_To_Id
126     (   x_return_status               => l_return_status
127     ,   p_QUALIFIER_RULES_rec         => p_QUALIFIER_RULES_rec
128     ,   p_QUALIFIER_RULES_val_rec     => p_QUALIFIER_RULES_val_rec
129     ,   p_QUALIFIERS_tbl              => p_QUALIFIERS_tbl
130     ,   p_QUALIFIERS_val_tbl          => p_QUALIFIERS_val_tbl
131     ,   x_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
132     ,   x_QUALIFIERS_tbl              => l_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     --  Call QP_Qualifier_Rules_PVT.Process_Qualifier_Rules
143     -- mkarya - set the called_from_ui indicator to 'N', as
144     -- QP_Qualifier_Rules_PVT.Process_Qualifier_Rules is being called from public package
145 
146     l_control_rec.called_from_ui := 'N';
147      l_p_QUALIFIER_RULES_rec := l_QUALIFIER_RULES_rec; -- added for nocopy hint
148      l_p_QUALIFIERS_tbl := l_QUALIFIERS_tbl;
149     QP_Qualifier_Rules_PVT.Process_Qualifier_Rules
150     (   p_api_version_number          => 1.0
151     ,   p_init_msg_list               => p_init_msg_list
152     ,   p_validation_level            => FND_API.G_VALID_LEVEL_FULL
153     ,   p_commit                      => p_commit
154     ,   x_return_status               => x_return_status
155     ,   x_msg_count                   => x_msg_count
156     ,   x_msg_data                    => x_msg_data
157     ,   p_control_rec                 => l_control_rec
158     ,   p_QUALIFIER_RULES_rec         => l_p_QUALIFIER_RULES_rec
159     ,   p_QUALIFIERS_tbl              => l_p_QUALIFIERS_tbl
160     ,   x_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
161     ,   x_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
162     );
163 
164     --  Load Id OUT parameters.
165 
166     x_QUALIFIER_RULES_rec          := l_QUALIFIER_RULES_rec;
167     x_QUALIFIERS_tbl               := l_QUALIFIERS_tbl;
168 
169     --  If p_return_values is TRUE then convert Ids to Values.
170 
171     IF FND_API.to_Boolean(p_return_values) THEN
172 
173         Id_To_Value
174         (   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
175         ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
176         ,   x_QUALIFIER_RULES_val_rec     => x_QUALIFIER_RULES_val_rec
177         ,   x_QUALIFIERS_val_tbl          => x_QUALIFIERS_val_tbl
178         );
179 
180     END IF;
181 
182    --5345652
183     If x_return_status <> 'S' AND l_control_rec.called_from_ui='N' THEN
184                 Rollback TO QP_PQR;
185     END IF;
186    --5345652
187 
188 EXCEPTION
189 
190     WHEN FND_API.G_EXC_ERROR THEN
191 
192         x_return_status := FND_API.G_RET_STS_ERROR;
193 
194         --  Get message count and data
195 
196         OE_MSG_PUB.Count_And_Get
197         (   p_count                       => x_msg_count
198         ,   p_data                        => x_msg_data
199         );
200 
201    --5345652
202     If  l_control_rec.called_from_ui='N' THEN
203                 Rollback TO QP_PQR;
204     END IF;
205    --5345652
206 
207     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
208 
209         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
210 
211         --  Get message count and data
212 
213         OE_MSG_PUB.Count_And_Get
214         (   p_count                       => x_msg_count
215         ,   p_data                        => x_msg_data
216         );
217 
218    --5345652
219     If  l_control_rec.called_from_ui='N' THEN
220                 Rollback TO QP_PQR;
221     END IF;
222    --5345652
223 
224     WHEN OTHERS THEN
225 
226         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
227 
228         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
229         THEN
230             OE_MSG_PUB.Add_Exc_Msg
231             (   G_PKG_NAME
232             ,   'Process_Qualifier_Rules'
233             );
234         END IF;
235 
236         --  Get message count and data
237 
238         OE_MSG_PUB.Count_And_Get
239         (   p_count                       => x_msg_count
240         ,   p_data                        => x_msg_data
241         );
242 
243    --5345652
244     If  l_control_rec.called_from_ui='N' THEN
245                 Rollback TO QP_PQR;
246     END IF;
247    --5345652
248 
249 END Process_Qualifier_Rules;
250 
251 --  Start of Comments
252 --  API name    Lock_Qualifier_Rules
253 --  Type        Public
254 --  Function
255 --
256 --  Pre-reqs
257 --
258 --  Parameters
259 --
260 --  Version     Current version = 1.0
261 --              Initial version = 1.0
262 --
263 --  Notes
264 --
265 --  End of Comments
266 
267 PROCEDURE Lock_Qualifier_Rules
268 (   p_api_version_number            IN  NUMBER
269 ,   p_init_msg_list                 IN  VARCHAR2 := FND_API.G_FALSE
270 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
271 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
272 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
273 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
274 ,   p_QUALIFIER_RULES_rec           IN  Qualifier_Rules_Rec_Type :=
275                                         G_MISS_QUALIFIER_RULES_REC
276 ,   p_QUALIFIER_RULES_val_rec       IN  Qualifier_Rules_Val_Rec_Type :=
277                                         G_MISS_QUALIFIER_RULES_VAL_REC
278 ,   p_QUALIFIERS_tbl                IN  Qualifiers_Tbl_Type :=
279                                         G_MISS_QUALIFIERS_TBL
280 ,   p_QUALIFIERS_val_tbl            IN  Qualifiers_Val_Tbl_Type :=
281                                         G_MISS_QUALIFIERS_VAL_TBL
282 ,   x_QUALIFIER_RULES_rec           OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Rec_Type
283 ,   x_QUALIFIER_RULES_val_rec       OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Val_Rec_Type
284 ,   x_QUALIFIERS_tbl                OUT NOCOPY /* file.sql.39 change */ Qualifiers_Tbl_Type
285 ,   x_QUALIFIERS_val_tbl            OUT NOCOPY /* file.sql.39 change */ Qualifiers_Val_Tbl_Type
286 )
287 IS
288 l_api_version_number          CONSTANT NUMBER := 1.0;
289 l_api_name                    CONSTANT VARCHAR2(30):= 'Lock_Qualifier_Rules';
290 l_return_status               VARCHAR2(1);
291 l_QUALIFIER_RULES_rec         Qualifier_Rules_Rec_Type;
292 l_p_QUALIFIER_RULES_rec       Qualifier_Rules_Rec_Type;
293 l_QUALIFIERS_tbl              Qualifiers_Tbl_Type;
294 l_p_QUALIFIERS_tbl            Qualifiers_Tbl_Type;
295 BEGIN
296 
297     --  Standard call to check for call compatibility
298 
299     IF NOT FND_API.Compatible_API_Call
300            (   l_api_version_number
301            ,   p_api_version_number
302            ,   l_api_name
303            ,   G_PKG_NAME
304            )
305     THEN
306         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
307     END IF;
308 
309     --  Perform Value to Id conversion
310 
311     Value_To_Id
312     (   x_return_status               => l_return_status
313     ,   p_QUALIFIER_RULES_rec         => p_QUALIFIER_RULES_rec
314     ,   p_QUALIFIER_RULES_val_rec     => p_QUALIFIER_RULES_val_rec
315     ,   p_QUALIFIERS_tbl              => p_QUALIFIERS_tbl
316     ,   p_QUALIFIERS_val_tbl          => p_QUALIFIERS_val_tbl
317     ,   x_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
318     ,   x_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
319     );
320 
321     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
322         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
323     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
324         RAISE FND_API.G_EXC_ERROR;
325     END IF;
326 
327 
328     --  Call QP_Qualifier_Rules_PVT.Lock_Qualifier_Rules
329      l_p_QUALIFIER_RULES_rec := l_p_QUALIFIER_RULES_rec; -- added for nocopy hint
330      l_p_QUALIFIERS_tbl := l_p_QUALIFIERS_tbl;
331     QP_Qualifier_Rules_PVT.Lock_Qualifier_Rules
332     (   p_api_version_number          => 1.0
333     ,   p_init_msg_list               => p_init_msg_list
334     ,   x_return_status               => x_return_status
335     ,   x_msg_count                   => x_msg_count
336     ,   x_msg_data                    => x_msg_data
337     ,   p_QUALIFIER_RULES_rec         => l_p_QUALIFIER_RULES_rec
338     ,   p_QUALIFIERS_tbl              => l_p_QUALIFIERS_tbl
339     ,   x_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
340     ,   x_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
341     );
342 
343     --  Load Id OUT parameters.
344 
345     x_QUALIFIER_RULES_rec          := l_QUALIFIER_RULES_rec;
346     x_QUALIFIERS_tbl               := l_QUALIFIERS_tbl;
347 
348     --  If p_return_values is TRUE then convert Ids to Values.
349 
350     IF FND_API.to_Boolean(p_return_values) THEN
351 
352         Id_To_Value
353         (   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
354         ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
355         ,   x_QUALIFIER_RULES_val_rec     => x_QUALIFIER_RULES_val_rec
356         ,   x_QUALIFIERS_val_tbl          => x_QUALIFIERS_val_tbl
357         );
358 
359     END IF;
360 
361 EXCEPTION
362 
363     WHEN FND_API.G_EXC_ERROR THEN
364 
365         x_return_status := FND_API.G_RET_STS_ERROR;
366 
367         --  Get message count and data
368 
369         OE_MSG_PUB.Count_And_Get
370         (   p_count                       => x_msg_count
371         ,   p_data                        => x_msg_data
372         );
373 
374     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
375 
376         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
377 
378         --  Get message count and data
379 
380         OE_MSG_PUB.Count_And_Get
381         (   p_count                       => x_msg_count
382         ,   p_data                        => x_msg_data
383         );
384 
385     WHEN OTHERS THEN
386 
387         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
388 
389         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
390         THEN
391             OE_MSG_PUB.Add_Exc_Msg
392             (   G_PKG_NAME
393             ,   'Lock_Qualifier_Rules'
394             );
395         END IF;
396 
397         --  Get message count and data
398 
399         OE_MSG_PUB.Count_And_Get
400         (   p_count                       => x_msg_count
401         ,   p_data                        => x_msg_data
402         );
403 
404 END Lock_Qualifier_Rules;
405 
406 --  Start of Comments
407 --  API name    Get_Qualifier_Rules
408 --  Type        Public
409 --  Function
410 --
411 --  Pre-reqs
412 --
413 --  Parameters
414 --
415 --  Version     Current version = 1.0
416 --              Initial version = 1.0
417 --
418 --  Notes
419 --
420 --  End of Comments
421 
422 PROCEDURE Get_Qualifier_Rules
423 (   p_api_version_number            IN  NUMBER
424 ,   p_init_msg_list                 IN  VARCHAR2 := FND_API.G_FALSE
425 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
426 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
427 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
428 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
429 ,   p_qualifier_rule_id             IN  NUMBER :=
430                                         FND_API.G_MISS_NUM
431 ,   p_qualifier_rule                IN  VARCHAR2 :=
432                                         FND_API.G_MISS_CHAR
433 ,   x_QUALIFIER_RULES_rec           OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Rec_Type
434 ,   x_QUALIFIER_RULES_val_rec       OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Val_Rec_Type
435 ,   x_QUALIFIERS_tbl                OUT NOCOPY /* file.sql.39 change */ Qualifiers_Tbl_Type
436 ,   x_QUALIFIERS_val_tbl            OUT NOCOPY /* file.sql.39 change */ Qualifiers_Val_Tbl_Type
437 )
438 IS
439 l_api_version_number          CONSTANT NUMBER := 1.0;
440 l_api_name                    CONSTANT VARCHAR2(30):= 'Get_Qualifier_Rules';
441 l_qualifier_rule_id           NUMBER := p_qualifier_rule_id;
442 l_QUALIFIER_RULES_rec         QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
443 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
444 BEGIN
445 
446     --  Standard call to check for call compatibility
447 
448     IF NOT FND_API.Compatible_API_Call
449            (   l_api_version_number
450            ,   p_api_version_number
451            ,   l_api_name
452            ,   G_PKG_NAME
453            )
454     THEN
455         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
456     END IF;
457 
458     --  Standard check for Val/ID conversion
459 
460     IF  p_qualifier_rule = FND_API.G_MISS_CHAR
461     THEN
462 
463         l_qualifier_rule_id := p_qualifier_rule_id;
464 
465     ELSIF p_qualifier_rule_id <> FND_API.G_MISS_NUM THEN
466 
467         l_qualifier_rule_id := p_qualifier_rule_id;
468 
469         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
470         THEN
471 
472             FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
473             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_rule');
474             OE_MSG_PUB.Add;
475 
476         END IF;
477 
478     ELSE
479 
480         --  Convert Value to Id
481         --dbms_output.put_line('converting value to id');
482 
483         l_qualifier_rule_id := QP_Value_To_Id.qualifier_rule
484         (   p_qualifier_rule              => p_qualifier_rule
485         );
486 
487         --dbms_output.put_line('after convertid'||l_qualifier_rule_id);
488         --dbms_output.put_line('qualifier rule id is miss num');
489 
490         IF l_qualifier_rule_id = FND_API.G_MISS_NUM THEN
491             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
492             THEN
493 
494                 FND_MESSAGE.SET_NAME('QP','Invalid Business Object Value');
495                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_rule');
496                 OE_MSG_PUB.Add;
497 
498             END IF;
499         END IF;
500 
501           --commented by svdeshmu
502           --With this uncommented  , after QP_Value_to_id ,exeception is raised.
503 
504           RAISE FND_API.G_EXC_ERROR;
505 
506     END IF;
507 
508 
509     --  Call QP_Qualifier_Rules_PVT.Get_Qualifier_Rules
510 
511 
512 
513 
514     QP_Qualifier_Rules_PVT.Get_Qualifier_Rules
515     (   p_api_version_number          => 1.0
516     ,   p_init_msg_list               => p_init_msg_list
517     ,   x_return_status               => x_return_status
518     ,   x_msg_count                   => x_msg_count
519     ,   x_msg_data                    => x_msg_data
520     ,   p_qualifier_rule_id           => l_qualifier_rule_id
521     ,   x_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
522     ,   x_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
523     );
524 
525     --  Load Id OUT parameters.
526 
527     x_QUALIFIER_RULES_rec          := l_QUALIFIER_RULES_rec;
528     x_QUALIFIERS_tbl               := l_QUALIFIERS_tbl;
529 
530     --  If p_return_values is TRUE then convert Ids to Values.
531 
532     IF FND_API.TO_BOOLEAN(p_return_values) THEN
533 
534         Id_To_Value
535         (   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
536         ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
537         ,   x_QUALIFIER_RULES_val_rec     => x_QUALIFIER_RULES_val_rec
538         ,   x_QUALIFIERS_val_tbl          => x_QUALIFIERS_val_tbl
539         );
540 
541     END IF;
542 
543     --  Set return status
544 
545     x_return_status := FND_API.G_RET_STS_SUCCESS;
546 
547     --  Get message count and data
548 
549     OE_MSG_PUB.Count_And_Get
550     (   p_count                       => x_msg_count
551     ,   p_data                        => x_msg_data
552     );
553 
554 
555 EXCEPTION
556 
557     WHEN FND_API.G_EXC_ERROR THEN
558 
559     --dbms_output.put_line('calling get qualifiers g_exe_error');
560         x_return_status := FND_API.G_RET_STS_ERROR;
561 
562         --  Get message count and data
563 
564         OE_MSG_PUB.Count_And_Get
565         (   p_count                       => x_msg_count
566         ,   p_data                        => x_msg_data
567         );
568 
569     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
570     --dbms_output.put_line('calling get qualifiers unexpected error');
571 
572         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
573 
574         --  Get message count and data
575 
576         OE_MSG_PUB.Count_And_Get
577         (   p_count                       => x_msg_count
578         ,   p_data                        => x_msg_data
579         );
580 
581     WHEN OTHERS THEN
582     --dbms_output.put_line('calling get qualifiers other');
583 
584         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
585 
586         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
587         THEN
588             OE_MSG_PUB.Add_Exc_Msg
589             (   G_PKG_NAME
590             ,   'Get_Qualifier_Rules'
591             );
592         END IF;
593 
594         --  Get message count and data
595 
596         OE_MSG_PUB.Count_And_Get
597         (   p_count                       => x_msg_count
598         ,   p_data                        => x_msg_data
599         );
600 
601 END Get_Qualifier_Rules;
602 
603 PROCEDURE Copy_Qualifier_Rule
604 (  p_api_version_number            IN NUMBER
605 ,  p_init_msg_list                 IN VARCHAR2 :=FND_API.G_FALSE
606 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
607 ,   p_commit                        IN  VARCHAR2 := FND_API.G_FALSE
608 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
609 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
610 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
611 ,   p_qualifier_rule_id             IN  NUMBER :=
612                                         FND_API.G_MISS_NUM
613 ,   p_qualifier_rule                IN  VARCHAR2 :=
614                                         FND_API.G_MISS_CHAR
615 ,   p_to_qualifier_rule             IN VARCHAR2
616 ,   p_to_description                IN VARCHAR2 :=FND_API.G_MISS_CHAR
617 ,   x_qualifier_rule_id             OUT NOCOPY /* file.sql.39 change */ NUMBER) IS
618 
619 
620 l_api_version_number          CONSTANT NUMBER := 1.0;
621 l_api_name                    CONSTANT VARCHAR2(30):= 'Copy_Qualifier_Rule';
622 l_qualifier_rule_id           NUMBER;
623 l_p_qualifier_rule_id         NUMBER;
624 BEGIN
625 
626 
627     --  Standard call to check for call compatibility
628 
629     IF NOT FND_API.Compatible_API_Call
630            (   l_api_version_number
631            ,   p_api_version_number
632            ,   l_api_name
633            ,   G_PKG_NAME
634            )
635     THEN
636         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
637     END IF;
638 
639     --  Standard check for Val/ID conversion
640 
641     IF  p_qualifier_rule = FND_API.G_MISS_CHAR
642     THEN
643 
644         l_qualifier_rule_id := p_qualifier_rule_id;
645 
646     ELSIF p_qualifier_rule_id <> FND_API.G_MISS_NUM THEN
647 
648         l_qualifier_rule_id := p_qualifier_rule_id;
649 
650         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
651         THEN
652 
653             FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
654             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_rule');
655             OE_MSG_PUB.Add;
656 
657         END IF;
658 
659     ELSE
660 
661         --  Convert Value to Id
662         --dbms_output.put_line('converting value to id');
663 
664         l_qualifier_rule_id := QP_Value_To_Id.qualifier_rule
665         (   p_qualifier_rule              => p_qualifier_rule
666         );
667 
668         --dbms_output.put_line('after convertid'||l_qualifier_rule_id);
669         --dbms_output.put_line('qualifier rule id is miss num');
670 
671         IF l_qualifier_rule_id = FND_API.G_MISS_NUM THEN
672             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
673             THEN
674 
675                 FND_MESSAGE.SET_NAME('QP','Invalid Business Object Value');
676                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','qualifier_rule');
677                 OE_MSG_PUB.Add;
678 
679             END IF;
680         END IF;
681 
682           --commented by svdeshmu
683           --With this uncommented  , after QP_Value_to_id ,exeception is raised.
684 
685           --RAISE FND_API.G_EXC_ERROR;
686     END IF;
687 
688 
689     --  Call QP_Qualifier_Rules_PVT.Copy_Qualifier_Rules
690 
691 
692     l_p_qualifier_rule_id := l_qualifier_rule_id; -- added for nocopy hint
693 
694     QP_Qualifier_Rules_PVT.Copy_Qualifier_Rule
695     (   p_api_version_number            => 1.0
696     ,   p_init_msg_list                 => p_init_msg_list
697     ,   p_commit                        => p_commit
698     ,   x_return_status                 => x_return_status
699     ,   x_msg_count                     => x_msg_count
700     ,   x_msg_data                      => x_msg_data
701     ,   p_qualifier_rule_id             => l_p_qualifier_rule_id
702     ,   p_to_qualifier_rule             => p_to_qualifier_rule
703     ,   p_to_description                => p_to_description
704     ,   x_qualifier_rule_id             => l_qualifier_rule_id
705     );
706 
707 
708 
709 
710 
711 
712 
713     --  Load Id OUT parameters.
714 
715     x_qualifier_rule_id          := l_qualifier_rule_id;
716 
717     /*--  If p_return_values is TRUE then convert Ids to Values.
718 
719     IF FND_API.TO_BOOLEAN(p_return_values) THEN
720 
721         Id_To_Value
722         (   p_QUALIFIER_RULES_rec         => l_QUALIFIER_RULES_rec
723         ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
724         ,   x_QUALIFIER_RULES_val_rec     => x_QUALIFIER_RULES_val_rec
725         ,   x_QUALIFIERS_val_tbl          => x_QUALIFIERS_val_tbl
726         );
727 
728     END IF;*/
729 
730     --  Set return status
731 
732     x_return_status := FND_API.G_RET_STS_SUCCESS;
733 
734     --  Get message count and data
735 
736     OE_MSG_PUB.Count_And_Get
737     (   p_count                       => x_msg_count
738     ,   p_data                        => x_msg_data
739     );
740 
741 
742 EXCEPTION
743 
744     WHEN FND_API.G_EXC_ERROR THEN
745 
746     --dbms_output.put_line('calling get qualifiers g_exe_error');
747         x_return_status := FND_API.G_RET_STS_ERROR;
748 
749         --  Get message count and data
750 
751         OE_MSG_PUB.Count_And_Get
752         (   p_count                       => x_msg_count
753         ,   p_data                        => x_msg_data
754         );
755 
756     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
757     --dbms_output.put_line('calling get qualifiers unexpected error');
758 
759         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
760 
761         --  Get message count and data
762 
763         OE_MSG_PUB.Count_And_Get
764         (   p_count                       => x_msg_count
765         ,   p_data                        => x_msg_data
766         );
767 
768 
769     WHEN OTHERS THEN
770     --dbms_output.put_line('calling get qualifiers other');
771 
772         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
773 
774         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
775         THEN
776             OE_MSG_PUB.Add_Exc_Msg
777             (   G_PKG_NAME
778             ,   'Copy_Qualifier_Rule'
779             );
780         END IF;
781 
782         --  Get message count and data
783 
784         OE_MSG_PUB.Count_And_Get
785         (   p_count                       => x_msg_count
786         ,   p_data                        => x_msg_data
787         );
788 
789 END Copy_Qualifier_Rule;
790 
791 
792 
793 
794 
795 
796 
797 --  Procedure Id_To_Value
798 
799 PROCEDURE Id_To_Value
800 (   p_QUALIFIER_RULES_rec           IN  Qualifier_Rules_Rec_Type
801 ,   p_QUALIFIERS_tbl                IN  Qualifiers_Tbl_Type
802 ,   x_QUALIFIER_RULES_val_rec       OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Val_Rec_Type
803 ,   x_QUALIFIERS_val_tbl            OUT NOCOPY /* file.sql.39 change */ Qualifiers_Val_Tbl_Type
804 )
805 IS
806 BEGIN
807 
808     --  Convert QUALIFIER_RULES
809 
810 
811 
812     x_QUALIFIER_RULES_val_rec := QP_Qualifier_Rules_Util.Get_Values(p_QUALIFIER_RULES_rec);
813 
814     --  Convert QUALIFIERS
815 
816     FOR I IN 1..p_QUALIFIERS_tbl.COUNT LOOP
817         x_QUALIFIERS_val_tbl(I) :=
818             QP_Qualifiers_Util.Get_Values(p_QUALIFIERS_tbl(I));
819     END LOOP;
820 
821 EXCEPTION
822 
823     WHEN OTHERS THEN
824 
825         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
826         THEN
827             OE_MSG_PUB.Add_Exc_Msg
828             (   G_PKG_NAME
829             ,   'Id_To_Value'
830             );
831         END IF;
832 
833         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
834 
835 END Id_To_Value;
836 
837 --  Procedure Value_To_Id
838 
839 PROCEDURE Value_To_Id
840 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
841 ,   p_QUALIFIER_RULES_rec           IN  Qualifier_Rules_Rec_Type
842 ,   p_QUALIFIER_RULES_val_rec       IN  Qualifier_Rules_Val_Rec_Type
843 ,   p_QUALIFIERS_tbl                IN  Qualifiers_Tbl_Type
844 ,   p_QUALIFIERS_val_tbl            IN  Qualifiers_Val_Tbl_Type
845 ,   x_QUALIFIER_RULES_rec           OUT NOCOPY /* file.sql.39 change */ Qualifier_Rules_Rec_Type
846 ,   x_QUALIFIERS_tbl                OUT NOCOPY /* file.sql.39 change */ Qualifiers_Tbl_Type
847 )
848 IS
849 l_QUALIFIER_RULES_rec         Qualifier_Rules_Rec_Type;
850 l_QUALIFIERS_rec              Qualifiers_Rec_Type;
851 l_index                       BINARY_INTEGER;
852 BEGIN
853 
854     --  Init x_return_status.
855 
856     x_return_status := FND_API.G_RET_STS_SUCCESS;
857 
858     --  Convert QUALIFIER_RULES
859 
860     l_QUALIFIER_RULES_rec := QP_Qualifier_Rules_Util.Get_Ids
861     (   p_QUALIFIER_RULES_rec         => p_QUALIFIER_RULES_rec
862     ,   p_QUALIFIER_RULES_val_rec     => p_QUALIFIER_RULES_val_rec
863     );
864 
865     x_QUALIFIER_RULES_rec          := l_QUALIFIER_RULES_rec;
866 
867     IF l_QUALIFIER_RULES_rec.return_status = FND_API.G_RET_STS_ERROR THEN
868         x_return_status := FND_API.G_RET_STS_ERROR;
869     END IF;
870 
871     --  Convert QUALIFIERS
872 
873     x_QUALIFIERS_tbl := p_QUALIFIERS_tbl;
874 
875     l_index := p_QUALIFIERS_val_tbl.FIRST;
876 
877     WHILE l_index IS NOT NULL LOOP
878 
879 
880         l_QUALIFIERS_rec := QP_Qualifiers_Util.Get_Ids
881         (   p_QUALIFIERS_rec              => p_QUALIFIERS_tbl(l_index)
882         ,   p_QUALIFIERS_val_rec          => p_QUALIFIERS_val_tbl(l_index)
883         );
884 
885         x_QUALIFIERS_tbl(l_index)      := l_QUALIFIERS_rec;
886 
887         IF l_QUALIFIERS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
888             x_return_status := FND_API.G_RET_STS_ERROR;
889         END IF;
890 
891         l_index := p_QUALIFIERS_val_tbl.NEXT(l_index);
892 
893     END LOOP;
894 
895 EXCEPTION
896 
897     WHEN OTHERS THEN
898 
899         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
900         THEN
901             OE_MSG_PUB.Add_Exc_Msg
902             (   G_PKG_NAME
903             ,   'Value_To_Id'
904             );
905         END IF;
906 
907         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
908 
909 END Value_To_Id;
910 
911 END QP_Qualifier_Rules_PUB;