[Home] [Help]
PACKAGE BODY: APPS.QP_LIMITS_PVT
Source
1 PACKAGE BODY QP_Limits_PVT AS
2 /* $Header: QPXVLMTB.pls 120.3 2005/10/03 07:28:10 prarasto ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Limits_PVT';
7
8 -- Limits
9
10 PROCEDURE Limits
11 ( p_validation_level IN NUMBER
12 , p_control_rec IN QP_GLOBALS.Control_Rec_Type
13 , p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
14 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type
15 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
16 , x_old_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
17 )
18 IS
19 l_return_status VARCHAR2(1);
20 l_control_rec QP_GLOBALS.Control_Rec_Type;
21 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_LIMITS_rec;
22 l_old_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_old_LIMITS_rec;
23
24 l_p_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type; --[prarasto]
25
26 BEGIN
27
28 -- Load API control record
29
30 l_control_rec := QP_GLOBALS.Init_Control_Rec
31 ( p_operation => l_LIMITS_rec.operation
32 , p_control_rec => p_control_rec
33 );
34
35 -- Set record return status.
36
37 l_LIMITS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
38
39 -- Prepare record.
40
41 IF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
42
43 l_LIMITS_rec.db_flag := FND_API.G_FALSE;
44
45 -- Set missing old record elements to NULL.
46
47 l_old_LIMITS_rec :=
48 QP_Limits_Util.Convert_Miss_To_Null (l_old_LIMITS_rec);
49
50 ELSIF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_UPDATE
51 OR l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_DELETE
52 THEN
53
54 l_LIMITS_rec.db_flag := FND_API.G_TRUE;
55
56 -- Query Old if missing
57
58 IF l_old_LIMITS_rec.limit_id = FND_API.G_MISS_NUM
59 THEN
60
61 l_old_LIMITS_rec := QP_Limits_Util.Query_Row
62 ( p_limit_id => l_LIMITS_rec.limit_id
63 );
64
65 ELSE
66
67 -- Set missing old record elements to NULL.
68
69 l_old_LIMITS_rec :=
70 QP_Limits_Util.Convert_Miss_To_Null (l_old_LIMITS_rec);
71
72 END IF;
73
74 -- Complete new record from old
75 --dbms_output.put_line('Processing Limits - Calling QP_Limits_Util.Complete_Record ' || l_return_status);
76 oe_debug_pub.add('Processing Limits - Calling QP_Limits_Util.Complete_Record ' || l_return_status);
77
78 l_LIMITS_rec := QP_Limits_Util.Complete_Record
79 ( p_LIMITS_rec => l_LIMITS_rec
80 , p_old_LIMITS_rec => l_old_LIMITS_rec
81 );
82
83 END IF;
84
85 -- Attribute level validation.
86
87 IF l_control_rec.default_attributes
88 OR l_control_rec.change_attributes
89 THEN
90
91 IF p_validation_level > FND_API.G_VALID_LEVEL_NONE THEN
92 --dbms_output.put_line('Processing Limits - Calling QP_Validate_Limits.Attributes' || l_return_status);
93 oe_debug_pub.add('Processing Limits - Calling QP_Validate_Limits.Attributes' || l_return_status);
94 QP_Validate_Limits.Attributes
95 ( x_return_status => l_return_status
96 , p_LIMITS_rec => l_LIMITS_rec
97 , p_old_LIMITS_rec => l_old_LIMITS_rec
98 );
99
100 oe_debug_pub.add('Processing Limits - After QP_Validate_Limits.Attributes ' || l_return_status);
101 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
102 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
103 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
104 RAISE FND_API.G_EXC_ERROR;
105 END IF;
106
107 END IF;
108
109 END IF;
110
111 -- Clear dependent attributes.
112 --dbms_output.put_line('Processing Limits - Calling QP_Limits_Util.Clear_Dependent_Attr' || l_return_status);
113 oe_debug_pub.add('Processing Limits - Calling QP_Limits_Util.Clear_Dependent_Attr' || l_return_status);
114 IF l_control_rec.change_attributes THEN
115
116 l_p_LIMITS_rec := l_LIMITS_rec; --[prarasto]
117
118 QP_Limits_Util.Clear_Dependent_Attr
119 ( p_LIMITS_rec => l_p_LIMITS_rec
120 , p_old_LIMITS_rec => l_old_LIMITS_rec
121 , x_LIMITS_rec => l_LIMITS_rec
122 );
123
124 END IF;
125
126 -- Default missing attributes
127
128 IF l_control_rec.default_attributes
129 OR l_control_rec.change_attributes
130 THEN
131 --dbms_output.put_line('Limit ID Before calling Default Package ' || l_LIMITS_rec.limit_id);
132 oe_debug_pub.add('Limit ID Before calling Default Package ' || l_LIMITS_rec.limit_id);
133 --dbms_output.put_line('Processing Limits - Calling QP_Default_Limits.Attributes' || l_return_status);
134 oe_debug_pub.add('Processing Limits - Calling QP_Default_Limits.Attributes' || l_return_status);
135 IF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
136
137 l_p_LIMITS_rec := l_LIMITS_rec; --[prarasto]
138
139 QP_Default_Limits.Attributes
140 ( p_LIMITS_rec => l_p_LIMITS_rec
141 , x_LIMITS_rec => l_LIMITS_rec
142 );
143 END IF;
144 --dbms_output.put_line('Limit ID After calling Default Package ' || l_LIMITS_rec.limit_id);
145 oe_debug_pub.add('Limit ID After calling Default Package ' || l_LIMITS_rec.limit_id);
146
147 END IF;
148
149 -- Apply attribute changes
150
151 IF l_control_rec.default_attributes
152 OR l_control_rec.change_attributes
153 THEN
154 --dbms_output.put_line('Processing Limits - Calling QP_Limits_Util.Apply_Attribute_Changes' || l_return_status);
155 oe_debug_pub.add('Processing Limits - Calling QP_Limits_Util.Apply_Attribute_Changes' || l_return_status);
156
157 l_p_LIMITS_rec := l_LIMITS_rec; --[prarasto]
158
159 QP_Limits_Util.Apply_Attribute_Changes
160 ( p_LIMITS_rec => l_p_LIMITS_rec
161 , p_old_LIMITS_rec => l_old_LIMITS_rec
162 , x_LIMITS_rec => l_LIMITS_rec
163 );
164
165 END IF;
166
167 -- Entity level validation.
168
169 IF l_control_rec.validate_entity THEN
170
171 IF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_CREATE OR
172 l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
173
174 QP_Validate_Limits.Entity
175 ( x_return_status => l_return_status
176 , p_LIMITS_rec => l_LIMITS_rec
177 , p_old_LIMITS_rec => l_old_LIMITS_rec
178 );
179
180 END IF;
181
182 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
183 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
184 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
185 RAISE FND_API.G_EXC_ERROR;
186 END IF;
187
188 IF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
189
190 QP_Validate_Limits.Entity_Delete
191 ( x_return_status => l_return_status
192 , p_LIMITS_rec => l_LIMITS_rec
193 );
194
195 ELSIF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
196
197 QP_Validate_Limits.Entity_Update
198 ( x_return_status => l_return_status
199 , p_LIMITS_rec => l_LIMITS_rec
200 );
201 END IF;
202
203
204 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
205 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
206 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
207 RAISE FND_API.G_EXC_ERROR;
208 END IF;
209
210 END IF;
211
212 -- Step 4. Write to DB
213
214 IF l_control_rec.write_to_db THEN
215 --dbms_output.put_line('Processing Limits - Calling QP_Limits_Util.PRE_WRITE_PROCESS' || l_return_status);
216 oe_debug_pub.add('Processing Limits - Calling QP_Limits_Util.PRE_WRITE_PROCESS' || l_return_status);
217
218 l_p_LIMITS_rec := l_LIMITS_rec; --[prarasto]
219
220 QP_Limits_Util.PRE_WRITE_PROCESS
221 ( p_LIMITS_rec => l_p_LIMITS_rec
222 , p_old_LIMITS_rec => l_old_LIMITS_rec
223 , x_LIMITS_rec => l_LIMITS_rec
224 );
225 --dbms_output.put_line('Limit ID After calling PRE_WRITE_PROCESS ' || l_LIMITS_rec.limit_id);
226 oe_debug_pub.add('Limit ID After calling PRE_WRITE_PROCESS ' || l_LIMITS_rec.limit_id);
227
228 END IF;
229
230 IF l_control_rec.write_to_db THEN
231
232 IF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
233 --dbms_output.put_line('Processing Limits - QP_Limits_Util.Delete_Row' || l_return_status);
234 oe_debug_pub.add('Processing Limits - QP_Limits_Util.Delete_Row' || l_return_status);
235 QP_Limits_Util.Delete_Row
236 ( p_limit_id => l_LIMITS_rec.limit_id
237 );
238
239 ELSE
240
241 -- Get Who Information
242
243 l_LIMITS_rec.last_update_date := SYSDATE;
244 l_LIMITS_rec.last_updated_by := FND_GLOBAL.USER_ID;
245 l_LIMITS_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
246
247 IF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
248 --dbms_output.put_line('Processing Limits - QP_Limits_Util.Update_Row' || l_return_status);
249 oe_debug_pub.add('Processing Limits - QP_Limits_Util.Update_Row' || l_return_status);
250 QP_Limits_Util.Update_Row (l_LIMITS_rec);
251
252 ELSIF l_LIMITS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
253
254 l_LIMITS_rec.creation_date := SYSDATE;
255 l_LIMITS_rec.created_by := FND_GLOBAL.USER_ID;
256 --dbms_output.put_line('Processing Limits - QP_Limits_Util.Insert_Row' || l_return_status);
257 oe_debug_pub.add('Processing Limits - QP_Limits_Util.Insert_Row' || l_return_status);
258 QP_Limits_Util.Insert_Row (l_LIMITS_rec);
259
260 END IF;
261
262 END IF;
263
264 END IF;
265
266 -- Load OUT parameters
267
268 x_LIMITS_rec := l_LIMITS_rec;
269 x_old_LIMITS_rec := l_old_LIMITS_rec;
270
271 EXCEPTION
272 WHEN FND_API.G_EXC_ERROR THEN
273 --dbms_output.put_line('Processing Limits - In Exception' || l_return_status);
274 oe_debug_pub.add('Processing Limits - In Exception' || l_return_status);
275
276 l_LIMITS_rec.return_status := FND_API.G_RET_STS_ERROR;
277 x_LIMITS_rec := l_LIMITS_rec;
278 x_old_LIMITS_rec := l_old_LIMITS_rec;
279 RAISE;
280
281 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
282
283 l_LIMITS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
284 x_LIMITS_rec := l_LIMITS_rec;
285 x_old_LIMITS_rec := l_old_LIMITS_rec;
286
287 RAISE;
288
289 WHEN OTHERS THEN
290
291 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
292 THEN
293 OE_MSG_PUB.Add_Exc_Msg
294 ( G_PKG_NAME
295 , 'Limits'
296 );
297 END IF;
298
299 l_LIMITS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
300 x_LIMITS_rec := l_LIMITS_rec;
301 x_old_LIMITS_rec := l_old_LIMITS_rec;
302
303 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
304
305 END Limits;
306
307 -- Limit_Attrss
308
309 PROCEDURE Limit_Attrss
310 ( p_validation_level IN NUMBER
311 , p_control_rec IN QP_GLOBALS.Control_Rec_Type
312 , p_LIMIT_ATTRS_tbl IN QP_Limits_PUB.Limit_Attrs_Tbl_Type
313 , p_old_LIMIT_ATTRS_tbl IN QP_Limits_PUB.Limit_Attrs_Tbl_Type
314 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Tbl_Type
315 , x_old_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Tbl_Type
316 )
317 IS
318 l_return_status VARCHAR2(1);
319 l_control_rec QP_GLOBALS.Control_Rec_Type;
320 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
321 l_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
322 l_old_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
323 l_old_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
324
325 l_p_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type; --[prarasto]
326 BEGIN
327
328 -- Init local table variables.
329
330 l_LIMIT_ATTRS_tbl := p_LIMIT_ATTRS_tbl;
331 l_old_LIMIT_ATTRS_tbl := p_old_LIMIT_ATTRS_tbl;
332
333 FOR I IN 1..l_LIMIT_ATTRS_tbl.COUNT LOOP
334 BEGIN
335
336 -- Load local records.
337
338 l_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_tbl(I);
339
340 IF l_old_LIMIT_ATTRS_tbl.EXISTS(I) THEN
341 l_old_LIMIT_ATTRS_rec := l_old_LIMIT_ATTRS_tbl(I);
342 ELSE
343 l_old_LIMIT_ATTRS_rec := QP_Limits_PUB.G_MISS_LIMIT_ATTRS_REC;
344 END IF;
345
346 -- Load API control record
347
348 l_control_rec := QP_GLOBALS.Init_Control_Rec
349 ( p_operation => l_LIMIT_ATTRS_rec.operation
350 , p_control_rec => p_control_rec
351 );
352
353 -- Set record return status.
354
355 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_SUCCESS;
356
357 -- Prepare record.
358
359 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
360
361 l_LIMIT_ATTRS_rec.db_flag := FND_API.G_FALSE;
362
363 -- Set missing old record elements to NULL.
364
365 l_old_LIMIT_ATTRS_rec :=
366 QP_Limit_Attrs_Util.Convert_Miss_To_Null (l_old_LIMIT_ATTRS_rec);
367
368 ELSIF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_UPDATE
369 OR l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_DELETE
370 THEN
371
372 l_LIMIT_ATTRS_rec.db_flag := FND_API.G_TRUE;
373
374 -- Query Old if missing
375
376 IF l_old_LIMIT_ATTRS_rec.limit_attribute_id = FND_API.G_MISS_NUM
377 THEN
378
379 l_old_LIMIT_ATTRS_rec := QP_Limit_Attrs_Util.Query_Row
380 ( p_limit_attribute_id => l_LIMIT_ATTRS_rec.limit_attribute_id
381 );
382
383 ELSE
384
385 -- Set missing old record elements to NULL.
386
387 l_old_LIMIT_ATTRS_rec :=
388 QP_Limit_Attrs_Util.Convert_Miss_To_Null (l_old_LIMIT_ATTRS_rec);
389
390 END IF;
391
392 -- Complete new record from old
393
394 l_LIMIT_ATTRS_rec := QP_Limit_Attrs_Util.Complete_Record
395 ( p_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
396 , p_old_LIMIT_ATTRS_rec => l_old_LIMIT_ATTRS_rec
397 );
398
399 END IF;
400
401 -- Attribute level validation.
402
403 IF l_control_rec.default_attributes
404 OR l_control_rec.change_attributes
405 THEN
406
407 IF p_validation_level > FND_API.G_VALID_LEVEL_NONE THEN
408 --dbms_output.put_line('Processing Limit Attributes- Calling QP_Validate_Limit_Attrs.Attributes' || l_return_status);
409 oe_debug_pub.add('Processing Limit Attributes- Calling QP_Validate_Limit_Attrs.Attributes' || l_return_status);
410
411 QP_Validate_Limit_Attrs.Attributes
412 ( x_return_status => l_return_status
413 , p_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
414 , p_old_LIMIT_ATTRS_rec => l_old_LIMIT_ATTRS_rec
415 );
416
417 --dbms_output.put_line('Processing Limit Attributes- After QP_Validate_Limit_Attrs.Attributes' || l_return_status);
418 oe_debug_pub.add('Processing Limit Attributes- After QP_Validate_Limit_Attrs.Attributes' || l_return_status);
419 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
420 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
421 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
422 RAISE FND_API.G_EXC_ERROR;
423 END IF;
424
425 END IF;
426
427 END IF;
428
429 -- Clear dependent attributes.
430
431 IF l_control_rec.change_attributes THEN
432
433 l_p_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_rec; --[prarasto]
434
435 QP_Limit_Attrs_Util.Clear_Dependent_Attr
436 ( p_LIMIT_ATTRS_rec => l_p_LIMIT_ATTRS_rec
437 , p_old_LIMIT_ATTRS_rec => l_old_LIMIT_ATTRS_rec
438 , x_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
439 );
440
441 END IF;
442
443 -- Default missing attributes
444
445 IF l_control_rec.default_attributes
446 OR l_control_rec.change_attributes
447 THEN
448
449 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
450
451 l_p_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_rec; --[prarasto]
452
453 QP_Default_Limit_Attrs.Attributes
454 ( p_LIMIT_ATTRS_rec => l_p_LIMIT_ATTRS_rec
455 , x_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
456 );
457 END IF;
458
459 END IF;
460
461 -- Apply attribute changes
462
463 IF l_control_rec.default_attributes
464 OR l_control_rec.change_attributes
465 THEN
466
467 --dbms_output.put_line('Processing Limit Attributes- Calling QP_Limit_Attrs_Util.Apply_Attribute_Changes' || l_return_status);
468 oe_debug_pub.add('Processing Limit Attributes- Calling QP_Limit_Attrs_Util.Apply_Attribute_Changes' || l_return_status);
469
470 l_p_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_rec; --[prarasto]
471
472 QP_Limit_Attrs_Util.Apply_Attribute_Changes
473 ( p_LIMIT_ATTRS_rec => l_p_LIMIT_ATTRS_rec
474 , p_old_LIMIT_ATTRS_rec => l_old_LIMIT_ATTRS_rec
475 , x_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
476 );
477
478 END IF;
479
480 -- Entity level validation.
481
482 IF l_control_rec.validate_entity THEN
483
484 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_CREATE OR
485 l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
486
487 --dbms_output.put_line('Processing Limit Attributes- Calling QP_Validate_Limit_Attrs.Entity' || l_return_status);
488 oe_debug_pub.add('Processing Limit Attributes- Calling QP_Validate_Limit_Attrs.Entity' || l_return_status);
489 QP_Validate_Limit_Attrs.Entity
490 ( x_return_status => l_return_status
491 , p_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
492 , p_old_LIMIT_ATTRS_rec => l_old_LIMIT_ATTRS_rec
493 );
494
495 END IF;
496
497 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
498 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
499 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
500 RAISE FND_API.G_EXC_ERROR;
501 END IF;
502
503 --dbms_output.put_line('Processing Limit Attributes- After QP_Validate_Limit_Attrs.Entity' || l_return_status);
504 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
505
506 QP_Validate_Limit_Attrs.Entity_Insert
507 ( x_return_status => l_return_status
508 , p_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
509 );
510
511 ELSIF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
512
513 QP_Validate_Limit_Attrs.Entity_Delete
514 ( x_return_status => l_return_status
515 , p_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
516 );
517
518 ELSIF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
519
520 QP_Validate_Limit_Attrs.Entity_Update
521 ( x_return_status => l_return_status
522 , p_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
523 );
524
525 END IF;
526
527
528 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
529 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
530 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
531 RAISE FND_API.G_EXC_ERROR;
532 END IF;
533
534 END IF;
535
536 -- Step 4. Write to DB
537
538 IF l_control_rec.write_to_db THEN
539
540 --dbms_output.put_line('Processing Limit Attributes- Calling QP_Limit_Attrs_Util.PRE_WRITE_PROCESS' || l_return_status);
541 oe_debug_pub.add('Processing Limit Attributes- Calling QP_Limit_Attrs_Util.PRE_WRITE_PROCESS' || l_return_status);
542 l_p_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_rec; --[prarasto]
543
544 QP_Limit_Attrs_Util.PRE_WRITE_PROCESS
545 ( p_LIMIT_ATTRS_rec => l_p_LIMIT_ATTRS_rec
546 , p_old_LIMIT_ATTRS_rec => l_old_LIMIT_ATTRS_rec
547 , x_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
548 );
549
550 END IF;
551
552 IF l_control_rec.write_to_db THEN
553
554 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
555
556 QP_Limit_Attrs_Util.Delete_Row
557 ( p_limit_attribute_id => l_LIMIT_ATTRS_rec.limit_attribute_id
558 );
559
560 ELSE
561
562 -- Get Who Information
563
564 l_LIMIT_ATTRS_rec.last_update_date := SYSDATE;
565 l_LIMIT_ATTRS_rec.last_updated_by := FND_GLOBAL.USER_ID;
566 l_LIMIT_ATTRS_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
567
568 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
569
570 QP_Limit_Attrs_Util.Update_Row (l_LIMIT_ATTRS_rec);
571
572 ELSIF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
573
574 l_LIMIT_ATTRS_rec.creation_date := SYSDATE;
575 l_LIMIT_ATTRS_rec.created_by := FND_GLOBAL.USER_ID;
576
577 --dbms_output.put_line('Processing Limit Attributes- Calling QP_Limit_Attrs_Util.Insert_Row' || l_return_status);
578 oe_debug_pub.add('Processing Limit Attributes- Calling QP_Limit_Attrs_Util.Insert_Row' || l_return_status);
579 QP_Limit_Attrs_Util.Insert_Row (l_LIMIT_ATTRS_rec);
580
581 END IF;
582
583 END IF;
584
585 END IF;
586
587 -- Load tables.
588
589 l_LIMIT_ATTRS_tbl(I) := l_LIMIT_ATTRS_rec;
590 l_old_LIMIT_ATTRS_tbl(I) := l_old_LIMIT_ATTRS_rec;
591
592 -- For loop exception handler.
593
594
595 EXCEPTION
596
597 WHEN FND_API.G_EXC_ERROR THEN
598
599 --dbms_output.put_line('Processing Limit Attributes- In Exception' || l_return_status);
600 oe_debug_pub.add('Processing Limit Attributes- In Exception' || l_return_status);
601 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_ERROR;
602 l_LIMIT_ATTRS_tbl(I) := l_LIMIT_ATTRS_rec;
603 l_old_LIMIT_ATTRS_tbl(I) := l_old_LIMIT_ATTRS_rec;
604
605 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
606
607 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
608 l_LIMIT_ATTRS_tbl(I) := l_LIMIT_ATTRS_rec;
609 l_old_LIMIT_ATTRS_tbl(I) := l_old_LIMIT_ATTRS_rec;
610 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
611
612 WHEN OTHERS THEN
613
614 l_LIMIT_ATTRS_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
615 l_LIMIT_ATTRS_tbl(I) := l_LIMIT_ATTRS_rec;
616 l_old_LIMIT_ATTRS_tbl(I) := l_old_LIMIT_ATTRS_rec;
617
618 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
619 THEN
620 OE_MSG_PUB.Add_Exc_Msg
621 ( G_PKG_NAME
622 , 'Limit_Attrss'
623 );
624 END IF;
625
626 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
627
628 END;
629 END LOOP;
630
631 -- Load OUT parameters
632
633 x_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
634 x_old_LIMIT_ATTRS_tbl := l_old_LIMIT_ATTRS_tbl;
635
636 EXCEPTION
637
638 WHEN FND_API.G_EXC_ERROR THEN
639
640 RAISE;
641
642 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
643
644
645 RAISE;
646
647 WHEN OTHERS THEN
648
649 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
650 THEN
651 OE_MSG_PUB.Add_Exc_Msg
652 ( G_PKG_NAME
653 , 'Limit_Attrss'
654 );
655 END IF;
656
657
658 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
659
660 END Limit_Attrss;
661
662 -- Limit_Balancess
663
664 PROCEDURE Limit_Balancess
665 ( p_validation_level IN NUMBER
666 , p_control_rec IN QP_GLOBALS.Control_Rec_Type
667 , p_LIMIT_BALANCES_tbl IN QP_Limits_PUB.Limit_Balances_Tbl_Type
668 , p_old_LIMIT_BALANCES_tbl IN QP_Limits_PUB.Limit_Balances_Tbl_Type
669 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Balances_Tbl_Type
670 , x_old_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Balances_Tbl_Type
671 )
672 IS
673 l_return_status VARCHAR2(1);
674 l_control_rec QP_GLOBALS.Control_Rec_Type;
675 l_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
676 l_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
677 l_old_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
678 l_old_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
679
680 l_p_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type; --[prarasto]
681 BEGIN
682
683 -- Init local table variables.
684
685 l_LIMIT_BALANCES_tbl := p_LIMIT_BALANCES_tbl;
686 l_old_LIMIT_BALANCES_tbl := p_old_LIMIT_BALANCES_tbl;
687
688 --dbms_output.put_line('Inside Limit Balances - ' || l_return_status);
689 oe_debug_pub.add('Inside Limit Balances - ' || l_return_status);
690 FOR I IN 1..l_LIMIT_BALANCES_tbl.COUNT LOOP
691 BEGIN
692
693 -- Load local records.
694
695 l_LIMIT_BALANCES_rec := l_LIMIT_BALANCES_tbl(I);
696
697 IF l_old_LIMIT_BALANCES_tbl.EXISTS(I) THEN
698 l_old_LIMIT_BALANCES_rec := l_old_LIMIT_BALANCES_tbl(I);
699 ELSE
700 l_old_LIMIT_BALANCES_rec := QP_Limits_PUB.G_MISS_LIMIT_BALANCES_REC;
701 END IF;
702
703 -- Load API control record
704
705 l_control_rec := QP_GLOBALS.Init_Control_Rec
706 ( p_operation => l_LIMIT_BALANCES_rec.operation
707 , p_control_rec => p_control_rec
708 );
709
710 -- Set record return status.
711
712 --dbms_output.put_line('Inside Limit Balances 1- ' || l_return_status);
713 oe_debug_pub.add('Inside Limit Balances 1- ' || l_return_status);
714 l_LIMIT_BALANCES_rec.return_status := FND_API.G_RET_STS_SUCCESS;
715
716 -- Prepare record.
717
718 IF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
719
720 l_LIMIT_BALANCES_rec.db_flag := FND_API.G_FALSE;
721
722 -- Set missing old record elements to NULL.
723
724 l_old_LIMIT_BALANCES_rec :=
725 QP_Limit_Balances_Util.Convert_Miss_To_Null (l_old_LIMIT_BALANCES_rec);
726
727 ELSIF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_UPDATE
728 OR l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_DELETE
729 THEN
730
731 l_LIMIT_BALANCES_rec.db_flag := FND_API.G_TRUE;
732
733 -- Query Old if missing
734
735 IF l_old_LIMIT_BALANCES_rec.limit_balance_id = FND_API.G_MISS_NUM
736 THEN
737
738 l_old_LIMIT_BALANCES_rec := QP_Limit_Balances_Util.Query_Row
739 ( p_limit_balance_id => l_LIMIT_BALANCES_rec.limit_balance_id
740 );
741
742 ELSE
743
744 -- Set missing old record elements to NULL.
745
746 l_old_LIMIT_BALANCES_rec :=
747 QP_Limit_Balances_Util.Convert_Miss_To_Null (l_old_LIMIT_BALANCES_rec);
748
749 END IF;
750
751 -- Complete new record from old
752
753 --dbms_output.put_line('Processing Limit Balances - Calling QP_Limit_Balances_Util.Complete_Record ' || l_return_status);
754 oe_debug_pub.add('Processing Limit Balances - Calling QP_Limit_Balances_Util.Complete_Record ' || l_return_status);
755 l_LIMIT_BALANCES_rec := QP_Limit_Balances_Util.Complete_Record
756 ( p_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
757 , p_old_LIMIT_BALANCES_rec => l_old_LIMIT_BALANCES_rec
758 );
759
760 END IF;
761
762 -- Attribute level validation.
763
764 --dbms_output.put_line('Inside Limit Balances 2- ' || l_return_status);
765 oe_debug_pub.add('Inside Limit Balances 2- ' || l_return_status);
766 IF l_control_rec.default_attributes
767 OR l_control_rec.change_attributes
768 THEN
769
770 IF p_validation_level > FND_API.G_VALID_LEVEL_NONE THEN
771
772 --dbms_output.put_line('Processing Limit Balances - Calling QP_Validate_Limit_Balances.Attributes ' || l_return_status);
773 oe_debug_pub.add('Processing Limit Balances - Calling QP_Validate_Limit_Balances.Attributes ' || l_return_status);
774 QP_Validate_Limit_Balances.Attributes
775 ( x_return_status => l_return_status
776 , p_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
777 , p_old_LIMIT_BALANCES_rec => l_old_LIMIT_BALANCES_rec
778 );
779
780 --dbms_output.put_line('Processing Limit Balances - After QP_Validate_Limit_Balances.Attributes ' || l_return_status);
781 oe_debug_pub.add('Processing Limit Balances - After QP_Validate_Limit_Balances.Attributes ' || l_return_status);
782 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
783 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
784 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
785 RAISE FND_API.G_EXC_ERROR;
786 END IF;
787
788 END IF;
789
790 END IF;
791
792 -- Clear dependent attributes.
793
794 IF l_control_rec.change_attributes THEN
795
796 --dbms_output.put_line('Processing Limit Balances - Calling QP_Limit_Balances_Util.Clear_Dependent_Attr ' || l_return_status);
797 oe_debug_pub.add('Processing Limit Balances - Calling QP_Limit_Balances_Util.Clear_Dependent_Attr ' || l_return_status);
798
799 l_p_LIMIT_BALANCES_rec := l_LIMIT_BALANCES_rec; --[prarasto]
800
801 QP_Limit_Balances_Util.Clear_Dependent_Attr
802 ( p_LIMIT_BALANCES_rec => l_p_LIMIT_BALANCES_rec
803 , p_old_LIMIT_BALANCES_rec => l_old_LIMIT_BALANCES_rec
804 , x_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
805 );
806
807 END IF;
808
809 -- Default missing attributes
810
811 IF l_control_rec.default_attributes
812 OR l_control_rec.change_attributes
813 THEN
814
815 --dbms_output.put_line('Processing Limit Balances - Calling QP_Default_Limit_Balances.Attributes ' || l_return_status);
816 oe_debug_pub.add('Processing Limit Balances - Calling QP_Default_Limit_Balances.Attributes ' || l_return_status);
817 IF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
818
819 l_p_LIMIT_BALANCES_rec := l_LIMIT_BALANCES_rec; --[prarasto]
820
821 QP_Default_Limit_Balances.Attributes
822 ( p_LIMIT_BALANCES_rec => l_p_LIMIT_BALANCES_rec
823 , x_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
824 );
825 END IF;
826
827 END IF;
828
829 -- Apply attribute changes
830
831 IF l_control_rec.default_attributes
832 OR l_control_rec.change_attributes
833 THEN
834
835 --dbms_output.put_line('Processing Limit Balances - Calling QP_Limit_Balances_Util.Apply_Attribute_Changes ' || l_return_status);
836 oe_debug_pub.add('Processing Limit Balances - Calling QP_Limit_Balances_Util.Apply_Attribute_Changes ' || l_return_status);
837
838 l_p_LIMIT_BALANCES_rec := l_LIMIT_BALANCES_rec; --[prarasto]
839
840 QP_Limit_Balances_Util.Apply_Attribute_Changes
841 ( p_LIMIT_BALANCES_rec => l_p_LIMIT_BALANCES_rec
842 , p_old_LIMIT_BALANCES_rec => l_old_LIMIT_BALANCES_rec
843 , x_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
844 );
845
846 END IF;
847
848 -- Entity level validation.
849
850 IF l_control_rec.validate_entity THEN
851
852 IF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
853
854 QP_Validate_Limit_Balances.Entity_Delete
855 ( x_return_status => l_return_status
856 , p_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
857 );
858
859 ELSE
860
861 QP_Validate_Limit_Balances.Entity
862 ( x_return_status => l_return_status
863 , p_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
864 , p_old_LIMIT_BALANCES_rec => l_old_LIMIT_BALANCES_rec
865 );
866
867 END IF;
868
869 --dbms_output.put_line('Processing Limit Balances - After QP_Validate_Limit_Balances.Entity ' || l_return_status);
870 oe_debug_pub.add('Processing Limit Balances - After QP_Validate_Limit_Balances.Entity ' || l_return_status);
871 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
872 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
873 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
874 RAISE FND_API.G_EXC_ERROR;
875 END IF;
876
877 END IF;
878
879 -- Step 4. Write to DB
880
881 --dbms_output.put_line('Processing Limit Balances - At write_to_db ' || l_return_status);
882 oe_debug_pub.add('Processing Limit Balances - At write_to_db ' || l_return_status);
883 IF l_control_rec.write_to_db THEN
884
885 IF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_DELETE THEN
886
887 QP_Limit_Balances_Util.Delete_Row
888 ( p_limit_balance_id => l_LIMIT_BALANCES_rec.limit_balance_id
889 );
890
891 ELSE
892
893 -- Get Who Information
894
895 l_LIMIT_BALANCES_rec.last_update_date := SYSDATE;
896 l_LIMIT_BALANCES_rec.last_updated_by := FND_GLOBAL.USER_ID;
897 l_LIMIT_BALANCES_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
898
899 IF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_UPDATE THEN
900
901 QP_Limit_Balances_Util.Update_Row (l_LIMIT_BALANCES_rec);
902
903 ELSIF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_CREATE THEN
904
905 l_LIMIT_BALANCES_rec.creation_date := SYSDATE;
906 l_LIMIT_BALANCES_rec.created_by := FND_GLOBAL.USER_ID;
907
908 --dbms_output.put_line('Processing Limit Balances - Calling QP_Limit_Balances_Util.Insert_Row ' || l_return_status);
909 oe_debug_pub.add('Processing Limit Balances - Calling QP_Limit_Balances_Util.Insert_Row ' || l_return_status);
910 QP_Limit_Balances_Util.Insert_Row (l_LIMIT_BALANCES_rec);
911
912 END IF;
913
914 END IF;
915
916 END IF;
917
918 -- Load tables.
919
920 l_LIMIT_BALANCES_tbl(I) := l_LIMIT_BALANCES_rec;
921 l_old_LIMIT_BALANCES_tbl(I) := l_old_LIMIT_BALANCES_rec;
922
923 -- For loop exception handler.
924
925
926 EXCEPTION
927
928 WHEN FND_API.G_EXC_ERROR THEN
929
930 l_LIMIT_BALANCES_rec.return_status := FND_API.G_RET_STS_ERROR;
931 l_LIMIT_BALANCES_tbl(I) := l_LIMIT_BALANCES_rec;
932 l_old_LIMIT_BALANCES_tbl(I) := l_old_LIMIT_BALANCES_rec;
933
934 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
935
936 l_LIMIT_BALANCES_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
937 l_LIMIT_BALANCES_tbl(I) := l_LIMIT_BALANCES_rec;
938 l_old_LIMIT_BALANCES_tbl(I) := l_old_LIMIT_BALANCES_rec;
939 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
940
941 WHEN OTHERS THEN
942
943 l_LIMIT_BALANCES_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
944 l_LIMIT_BALANCES_tbl(I) := l_LIMIT_BALANCES_rec;
945 l_old_LIMIT_BALANCES_tbl(I) := l_old_LIMIT_BALANCES_rec;
946
947 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
948 THEN
949 OE_MSG_PUB.Add_Exc_Msg
950 ( G_PKG_NAME
951 , 'Limit_Balancess'
952 );
953 END IF;
954
955 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
956
957 END;
958 END LOOP;
959
960 -- Load OUT parameters
961
962 x_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
963 x_old_LIMIT_BALANCES_tbl := l_old_LIMIT_BALANCES_tbl;
964
965 EXCEPTION
966
967 WHEN FND_API.G_EXC_ERROR THEN
968
969 RAISE;
970
971 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
972
973
974 RAISE;
975
976 WHEN OTHERS THEN
977
978 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
979 THEN
980 OE_MSG_PUB.Add_Exc_Msg
981 ( G_PKG_NAME
982 , 'Limit_Balancess'
983 );
984 END IF;
985
986
987 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
988
989 END Limit_Balancess;
990
991
992 -- Start of Comments
993 -- API name Process_Limits
994 -- Type Private
995 -- Function
996 --
997 -- Pre-reqs
998 --
999 -- Parameters
1000 --
1001 -- Version Current version = 1.0
1002 -- Initial version = 1.0
1003 --
1004 -- Notes
1005 --
1006 -- End of Comments
1007
1008 PROCEDURE Process_Limits
1009 ( p_api_version_number IN NUMBER
1010 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1011 , p_commit IN VARCHAR2 := FND_API.G_FALSE
1012 , p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
1013 , p_control_rec IN QP_GLOBALS.Control_Rec_Type :=
1014 QP_GLOBALS.G_MISS_CONTROL_REC
1015 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1016 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1017 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1018 , p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type :=
1019 QP_Limits_PUB.G_MISS_LIMITS_REC
1020 , p_old_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type :=
1021 QP_Limits_PUB.G_MISS_LIMITS_REC
1022 , p_LIMIT_ATTRS_tbl IN QP_Limits_PUB.Limit_Attrs_Tbl_Type :=
1023 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_TBL
1024 , p_old_LIMIT_ATTRS_tbl IN QP_Limits_PUB.Limit_Attrs_Tbl_Type :=
1025 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_TBL
1026 , p_LIMIT_BALANCES_tbl IN QP_Limits_PUB.Limit_Balances_Tbl_Type :=
1027 QP_Limits_PUB.G_MISS_LIMIT_BALANCES_TBL
1028 , p_old_LIMIT_BALANCES_tbl IN QP_Limits_PUB.Limit_Balances_Tbl_Type :=
1029 QP_Limits_PUB.G_MISS_LIMIT_BALANCES_TBL
1030 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
1031 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Tbl_Type
1032 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Balances_Tbl_Type
1033 )
1034 IS
1035 l_api_version_number CONSTANT NUMBER := 1.0;
1036 l_api_name CONSTANT VARCHAR2(30):= 'Process_Limits';
1037 l_return_status VARCHAR2(1);
1038 l_control_rec QP_GLOBALS.Control_Rec_Type;
1039 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_LIMITS_rec;
1040 l_old_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type := p_old_LIMITS_rec;
1041 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1042 l_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1043 l_old_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1044 l_old_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1045 l_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
1046 l_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
1047 l_old_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
1048 l_old_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
1049
1050 l_p_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type; --[prarasto]
1051 l_p_old_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type; --[prarasto]
1052 l_p_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type; --[prarasto]
1053 l_p_old_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type; --[prarasto]
1054 l_p_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type; --[prarasto]
1055 l_p_old_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type; --[prarasto]
1056
1057 BEGIN
1058
1059 -- Standard call to check for call compatibility
1060
1061 IF NOT FND_API.Compatible_API_Call
1062 ( l_api_version_number
1063 , p_api_version_number
1064 , l_api_name
1065 , G_PKG_NAME
1066 )
1067 THEN
1068 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1069 END IF;
1070
1071 -- Initialize message list.
1072
1073 IF FND_API.to_Boolean(p_init_msg_list) THEN
1074 OE_MSG_PUB.initialize;
1075 END IF;
1076
1077 -- Init local table variables.
1078
1079 l_LIMIT_ATTRS_tbl := p_LIMIT_ATTRS_tbl;
1080 l_old_LIMIT_ATTRS_tbl := p_old_LIMIT_ATTRS_tbl;
1081
1082 -- Init local table variables.
1083
1084 l_LIMIT_BALANCES_tbl := p_LIMIT_BALANCES_tbl;
1085 l_old_LIMIT_BALANCES_tbl := p_old_LIMIT_BALANCES_tbl;
1086
1087 -- Limits
1088 --dbms_output.put_line('Processing Limits ' || l_return_status);
1089 oe_debug_pub.add('Processing Limits ' || l_return_status);
1090
1091 l_p_LIMITS_rec := l_LIMITS_rec; --[prarasto]
1092 l_p_old_LIMITS_rec := l_old_LIMITS_rec; --[prarasto]
1093
1094 Limits
1095 ( p_validation_level => p_validation_level
1096 , p_control_rec => p_control_rec
1097 , p_LIMITS_rec => l_p_LIMITS_rec
1098 , p_old_LIMITS_rec => l_p_old_LIMITS_rec
1099 , x_LIMITS_rec => l_LIMITS_rec
1100 , x_old_LIMITS_rec => l_old_LIMITS_rec
1101 );
1102 --dbms_output.put_line('Limit_Id' || l_LIMITS_rec.limit_id);
1103 oe_debug_pub.add('Limit_Id' || l_LIMITS_rec.limit_id);
1104
1105 -- Perform LIMITS group requests.
1106
1107 IF p_control_rec.process AND
1108 (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
1109 p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_LIMITS)
1110 THEN
1111
1112 NULL;
1113
1114 END IF;
1115 IF p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_LIMITS
1116 THEN
1117
1118 oe_debug_pub.add('Calling QP_DELAYED_REQESTS_PVT.Process_Delayed_Requests');
1119 -- FOR ATTR_EACH_EXISTS , NON_EACH_ATTR_COUNT , TOTAL_ATTR_COUNT
1120 QP_DELAYED_REQUESTS_PVT.Process_Delayed_Requests
1121 (
1122 x_return_status => l_return_status
1123 );
1124 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1125 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1126 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1127 RAISE FND_API.G_EXC_ERROR;
1128 END IF;
1129 END IF;
1130
1131 -- Load parent key if missing and operation is create.
1132
1133 FOR I IN 1..l_LIMIT_ATTRS_tbl.COUNT LOOP
1134
1135 l_LIMIT_ATTRS_rec := l_LIMIT_ATTRS_tbl(I);
1136
1137 --dbms_output.put_line('XXXX Limit_ATTR_ID' || l_LIMIT_ATTRS_tbl(I).limit_id);
1138 IF l_LIMIT_ATTRS_rec.operation = QP_GLOBALS.G_OPR_CREATE
1139 AND (l_LIMIT_ATTRS_rec.limit_id IS NULL OR
1140 l_LIMIT_ATTRS_rec.limit_id = FND_API.G_MISS_NUM)
1141 THEN
1142
1143 -- Copy parent_id.
1144
1145 l_LIMIT_ATTRS_tbl(I).limit_id := l_LIMITS_rec.limit_id;
1146 --dbms_output.put_line('XXXX Limit_ATTR_ID' || l_LIMIT_ATTRS_tbl(I).limit_id);
1147 oe_debug_pub.add('Limit_ATTR_ID' || l_LIMIT_ATTRS_tbl(I).limit_id);
1148 END IF;
1149 END LOOP;
1150
1151 -- Limit_Attrss
1152
1153 --dbms_output.put_line('Processing Limit Attributes ');
1154 oe_debug_pub.add('Processing Limit Attributes ');
1155
1156 l_p_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl; --[prarasto]
1157 l_p_old_LIMIT_ATTRS_tbl := l_old_LIMIT_ATTRS_tbl; --[prarasto]
1158
1159 Limit_Attrss
1160 ( p_validation_level => p_validation_level
1161 , p_control_rec => p_control_rec
1162 , p_LIMIT_ATTRS_tbl => l_p_LIMIT_ATTRS_tbl
1163 , p_old_LIMIT_ATTRS_tbl => l_p_old_LIMIT_ATTRS_tbl
1164 , x_LIMIT_ATTRS_tbl => l_LIMIT_ATTRS_tbl
1165 , x_old_LIMIT_ATTRS_tbl => l_old_LIMIT_ATTRS_tbl
1166 );
1167
1168 -- Perform LIMIT_ATTRS group requests.
1169
1170 IF p_control_rec.process AND
1171 (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
1172 p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_LIMIT_ATTRS)
1173 THEN
1174
1175 NULL;
1176
1177 END IF;
1178
1179 -- Load parent key if missing and operation is create.
1180
1181 FOR I IN 1..l_LIMIT_BALANCES_tbl.COUNT LOOP
1182
1183 l_LIMIT_BALANCES_rec := l_LIMIT_BALANCES_tbl(I);
1184
1185 IF l_LIMIT_BALANCES_rec.operation = QP_GLOBALS.G_OPR_CREATE
1186 AND (l_LIMIT_BALANCES_rec.limit_id IS NULL OR
1187 l_LIMIT_BALANCES_rec.limit_id = FND_API.G_MISS_NUM)
1188 THEN
1189
1190 -- Copy parent_id.
1191
1192 l_LIMIT_BALANCES_tbl(I).limit_id := l_LIMITS_rec.limit_id;
1193 --dbms_output.put_line('Limit_BAL_Id' || l_LIMIT_BALANCES_tbl(I).limit_id);
1194 oe_debug_pub.add('Limit_BAL_Id' || l_LIMIT_BALANCES_tbl(I).limit_id);
1195 END IF;
1196 END LOOP;
1197
1198 -- Limit_Balancess
1199
1200 --dbms_output.put_line('Processing Limit Balances ');
1201 oe_debug_pub.add('Processing Limit Balances ');
1202
1203 l_p_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl; --[prarasto]
1204 l_p_old_LIMIT_BALANCES_tbl := l_old_LIMIT_BALANCES_tbl; --[prarasto]
1205
1206 Limit_Balancess
1207 ( p_validation_level => p_validation_level
1208 , p_control_rec => p_control_rec
1209 , p_LIMIT_BALANCES_tbl => l_p_LIMIT_BALANCES_tbl
1210 , p_old_LIMIT_BALANCES_tbl => l_p_old_LIMIT_BALANCES_tbl
1211 , x_LIMIT_BALANCES_tbl => l_LIMIT_BALANCES_tbl
1212 , x_old_LIMIT_BALANCES_tbl => l_old_LIMIT_BALANCES_tbl
1213 );
1214
1215 -- Perform LIMIT_BALANCES group requests.
1216
1217 IF p_control_rec.process AND
1218 (p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL OR
1219 p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_LIMIT_BALANCES)
1220 THEN
1221
1222 NULL;
1223
1224 END IF;
1225
1226
1227 -- Step 5. Perform Object group logic
1228
1229 IF p_control_rec.process AND
1230 p_control_rec.process_entity = QP_GLOBALS.G_ENTITY_ALL
1231 THEN
1232 -- FOR ATTR_EACH_EXISTS , NON_EACH_ATTR_COUNT , TOTAL_ATTR_COUNT
1233 QP_DELAYED_REQUESTS_PVT.Process_Delayed_Requests
1234 (
1235 x_return_status => l_return_status
1236 );
1237 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1238 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1239 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1240 RAISE FND_API.G_EXC_ERROR;
1241 END IF;
1242 NULL;
1243
1244 END IF;
1245
1246 -- Done processing, load OUT parameters.
1247
1248 x_LIMITS_rec := l_LIMITS_rec;
1249 x_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
1250 x_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
1251
1252 -- Clear API cache.
1253
1254 IF p_control_rec.clear_api_cache THEN
1255
1256 NULL;
1257
1258 END IF;
1259
1260 -- Clear API request tbl.
1261
1262 IF p_control_rec.clear_api_requests THEN
1263
1264 NULL;
1265
1266 END IF;
1267
1268 -- Derive return status.
1269
1270 x_return_status := FND_API.G_RET_STS_SUCCESS;
1271
1272 IF l_LIMITS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1273 x_return_status := FND_API.G_RET_STS_ERROR;
1274 END IF;
1275
1276 FOR I IN 1..l_LIMIT_ATTRS_tbl.COUNT LOOP
1277
1278 IF l_LIMIT_ATTRS_tbl(I).return_status = FND_API.G_RET_STS_ERROR THEN
1279 x_return_status := FND_API.G_RET_STS_ERROR;
1280 END IF;
1281
1282 END LOOP;
1283
1284 FOR I IN 1..l_LIMIT_BALANCES_tbl.COUNT LOOP
1285
1286 IF l_LIMIT_BALANCES_tbl(I).return_status = FND_API.G_RET_STS_ERROR THEN
1287 x_return_status := FND_API.G_RET_STS_ERROR;
1288 END IF;
1289
1290 END LOOP;
1291
1292 -- Get message count and data
1293
1294 OE_MSG_PUB.Count_And_Get
1295 ( p_count => x_msg_count
1296 , p_data => x_msg_data
1297 );
1298
1299
1300 EXCEPTION
1301
1302 WHEN FND_API.G_EXC_ERROR THEN
1303
1304 x_return_status := FND_API.G_RET_STS_ERROR;
1305
1306 -- Get message count and data
1307
1308 OE_MSG_PUB.Count_And_Get
1309 ( p_count => x_msg_count
1310 , p_data => x_msg_data
1311 );
1312
1313 --dbms_output.put_line('Proc Limits - EXCEPTION x_msg_count' || x_msg_count);
1314
1315 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1316
1317 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1318
1319 -- Get message count and data
1320
1321 OE_MSG_PUB.Count_And_Get
1322 ( p_count => x_msg_count
1323 , p_data => x_msg_data
1324 );
1325 --dbms_output.put_line('Proc Limits - EXCEPTION x_msg_count' || x_msg_count);
1326
1327 WHEN OTHERS THEN
1328
1329 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1330
1331 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1332 THEN
1333 OE_MSG_PUB.Add_Exc_Msg
1334 ( G_PKG_NAME
1335 , 'Process_Limits'
1336 );
1337 END IF;
1338
1339 -- Get message count and data
1340
1341 OE_MSG_PUB.Count_And_Get
1342 ( p_count => x_msg_count
1343 , p_data => x_msg_data
1344 );
1345 --dbms_output.put_line('Proc Limits - EXCEPTION x_msg_count' || x_msg_count);
1346
1347 END Process_Limits;
1348
1349 -- Start of Comments
1350 -- API name Lock_Limits
1351 -- Type Private
1352 -- Function
1353 --
1354 -- Pre-reqs
1355 --
1356 -- Parameters
1357 --
1358 -- Version Current version = 1.0
1359 -- Initial version = 1.0
1360 --
1361 -- Notes
1362 --
1363 -- End of Comments
1364
1365 PROCEDURE Lock_Limits
1366 ( p_api_version_number IN NUMBER
1367 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1368 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1369 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1370 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1371 , p_LIMITS_rec IN QP_Limits_PUB.Limits_Rec_Type :=
1372 QP_Limits_PUB.G_MISS_LIMITS_REC
1373 , p_LIMIT_ATTRS_tbl IN QP_Limits_PUB.Limit_Attrs_Tbl_Type :=
1374 QP_Limits_PUB.G_MISS_LIMIT_ATTRS_TBL
1375 , p_LIMIT_BALANCES_tbl IN QP_Limits_PUB.Limit_Balances_Tbl_Type :=
1376 QP_Limits_PUB.G_MISS_LIMIT_BALANCES_TBL
1377 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
1378 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Tbl_Type
1379 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Balances_Tbl_Type
1380 )
1381 IS
1382 l_api_version_number CONSTANT NUMBER := 1.0;
1383 l_api_name CONSTANT VARCHAR2(30):= 'Lock_Limits';
1384 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1385 l_LIMIT_ATTRS_rec QP_Limits_PUB.Limit_Attrs_Rec_Type;
1386 l_LIMIT_BALANCES_rec QP_Limits_PUB.Limit_Balances_Rec_Type;
1387 BEGIN
1388
1389 -- Standard call to check for call compatibility
1390
1391 IF NOT FND_API.Compatible_API_Call
1392 ( l_api_version_number
1393 , p_api_version_number
1394 , l_api_name
1395 , G_PKG_NAME
1396 )
1397 THEN
1398 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1399 END IF;
1400
1401 -- Initialize message list.
1402
1403 IF FND_API.to_Boolean(p_init_msg_list) THEN
1404 OE_MSG_PUB.initialize;
1405 END IF;
1406
1407 -- Set Savepoint
1408
1409 SAVEPOINT Lock_Limits_PVT;
1410
1411 -- Lock LIMITS
1412
1413 IF p_LIMITS_rec.operation = QP_GLOBALS.G_OPR_LOCK THEN
1414
1415 QP_Limits_Util.Lock_Row
1416 ( p_LIMITS_rec => p_LIMITS_rec
1417 , x_LIMITS_rec => x_LIMITS_rec
1418 , x_return_status => l_return_status
1419 );
1420
1421 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1422 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1423 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1424 RAISE FND_API.G_EXC_ERROR;
1425 END IF;
1426
1427
1428 END IF;
1429
1430 -- Lock LIMIT_ATTRS
1431
1432 FOR I IN 1..p_LIMIT_ATTRS_tbl.COUNT LOOP
1433
1434 IF p_LIMIT_ATTRS_tbl(I).operation = QP_GLOBALS.G_OPR_LOCK THEN
1435
1436 QP_Limit_Attrs_Util.Lock_Row
1437 ( p_LIMIT_ATTRS_rec => p_LIMIT_ATTRS_tbl(I)
1438 , x_LIMIT_ATTRS_rec => l_LIMIT_ATTRS_rec
1439 , x_return_status => l_return_status
1440 );
1441
1442 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1443 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1444 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1445 RAISE FND_API.G_EXC_ERROR;
1446 END IF;
1447
1448 x_LIMIT_ATTRS_tbl(I) := l_LIMIT_ATTRS_rec;
1449
1450 END IF;
1451
1452 END LOOP;
1453
1454 -- Lock LIMIT_BALANCES
1455
1456 FOR I IN 1..p_LIMIT_BALANCES_tbl.COUNT LOOP
1457
1458 IF p_LIMIT_BALANCES_tbl(I).operation = QP_GLOBALS.G_OPR_LOCK THEN
1459
1460 QP_Limit_Balances_Util.Lock_Row
1461 ( p_LIMIT_BALANCES_rec => p_LIMIT_BALANCES_tbl(I)
1462 , x_LIMIT_BALANCES_rec => l_LIMIT_BALANCES_rec
1463 , x_return_status => l_return_status
1464 );
1465
1466 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1467 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1468 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1469 RAISE FND_API.G_EXC_ERROR;
1470 END IF;
1471
1472 x_LIMIT_BALANCES_tbl(I) := l_LIMIT_BALANCES_rec;
1473
1474 END IF;
1475
1476 END LOOP;
1477
1478 -- Set return status
1479
1480 x_return_status := FND_API.G_RET_STS_SUCCESS;
1481
1482 -- Get message count and data
1483
1484 OE_MSG_PUB.Count_And_Get
1485 ( p_count => x_msg_count
1486 , p_data => x_msg_data
1487 );
1488
1489
1490 EXCEPTION
1491
1492 WHEN FND_API.G_EXC_ERROR THEN
1493
1494 x_return_status := FND_API.G_RET_STS_ERROR;
1495
1496 -- Get message count and data
1497
1498 OE_MSG_PUB.Count_And_Get
1499 ( p_count => x_msg_count
1500 , p_data => x_msg_data
1501 );
1502
1503 -- Rollback
1504
1505 ROLLBACK TO Lock_Limits_PVT;
1506
1507 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1508
1509 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1510
1511 -- Get message count and data
1512
1513 OE_MSG_PUB.Count_And_Get
1514 ( p_count => x_msg_count
1515 , p_data => x_msg_data
1516 );
1517
1518 -- Rollback
1519
1520 ROLLBACK TO Lock_Limits_PVT;
1521
1522 WHEN OTHERS THEN
1523
1524 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1525
1526 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1527 THEN
1528 OE_MSG_PUB.Add_Exc_Msg
1529 ( G_PKG_NAME
1530 , 'Lock_Limits'
1531 );
1532 END IF;
1533
1534 -- Get message count and data
1535
1536 OE_MSG_PUB.Count_And_Get
1537 ( p_count => x_msg_count
1538 , p_data => x_msg_data
1539 );
1540
1541 -- Rollback
1542
1543 ROLLBACK TO Lock_Limits_PVT;
1544
1545 END Lock_Limits;
1546
1547 -- Start of Comments
1548 -- API name Get_Limits
1549 -- Type Private
1550 -- Function
1551 --
1552 -- Pre-reqs
1553 --
1554 -- Parameters
1555 --
1556 -- Version Current version = 1.0
1557 -- Initial version = 1.0
1558 --
1559 -- Notes
1560 --
1561 -- End of Comments
1562
1563 PROCEDURE Get_Limits
1564 ( p_api_version_number IN NUMBER
1565 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
1566 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1567 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1568 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1569 , p_limit_id IN NUMBER
1570 , x_LIMITS_rec OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
1571 , x_LIMIT_ATTRS_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Tbl_Type
1572 , x_LIMIT_BALANCES_tbl OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Balances_Tbl_Type
1573 )
1574 IS
1575 l_api_version_number CONSTANT NUMBER := 1.0;
1576 l_api_name CONSTANT VARCHAR2(30):= 'Get_Limits';
1577 l_LIMITS_rec QP_Limits_PUB.Limits_Rec_Type;
1578 l_LIMIT_ATTRS_tbl QP_Limits_PUB.Limit_Attrs_Tbl_Type;
1579 l_LIMIT_BALANCES_tbl QP_Limits_PUB.Limit_Balances_Tbl_Type;
1580 BEGIN
1581
1582 -- Standard call to check for call compatibility
1583
1584 IF NOT FND_API.Compatible_API_Call
1585 ( l_api_version_number
1586 , p_api_version_number
1587 , l_api_name
1588 , G_PKG_NAME
1589 )
1590 THEN
1591 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1592 END IF;
1593
1594 -- Initialize message list.
1595
1596 IF FND_API.to_Boolean(p_init_msg_list) THEN
1597 OE_MSG_PUB.initialize;
1598 END IF;
1599
1600 -- Get LIMITS ( parent = LIMITS )
1601
1602 l_LIMITS_rec := QP_Limits_Util.Query_Row
1603 ( p_limit_id => p_limit_id
1604 );
1605
1606 -- Get LIMIT_ATTRS ( parent = LIMITS )
1607
1608 l_LIMIT_ATTRS_tbl := QP_Limit_Attrs_Util.Query_Rows
1609 ( p_limit_id => l_LIMITS_rec.limit_id
1610 );
1611
1612
1613 -- Get LIMIT_BALANCES ( parent = LIMITS )
1614
1615 l_LIMIT_BALANCES_tbl := QP_Limit_Balances_Util.Query_Rows
1616 ( p_limit_id => l_LIMITS_rec.limit_id
1617 );
1618
1619
1620 -- Load out parameters
1621
1622 x_LIMITS_rec := l_LIMITS_rec;
1623 x_LIMIT_ATTRS_tbl := l_LIMIT_ATTRS_tbl;
1624 x_LIMIT_BALANCES_tbl := l_LIMIT_BALANCES_tbl;
1625
1626 -- Set return status
1627
1628 x_return_status := FND_API.G_RET_STS_SUCCESS;
1629
1630 -- Get message count and data
1631
1632 OE_MSG_PUB.Count_And_Get
1633 ( p_count => x_msg_count
1634 , p_data => x_msg_data
1635 );
1636
1637
1638 EXCEPTION
1639
1640 WHEN FND_API.G_EXC_ERROR THEN
1641
1642 x_return_status := FND_API.G_RET_STS_ERROR;
1643
1644 -- Get message count and data
1645
1646 OE_MSG_PUB.Count_And_Get
1647 ( p_count => x_msg_count
1648 , p_data => x_msg_data
1649 );
1650
1651 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1652
1653 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1654
1655 -- Get message count and data
1656
1657 OE_MSG_PUB.Count_And_Get
1658 ( p_count => x_msg_count
1659 , p_data => x_msg_data
1660 );
1661
1662 WHEN OTHERS THEN
1663
1664 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1665
1666 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1667 THEN
1668 OE_MSG_PUB.Add_Exc_Msg
1669 ( G_PKG_NAME
1670 , 'Get_Limits'
1671 );
1672 END IF;
1673
1674 -- Get message count and data
1675
1676 OE_MSG_PUB.Count_And_Get
1677 ( p_count => x_msg_count
1678 , p_data => x_msg_data
1679 );
1680
1681 END Get_Limits;
1682
1683 END QP_Limits_PVT;