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