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