1 PACKAGE BODY QP_Validate_Formula AS
2 /* $Header: QPXLPRFB.pls 120.1.12020000.2 2012/07/04 12:03:30 smbalara ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Validate_Formula';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12 , p_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type
13 , p_old_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type :=
14 QP_Price_Formula_PUB.G_MISS_FORMULA_REC
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 l_count NUMBER := 0;
19 l_cursor INTEGER;
20 l_check_formula VARCHAR2(1); --sfiresto
21 l_dummy_operand_tbl QP_FORMULA_RULES_PVT.t_Operand_Tbl_Type; --sfiresto
22 l_dummy_number NUMBER; --sfiresto
23 L_MAINT_DYN_SRC_VER VARCHAR2(1) := NVL(Fnd_Profile.value('QP_MAINTAIN_DYNAMIC_SOURCE_VERSIONS'),'N'); -- 13638721
24 l_pkg_ver VARCHAR2(10);
25 BEGIN
26
27 oe_debug_pub.add('Entering proc Entity in Formula Validation Pkg');
28 -- Check required attributes.
29
30 IF p_FORMULA_rec.price_formula_id IS NULL
31 THEN
32
33 l_return_status := FND_API.G_RET_STS_ERROR;
34
35 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
36 THEN
37
38 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
39 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_formula');
40 OE_MSG_PUB.Add;
41
42 END IF;
43
44 END IF;
45
46 --
47 -- Check rest of required attributes here.
48 --
49
50 IF p_FORMULA_rec.name IS NULL
51 THEN
52
53 l_return_status := FND_API.G_RET_STS_ERROR;
54
55 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
56 THEN
57
58 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
59 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','name');
60 OE_MSG_PUB.Add;
61
62 END IF;
63
64 END IF;
65
66 IF p_FORMULA_rec.formula IS NULL
67 THEN
68
69 l_return_status := FND_API.G_RET_STS_ERROR;
70
71 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
72 THEN
73
74 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
75 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','formula');
76 OE_MSG_PUB.Add;
77
78 END IF;
79
80 END IF;
81
82
83 -- Return Error if a required attribute is missing.
84
85 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
86
87 RAISE FND_API.G_EXC_ERROR;
88
89 END IF;
90
91 -- Give warning message that dynamic formula package generater must be run if it is a new Formula
92
93 IF (p_FORMULA_rec.operation = QP_GLOBALS.G_OPR_CREATE) or
94 (p_FORMULA_rec.operation = QP_GLOBALS.G_OPR_UPDATE)
95 THEN
96
97 --sfiresto (Check dynamic formula package for formulas, not database)
98
99 -- 13638721
100 oe_debug_pub.add('Maintain Dynamic pkgs profile is 1:'||L_MAINT_DYN_SRC_VER);
101 IF (L_MAINT_DYN_SRC_VER='N') THEN
102 QP_BUILD_FORMULA_RULES.Get_Formula_Values(p_FORMULA_rec.formula,
103 l_dummy_operand_tbl,
104 'S', --sfiresto
105 l_dummy_number,
106 l_check_formula);
107 ELSE
108 BEGIN
109 SELECT SEEDED_VALUE INTO l_pkg_ver FROM qp_parameters_b WHERE PARAMETER_CODE='BLD_FORMULA_ACTV_VER' AND ROWNUM=1;
110 oe_debug_pub.add('2. found row in qp_params for code BLD_FORMULA_ACTV_VER pkg ver : ' || l_pkg_ver);
111 EXCEPTION
112 WHEN OTHERS THEN
113 l_pkg_ver:='0';
114 oe_debug_pub.add('2. when others row in qp_params for code BLD_FORMULA_ACTV_VER pkg ver: ' || l_pkg_ver);
115 END;
116 IF (l_pkg_ver='5') THEN
117 QP_BUILD_FORMULA_RULES5.Get_Formula_Values(p_FORMULA_rec.formula,
118 l_dummy_operand_tbl,
119 'S',
120 l_dummy_number,
121 l_check_formula);
122 ELSIF (l_pkg_ver='4') THEN
123 QP_BUILD_FORMULA_RULES4.Get_Formula_Values(p_FORMULA_rec.formula,
124 l_dummy_operand_tbl,
125 'S',
126 l_dummy_number,
127 l_check_formula);
128 ELSIF (l_pkg_ver='3') THEN
129 QP_BUILD_FORMULA_RULES3.Get_Formula_Values(p_FORMULA_rec.formula,
130 l_dummy_operand_tbl,
131 'S',
132 l_dummy_number,
133 l_check_formula);
134 ELSIF (l_pkg_ver='2') THEN
135 QP_BUILD_FORMULA_RULES2.Get_Formula_Values(p_FORMULA_rec.formula,
136 l_dummy_operand_tbl,
137 'S',
138 l_dummy_number,
139 l_check_formula);
140 ELSIF (l_pkg_ver='1') THEN
141 QP_BUILD_FORMULA_RULES1.Get_Formula_Values(p_FORMULA_rec.formula,
142 l_dummy_operand_tbl,
143 'S',
144 l_dummy_number,
145 l_check_formula);
146 ELSE
147 QP_BUILD_FORMULA_RULES.Get_Formula_Values(p_FORMULA_rec.formula,
148 l_dummy_operand_tbl,
149 'S',
150 l_dummy_number,
151 l_check_formula);
152 END IF;
153 END IF;
154 -- 13638721
155
156 IF l_check_formula <> 'T' THEN
157 FND_MESSAGE.SET_NAME('QP', 'QP_BUILD_FORMULA_PACKAGE');
158 FND_MESSAGE.SET_TOKEN('PROGRAM_NAME', 'Build Formula Package');
159 OE_MSG_PUB.Add;
160 END IF;
161
162 END IF;
163
164 --
165 -- Check if Formula is a valid arithmetic expression
166 --
167
168 BEGIN
169
170 EXECUTE IMMEDIATE 'SELECT ' || p_FORMULA_rec.formula || ' FROM DUAL ';
171 --Raises an exception if expression not valid
172 EXCEPTION
173
174 WHEN OTHERS THEN
175 l_return_status := FND_API.G_RET_STS_ERROR;
176
177 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
178 THEN
179
180 FND_MESSAGE.SET_NAME('QP','QP_INVALID_FORMULA');
181 OE_MSG_PUB.Add;
182
183 END IF;
184 END;
185
186 --
187 -- Check conditionally required attributes here.
188 --
189
190 --
191 -- Check for duplicates here.
192 --
193
194 IF p_FORMULA_rec.name IS NOT NULL AND
195 ( p_FORMULA_rec.name <>
196 p_old_FORMULA_rec.name OR
197 p_old_FORMULA_rec.name IS NULL ) THEN
198
199 SELECT count(*)
200 INTO l_count
201 FROM qp_price_formulas_vl
202 WHERE name = p_FORMULA_rec.name;
203
204 IF l_count > 0
205 THEN
206
207 l_return_status := FND_API.G_RET_STS_ERROR;
208
209 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
210 THEN
211
212 FND_MESSAGE.SET_NAME('QP','QP_DUPLICATE_ATTRIBUTE');
213 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','name');
214 OE_MSG_PUB.Add;
215
216 END IF;
217
218 END IF;
219
220 END IF; -- if 'name' column is modified or entered
221
222 --
223 -- Validate attribute dependencies here.
224 --
225
226 IF nvl(p_FORMULA_rec.start_date_active,
227 TO_DATE('01-01-1951', 'MM-DD-YYYY')) >
228 nvl(p_FORMULA_rec.end_date_active,
229 TO_DATE('12-31-9999', 'MM-DD-YYYY'))
230 THEN
231
232 l_return_status := FND_API.G_RET_STS_ERROR;
233
234 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
235 THEN
236
237 FND_MESSAGE.SET_NAME('QP','QP_STRT_DATE_BFR_END_DATE');
238 OE_MSG_PUB.Add;
239
240 END IF;
241
242 END IF;
243
244 -- Return Error if dependent attribute is invalid.
245
246 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
247
248 RAISE FND_API.G_EXC_ERROR;
249
250 END IF;
251
252
253 -- Done validating entity
254
255 x_return_status := l_return_status;
256
257 oe_debug_pub.add('Leaving proc Entity in Formula Validation Pkg');
258 EXCEPTION
259
260 WHEN FND_API.G_EXC_ERROR THEN
261
262 x_return_status := FND_API.G_RET_STS_ERROR;
263
264 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
265
266 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267
268 WHEN OTHERS THEN
269
270 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
271
272 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
273 THEN
274 OE_MSG_PUB.Add_Exc_Msg
275 ( G_PKG_NAME
276 , 'Entity'
277 );
278 END IF;
279
280 END Entity;
281
282 -- Procedure Attributes
283
284 PROCEDURE Attributes
285 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
286 , p_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type
287 , p_old_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type :=
288 QP_Price_Formula_PUB.G_MISS_FORMULA_REC
289 )
290 IS
291 BEGIN
292
293 oe_debug_pub.add('Entering proc Attributes in Formula Validation Pkg');
294 x_return_status := FND_API.G_RET_STS_SUCCESS;
295
296 -- Validate FORMULA attributes
297
298 IF p_FORMULA_rec.created_by IS NOT NULL AND
299 ( p_FORMULA_rec.created_by <>
300 p_old_FORMULA_rec.created_by OR
301 p_old_FORMULA_rec.created_by IS NULL )
302 THEN
303 IF NOT QP_Validate.Created_By(p_FORMULA_rec.created_by) THEN
304 x_return_status := FND_API.G_RET_STS_ERROR;
305 END IF;
306 END IF;
307
308 IF p_FORMULA_rec.creation_date IS NOT NULL AND
309 ( p_FORMULA_rec.creation_date <>
310 p_old_FORMULA_rec.creation_date OR
311 p_old_FORMULA_rec.creation_date IS NULL )
312 THEN
313 IF NOT QP_Validate.Creation_Date(p_FORMULA_rec.creation_date) THEN
314 x_return_status := FND_API.G_RET_STS_ERROR;
315 END IF;
316 END IF;
317
318 IF p_FORMULA_rec.description IS NOT NULL AND
319 ( p_FORMULA_rec.description <>
320 p_old_FORMULA_rec.description OR
321 p_old_FORMULA_rec.description IS NULL )
322 THEN
323 IF NOT QP_Validate.Description(p_FORMULA_rec.description) THEN
324 x_return_status := FND_API.G_RET_STS_ERROR;
325 END IF;
326 END IF;
327
328 IF p_FORMULA_rec.end_date_active IS NOT NULL AND
329 ( p_FORMULA_rec.end_date_active <>
330 p_old_FORMULA_rec.end_date_active OR
331 p_old_FORMULA_rec.end_date_active IS NULL )
332 THEN
333 IF NOT QP_Validate.End_Date_Active(p_FORMULA_rec.end_date_active) THEN
334 x_return_status := FND_API.G_RET_STS_ERROR;
335 END IF;
336 END IF;
337
338 IF p_FORMULA_rec.formula IS NOT NULL AND
339 ( p_FORMULA_rec.formula <>
340 p_old_FORMULA_rec.formula OR
341 p_old_FORMULA_rec.formula IS NULL )
342 THEN
343 IF NOT QP_Validate.Formula(p_FORMULA_rec.formula) THEN
344 x_return_status := FND_API.G_RET_STS_ERROR;
345 END IF;
346 END IF;
347
348 IF p_FORMULA_rec.last_updated_by IS NOT NULL AND
349 ( p_FORMULA_rec.last_updated_by <>
350 p_old_FORMULA_rec.last_updated_by OR
351 p_old_FORMULA_rec.last_updated_by IS NULL )
352 THEN
353 IF NOT QP_Validate.Last_Updated_By(p_FORMULA_rec.last_updated_by) THEN
354 x_return_status := FND_API.G_RET_STS_ERROR;
355 END IF;
356 END IF;
357
358 IF p_FORMULA_rec.last_update_date IS NOT NULL AND
359 ( p_FORMULA_rec.last_update_date <>
360 p_old_FORMULA_rec.last_update_date OR
361 p_old_FORMULA_rec.last_update_date IS NULL )
362 THEN
363 IF NOT QP_Validate.Last_Update_Date(p_FORMULA_rec.last_update_date) THEN
364 x_return_status := FND_API.G_RET_STS_ERROR;
365 END IF;
366 END IF;
367
368 IF p_FORMULA_rec.last_update_login IS NOT NULL AND
369 ( p_FORMULA_rec.last_update_login <>
370 p_old_FORMULA_rec.last_update_login OR
371 p_old_FORMULA_rec.last_update_login IS NULL )
372 THEN
373 IF NOT QP_Validate.Last_Update_Login(p_FORMULA_rec.last_update_login) THEN
374 x_return_status := FND_API.G_RET_STS_ERROR;
375 END IF;
376 END IF;
377
378 IF p_FORMULA_rec.name IS NOT NULL AND
379 ( p_FORMULA_rec.name <>
380 p_old_FORMULA_rec.name OR
381 p_old_FORMULA_rec.name IS NULL )
382 THEN
383 IF NOT QP_Validate.Name(p_FORMULA_rec.name) THEN
384 x_return_status := FND_API.G_RET_STS_ERROR;
385 END IF;
386 END IF;
387
388 IF p_FORMULA_rec.price_formula_id IS NOT NULL AND
389 ( p_FORMULA_rec.price_formula_id <>
390 p_old_FORMULA_rec.price_formula_id OR
391 p_old_FORMULA_rec.price_formula_id IS NULL )
392 THEN
393 IF NOT QP_Validate.Price_Formula(p_FORMULA_rec.price_formula_id) THEN
394 x_return_status := FND_API.G_RET_STS_ERROR;
395 END IF;
396 END IF;
397
398 IF p_FORMULA_rec.start_date_active IS NOT NULL AND
399 ( p_FORMULA_rec.start_date_active <>
400 p_old_FORMULA_rec.start_date_active OR
401 p_old_FORMULA_rec.start_date_active IS NULL )
402 THEN
403 IF NOT QP_Validate.Start_Date_Active(p_FORMULA_rec.start_date_active) THEN
404 x_return_status := FND_API.G_RET_STS_ERROR;
405 END IF;
406 END IF;
407
408 IF (p_FORMULA_rec.attribute1 IS NOT NULL AND
409 ( p_FORMULA_rec.attribute1 <>
410 p_old_FORMULA_rec.attribute1 OR
411 p_old_FORMULA_rec.attribute1 IS NULL ))
412 OR (p_FORMULA_rec.attribute10 IS NOT NULL AND
413 ( p_FORMULA_rec.attribute10 <>
414 p_old_FORMULA_rec.attribute10 OR
415 p_old_FORMULA_rec.attribute10 IS NULL ))
416 OR (p_FORMULA_rec.attribute11 IS NOT NULL AND
417 ( p_FORMULA_rec.attribute11 <>
418 p_old_FORMULA_rec.attribute11 OR
419 p_old_FORMULA_rec.attribute11 IS NULL ))
420 OR (p_FORMULA_rec.attribute12 IS NOT NULL AND
421 ( p_FORMULA_rec.attribute12 <>
422 p_old_FORMULA_rec.attribute12 OR
423 p_old_FORMULA_rec.attribute12 IS NULL ))
424 OR (p_FORMULA_rec.attribute13 IS NOT NULL AND
425 ( p_FORMULA_rec.attribute13 <>
426 p_old_FORMULA_rec.attribute13 OR
427 p_old_FORMULA_rec.attribute13 IS NULL ))
428 OR (p_FORMULA_rec.attribute14 IS NOT NULL AND
429 ( p_FORMULA_rec.attribute14 <>
430 p_old_FORMULA_rec.attribute14 OR
431 p_old_FORMULA_rec.attribute14 IS NULL ))
432 OR (p_FORMULA_rec.attribute15 IS NOT NULL AND
433 ( p_FORMULA_rec.attribute15 <>
434 p_old_FORMULA_rec.attribute15 OR
435 p_old_FORMULA_rec.attribute15 IS NULL ))
436 OR (p_FORMULA_rec.attribute2 IS NOT NULL AND
437 ( p_FORMULA_rec.attribute2 <>
438 p_old_FORMULA_rec.attribute2 OR
439 p_old_FORMULA_rec.attribute2 IS NULL ))
440 OR (p_FORMULA_rec.attribute3 IS NOT NULL AND
441 ( p_FORMULA_rec.attribute3 <>
442 p_old_FORMULA_rec.attribute3 OR
443 p_old_FORMULA_rec.attribute3 IS NULL ))
444 OR (p_FORMULA_rec.attribute4 IS NOT NULL AND
445 ( p_FORMULA_rec.attribute4 <>
446 p_old_FORMULA_rec.attribute4 OR
447 p_old_FORMULA_rec.attribute4 IS NULL ))
448 OR (p_FORMULA_rec.attribute5 IS NOT NULL AND
449 ( p_FORMULA_rec.attribute5 <>
450 p_old_FORMULA_rec.attribute5 OR
451 p_old_FORMULA_rec.attribute5 IS NULL ))
452 OR (p_FORMULA_rec.attribute6 IS NOT NULL AND
453 ( p_FORMULA_rec.attribute6 <>
454 p_old_FORMULA_rec.attribute6 OR
455 p_old_FORMULA_rec.attribute6 IS NULL ))
456 OR (p_FORMULA_rec.attribute7 IS NOT NULL AND
457 ( p_FORMULA_rec.attribute7 <>
458 p_old_FORMULA_rec.attribute7 OR
459 p_old_FORMULA_rec.attribute7 IS NULL ))
460 OR (p_FORMULA_rec.attribute8 IS NOT NULL AND
461 ( p_FORMULA_rec.attribute8 <>
462 p_old_FORMULA_rec.attribute8 OR
463 p_old_FORMULA_rec.attribute8 IS NULL ))
464 OR (p_FORMULA_rec.attribute9 IS NOT NULL AND
465 ( p_FORMULA_rec.attribute9 <>
466 p_old_FORMULA_rec.attribute9 OR
467 p_old_FORMULA_rec.attribute9 IS NULL ))
468 OR (p_FORMULA_rec.context IS NOT NULL AND
469 ( p_FORMULA_rec.context <>
470 p_old_FORMULA_rec.context OR
471 p_old_FORMULA_rec.context IS NULL ))
472 THEN
473
474 -- These calls are temporarily commented out
475
476 /*
477 FND_FLEX_DESC_VAL.Set_Column_Value
478 ( column_name => 'ATTRIBUTE1'
479 , column_value => p_FORMULA_rec.attribute1
480 );
481 FND_FLEX_DESC_VAL.Set_Column_Value
482 ( column_name => 'ATTRIBUTE10'
483 , column_value => p_FORMULA_rec.attribute10
484 );
485 FND_FLEX_DESC_VAL.Set_Column_Value
486 ( column_name => 'ATTRIBUTE11'
487 , column_value => p_FORMULA_rec.attribute11
488 );
489 FND_FLEX_DESC_VAL.Set_Column_Value
490 ( column_name => 'ATTRIBUTE12'
491 , column_value => p_FORMULA_rec.attribute12
492 );
493 FND_FLEX_DESC_VAL.Set_Column_Value
494 ( column_name => 'ATTRIBUTE13'
495 , column_value => p_FORMULA_rec.attribute13
496 );
497 FND_FLEX_DESC_VAL.Set_Column_Value
498 ( column_name => 'ATTRIBUTE14'
499 , column_value => p_FORMULA_rec.attribute14
500 );
501 FND_FLEX_DESC_VAL.Set_Column_Value
502 ( column_name => 'ATTRIBUTE15'
503 , column_value => p_FORMULA_rec.attribute15
504 );
505 FND_FLEX_DESC_VAL.Set_Column_Value
506 ( column_name => 'ATTRIBUTE2'
507 , column_value => p_FORMULA_rec.attribute2
508 );
509 FND_FLEX_DESC_VAL.Set_Column_Value
510 ( column_name => 'ATTRIBUTE3'
511 , column_value => p_FORMULA_rec.attribute3
512 );
513 FND_FLEX_DESC_VAL.Set_Column_Value
514 ( column_name => 'ATTRIBUTE4'
515 , column_value => p_FORMULA_rec.attribute4
516 );
517 FND_FLEX_DESC_VAL.Set_Column_Value
518 ( column_name => 'ATTRIBUTE5'
519 , column_value => p_FORMULA_rec.attribute5
520 );
521 FND_FLEX_DESC_VAL.Set_Column_Value
522 ( column_name => 'ATTRIBUTE6'
523 , column_value => p_FORMULA_rec.attribute6
524 );
525 FND_FLEX_DESC_VAL.Set_Column_Value
526 ( column_name => 'ATTRIBUTE7'
527 , column_value => p_FORMULA_rec.attribute7
528 );
529 FND_FLEX_DESC_VAL.Set_Column_Value
530 ( column_name => 'ATTRIBUTE8'
531 , column_value => p_FORMULA_rec.attribute8
532 );
533 FND_FLEX_DESC_VAL.Set_Column_Value
534 ( column_name => 'ATTRIBUTE9'
535 , column_value => p_FORMULA_rec.attribute9
536 );
537 FND_FLEX_DESC_VAL.Set_Column_Value
538 ( column_name => 'CONTEXT'
539 , column_value => p_FORMULA_rec.context
540 );
541 */
542
543 -- Validate descriptive flexfield.
544
545 IF NOT QP_Validate.Desc_Flex( 'FORMULA' ) THEN
546 x_return_status := FND_API.G_RET_STS_ERROR;
547 END IF;
548
549 END IF;
550
551 -- Done validating attributes
552
553 oe_debug_pub.add('Leaving proc Attributes in Formula Validation Pkg');
554 EXCEPTION
555
556 WHEN FND_API.G_EXC_ERROR THEN
557
558 x_return_status := FND_API.G_RET_STS_ERROR;
559
560 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
561
562 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
563
564 WHEN OTHERS THEN
565
566 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
567
568 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
569 THEN
570 OE_MSG_PUB.Add_Exc_Msg
571 ( G_PKG_NAME
572 , 'Attributes'
573 );
574 END IF;
575
576 END Attributes;
577
578 -- Procedure Entity_Delete
579
580 PROCEDURE Entity_Delete
581 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
582 , p_FORMULA_rec IN QP_Price_Formula_PUB.Formula_Rec_Type
583 )
584 IS
585 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
586 BEGIN
587
588 oe_debug_pub.add('Entering proc Entity_Delete in Formula Validation Pkg');
589 -- Validate entity delete.
590
591 NULL;
592
593 -- Done.
594
595 x_return_status := l_return_status;
596
597 oe_debug_pub.add('Leaving proc Entity_Delete in Formula Validation Pkg');
598 EXCEPTION
599
600 WHEN FND_API.G_EXC_ERROR THEN
601
602 x_return_status := FND_API.G_RET_STS_ERROR;
603
604 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
605
606 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
607
608 WHEN OTHERS THEN
609
610 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
611
612 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
613 THEN
614 OE_MSG_PUB.Add_Exc_Msg
615 ( G_PKG_NAME
616 , 'Entity_Delete'
617 );
618 END IF;
619
620 END Entity_Delete;
621
622 END QP_Validate_Formula;