DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_KPI_MEASURE_PROPS_PVT

Source


1 PACKAGE BODY BSC_KPI_MEASURE_PROPS_PVT AS
2 /* $Header: BSCVKMPB.pls 120.1.12000000.1 2007/07/17 07:44:45 appldev noship $ */
3 
4 /************************************************************************************
5  ************************************************************************************/
6 PROCEDURE Create_Kpi_Measure_Props (
7   p_commit              IN            VARCHAR2 := FND_API.G_FALSE
8 , p_kpi_measure_rec     IN            BSC_KPI_MEASURE_PROPS_PUB.kpi_measure_props_rec
9 , x_return_status       OUT NOCOPY    VARCHAR2
10 , x_msg_count           OUT NOCOPY    NUMBER
11 , x_msg_data            OUT NOCOPY    VARCHAR2
12 )
13 IS
14   l_count  NUMBER;
15 BEGIN
16 
17   FND_MSG_PUB.Initialize;
18   x_return_status := FND_API.G_RET_STS_SUCCESS;
19 
20   SAVEPOINT BscKpiMeasurePvt_Create;
21 
22   IF (p_kpi_measure_rec.objective_id IS NULL) THEN
23     FND_MESSAGE.SET_NAME('BSC','BSC_OBJECTIVE_ID_NULL');
24     FND_MSG_PUB.ADD;
25     RAISE FND_API.G_EXC_ERROR;
26   ELSIF (p_kpi_measure_rec.kpi_measure_id IS NULL) THEN
27     FND_MESSAGE.SET_NAME('BSC','BSC_KPI_MEASURE_ID_NULL');
28     FND_MSG_PUB.ADD;
29     RAISE FND_API.G_EXC_ERROR;
30   ELSE
31     SELECT COUNT(1) INTO l_count
32       FROM  bsc_kpi_measure_props
33       WHERE indicator = p_kpi_measure_rec.objective_id
34       AND   kpi_measure_id = p_kpi_measure_rec.kpi_measure_id;
35     IF (l_count > 0) THEN
36       FND_MESSAGE.SET_NAME('BSC','BSC_OBJ_KPIMEASURE_EXISTS');
37       FND_MESSAGE.SET_TOKEN('OBJECTIVE_ID', p_kpi_measure_rec.objective_id);
38       FND_MESSAGE.SET_TOKEN('KPI_MEASURE_ID', p_kpi_measure_rec.kpi_measure_id);
39       FND_MSG_PUB.ADD;
40       RAISE FND_API.G_EXC_ERROR;
41     END IF;
42   END IF;
43 
44   INSERT INTO bsc_kpi_measure_props
45   ( indicator
46   , kpi_measure_id
47   , prototype_color_id
48   , prototype_trend_id
49   , color_by_total
50   , disable_color
51   , disable_trend
52   , apply_color_flag
53   , default_calculation
54   , creation_date
55   , created_by
56   , last_update_date
57   , last_updated_by
58   , last_update_login
59   )
60   VALUES
61   ( p_kpi_measure_rec.objective_id
62   , p_kpi_measure_rec.kpi_measure_id
63   , p_kpi_measure_rec.prototype_color
64   , p_kpi_measure_rec.prototype_trend
65   , p_kpi_measure_rec.color_by_total
66   , p_kpi_measure_rec.disable_color
67   , p_kpi_measure_rec.disable_trend
68   , p_kpi_measure_rec.apply_color_flag
69   , p_kpi_measure_rec.default_calculation
70   , NVL(p_kpi_measure_rec.creation_date, SYSDATE)
71   , NVL(p_kpi_measure_rec.created_by, FND_GLOBAL.USER_ID)
72   , NVL(p_kpi_measure_rec.last_update_date, SYSDATE)
73   , NVL(p_kpi_measure_rec.last_updated_by, FND_GLOBAL.USER_ID)
74   , NVL(p_kpi_measure_rec.last_update_login, FND_GLOBAL.LOGIN_ID)
75   );
76 
77   IF (p_commit = FND_API.G_TRUE) THEN
78     COMMIT;
79   END IF;
80 
81 EXCEPTION
82   WHEN FND_API.G_EXC_ERROR THEN
83     ROLLBACK TO BscKpiMeasurePvt_Create;
84     IF (x_msg_data IS NULL) THEN
85       FND_MSG_PUB.Count_And_Get
86       ( p_encoded   =>  FND_API.G_FALSE
87       , p_count     =>  x_msg_count
88       , p_data      =>  x_msg_data
89       );
90     END IF;
91     x_return_status :=  FND_API.G_RET_STS_ERROR;
92   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
93     ROLLBACK TO BscKpiMeasurePvt_Create;
94     IF (x_msg_data IS NULL) THEN
95       FND_MSG_PUB.Count_And_Get
96       ( p_encoded   =>  FND_API.G_FALSE
97       , p_count     =>  x_msg_count
98       , p_data      =>  x_msg_data
99       );
100     END IF;
101     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
102   WHEN NO_DATA_FOUND THEN
103     ROLLBACK TO BscKpiMeasurePvt_Create;
104     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
105     IF (x_msg_data IS NOT NULL) THEN
106       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Create_Kpi_Measure_Props ';
107     ELSE
108       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Create_Kpi_Measure_Props ';
109     END IF;
110   WHEN OTHERS THEN
111     ROLLBACK TO BscKpiMeasurePvt_Create;
112     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
113     IF (x_msg_data IS NOT NULL) THEN
114       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Create_Kpi_Measure_Props ';
115     ELSE
116       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Create_Kpi_Measure_Props ';
117     END IF;
118 END Create_Kpi_Measure_Props;
119 
120 /************************************************************************************
121  ************************************************************************************/
122 PROCEDURE Update_Kpi_Measure_Props (
123   p_commit              IN             VARCHAR2 := FND_API.G_FALSE
124 , p_kpi_measure_rec     IN             BSC_KPI_MEASURE_PROPS_PUB.kpi_measure_props_rec
125 , x_return_status       OUT NOCOPY     VARCHAR2
126 , x_msg_count           OUT NOCOPY     NUMBER
127 , x_msg_data            OUT NOCOPY     VARCHAR2
128 )
129 IS
130   l_kpi_measure_rec  BSC_KPI_MEASURE_PROPS_PUB.kpi_measure_props_rec;
131 BEGIN
132   FND_MSG_PUB.Initialize;
133   x_return_status := FND_API.G_RET_STS_SUCCESS;
134 
135   SAVEPOINT BscKpiMeasurePvt_Update;
136 
137   IF (p_kpi_measure_rec.objective_id IS NULL) THEN
138     FND_MESSAGE.SET_NAME('BSC','BSC_OBJECTIVE_ID_NULL');
139     FND_MSG_PUB.ADD;
140     RAISE FND_API.G_EXC_ERROR;
141   ELSIF (p_kpi_measure_rec.kpi_measure_id IS NULL) THEN
142     FND_MESSAGE.SET_NAME('BSC','BSC_KPI_MEASURE_ID_NULL');
143     FND_MSG_PUB.ADD;
144     RAISE FND_API.G_EXC_ERROR;
145   END IF;
146 
147   Retrieve_Kpi_Measure_Props
148   ( p_objective_id     => p_kpi_measure_rec.objective_id
149   , p_kpi_measure_id   => p_kpi_measure_rec.kpi_measure_id
150   , x_kpi_measure_rec  => l_kpi_measure_rec
151   , x_return_status    => x_return_status
152   , x_msg_count        => x_msg_count
153   , x_msg_data         => x_msg_data
154   );
155   IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
156     RAISE  FND_API.G_EXC_ERROR;
157   END IF;
158 
159   l_kpi_measure_rec.default_calculation:= p_kpi_measure_rec.default_calculation;
160   IF(p_kpi_measure_rec.prototype_color IS NOT NULL) THEN
161     l_kpi_measure_rec.prototype_color := p_kpi_measure_rec.prototype_color;
162   END IF;
163   IF(p_kpi_measure_rec.prototype_trend IS NOT NULL) THEN
164     l_kpi_measure_rec.prototype_trend:= p_kpi_measure_rec.prototype_trend;
165   END IF;
166   IF(p_kpi_measure_rec.color_by_total IS NOT NULL) THEN
167     l_kpi_measure_rec.color_by_total:= p_kpi_measure_rec.color_by_total;
168   END IF;
169   IF(p_kpi_measure_rec.disable_color IS NOT NULL) THEN
170     l_kpi_measure_rec.disable_color:= p_kpi_measure_rec.disable_color;
171   END IF;
172   IF(p_kpi_measure_rec.disable_trend IS NOT NULL) THEN
173     l_kpi_measure_rec.disable_trend:= p_kpi_measure_rec.disable_trend;
174   END IF;
175   IF(p_kpi_measure_rec.apply_color_flag IS NOT NULL) THEN
176     l_kpi_measure_rec.apply_color_flag:= p_kpi_measure_rec.apply_color_flag;
177   END IF;
178   IF(p_kpi_measure_rec.last_update_date IS NULL) THEN
179     l_kpi_measure_rec.last_update_date := SYSDATE;
180   ELSE
181     l_kpi_measure_rec.last_update_date := p_kpi_measure_rec.last_update_date;
182   END IF;
183   IF (p_kpi_measure_rec.last_updated_by IS NULL) THEN
184     l_kpi_measure_rec.last_updated_by := FND_GLOBAL.USER_ID;
185   ELSE
186     l_kpi_measure_rec.last_updated_by := p_kpi_measure_rec.last_updated_by;
187   END IF;
188   IF (p_kpi_measure_rec.last_update_login IS NULL) THEN
189     l_kpi_measure_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
190   ELSE
191     l_kpi_measure_rec.last_update_login := p_kpi_measure_rec.last_update_login;
192   END IF;
193 
194   UPDATE bsc_kpi_measure_props
195     SET prototype_color_id  = l_kpi_measure_rec.prototype_color
196       , prototype_trend_id  = l_kpi_measure_rec.prototype_trend
197       , color_by_total      = l_kpi_measure_rec.color_by_total
198       , disable_color       = l_kpi_measure_rec.disable_color
199       , disable_trend       = l_kpi_measure_rec.disable_trend
200       , apply_color_flag    = l_kpi_measure_rec.apply_color_flag
201       , default_calculation = l_kpi_measure_rec.default_calculation
202       , last_updated_by     = l_kpi_measure_rec.last_updated_by
203       , last_update_date    = l_kpi_measure_rec.last_update_date
204       , last_update_login   = l_kpi_measure_rec.last_update_login
205     WHERE indicator = l_kpi_measure_rec.objective_id
206     AND   kpi_measure_id = l_kpi_measure_rec.kpi_measure_id;
207 
208   IF (p_commit = FND_API.G_TRUE) THEN
209     COMMIT;
210   END IF;
211 
212 EXCEPTION
213   WHEN FND_API.G_EXC_ERROR THEN
214     ROLLBACK TO BscKpiMeasurePvt_Update;
215     IF (x_msg_data IS NULL) THEN
216       FND_MSG_PUB.Count_And_Get
217       ( p_encoded   =>  FND_API.G_FALSE
218       , p_count     =>  x_msg_count
219       , p_data      =>  x_msg_data
220       );
221     END IF;
222     x_return_status :=  FND_API.G_RET_STS_ERROR;
223   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
224     ROLLBACK TO BscKpiMeasurePvt_Update;
225     IF (x_msg_data IS NULL) THEN
226       FND_MSG_PUB.Count_And_Get
227       ( p_encoded   =>  FND_API.G_FALSE
228       , p_count     =>  x_msg_count
229       , p_data      =>  x_msg_data
230       );
231     END IF;
232     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
233   WHEN NO_DATA_FOUND THEN
234     ROLLBACK TO BscKpiMeasurePvt_Update;
235     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
236     IF (x_msg_data IS NOT NULL) THEN
237       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Update_Kpi_Measure_Props ';
238     ELSE
239       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Update_Kpi_Measure_Props ';
240     END IF;
241   WHEN OTHERS THEN
242     ROLLBACK TO BscKpiMeasurePvt_Update;
243     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
244     IF (x_msg_data IS NOT NULL) THEN
245       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Update_Kpi_Measure_Props ';
246     ELSE
247       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Update_Kpi_Measure_Props ';
248     END IF;
249 END Update_Kpi_Measure_Props;
250 
251 /************************************************************************************
252 ************************************************************************************/
253 PROCEDURE Delete_Kpi_Measure_Props (
254   p_commit              IN             VARCHAR2:= FND_API.G_FALSE
255 , p_objective_id        IN             NUMBER
256 , p_kpi_measure_id      IN             NUMBER
257 , x_return_status       OUT NOCOPY     VARCHAR2
258 , x_msg_count           OUT NOCOPY     NUMBER
259 , x_msg_data            OUT NOCOPY     VARCHAR2
260 )
261 IS
262 BEGIN
263   FND_MSG_PUB.Initialize;
264   x_return_status := FND_API.G_RET_STS_SUCCESS;
265 
266   SAVEPOINT BscKpiMeasurePvt_Delete;
267 
268   IF (p_objective_id IS NULL) THEN
269     FND_MESSAGE.SET_NAME('BSC','BSC_OBJECTIVE_ID_NULL');
270     FND_MSG_PUB.ADD;
271     RAISE FND_API.G_EXC_ERROR;
272   ELSIF (p_kpi_measure_id IS NULL) THEN
273     FND_MESSAGE.SET_NAME('BSC','BSC_KPI_MEASURE_ID_NULL');
274     FND_MSG_PUB.ADD;
275     RAISE FND_API.G_EXC_ERROR;
276   END IF;
277 
278   DELETE FROM bsc_kpi_measure_props
279     WHERE indicator = p_objective_id
280     AND   kpi_measure_id = p_kpi_measure_id;
281 
282   IF (p_commit = FND_API.G_TRUE) THEN
283     COMMIT;
284   END IF;
285 
286 EXCEPTION
287   WHEN FND_API.G_EXC_ERROR THEN
288     ROLLBACK TO BscKpiMeasurePvt_Delete;
289     IF (x_msg_data IS NULL) THEN
290       FND_MSG_PUB.Count_And_Get
291       ( p_encoded   =>  FND_API.G_FALSE
292       , p_count     =>  x_msg_count
293       , p_data      =>  x_msg_data
294       );
295     END IF;
296     x_return_status :=  FND_API.G_RET_STS_ERROR;
297   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
298     ROLLBACK TO BscKpiMeasurePvt_Delete;
299     IF (x_msg_data IS NULL) THEN
300       FND_MSG_PUB.Count_And_Get
301       ( p_encoded   =>  FND_API.G_FALSE
302       , p_count     =>  x_msg_count
303       , p_data      =>  x_msg_data
304       );
305     END IF;
306     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
307   WHEN NO_DATA_FOUND THEN
308     ROLLBACK TO BscKpiMeasurePvt_Delete;
309     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
310     IF (x_msg_data IS NOT NULL) THEN
311       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Delete_Kpi_Measure_Props ';
312     ELSE
313       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Delete_Kpi_Measure_Props ';
314     END IF;
315   WHEN OTHERS THEN
316     ROLLBACK TO BscKpiMeasurePvt_Delete;
317     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
318     IF (x_msg_data IS NOT NULL) THEN
319       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Delete_Kpi_Measure_Props ';
320     ELSE
321       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Delete_Kpi_Measure_Props ';
322     END IF;
323 END Delete_Kpi_Measure_Props;
324 
325 /************************************************************************************
326 ************************************************************************************/
327 PROCEDURE Delete_Obj_Kpi_Measure_Props (
328   p_commit              IN             VARCHAR2:= FND_API.G_FALSE
329 , p_objective_id        IN             NUMBER
330 , x_return_status       OUT NOCOPY     VARCHAR2
331 , x_msg_count           OUT NOCOPY     NUMBER
332 , x_msg_data            OUT NOCOPY     VARCHAR2
333 )
334 IS
335 BEGIN
336   FND_MSG_PUB.Initialize;
337   x_return_status := FND_API.G_RET_STS_SUCCESS;
338 
342     FND_MESSAGE.SET_NAME('BSC','BSC_OBJECTIVE_ID_NULL');
339   SAVEPOINT BscKpiMeasurePvt_DeleteAll;
340 
341   IF (p_objective_id IS NULL) THEN
343     FND_MSG_PUB.ADD;
344     RAISE FND_API.G_EXC_ERROR;
345   END IF;
346 
347   DELETE FROM bsc_kpi_measure_props
348     WHERE indicator = p_objective_id;
349 
350   IF (p_commit = FND_API.G_TRUE) THEN
351     COMMIT;
352   END IF;
353 
354 EXCEPTION
355   WHEN FND_API.G_EXC_ERROR THEN
356     ROLLBACK TO BscKpiMeasurePvt_DeleteAll;
357     IF (x_msg_data IS NULL) THEN
358       FND_MSG_PUB.Count_And_Get
359       ( p_encoded   =>  FND_API.G_FALSE
360       , p_count     =>  x_msg_count
361       , p_data      =>  x_msg_data
362       );
363     END IF;
364     x_return_status :=  FND_API.G_RET_STS_ERROR;
365   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
366     ROLLBACK TO BscKpiMeasurePvt_DeleteAll;
367     IF (x_msg_data IS NULL) THEN
368       FND_MSG_PUB.Count_And_Get
369       ( p_encoded   =>  FND_API.G_FALSE
370       , p_count     =>  x_msg_count
371       , p_data      =>  x_msg_data
372       );
373     END IF;
374     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
375   WHEN NO_DATA_FOUND THEN
376     ROLLBACK TO BscKpiMeasurePvt_DeleteAll;
377     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
378     IF (x_msg_data IS NOT NULL) THEN
379       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Delete_Obj_Kpi_Measure_Props ';
380     ELSE
381       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Delete_Obj_Kpi_Measure_Props ';
382     END IF;
383   WHEN OTHERS THEN
384     ROLLBACK TO BscKpiMeasurePvt_DeleteAll;
385     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
386     IF (x_msg_data IS NOT NULL) THEN
387       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Delete_Obj_Kpi_Measure_Props ';
388     ELSE
389       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Delete_Obj_Kpi_Measure_Props ';
390     END IF;
391 END Delete_Obj_Kpi_Measure_Props;
392 
393 /************************************************************************************
394 ************************************************************************************/
395 PROCEDURE Retrieve_Kpi_Measure_Props (
396   p_objective_id        IN             NUMBER
397 , p_kpi_measure_id      IN             NUMBER
398 , x_kpi_measure_rec     OUT NOCOPY     BSC_KPI_MEASURE_PROPS_PUB.kpi_measure_props_rec
399 , x_return_status       OUT NOCOPY     VARCHAR2
400 , x_msg_count           OUT NOCOPY     NUMBER
401 , x_msg_data            OUT NOCOPY     VARCHAR2
402 )
403 IS
404 BEGIN
405   FND_MSG_PUB.Initialize;
406   x_return_status := FND_API.G_RET_STS_SUCCESS;
407 
408   IF (p_objective_id IS NULL) THEN
409     FND_MESSAGE.SET_NAME('BSC','BSC_OBJECTIVE_ID_NULL');
410     FND_MSG_PUB.ADD;
411     RAISE FND_API.G_EXC_ERROR;
412   ELSIF (p_kpi_measure_id IS NULL) THEN
413     FND_MESSAGE.SET_NAME('BSC','BSC_KPI_MEASURE_ID_NULL');
414     FND_MSG_PUB.ADD;
415     RAISE FND_API.G_EXC_ERROR;
416   END IF;
417 
418   SELECT
419     indicator
420   , kpi_measure_id
421   , prototype_color_id
422   , prototype_trend_id
423   , color_by_total
424   , disable_color
425   , disable_trend
426   , apply_color_flag
427   , default_calculation
428   , creation_date
429   , created_by
430   , last_update_date
431   , last_updated_by
432   , last_update_login
433   INTO
434     x_kpi_measure_rec.objective_id
435   , x_kpi_measure_rec.kpi_measure_id
436   , x_kpi_measure_rec.prototype_color
437   , x_kpi_measure_rec.prototype_trend
438   , x_kpi_measure_rec.color_by_total
439   , x_kpi_measure_rec.disable_color
440   , x_kpi_measure_rec.disable_trend
441   , x_kpi_measure_rec.apply_color_flag
442   , x_kpi_measure_rec.default_calculation
443   , x_kpi_measure_rec.creation_date
444   , x_kpi_measure_rec.created_by
445   , x_kpi_measure_rec.last_update_date
446   , x_kpi_measure_rec.last_updated_by
447   , x_kpi_measure_rec.last_update_login
448   FROM bsc_kpi_measure_props
449   WHERE indicator = p_objective_id
450   AND   kpi_measure_id = p_kpi_measure_id;
451 
452 EXCEPTION
453   WHEN FND_API.G_EXC_ERROR THEN
454     IF (x_msg_data IS NULL) THEN
455       FND_MSG_PUB.Count_And_Get
456       ( p_encoded   =>  FND_API.G_FALSE
457       , p_count     =>  x_msg_count
458       , p_data      =>  x_msg_data
459       );
460     END IF;
461     x_return_status :=  FND_API.G_RET_STS_ERROR;
462   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
463     IF (x_msg_data IS NULL) THEN
464       FND_MSG_PUB.Count_And_Get
465       ( p_encoded   =>  FND_API.G_FALSE
466       , p_count     =>  x_msg_count
467       , p_data      =>  x_msg_data
468       );
469     END IF;
470     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
471   WHEN NO_DATA_FOUND THEN
472     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
473     IF (x_msg_data IS NOT NULL) THEN
474       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Retrieve_Kpi_Measure_Props ';
475     ELSE
476       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Retrieve_Kpi_Measure_Props ';
477     END IF;
478   WHEN OTHERS THEN
479     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
480     IF (x_msg_data IS NOT NULL) THEN
481       x_msg_data := x_msg_data || ' -> BSC_KPI_MEASURE_PROPS_PVT.Retrieve_Kpi_Measure_Props ';
482     ELSE
483       x_msg_data := SQLERRM || ' at BSC_KPI_MEASURE_PROPS_PVT.Retrieve_Kpi_Measure_Props ';
484     END IF;
485 END Retrieve_Kpi_Measure_Props;
486 
487 END BSC_KPI_MEASURE_PROPS_PVT;