[Home] [Help]
PACKAGE BODY: APPS.QP_LIMITS_PUB
Source
1 PACKAGE BODY QP_Limits_PUB AS
2 /* $Header: QPXPLMTB.pls 120.5 2006/10/25 06:55:19 nirmkuma ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Limits_PUB';
7
8 -- Forward declaration of Procedure Id_To_Value
9
10 PROCEDURE Id_To_Value
11 ( p_LIMITS_rec IN Limits_Rec_Type
12 , p_LIMIT_ATTRS_tbl IN Limit_Attrs_Tbl_Type
13 , p_LIMIT_BALANCES_tbl IN Limit_Balances_Tbl_Type
14 , x_LIMITS_val_rec OUT NOCOPY /* file.sql.39 change */ Limits_Val_Rec_Type
15 , x_LIMIT_ATTRS_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Val_Tbl_Type
16 , x_LIMIT_BALANCES_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Val_Tbl_Type
17 );
18
19 -- Forward declaration of procedure Value_To_Id
20
21 PROCEDURE Value_To_Id
22 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
23 , p_LIMITS_rec IN Limits_Rec_Type
24 , p_LIMITS_val_rec IN Limits_Val_Rec_Type
25 , p_LIMIT_ATTRS_tbl IN Limit_Attrs_Tbl_Type
26 , p_LIMIT_ATTRS_val_tbl IN Limit_Attrs_Val_Tbl_Type
27 , p_LIMIT_BALANCES_tbl IN Limit_Balances_Tbl_Type
28 , p_LIMIT_BALANCES_val_tbl IN Limit_Balances_Val_Tbl_Type
29 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ Limits_Rec_Type
30 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Tbl_Type
31 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Tbl_Type
32 );
33
34 -- Start of Comments
35 -- API name Process_Limits
36 -- Type Public
37 -- Function
38 --
39 -- Pre-reqs
40 --
41 -- Parameters
42 --
43 -- Version Current version = 1.0
44 -- Initial version = 1.0
45 --
46 -- Notes
47 --
48 -- End of Comments
49
50 PROCEDURE Process_Limits
51 ( p_api_version_number IN NUMBER
52 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
53 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
54 , p_commit IN VARCHAR2 := FND_API.G_FALSE
55 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
57 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 , p_LIMITS_rec IN Limits_Rec_Type :=
59 G_MISS_LIMITS_REC
60 , p_LIMITS_val_rec IN Limits_Val_Rec_Type :=
61 G_MISS_LIMITS_VAL_REC
62 , p_LIMIT_ATTRS_tbl IN Limit_Attrs_Tbl_Type :=
63 G_MISS_LIMIT_ATTRS_TBL
64 , p_LIMIT_ATTRS_val_tbl IN Limit_Attrs_Val_Tbl_Type :=
65 G_MISS_LIMIT_ATTRS_VAL_TBL
66 , p_LIMIT_BALANCES_tbl IN Limit_Balances_Tbl_Type :=
67 G_MISS_LIMIT_BALANCES_TBL
68 , p_LIMIT_BALANCES_val_tbl IN Limit_Balances_Val_Tbl_Type :=
69 G_MISS_LIMIT_BALANCES_VAL_TBL
70 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ Limits_Rec_Type
71 , x_LIMITS_val_rec OUT NOCOPY /* file.sql.39 change */ Limits_Val_Rec_Type
72 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Tbl_Type
73 , x_LIMIT_ATTRS_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Val_Tbl_Type
74 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Tbl_Type
75 , x_LIMIT_BALANCES_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Val_Tbl_Type
76 )
77 IS
78 l_api_version_number CONSTANT NUMBER := 1.0;
79 l_api_name CONSTANT VARCHAR2(30):= 'Process_Limits';
80 l_control_rec QP_GLOBALS.Control_Rec_Type;
81 l_return_status VARCHAR2(1);
82 l_LIMITS_rec Limits_Rec_Type;
83 l_p_LIMITS_rec Limits_Rec_Type;
84 l_LIMIT_ATTRS_tbl Limit_Attrs_Tbl_Type;
85 l_p_LIMIT_ATTRS_tbl Limit_Attrs_Tbl_Type;
86 l_LIMIT_BALANCES_tbl Limit_Balances_Tbl_Type;
87 l_p_LIMIT_BALANCES_tbl Limit_Balances_Tbl_Type;
88 l_qp_status VARCHAR2(1);
89 BEGIN
90
91 SAVEPOINT QP_Process_Limits;
92 -- Standard call to check for call compatibility
93
94 IF NOT FND_API.Compatible_API_Call
95 ( l_api_version_number
96 , p_api_version_number
97 , l_api_name
98 , G_PKG_NAME
99 )
100 THEN
101 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
102 END IF;
103
104 -- BOI not available when QP not installed
105
106 l_qp_status := QP_UTIL.GET_QP_STATUS;
107
108 IF l_qp_status = 'N'
109 THEN
110
111 l_return_status := FND_API.G_RET_STS_ERROR;
112 FND_MESSAGE.SET_NAME('QP','QP_PRICING_NOT_INSTALLED');
113 OE_MSG_PUB.Add;
114 RAISE FND_API.G_EXC_ERROR;
115
116 END IF;
117
118 -- Perform Value to Id conversion
119
120 Value_To_Id
121 ( x_return_status => l_return_status
122 , p_LIMITS_rec => p_LIMITS_rec
123 , p_LIMITS_val_rec => p_LIMITS_val_rec
124 , p_LIMIT_ATTRS_tbl => p_LIMIT_ATTRS_tbl
125 , p_LIMIT_ATTRS_val_tbl => p_LIMIT_ATTRS_val_tbl
126 , p_LIMIT_BALANCES_tbl => p_LIMIT_BALANCES_tbl
127 , p_LIMIT_BALANCES_val_tbl => p_LIMIT_BALANCES_val_tbl
128 , x_LIMITS_rec => l_LIMITS_rec
129 , x_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
130 , x_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
131 );
132
133 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
134 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
135 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
136 RAISE FND_API.G_EXC_ERROR;
137 END IF;
138
139
140 -- Call QP_Limits_PVT.Process_Limits
141 -- rbagri - set the called_from_ui indicator to 'N', as QP_Limits_PVT.Process_Limits is
142 -- being called from public package
143
144 l_control_rec.called_from_ui := 'N';
145 l_p_LIMITS_rec := l_LIMITS_rec;
146 l_p_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
147 l_p_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
148 QP_Limits_PVT.Process_Limits
149 ( p_api_version_number => 1.0
150 , p_init_msg_list => p_init_msg_list
151 , p_validation_level => FND_API.G_VALID_LEVEL_FULL
152 , p_commit => p_commit
153 , x_return_status => x_return_status
154 , x_msg_count => x_msg_count
155 , x_msg_data => x_msg_data
156 , p_control_rec => l_control_rec
157 , p_LIMITS_rec => l_p_LIMITS_rec
158 , p_LIMIT_ATTRS_tbl => l_p_LIMIT_ATTRS_tbl
159 , p_LIMIT_BALANCES_tbl => l_p_LIMIT_BALANCES_tbl
160 , x_LIMITS_rec => l_LIMITS_rec
161 , x_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
162 , x_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
163 );
164
165 -- Load Id OUT parameters.
166
167 x_LIMITS_rec := l_LIMITS_rec;
168 x_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
169 x_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
170
171 -- If p_return_values is TRUE then convert Ids to Values.
172
173 IF FND_API.to_Boolean(p_return_values) THEN
174
175 Id_To_Value
176 ( p_LIMITS_rec => l_LIMITS_rec
177 , p_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
178 , p_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
179 , x_LIMITS_val_rec => x_LIMITS_val_rec
180 , x_LIMIT_ATTRS_val_tbl => x_LIMIT_ATTRS_val_tbl
181 , x_LIMIT_BALANCES_val_tbl => x_LIMIT_BALANCES_val_tbl
182 );
183
184 END IF;
185 --Roll Back the transaction if the return status is not success and it is called from API, bug #5345652
186
187 If x_return_status <> 'S' AND l_control_rec.called_from_ui='N' THEN
188 -- Rollback;
189 Rollback TO QP_Process_Limits;
190 END IF;
191
192
193 EXCEPTION
194
195 WHEN FND_API.G_EXC_ERROR THEN
196
197 x_return_status := FND_API.G_RET_STS_ERROR;
198
199 -- Get message count and data
200
201 OE_MSG_PUB.Count_And_Get
202 ( p_count => x_msg_count
203 , p_data => x_msg_data
204 );
205 --Roll Back the transaction if the return status is not success and it is called from API, bug #5345652
206 If l_control_rec.called_from_ui='N' THEN
207 Rollback TO QP_Process_Limits;
208 END IF;
209
210 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
211
212 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
213
214 -- Get message count and data
215
216 OE_MSG_PUB.Count_And_Get
217 ( p_count => x_msg_count
218 , p_data => x_msg_data
219 );
220 --Roll Back the transaction if the return status is not success and it is called from API, bug #5345652
221 If l_control_rec.called_from_ui='N' THEN
222 Rollback TO QP_Process_Limits;
223 END IF;
224
225 WHEN OTHERS THEN
226
227 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
228
229 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
230 THEN
231 OE_MSG_PUB.Add_Exc_Msg
232 ( G_PKG_NAME
233 , 'Process_Limits'
234 );
235 END IF;
236
237 -- Get message count and data
238
239 OE_MSG_PUB.Count_And_Get
240 ( p_count => x_msg_count
241 , p_data => x_msg_data
242 );
243 --Roll Back the transaction if the return status is not success and it is called from API, bug #5345652
244 If l_control_rec.called_from_ui='N' THEN
245 Rollback TO QP_Process_Limits;
246 END IF;
247
248 END Process_Limits;
249
250 -- Start of Comments
251 -- API name Lock_Limits
252 -- Type Public
253 -- Function
254 --
255 -- Pre-reqs
256 --
257 -- Parameters
258 --
259 -- Version Current version = 1.0
260 -- Initial version = 1.0
261 --
262 -- Notes
263 --
264 -- End of Comments
265
266 PROCEDURE Lock_Limits
267 ( p_api_version_number IN NUMBER
268 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
269 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
270 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
271 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
272 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
273 , p_LIMITS_rec IN Limits_Rec_Type :=
274 G_MISS_LIMITS_REC
275 , p_LIMITS_val_rec IN Limits_Val_Rec_Type :=
276 G_MISS_LIMITS_VAL_REC
277 , p_LIMIT_ATTRS_tbl IN Limit_Attrs_Tbl_Type :=
278 G_MISS_LIMIT_ATTRS_TBL
279 , p_LIMIT_ATTRS_val_tbl IN Limit_Attrs_Val_Tbl_Type :=
280 G_MISS_LIMIT_ATTRS_VAL_TBL
281 , p_LIMIT_BALANCES_tbl IN Limit_Balances_Tbl_Type :=
282 G_MISS_LIMIT_BALANCES_TBL
283 , p_LIMIT_BALANCES_val_tbl IN Limit_Balances_Val_Tbl_Type :=
284 G_MISS_LIMIT_BALANCES_VAL_TBL
285 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ Limits_Rec_Type
286 , x_LIMITS_val_rec OUT NOCOPY /* file.sql.39 change */ Limits_Val_Rec_Type
287 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Tbl_Type
288 , x_LIMIT_ATTRS_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Val_Tbl_Type
289 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Tbl_Type
290 , x_LIMIT_BALANCES_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Val_Tbl_Type
291 )
292 IS
293 l_api_version_number CONSTANT NUMBER := 1.0;
294 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Limits';
295 l_return_status VARCHAR2(1);
296 l_LIMITS_rec Limits_Rec_Type;
297 l_p_LIMITS_rec Limits_Rec_Type;
298 l_LIMIT_ATTRS_tbl Limit_Attrs_Tbl_Type;
299 l_p_LIMIT_ATTRS_tbl Limit_Attrs_Tbl_Type;
300 l_LIMIT_BALANCES_tbl Limit_Balances_Tbl_Type;
301 l_p_LIMIT_BALANCES_tbl Limit_Balances_Tbl_Type;
302 BEGIN
303
304 -- Standard call to check for call compatibility
305
306 IF NOT FND_API.Compatible_API_Call
307 ( l_api_version_number
308 , p_api_version_number
309 , l_api_name
310 , G_PKG_NAME
311 )
312 THEN
313 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
314 END IF;
315
316 -- Perform Value to Id conversion
317
318 Value_To_Id
319 ( x_return_status => l_return_status
320 , p_LIMITS_rec => p_LIMITS_rec
321 , p_LIMITS_val_rec => p_LIMITS_val_rec
322 , p_LIMIT_ATTRS_tbl => p_LIMIT_ATTRS_tbl
323 , p_LIMIT_ATTRS_val_tbl => p_LIMIT_ATTRS_val_tbl
324 , p_LIMIT_BALANCES_tbl => p_LIMIT_BALANCES_tbl
325 , p_LIMIT_BALANCES_val_tbl => p_LIMIT_BALANCES_val_tbl
326 , x_LIMITS_rec => l_LIMITS_rec
327 , x_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
328 , x_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
329 );
330
331 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
332 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
333 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
334 RAISE FND_API.G_EXC_ERROR;
335 END IF;
336
337
338 -- Call QP_Limits_PVT.Lock_Limits
339 l_p_LIMITS_rec := l_LIMITS_rec;
340 l_p_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
341 l_p_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
342 QP_Limits_PVT.Lock_Limits
343 ( p_api_version_number => 1.0
344 , p_init_msg_list => p_init_msg_list
345 , x_return_status => x_return_status
346 , x_msg_count => x_msg_count
347 , x_msg_data => x_msg_data
348 , p_LIMITS_rec => l_p_LIMITS_rec
349 , p_LIMIT_ATTRS_tbl => l_p_LIMIT_ATTRS_tbl
350 , p_LIMIT_BALANCES_tbl => l_p_LIMIT_BALANCES_tbl
351 , x_LIMITS_rec => l_LIMITS_rec
352 , x_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
353 , x_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
354 );
355
356 -- Load Id OUT parameters.
357
358 x_LIMITS_rec := l_LIMITS_rec;
359 x_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
360 x_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
361
362 -- If p_return_values is TRUE then convert Ids to Values.
363
364 IF FND_API.to_Boolean(p_return_values) THEN
365
366 Id_To_Value
367 ( p_LIMITS_rec => l_LIMITS_rec
368 , p_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
369 , p_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
370 , x_LIMITS_val_rec => x_LIMITS_val_rec
371 , x_LIMIT_ATTRS_val_tbl => x_LIMIT_ATTRS_val_tbl
372 , x_LIMIT_BALANCES_val_tbl => x_LIMIT_BALANCES_val_tbl
373 );
374
375 END IF;
376
377 EXCEPTION
378
379 WHEN FND_API.G_EXC_ERROR THEN
380
381 x_return_status := FND_API.G_RET_STS_ERROR;
382
383 -- Get message count and data
384
385 OE_MSG_PUB.Count_And_Get
386 ( p_count => x_msg_count
387 , p_data => x_msg_data
388 );
389
390 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
391
392 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
393
394 -- Get message count and data
395
396 OE_MSG_PUB.Count_And_Get
397 ( p_count => x_msg_count
398 , p_data => x_msg_data
399 );
400
401 WHEN OTHERS THEN
402
403 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
404
405 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
406 THEN
407 OE_MSG_PUB.Add_Exc_Msg
408 ( G_PKG_NAME
409 , 'Lock_Limits'
410 );
411 END IF;
412
413 -- Get message count and data
414
415 OE_MSG_PUB.Count_And_Get
416 ( p_count => x_msg_count
417 , p_data => x_msg_data
418 );
419
420 END Lock_Limits;
421
422 -- Start of Comments
423 -- API name Get_Limits
424 -- Type Public
425 -- Function
426 --
427 -- Pre-reqs
428 --
429 -- Parameters
430 --
431 -- Version Current version = 1.0
432 -- Initial version = 1.0
433 --
434 -- Notes
435 --
436 -- End of Comments
437
438 PROCEDURE Get_Limits
439 ( p_api_version_number IN NUMBER
440 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
441 , p_return_values IN VARCHAR2 := FND_API.G_FALSE
442 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
443 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
444 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
445 , p_limit_id IN NUMBER :=
446 FND_API.G_MISS_NUM
447 , p_limit IN VARCHAR2 :=
448 FND_API.G_MISS_CHAR
449 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ Limits_Rec_Type
450 , x_LIMITS_val_rec OUT NOCOPY /* file.sql.39 change */ Limits_Val_Rec_Type
451 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Tbl_Type
452 , x_LIMIT_ATTRS_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Val_Tbl_Type
453 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Tbl_Type
454 , x_LIMIT_BALANCES_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Val_Tbl_Type
455 )
456 IS
457 l_api_version_number CONSTANT NUMBER := 1.0;
458 l_api_name CONSTANT VARCHAR2(30):= 'Get_Limits';
459 l_limit_id NUMBER := p_limit_id;
460 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
461 l_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
462 l_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
463 BEGIN
464
465 -- Standard call to check for call compatibility
466
467 IF NOT FND_API.Compatible_API_Call
468 ( l_api_version_number
469 , p_api_version_number
470 , l_api_name
471 , G_PKG_NAME
472 )
473 THEN
474 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
475 END IF;
476
477 -- Standard check for Val/ID conversion
478
479 IF p_limit = FND_API.G_MISS_CHAR
480 THEN
481
482 l_limit_id := p_limit_id;
483
484 ELSIF p_limit_id <> FND_API.G_MISS_NUM THEN
485
486 l_limit_id := p_limit_id;
487
488 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
489 THEN
490
491 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
492 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit');
493 OE_MSG_PUB.Add;
494
495 END IF;
496
497 ELSE
498
499 -- Convert Value to Id
500
501 l_limit_id := QP_Value_To_Id.limit
502 ( p_limit => p_limit
503 );
504
505 IF l_limit_id = FND_API.G_MISS_NUM THEN
506 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
507 THEN
508
509 FND_MESSAGE.SET_NAME('QP','Invalid Business Object Value');
510 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','limit');
511 OE_MSG_PUB.Add;
512
513 END IF;
514 END IF;
515
516 RAISE FND_API.G_EXC_ERROR;
517
518 END IF;
519
520
521 -- Call QP_Limits_PVT.Get_Limits
522
523 QP_Limits_PVT.Get_Limits
524 ( p_api_version_number => 1.0
525 , p_init_msg_list => p_init_msg_list
526 , x_return_status => x_return_status
527 , x_msg_count => x_msg_count
528 , x_msg_data => x_msg_data
529 , p_limit_id => l_limit_id
530 , x_LIMITS_rec => l_LIMITS_rec
531 , x_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
532 , x_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
533 );
534
535 -- Load Id OUT parameters.
536
537 x_LIMITS_rec := l_LIMITS_rec;
538 x_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
539 x_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
540
541 -- If p_return_values is TRUE then convert Ids to Values.
542
543 IF FND_API.TO_BOOLEAN(p_return_values) THEN
544
545 Id_To_Value
546 ( p_LIMITS_rec => l_LIMITS_rec
547 , p_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
548 , p_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
549 , x_LIMITS_val_rec => x_LIMITS_val_rec
550 , x_LIMIT_ATTRS_val_tbl => x_LIMIT_ATTRS_val_tbl
551 , x_LIMIT_BALANCES_val_tbl => x_LIMIT_BALANCES_val_tbl
552 );
553
554 END IF;
555
556 -- Set return status
557
558 x_return_status := FND_API.G_RET_STS_SUCCESS;
559
560 -- Get message count and data
561
562 OE_MSG_PUB.Count_And_Get
563 ( p_count => x_msg_count
564 , p_data => x_msg_data
565 );
566
567
568 EXCEPTION
569
570 WHEN FND_API.G_EXC_ERROR THEN
571
572 x_return_status := FND_API.G_RET_STS_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 FND_API.G_EXC_UNEXPECTED_ERROR THEN
582
583 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
584
585 -- Get message count and data
586
587 OE_MSG_PUB.Count_And_Get
588 ( p_count => x_msg_count
589 , p_data => x_msg_data
590 );
591
592 WHEN OTHERS THEN
593
594 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
595
596 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
597 THEN
598 OE_MSG_PUB.Add_Exc_Msg
599 ( G_PKG_NAME
600 , 'Get_Limits'
601 );
602 END IF;
603
604 -- Get message count and data
605
606 OE_MSG_PUB.Count_And_Get
607 ( p_count => x_msg_count
608 , p_data => x_msg_data
609 );
610
611 END Get_Limits;
612
613 -- Procedure Id_To_Value
614
615 PROCEDURE Id_To_Value
616 ( p_LIMITS_rec IN Limits_Rec_Type
617 , p_LIMIT_ATTRS_tbl IN Limit_Attrs_Tbl_Type
618 , p_LIMIT_BALANCES_tbl IN Limit_Balances_Tbl_Type
619 , x_LIMITS_val_rec OUT NOCOPY /* file.sql.39 change */ Limits_Val_Rec_Type
620 , x_LIMIT_ATTRS_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Val_Tbl_Type
621 , x_LIMIT_BALANCES_val_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Val_Tbl_Type
622 )
623 IS
624 BEGIN
625
626 -- Convert LIMITS
627
628 x_LIMITS_val_rec := QP_Limits_Util.Get_Values(p_LIMITS_rec);
629
630 -- Convert LIMIT_ATTRS
631
632 FOR I IN 1..p_LIMIT_ATTRS_tbl.COUNT LOOP
633 x_LIMIT_ATTRS_val_tbl(I) :=
634 QP_Limit_Attrs_Util.Get_Values(p_LIMIT_ATTRS_tbl(I));
635 END LOOP;
636
637 -- Convert LIMIT_BALANCES
638
639 FOR I IN 1..p_LIMIT_BALANCES_tbl.COUNT LOOP
640 x_LIMIT_BALANCES_val_tbl(I) :=
641 QP_Limit_Balances_Util.Get_Values(p_LIMIT_BALANCES_tbl(I));
642 END LOOP;
643
644 EXCEPTION
645
646 WHEN OTHERS THEN
647
648 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
649 THEN
650 OE_MSG_PUB.Add_Exc_Msg
651 ( G_PKG_NAME
652 , 'Id_To_Value'
653 );
654 END IF;
655
656 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
657
658 END Id_To_Value;
659
660 -- Procedure Value_To_Id
661
662 PROCEDURE Value_To_Id
663 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
664 , p_LIMITS_rec IN Limits_Rec_Type
665 , p_LIMITS_val_rec IN Limits_Val_Rec_Type
666 , p_LIMIT_ATTRS_tbl IN Limit_Attrs_Tbl_Type
667 , p_LIMIT_ATTRS_val_tbl IN Limit_Attrs_Val_Tbl_Type
668 , p_LIMIT_BALANCES_tbl IN Limit_Balances_Tbl_Type
669 , p_LIMIT_BALANCES_val_tbl IN Limit_Balances_Val_Tbl_Type
670 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ Limits_Rec_Type
671 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Attrs_Tbl_Type
672 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ Limit_Balances_Tbl_Type
673 )
674 IS
675 l_LIMITS_rec Limits_Rec_Type;
676 l_LIMIT_ATTRS_rec Limit_Attrs_Rec_Type;
677 l_LIMIT_BALANCES_rec Limit_Balances_Rec_Type;
678 l_index BINARY_INTEGER;
679 BEGIN
680
681 -- Init x_return_status.
682
683 x_return_status := FND_API.G_RET_STS_SUCCESS;
684
685 -- Convert LIMITS
686
687 l_LIMITS_rec := QP_Limits_Util.Get_Ids
688 ( p_LIMITS_rec => p_LIMITS_rec
689 , p_LIMITS_val_rec => p_LIMITS_val_rec
690 );
691
692 x_LIMITS_rec := l_LIMITS_rec;
693
694 IF l_LIMITS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
695 x_return_status := FND_API.G_RET_STS_ERROR;
696 END IF;
697
698 -- Convert LIMIT_ATTRS
699
700 x_LIMIT_ATTRS_tbl := p_LIMIT_ATTRS_tbl;
701
702 l_index := p_LIMIT_ATTRS_val_tbl.FIRST;
703
704 WHILE l_index IS NOT NULL LOOP
705
706 l_LIMIT_ATTRS_rec := QP_Limit_Attrs_Util.Get_Ids
707 ( p_LIMIT_ATTRS_rec => p_LIMIT_ATTRS_tbl(l_index)
708 , p_LIMIT_ATTRS_val_rec => p_LIMIT_ATTRS_val_tbl(l_index)
709 );
710
711 x_LIMIT_ATTRS_tbl(l_index) := l_LIMIT_ATTRS_rec;
712
713 IF l_LIMIT_ATTRS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
714 x_return_status := FND_API.G_RET_STS_ERROR;
715 END IF;
716
717 l_index := p_LIMIT_ATTRS_val_tbl.NEXT(l_index);
718
719 END LOOP;
720
721 -- Convert LIMIT_BALANCES
722
723 x_LIMIT_BALANCES_tbl := p_LIMIT_BALANCES_tbl;
724
725 l_index := p_LIMIT_BALANCES_val_tbl.FIRST;
726
727 WHILE l_index IS NOT NULL LOOP
728
729 l_LIMIT_BALANCES_rec := QP_Limit_Balances_Util.Get_Ids
730 ( p_LIMIT_BALANCES_rec => p_LIMIT_BALANCES_tbl(l_index)
731 , p_LIMIT_BALANCES_val_rec => p_LIMIT_BALANCES_val_tbl(l_index)
732 );
733
734 x_LIMIT_BALANCES_tbl(l_index) := l_LIMIT_BALANCES_rec;
735
736 IF l_LIMIT_BALANCES_rec.return_status = FND_API.G_RET_STS_ERROR THEN
737 x_return_status := FND_API.G_RET_STS_ERROR;
738 END IF;
739
740 l_index := p_LIMIT_BALANCES_val_tbl.NEXT(l_index);
741
742 END LOOP;
743
744 EXCEPTION
745
746 WHEN OTHERS THEN
747
748 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
749 THEN
750 OE_MSG_PUB.Add_Exc_Msg
751 ( G_PKG_NAME
752 , 'Value_To_Id'
753 );
754 END IF;
755
756 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
757
758 END Value_To_Id;
759
760 END QP_Limits_PUB;