[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;