DBA Data[Home] [Help]

PACKAGE BODY: APPS.PSB_PARAMETER_FORMULAS_PVT

Source


1 PACKAGE BODY PSB_PARAMETER_FORMULAS_PVT AS
2  /* $Header: PSBVPFPB.pls 120.2 2005/07/13 11:28:21 shtripat ship $ */
3 
4   G_PKG_NAME CONSTANT VARCHAR2(30):= 'PSB_PARAMETER_FORMULAS_PVT';
5 
6 
7 procedure INSERT_ROW (
8   p_api_version               IN       NUMBER,
9   p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
10   p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
11   p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
12   p_return_status             OUT  NOCOPY      VARCHAR2,
13   p_msg_count                 OUT  NOCOPY      NUMBER,
14   p_msg_data                  OUT  NOCOPY      VARCHAR2,
15 
16   P_ROWID in OUT  NOCOPY VARCHAR2,
17   P_PARAMETER_FORMULA_ID in NUMBER,
18   P_PARAMETER_ID in NUMBER,
19   P_STEP_NUMBER in NUMBER,
20   P_BUDGET_YEAR_TYPE_ID in NUMBER,
21   P_BALANCE_TYPE in VARCHAR2,
22   P_TEMPLATE_ID in NUMBER,
23   P_CONCATENATED_SEGMENTS in VARCHAR2,
24   P_SEGMENT1 in VARCHAR2,
25   P_SEGMENT2 in VARCHAR2,
26   P_SEGMENT3 in VARCHAR2,
27   P_SEGMENT4 in VARCHAR2,
28   P_SEGMENT5 in VARCHAR2,
29   P_SEGMENT6 in VARCHAR2,
30   P_SEGMENT7 in VARCHAR2,
31   P_SEGMENT8 in VARCHAR2,
32   P_SEGMENT9 in VARCHAR2,
33   P_SEGMENT10 in VARCHAR2,
34   P_SEGMENT11 in VARCHAR2,
35   P_SEGMENT12 in VARCHAR2,
36   P_SEGMENT13 in VARCHAR2,
37   P_SEGMENT14 in VARCHAR2,
38   P_SEGMENT15 in VARCHAR2,
39   P_SEGMENT16 in VARCHAR2,
40   P_SEGMENT17 in VARCHAR2,
41   P_SEGMENT18 in VARCHAR2,
42   P_SEGMENT19 in VARCHAR2,
43   P_SEGMENT20 in VARCHAR2,
44   P_SEGMENT21 in VARCHAR2,
45   P_SEGMENT22 in VARCHAR2,
46   P_SEGMENT23 in VARCHAR2,
47   P_SEGMENT24 in VARCHAR2,
48   P_SEGMENT25 in VARCHAR2,
49   P_SEGMENT26 in VARCHAR2,
50   P_SEGMENT27 in VARCHAR2,
51   P_SEGMENT28 in VARCHAR2,
52   P_SEGMENT29 in VARCHAR2,
53   P_SEGMENT30 in VARCHAR2,
54   P_CURRENCY_CODE in VARCHAR2,
55   P_AMOUNT in NUMBER,
56   P_PREFIX_OPERATOR in VARCHAR2,
57   P_POSTFIX_OPERATOR in VARCHAR2,
58   P_HIREDATE_BETWEEN_FROM in NUMBER,
59   P_HIREDATE_BETWEEN_TO in NUMBER,
60   P_ADJDATE_BETWEEN_FROM in NUMBER,
61   P_ADJDATE_BETWEEN_TO in NUMBER,
62   P_INCREMENT_BY in NUMBER,
63   P_INCREMENT_TYPE in VARCHAR2,
64   P_ASSIGNMENT_TYPE IN VARCHAR2,
65   P_ATTRIBUTE_ID IN NUMBER,
66   P_ATTRIBUTE_VALUE IN VARCHAR2,
67   P_PAY_ELEMENT_ID in NUMBER,
68   P_PAY_ELEMENT_OPTION_ID IN NUMBER,
69   P_GRADE_STEP IN NUMBER,
70   P_ELEMENT_VALUE in NUMBER,
71   P_ELEMENT_VALUE_TYPE in VARCHAR2,
72   P_EFFECTIVE_START_DATE in DATE,
73   P_EFFECTIVE_END_DATE in DATE,
74   P_ATTRIBUTE1 in VARCHAR2,
75   P_ATTRIBUTE2 in VARCHAR2,
76   P_ATTRIBUTE3 in VARCHAR2,
77   P_ATTRIBUTE4 in VARCHAR2,
78   P_ATTRIBUTE5 in VARCHAR2,
79   P_ATTRIBUTE6 in VARCHAR2,
80   P_ATTRIBUTE7 in VARCHAR2,
81   P_ATTRIBUTE8 in VARCHAR2,
82   P_ATTRIBUTE9 in VARCHAR2,
83   P_ATTRIBUTE10 in VARCHAR2,
84   P_CONTEXT in VARCHAR2,
85   p_Last_Update_Date                   DATE,
86   p_Last_Updated_By                    NUMBER,
87   p_Last_Update_Login                  NUMBER,
88   p_Created_By                         NUMBER,
89   p_Creation_Date                      DATE
90 ) is
91 
92   l_api_name            CONSTANT VARCHAR2(30)   := 'Insert_Row';
93   l_api_version         CONSTANT NUMBER         :=  1.0;
94 
95     cursor C is select ROWID from PSB_PARAMETER_FORMULAS
96       where PARAMETER_FORMULA_ID = P_PARAMETER_FORMULA_ID;
97 BEGIN
98 
99   SAVEPOINT Insert_Row_Pvt ;
100 
101   IF NOT FND_API.Compatible_API_Call ( l_api_version,
102 				       p_api_version,
103 				       l_api_name,
104 				       G_PKG_NAME )
105   THEN
106     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
107   END IF;
108 
109 
110   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
111     FND_MSG_PUB.initialize ;
112   END IF;
113 
114   p_return_status := FND_API.G_RET_STS_SUCCESS ;
115 
116   insert into PSB_PARAMETER_FORMULAS (
117     PARAMETER_ID,
118     PARAMETER_FORMULA_ID,
119     STEP_NUMBER,
120     BUDGET_YEAR_TYPE_ID,
121     BALANCE_TYPE,
122     TEMPLATE_ID,
123     CONCATENATED_SEGMENTS,
124     SEGMENT1,
125     SEGMENT2,
126     SEGMENT3,
127     SEGMENT4,
128     SEGMENT5,
129     SEGMENT6,
130     SEGMENT7,
131     SEGMENT8,
132     SEGMENT9,
133     SEGMENT10,
134     SEGMENT11,
135     SEGMENT12,
136     SEGMENT13,
137     SEGMENT14,
138     SEGMENT15,
139     SEGMENT16,
140     SEGMENT17,
141     SEGMENT18,
142     SEGMENT19,
143     SEGMENT20,
144     SEGMENT21,
145     SEGMENT22,
146     SEGMENT23,
147     SEGMENT24,
148     SEGMENT25,
149     SEGMENT26,
150     SEGMENT27,
151     SEGMENT28,
152     SEGMENT29,
153     SEGMENT30,
154     CURRENCY_CODE,
155     AMOUNT,
156     PREFIX_OPERATOR,
157     POSTFIX_OPERATOR,
158     HIREDATE_BETWEEN_FROM,
159     HIREDATE_BETWEEN_TO,
160     ADJDATE_BETWEEN_FROM,
161     ADJDATE_BETWEEN_TO,
162     INCREMENT_BY,
163     INCREMENT_TYPE,
164     ASSIGNMENT_TYPE,
165     ATTRIBUTE_ID,
166     ATTRIBUTE_VALUE,
167     PAY_ELEMENT_ID,
168     PAY_ELEMENT_OPTION_ID,
169     GRADE_STEP,
170     ELEMENT_VALUE,
171     ELEMENT_VALUE_TYPE,
172     EFFECTIVE_START_DATE,
173     EFFECTIVE_END_DATE,
174     ATTRIBUTE1,
175     ATTRIBUTE2,
176     ATTRIBUTE3,
177     ATTRIBUTE4,
178     ATTRIBUTE5,
179     ATTRIBUTE6,
180     ATTRIBUTE7,
181     ATTRIBUTE8,
182     ATTRIBUTE9,
183     ATTRIBUTE10,
184     CONTEXT,
185     CREATION_DATE,
186     CREATED_BY,
187     LAST_UPDATE_DATE,
188     LAST_UPDATED_BY,
189     LAST_UPDATE_LOGIN
190   ) values (
191     P_PARAMETER_ID,
192     P_PARAMETER_FORMULA_ID,
193     P_STEP_NUMBER,
194     P_BUDGET_YEAR_TYPE_ID,
195     P_BALANCE_TYPE,
196     P_TEMPLATE_ID,
197     P_CONCATENATED_SEGMENTS,
198     P_SEGMENT1,
199     P_SEGMENT2,
200     P_SEGMENT3,
201     P_SEGMENT4,
202     P_SEGMENT5,
203     P_SEGMENT6,
204     P_SEGMENT7,
205     P_SEGMENT8,
206     P_SEGMENT9,
207     P_SEGMENT10,
208     P_SEGMENT11,
209     P_SEGMENT12,
210     P_SEGMENT13,
211     P_SEGMENT14,
212     P_SEGMENT15,
213     P_SEGMENT16,
214     P_SEGMENT17,
215     P_SEGMENT18,
216     P_SEGMENT19,
217     P_SEGMENT20,
218     P_SEGMENT21,
219     P_SEGMENT22,
220     P_SEGMENT23,
221     P_SEGMENT24,
222     P_SEGMENT25,
223     P_SEGMENT26,
224     P_SEGMENT27,
225     P_SEGMENT28,
226     P_SEGMENT29,
227     P_SEGMENT30,
228     P_CURRENCY_CODE,
229     P_AMOUNT,
230     P_PREFIX_OPERATOR,
231     P_POSTFIX_OPERATOR,
232     P_HIREDATE_BETWEEN_FROM,
233     P_HIREDATE_BETWEEN_TO,
234     P_ADJDATE_BETWEEN_FROM,
235     P_ADJDATE_BETWEEN_TO,
236     P_INCREMENT_BY,
237     P_INCREMENT_TYPE,
238     P_ASSIGNMENT_TYPE,
239     P_ATTRIBUTE_ID,
240     P_ATTRIBUTE_VALUE,
241     P_PAY_ELEMENT_ID,
242     P_PAY_ELEMENT_OPTION_ID,
243     P_GRADE_STEP,
244     P_ELEMENT_VALUE,
245     P_ELEMENT_VALUE_TYPE,
246     P_EFFECTIVE_START_DATE,
247     P_EFFECTIVE_END_DATE,
248     P_ATTRIBUTE1,
249     P_ATTRIBUTE2,
250     P_ATTRIBUTE3,
251     P_ATTRIBUTE4,
252     P_ATTRIBUTE5,
253     P_ATTRIBUTE6,
254     P_ATTRIBUTE7,
255     P_ATTRIBUTE8,
256     P_ATTRIBUTE9,
257     P_ATTRIBUTE10,
258     P_CONTEXT,
259     P_CREATION_DATE,
260     P_CREATED_BY,
261     P_LAST_UPDATE_DATE,
262     P_LAST_UPDATED_BY,
263     P_LAST_UPDATE_LOGIN
264   );
265 
266   open c;
267   fetch c into P_ROWID;
268   if (c%notfound) then
269     close c;
270     raise no_data_found;
271   end if;
272   close c;
273 
274 
275   IF FND_API.To_Boolean ( p_commit ) THEN
276     COMMIT WORK;
277   END iF;
278 
279   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
280 			      p_data  => p_msg_data );
281 
282 EXCEPTION
283 
284   WHEN FND_API.G_EXC_ERROR THEN
285 
286     ROLLBACK TO Insert_Row_Pvt ;
287     p_return_status := FND_API.G_RET_STS_ERROR;
288     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
289 				p_data  => p_msg_data );
290 
291   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
292 
293     ROLLBACK TO Insert_Row_Pvt ;
294     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
295     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
296 				p_data  => p_msg_data );
297 
298   WHEN OTHERS THEN
299 
300     ROLLBACK TO Insert_Row_Pvt ;
301     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
302 
303     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
304       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
305 				l_api_name);
306     END if;
307 
308     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
309 				p_data  => p_msg_data );
310 
311 END Insert_Row;
312 
313 procedure LOCK_ROW (
314   p_api_version               IN       NUMBER,
315   p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
316   p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
317   p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
318   p_return_status             OUT  NOCOPY      VARCHAR2,
319   p_msg_count                 OUT  NOCOPY      NUMBER,
320   p_msg_data                  OUT  NOCOPY      VARCHAR2,
321   p_lock_row                  OUT  NOCOPY      VARCHAR2,
322 
323   P_ROWID IN VARCHAR2,
324   P_PARAMETER_FORMULA_ID in NUMBER,
325   P_PARAMETER_ID in NUMBER,
326   P_STEP_NUMBER in NUMBER,
327   P_BUDGET_YEAR_TYPE_ID in NUMBER,
328   P_BALANCE_TYPE in VARCHAR2,
329   P_TEMPLATE_ID in NUMBER,
330   P_CONCATENATED_SEGMENTS IN VARCHAR2,
331   P_SEGMENT1 in VARCHAR2,
332   P_SEGMENT2 in VARCHAR2,
333   P_SEGMENT3 in VARCHAR2,
334   P_SEGMENT4 in VARCHAR2,
335   P_SEGMENT5 in VARCHAR2,
336   P_SEGMENT6 in VARCHAR2,
337   P_SEGMENT7 in VARCHAR2,
338   P_SEGMENT8 in VARCHAR2,
339   P_SEGMENT9 in VARCHAR2,
340   P_SEGMENT10 in VARCHAR2,
341   P_SEGMENT11 in VARCHAR2,
342   P_SEGMENT12 in VARCHAR2,
343   P_SEGMENT13 in VARCHAR2,
344   P_SEGMENT14 in VARCHAR2,
345   P_SEGMENT15 in VARCHAR2,
346   P_SEGMENT16 in VARCHAR2,
347   P_SEGMENT17 in VARCHAR2,
348   P_SEGMENT18 in VARCHAR2,
349   P_SEGMENT19 in VARCHAR2,
350   P_SEGMENT20 in VARCHAR2,
351   P_SEGMENT21 in VARCHAR2,
352   P_SEGMENT22 in VARCHAR2,
353   P_SEGMENT23 in VARCHAR2,
354   P_SEGMENT24 in VARCHAR2,
355   P_SEGMENT25 in VARCHAR2,
356   P_SEGMENT26 in VARCHAR2,
357   P_SEGMENT27 in VARCHAR2,
358   P_SEGMENT28 in VARCHAR2,
359   P_SEGMENT29 in VARCHAR2,
360   P_SEGMENT30 in VARCHAR2,
361   P_CURRENCY_CODE in VARCHAR2,
362   P_AMOUNT in NUMBER,
363   P_PREFIX_OPERATOR in VARCHAR2,
364   P_POSTFIX_OPERATOR in VARCHAR2,
365   P_HIREDATE_BETWEEN_FROM in NUMBER,
366   P_HIREDATE_BETWEEN_TO in NUMBER,
367   P_ADJDATE_BETWEEN_FROM in NUMBER,
368   P_ADJDATE_BETWEEN_TO in NUMBER,
369   P_INCREMENT_BY in NUMBER,
370   P_INCREMENT_TYPE in VARCHAR2,
371   P_ASSIGNMENT_TYPE IN VARCHAR2,
372   P_ATTRIBUTE_ID IN NUMBER,
373   P_ATTRIBUTE_VALUE IN VARCHAR2,
374   P_PAY_ELEMENT_ID in NUMBER,
375   P_PAY_ELEMENT_OPTION_ID IN NUMBER,
376   P_GRADE_STEP IN NUMBER,
377   P_ELEMENT_VALUE in NUMBER,
378   P_ELEMENT_VALUE_TYPE in VARCHAR2,
379   P_EFFECTIVE_START_DATE in DATE,
380   P_EFFECTIVE_END_DATE in DATE,
381   P_ATTRIBUTE1 in VARCHAR2,
382   P_ATTRIBUTE2 in VARCHAR2,
383   P_ATTRIBUTE3 in VARCHAR2,
384   P_ATTRIBUTE4 in VARCHAR2,
385   P_ATTRIBUTE5 in VARCHAR2,
386   P_ATTRIBUTE6 in VARCHAR2,
387   P_ATTRIBUTE7 in VARCHAR2,
388   P_ATTRIBUTE8 in VARCHAR2,
389   P_ATTRIBUTE9 in VARCHAR2,
390   P_ATTRIBUTE10 in VARCHAR2,
391   P_CONTEXT in VARCHAR2
392 ) is
393 
394   l_api_name            CONSTANT VARCHAR2(30)   := 'Lock_Row';
395   l_api_version         CONSTANT NUMBER         :=  1.0;
396 
397   Counter NUMBER;
398   CURSOR c IS
399     SELECT *
400     FROM psb_parameter_formulas
401     WHERE rowid = p_rowid
402     FOR UPDATE OF parameter_formula_id NOWAIT;
403   recinfo c%ROWTYPE;
404 
405 
406 BEGIN
407 
408   SAVEPOINT Lock_Row_Pvt ;
409 
410   IF NOT FND_API.Compatible_API_Call ( l_api_version,
411 				       p_api_version,
412 				       l_api_name,
413 				       G_PKG_NAME )
414   THEN
415     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
416   END IF;
417 
418 
419   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
420     FND_MSG_PUB.initialize ;
421   END IF;
422 
423   p_return_status := FND_API.G_RET_STS_SUCCESS ;
424   p_lock_row := FND_API.G_TRUE;
425 
426   open c;
427   fetch c into recinfo;
428   if (c%notfound) then
429      close c;
430      FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
431      FND_MSG_PUB.ADD;
432      raise FND_API.G_EXC_ERROR;
433   end if;
434   close c;
435 
436   if (
437 
438      (recinfo.PARAMETER_ID = P_PARAMETER_ID)
439       AND (recinfo.PARAMETER_FORMULA_ID = P_PARAMETER_FORMULA_ID)
440 
441       AND (recinfo.STEP_NUMBER = P_STEP_NUMBER)
442 	   OR ((recinfo.STEP_NUMBER is null)
443 	       AND (P_STEP_NUMBER is null)))
444 
445       AND ((recinfo.BUDGET_YEAR_TYPE_ID = P_BUDGET_YEAR_TYPE_ID)
446 	   OR ((recinfo.BUDGET_YEAR_TYPE_ID is null)
450 	   OR ((recinfo.BALANCE_TYPE is null)
447 	       AND (P_BUDGET_YEAR_TYPE_ID is null)))
448 
449       AND ((recinfo.BALANCE_TYPE = P_BALANCE_TYPE)
451 	       AND (P_BALANCE_TYPE is null)))
452 
453       AND ((recinfo.TEMPLATE_ID = P_TEMPLATE_ID)
454 	   OR ((recinfo.TEMPLATE_ID is null)
455 	       AND (P_TEMPLATE_ID is null)))
456 
457       AND ((recinfo.CONCATENATED_SEGMENTS = P_CONCATENATED_SEGMENTS)
458 	   OR ((recinfo.CONCATENATED_SEGMENTS is null)
459 	       AND (P_CONCATENATED_SEGMENTS is null)))
460 
461       AND ((recinfo.SEGMENT1 = P_SEGMENT1)
462 	   OR ((recinfo.SEGMENT1 is null)
463 	       AND (P_SEGMENT1 is null)))
464 
465       AND ((recinfo.SEGMENT2 = P_SEGMENT2)
466 	   OR ((recinfo.SEGMENT2 is null)
467 	       AND (P_SEGMENT2 is null)))
468 
469       AND ((recinfo.SEGMENT3 = P_SEGMENT3)
470 	   OR ((recinfo.SEGMENT3 is null)
471 	       AND (P_SEGMENT3 is null)))
472 
473       AND ((recinfo.SEGMENT4 = P_SEGMENT4)
474 	   OR ((recinfo.SEGMENT4 is null)
475 	       AND (P_SEGMENT4 is null)))
476 
477       AND ((recinfo.SEGMENT5 = P_SEGMENT5)
478 	   OR ((recinfo.SEGMENT5 is null)
479 	       AND (P_SEGMENT5 is null)))
480 
481       AND ((recinfo.SEGMENT6 = P_SEGMENT6)
482 	   OR ((recinfo.SEGMENT6 is null)
483 	       AND (P_SEGMENT6 is null)))
484 
485       AND ((recinfo.SEGMENT7 = P_SEGMENT7)
486 	   OR ((recinfo.SEGMENT7 is null)
487 	       AND (P_SEGMENT7 is null)))
488 
489       AND ((recinfo.SEGMENT8 = P_SEGMENT8)
490 	   OR ((recinfo.SEGMENT8 is null)
491 	       AND (P_SEGMENT8 is null)))
492 
493       AND ((recinfo.SEGMENT9 = P_SEGMENT9)
494 	   OR ((recinfo.SEGMENT9 is null)
495 	       AND (P_SEGMENT9 is null)))
496 
497       AND ((recinfo.SEGMENT10 = P_SEGMENT10)
498 	   OR ((recinfo.SEGMENT10 is null)
499 	       AND (P_SEGMENT10 is null)))
500 
501       AND ((recinfo.SEGMENT11 = P_SEGMENT11)
502 	   OR ((recinfo.SEGMENT11 is null)
503 	       AND (P_SEGMENT11 is null)))
504 
505       AND ((recinfo.SEGMENT12 = P_SEGMENT12)
506 	   OR ((recinfo.SEGMENT12 is null)
507 	       AND (P_SEGMENT12 is null)))
508 
509       AND ((recinfo.SEGMENT13 = P_SEGMENT13)
510 	   OR ((recinfo.SEGMENT13 is null)
511 	       AND (P_SEGMENT13 is null)))
512 
513       AND ((recinfo.SEGMENT14 = P_SEGMENT14)
514 	   OR ((recinfo.SEGMENT14 is null)
515 	       AND (P_SEGMENT14 is null)))
516 
517       AND ((recinfo.SEGMENT15 = P_SEGMENT15)
518 	   OR ((recinfo.SEGMENT15 is null)
519 	       AND (P_SEGMENT15 is null)))
520 
521       AND ((recinfo.SEGMENT16 = P_SEGMENT16)
522 	   OR ((recinfo.SEGMENT16 is null)
523 	       AND (P_SEGMENT16 is null)))
524 
525       AND ((recinfo.SEGMENT17 = P_SEGMENT17)
526 	   OR ((recinfo.SEGMENT17 is null)
527 	       AND (P_SEGMENT17 is null)))
528 
529       AND ((recinfo.SEGMENT18 = P_SEGMENT18)
530 	   OR ((recinfo.SEGMENT18 is null)
531 	       AND (P_SEGMENT18 is null)))
532 
533       AND ((recinfo.SEGMENT19 = P_SEGMENT19)
534 	   OR ((recinfo.SEGMENT19 is null)
535 	       AND (P_SEGMENT19 is null)))
536 
537       AND ((recinfo.SEGMENT20 = P_SEGMENT20)
538 	   OR ((recinfo.SEGMENT20 is null)
539 	       AND (P_SEGMENT20 is null)))
540 
541       AND ((recinfo.SEGMENT21 = P_SEGMENT21)
542 	   OR ((recinfo.SEGMENT21 is null)
543 	       AND (P_SEGMENT21 is null)))
544 
545       AND ((recinfo.SEGMENT22 = P_SEGMENT22)
546 	   OR ((recinfo.SEGMENT22 is null)
547 	       AND (P_SEGMENT22 is null)))
548 
549       AND ((recinfo.SEGMENT23 = P_SEGMENT23)
550 	   OR ((recinfo.SEGMENT23 is null)
551 	       AND (P_SEGMENT23 is null)))
552 
553       AND ((recinfo.SEGMENT24 = P_SEGMENT24)
554 	   OR ((recinfo.SEGMENT24 is null)
555 	       AND (P_SEGMENT24 is null)))
556 
557       AND ((recinfo.SEGMENT25 = P_SEGMENT25)
558 	   OR ((recinfo.SEGMENT25 is null)
559 	       AND (P_SEGMENT25 is null)))
560 
561       AND ((recinfo.SEGMENT26 = P_SEGMENT26)
562 	   OR ((recinfo.SEGMENT26 is null)
563 	       AND (P_SEGMENT26 is null)))
564 
565       AND ((recinfo.SEGMENT27 = P_SEGMENT27)
566 	   OR ((recinfo.SEGMENT27 is null)
567 	       AND (P_SEGMENT27 is null)))
568 
569       AND ((recinfo.SEGMENT28 = P_SEGMENT28)
570 	   OR ((recinfo.SEGMENT28 is null)
571 	       AND (P_SEGMENT28 is null)))
572 
573       AND ((recinfo.SEGMENT29 = P_SEGMENT29)
574 	   OR ((recinfo.SEGMENT29 is null)
575 	       AND (P_SEGMENT29 is null)))
576 
577       AND ((recinfo.SEGMENT30 = P_SEGMENT30)
578 	   OR ((recinfo.SEGMENT30 is null)
579 	       AND (P_SEGMENT30 is null)))
580 
581       AND ((recinfo.CURRENCY_CODE = P_CURRENCY_CODE)
582 	   OR ((recinfo.CURRENCY_CODE is null)
583 	       AND (P_CURRENCY_CODE is null)))
584 
585       AND ((recinfo.AMOUNT = P_AMOUNT)
586 	   OR ((recinfo.AMOUNT is null)
587 	       AND (P_AMOUNT is null)))
588 
589       AND ((recinfo.PREFIX_OPERATOR = P_PREFIX_OPERATOR)
590 	   OR ((recinfo.PREFIX_OPERATOR is null)
591 	       AND (P_PREFIX_OPERATOR is null)))
592 
593       AND ((recinfo.POSTFIX_OPERATOR = P_POSTFIX_OPERATOR)
597       AND ((recinfo.HIREDATE_BETWEEN_FROM = P_HIREDATE_BETWEEN_FROM)
594 	   OR ((recinfo.POSTFIX_OPERATOR is null)
595 	       AND (P_POSTFIX_OPERATOR is null)))
596 
598 	   OR ((recinfo.HIREDATE_BETWEEN_FROM is null)
599 	       AND (P_HIREDATE_BETWEEN_FROM is null)))
600 
601       AND ((recinfo.HIREDATE_BETWEEN_TO = P_HIREDATE_BETWEEN_TO)
602 	   OR ((recinfo.HIREDATE_BETWEEN_TO is null)
603 	       AND (P_HIREDATE_BETWEEN_TO is null)))
604 
605       AND ((recinfo.ADJDATE_BETWEEN_FROM = P_ADJDATE_BETWEEN_FROM)
606 	   OR ((recinfo.ADJDATE_BETWEEN_FROM is null)
607 	       AND (P_ADJDATE_BETWEEN_FROM is null)))
608 
609       AND ((recinfo.ADJDATE_BETWEEN_TO = P_ADJDATE_BETWEEN_TO)
610 	   OR ((recinfo.ADJDATE_BETWEEN_TO is null)
611 	       AND (P_ADJDATE_BETWEEN_TO is null)))
612 
613       AND ((recinfo.INCREMENT_BY = P_INCREMENT_BY)
614 	   OR ((recinfo.INCREMENT_BY is null)
615 	       AND (P_INCREMENT_BY is null)))
616 
617       AND ((recinfo.INCREMENT_TYPE = P_INCREMENT_TYPE)
618 	   OR ((recinfo.INCREMENT_TYPE is null)
619 	       AND (P_INCREMENT_TYPE is null)))
620 
621       AND ((recinfo.ASSIGNMENT_TYPE = P_ASSIGNMENT_TYPE)
622 	   OR ((recinfo.ASSIGNMENT_TYPE is null)
623 	       AND (P_ASSIGNMENT_TYPE is null)))
624 
625       AND ((recinfo.ATTRIBUTE_ID = P_ATTRIBUTE_ID)
626 	   OR ((recinfo.ATTRIBUTE_ID is null)
627 	       AND (P_ATTRIBUTE_ID is null)))
628 
629       AND ((recinfo.ATTRIBUTE_VALUE = P_ATTRIBUTE_VALUE)
630 	   OR ((recinfo.ATTRIBUTE_VALUE is null)
631 	       AND (P_ATTRIBUTE_VALUE is null)))
632 
633       AND ((recinfo.PAY_ELEMENT_ID = P_PAY_ELEMENT_ID)
634 	   OR ((recinfo.PAY_ELEMENT_ID is null)
635 	       AND (P_PAY_ELEMENT_ID is null)))
636 
637       AND ((recinfo.PAY_ELEMENT_OPTION_ID = P_PAY_ELEMENT_OPTION_ID)
638 	   OR ((recinfo.PAY_ELEMENT_OPTION_ID is null)
639 	       AND (P_PAY_ELEMENT_OPTION_ID is null)))
640 
641       AND ((recinfo.GRADE_STEP = P_GRADE_STEP)
642 	   OR ((recinfo.GRADE_STEP is null)
643 	       AND (P_GRADE_STEP is null)))
644 
645       AND ((recinfo.ELEMENT_VALUE = P_ELEMENT_VALUE)
646 	   OR ((recinfo.ELEMENT_VALUE is null)
647 	       AND (P_ELEMENT_VALUE is null)))
648 
649       AND ((recinfo.ELEMENT_VALUE_TYPE = P_ELEMENT_VALUE_TYPE)
650 	   OR ((recinfo.ELEMENT_VALUE_TYPE is null)
651 	       AND (P_ELEMENT_VALUE_TYPE is null)))
652 
653       AND ((recinfo.EFFECTIVE_START_DATE = P_EFFECTIVE_START_DATE)
654 	   OR ((recinfo.EFFECTIVE_START_DATE is null)
655 	       AND (P_EFFECTIVE_START_DATE is null)))
656 
657       AND ((recinfo.EFFECTIVE_END_DATE = P_EFFECTIVE_END_DATE)
658 	   OR ((recinfo.EFFECTIVE_END_DATE is null)
659 	       AND (P_EFFECTIVE_END_DATE is null)))
660 
661       AND ((recinfo.ATTRIBUTE1 = P_ATTRIBUTE1)
662 	   OR ((recinfo.ATTRIBUTE1 is null)
663 	       AND (P_ATTRIBUTE1 is null)))
664 
665       AND ((recinfo.ATTRIBUTE2 = P_ATTRIBUTE2)
666 	   OR ((recinfo.ATTRIBUTE2 is null)
667 	       AND (P_ATTRIBUTE2 is null)))
668 
669       AND ((recinfo.ATTRIBUTE3 = P_ATTRIBUTE3)
670 	   OR ((recinfo.ATTRIBUTE3 is null)
671 	       AND (P_ATTRIBUTE3 is null)))
672 
673       AND ((recinfo.ATTRIBUTE4 = P_ATTRIBUTE4)
674 	   OR ((recinfo.ATTRIBUTE4 is null)
675 	       AND (P_ATTRIBUTE4 is null)))
676 
677       AND ((recinfo.ATTRIBUTE5 = P_ATTRIBUTE5)
678 	   OR ((recinfo.ATTRIBUTE5 is null)
679 	       AND (P_ATTRIBUTE5 is null)))
680 
681       AND ((recinfo.ATTRIBUTE6 = P_ATTRIBUTE6)
682 	   OR ((recinfo.ATTRIBUTE6 is null)
683 	       AND (P_ATTRIBUTE6 is null)))
684 
685       AND ((recinfo.ATTRIBUTE7 = P_ATTRIBUTE7)
686 	   OR ((recinfo.ATTRIBUTE7 is null)
687 	       AND (P_ATTRIBUTE7 is null)))
688 
689       AND ((recinfo.ATTRIBUTE8 = P_ATTRIBUTE8)
690 	   OR ((recinfo.ATTRIBUTE8 is null)
691 	       AND (P_ATTRIBUTE8 is null)))
692 
693       AND ((recinfo.ATTRIBUTE9 = P_ATTRIBUTE9)
694 	   OR ((recinfo.ATTRIBUTE9 is null)
695 	       AND (P_ATTRIBUTE9 is null)))
696 
697       AND ((recinfo.ATTRIBUTE10 = P_ATTRIBUTE10)
698 	   OR ((recinfo.ATTRIBUTE10 is null)
699 	       AND (P_ATTRIBUTE10 is null)))
700 
701       AND ((recinfo.CONTEXT = P_CONTEXT)
702 	   OR ((recinfo.CONTEXT is null)
703 	       AND (P_CONTEXT is null)))
704 
705 
706   THEN
707      null;
708   ELSE
709     FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
710     FND_MSG_PUB.Add;
711     RAISE FND_API.G_EXC_ERROR ;
712   END IF;
713 
714   IF FND_API.To_Boolean ( p_commit ) THEN
715     COMMIT WORK;
716   END iF;
717 
718   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
719 			      p_data  => p_msg_data );
720 
721 EXCEPTION
722 
723   WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
724 
725     ROLLBACK TO Lock_Row_Pvt ;
726     p_lock_row  :=  FND_API.G_FALSE;
727     p_return_status := FND_API.G_RET_STS_ERROR;
728     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
729 				p_data  => p_msg_data );
730 
731   WHEN FND_API.G_EXC_ERROR THEN
732 
733     ROLLBACK TO Lock_Row_Pvt ;
734     p_lock_row  :=  FND_API.G_FALSE;
735     p_return_status := FND_API.G_RET_STS_ERROR;
736     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
740 
737 				p_data  => p_msg_data );
738 
739   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
741     ROLLBACK TO Lock_Row_Pvt ;
742     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
743     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
744 				p_data  => p_msg_data );
745 
746   WHEN OTHERS THEN
747 
748     ROLLBACK TO Lock_Row_Pvt ;
749     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
750 
751     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
752       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
753 				l_api_name);
754     END if;
755 
756     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
757 				p_data  => p_msg_data );
758 
759 END Lock_Row;
760 
761 procedure UPDATE_ROW (
762   p_api_version               IN       NUMBER,
763   p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
764   p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
765   p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
766   p_return_status             OUT  NOCOPY      VARCHAR2,
767   p_msg_count                 OUT  NOCOPY      NUMBER,
768   p_msg_data                  OUT  NOCOPY      VARCHAR2,
769 
770   P_ROWID IN VARCHAR2,
771   P_PARAMETER_FORMULA_ID in NUMBER,
772   P_PARAMETER_ID in NUMBER,
773   P_STEP_NUMBER in NUMBER,
774   P_BUDGET_YEAR_TYPE_ID in NUMBER,
775   P_BALANCE_TYPE in VARCHAR2,
776   P_TEMPLATE_ID in NUMBER,
777   P_CONCATENATED_SEGMENTS in VARCHAR2,
778   P_SEGMENT1 in VARCHAR2,
779   P_SEGMENT2 in VARCHAR2,
780   P_SEGMENT3 in VARCHAR2,
781   P_SEGMENT4 in VARCHAR2,
782   P_SEGMENT5 in VARCHAR2,
783   P_SEGMENT6 in VARCHAR2,
784   P_SEGMENT7 in VARCHAR2,
785   P_SEGMENT8 in VARCHAR2,
786   P_SEGMENT9 in VARCHAR2,
787   P_SEGMENT10 in VARCHAR2,
788   P_SEGMENT11 in VARCHAR2,
789   P_SEGMENT12 in VARCHAR2,
790   P_SEGMENT13 in VARCHAR2,
791   P_SEGMENT14 in VARCHAR2,
792   P_SEGMENT15 in VARCHAR2,
793   P_SEGMENT16 in VARCHAR2,
794   P_SEGMENT17 in VARCHAR2,
795   P_SEGMENT18 in VARCHAR2,
796   P_SEGMENT19 in VARCHAR2,
797   P_SEGMENT20 in VARCHAR2,
798   P_SEGMENT21 in VARCHAR2,
799   P_SEGMENT22 in VARCHAR2,
800   P_SEGMENT23 in VARCHAR2,
801   P_SEGMENT24 in VARCHAR2,
802   P_SEGMENT25 in VARCHAR2,
803   P_SEGMENT26 in VARCHAR2,
804   P_SEGMENT27 in VARCHAR2,
805   P_SEGMENT28 in VARCHAR2,
806   P_SEGMENT29 in VARCHAR2,
807   P_SEGMENT30 in VARCHAR2,
808   P_CURRENCY_CODE in VARCHAR2,
809   P_AMOUNT in NUMBER,
810   P_PREFIX_OPERATOR in VARCHAR2,
811   P_POSTFIX_OPERATOR in VARCHAR2,
812   P_HIREDATE_BETWEEN_FROM in NUMBER,
813   P_HIREDATE_BETWEEN_TO in NUMBER,
814   P_ADJDATE_BETWEEN_FROM in NUMBER,
815   P_ADJDATE_BETWEEN_TO in NUMBER,
816   P_INCREMENT_BY in NUMBER,
817   P_INCREMENT_TYPE in VARCHAR2,
818   P_ASSIGNMENT_TYPE IN VARCHAR2,
819   P_ATTRIBUTE_ID IN NUMBER,
820   P_ATTRIBUTE_VALUE IN VARCHAR2,
821   P_PAY_ELEMENT_ID in NUMBER,
822   P_PAY_ELEMENT_OPTION_ID IN NUMBER,
823   P_GRADE_STEP IN NUMBER,
824   P_ELEMENT_VALUE in NUMBER,
825   P_ELEMENT_VALUE_TYPE in VARCHAR2,
826   P_EFFECTIVE_START_DATE in DATE,
827   P_EFFECTIVE_END_DATE in DATE,
828   P_ATTRIBUTE1 in VARCHAR2,
829   P_ATTRIBUTE2 in VARCHAR2,
830   P_ATTRIBUTE3 in VARCHAR2,
831   P_ATTRIBUTE4 in VARCHAR2,
832   P_ATTRIBUTE5 in VARCHAR2,
833   P_ATTRIBUTE6 in VARCHAR2,
834   P_ATTRIBUTE7 in VARCHAR2,
835   P_ATTRIBUTE8 in VARCHAR2,
836   P_ATTRIBUTE9 in VARCHAR2,
837   P_ATTRIBUTE10 in VARCHAR2,
838   P_CONTEXT in VARCHAR2,
839   p_Last_Update_Date                   DATE,
840   p_Last_Updated_By                    NUMBER,
841   p_Last_Update_Login                  NUMBER
842 ) is
843 
844   l_api_name            CONSTANT VARCHAR2(30)   := 'Update_Row';
845   l_api_version         CONSTANT NUMBER         :=  1.0;
846 
847 BEGIN
848 
849   SAVEPOINT Update_Row_Pvt ;
850 
851   IF NOT FND_API.Compatible_API_Call ( l_api_version,
852 				       p_api_version,
853 				       l_api_name,
854 				       G_PKG_NAME )
855   THEN
856     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
857   END IF;
858 
859 
860   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
861     FND_MSG_PUB.initialize ;
862   END IF;
863 
864   p_return_status := FND_API.G_RET_STS_SUCCESS ;
865 
866   update PSB_PARAMETER_FORMULAS set
867     PARAMETER_ID = P_PARAMETER_ID,
868     PARAMETER_FORMULA_ID = P_PARAMETER_FORMULA_ID,
869     STEP_NUMBER = P_STEP_NUMBER,
870     BUDGET_YEAR_TYPE_ID = P_BUDGET_YEAR_TYPE_ID,
871     BALANCE_TYPE = P_BALANCE_TYPE,
872     TEMPLATE_ID = P_TEMPLATE_ID,
873     CONCATENATED_SEGMENTS = P_CONCATENATED_SEGMENTS,
874     SEGMENT1 = P_SEGMENT1,
875     SEGMENT2 = P_SEGMENT2,
876     SEGMENT3 = P_SEGMENT3,
877     SEGMENT4 = P_SEGMENT4,
878     SEGMENT5 = P_SEGMENT5,
879     SEGMENT6 = P_SEGMENT6,
880     SEGMENT7 = P_SEGMENT7,
881     SEGMENT8 = P_SEGMENT8,
882     SEGMENT9 = P_SEGMENT9,
883     SEGMENT10 = P_SEGMENT10,
884     SEGMENT11 = P_SEGMENT11,
885     SEGMENT12 = P_SEGMENT12,
886     SEGMENT13 = P_SEGMENT13,
890     SEGMENT17 = P_SEGMENT17,
887     SEGMENT14 = P_SEGMENT14,
888     SEGMENT15 = P_SEGMENT15,
889     SEGMENT16 = P_SEGMENT16,
891     SEGMENT18 = P_SEGMENT18,
892     SEGMENT19 = P_SEGMENT19,
893     SEGMENT20 = P_SEGMENT20,
894     SEGMENT21 = P_SEGMENT21,
895     SEGMENT22 = P_SEGMENT22,
896     SEGMENT23 = P_SEGMENT23,
897     SEGMENT24 = P_SEGMENT24,
898     SEGMENT25 = P_SEGMENT25,
899     SEGMENT26 = P_SEGMENT26,
900     SEGMENT27 = P_SEGMENT27,
901     SEGMENT28 = P_SEGMENT28,
902     SEGMENT29 = P_SEGMENT29,
903     SEGMENT30 = P_SEGMENT30,
904     CURRENCY_CODE = P_CURRENCY_CODE,
905     AMOUNT = P_AMOUNT,
906     PREFIX_OPERATOR = P_PREFIX_OPERATOR,
907     POSTFIX_OPERATOR = P_POSTFIX_OPERATOR,
908     HIREDATE_BETWEEN_FROM = P_HIREDATE_BETWEEN_FROM,
909     HIREDATE_BETWEEN_TO = P_HIREDATE_BETWEEN_TO,
910     ADJDATE_BETWEEN_FROM = P_ADJDATE_BETWEEN_FROM,
911     ADJDATE_BETWEEN_TO = P_ADJDATE_BETWEEN_TO,
912     INCREMENT_BY = P_INCREMENT_BY,
913     INCREMENT_TYPE = P_INCREMENT_TYPE,
914     ASSIGNMENT_TYPE = P_ASSIGNMENT_TYPE,
915     ATTRIBUTE_ID = P_ATTRIBUTE_ID,
916     ATTRIBUTE_VALUE = P_ATTRIBUTE_VALUE,
917     PAY_ELEMENT_ID = P_PAY_ELEMENT_ID,
918     PAY_ELEMENT_OPTION_ID = P_PAY_ELEMENT_OPTION_ID,
919     GRADE_STEP = P_GRADE_STEP,
920     ELEMENT_VALUE = P_ELEMENT_VALUE,
921     ELEMENT_VALUE_TYPE = P_ELEMENT_VALUE_TYPE,
922     EFFECTIVE_START_DATE = P_EFFECTIVE_START_DATE,
923     EFFECTIVE_END_DATE = P_EFFECTIVE_END_DATE,
924     ATTRIBUTE1 = P_ATTRIBUTE1,
925     ATTRIBUTE2 = P_ATTRIBUTE2,
926     ATTRIBUTE3 = P_ATTRIBUTE3,
927     ATTRIBUTE4 = P_ATTRIBUTE4,
928     ATTRIBUTE5 = P_ATTRIBUTE5,
929     ATTRIBUTE6 = P_ATTRIBUTE6,
930     ATTRIBUTE7 = P_ATTRIBUTE7,
931     ATTRIBUTE8 = P_ATTRIBUTE8,
932     ATTRIBUTE9 = P_ATTRIBUTE9,
933     ATTRIBUTE10 = P_ATTRIBUTE10,
934     CONTEXT = P_CONTEXT,
935     LAST_UPDATE_DATE = P_LAST_UPDATE_DATE,
936     LAST_UPDATED_BY = P_LAST_UPDATED_BY,
937     LAST_UPDATE_LOGIN = P_LAST_UPDATE_LOGIN
938   where ROWID = P_ROWID;
939 
940 
941   IF (SQL%NOTFOUND) THEN
942     RAISE NO_DATA_FOUND ;
943   END IF;
944 
945   IF FND_API.To_Boolean ( p_commit ) THEN
946     COMMIT WORK;
947   END iF;
948 
949   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
950 			      p_data  => p_msg_data );
951 
952 EXCEPTION
953 
954   WHEN FND_API.G_EXC_ERROR THEN
955 
956     ROLLBACK TO Update_Row_Pvt ;
957     p_return_status := FND_API.G_RET_STS_ERROR;
958     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
959 				p_data  => p_msg_data );
960 
961   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
962 
963     ROLLBACK TO Update_Row_Pvt ;
964     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
965     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
966 				p_data  => p_msg_data );
967 
968   WHEN OTHERS THEN
969 
970     ROLLBACK TO Update_Row_Pvt ;
971     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
972 
973     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
974       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
975 				l_api_name);
976     END if;
977 
978     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
979 				p_data  => p_msg_data );
980 
981 END Update_Row;
982 
983 procedure DELETE_ROW (
984   p_api_version               IN       NUMBER,
985   p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
986   p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
987   p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
988   p_return_status             OUT  NOCOPY      VARCHAR2,
989   p_msg_count                 OUT  NOCOPY      NUMBER,
990   p_msg_data                  OUT  NOCOPY      VARCHAR2,
991 
992   P_PARAMETER_FORMULA_ID in NUMBER
993 ) is
994 
995   l_api_name            CONSTANT VARCHAR2(30)   := 'Delete_Row';
996   l_api_version         CONSTANT NUMBER         :=  1.0;
997 
998 BEGIN
999 
1000   SAVEPOINT Delete_Row_Pvt ;
1001 
1002   IF NOT FND_API.Compatible_API_Call ( l_api_version,
1003 				       p_api_version,
1004 				       l_api_name,
1005 				       G_PKG_NAME )
1006   THEN
1007     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1008   END IF;
1009 
1010 
1011   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
1012     FND_MSG_PUB.initialize ;
1013   END IF;
1014 
1015   p_return_status := FND_API.G_RET_STS_SUCCESS ;
1016 
1017   delete from PSB_PARAMETER_FORMULAS
1018   where PARAMETER_FORMULA_ID = P_PARAMETER_FORMULA_ID;
1019   IF (SQL%NOTFOUND) THEN
1020     RAISE NO_DATA_FOUND ;
1021   END IF;
1022 
1023   IF FND_API.To_Boolean ( p_commit ) THEN
1024     COMMIT WORK;
1025   END iF;
1026 
1027   FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
1028 			      p_data  => p_msg_data );
1029 
1030 EXCEPTION
1031 
1032   WHEN FND_API.G_EXC_ERROR THEN
1033 
1034     ROLLBACK TO Delete_Row_Pvt ;
1035     p_return_status := FND_API.G_RET_STS_ERROR;
1036     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
1037 				p_data  => p_msg_data );
1038 
1039   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1040 
1041     ROLLBACK TO Delete_Row_Pvt ;
1042     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1043     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
1044 				p_data  => p_msg_data );
1045 
1046   WHEN OTHERS THEN
1047 
1048     ROLLBACK TO Delete_Row_Pvt ;
1049     p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1050 
1051     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1052       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
1053 				l_api_name);
1054     END if;
1055 
1056     FND_MSG_PUB.Count_And_Get ( p_count => p_msg_count,
1057 				p_data  => p_msg_data );
1058 
1059 END Delete_Row;
1060 
1061 end PSB_PARAMETER_FORMULAS_PVT;