[Home] [Help]
PACKAGE BODY: APPS.BSC_KPI_COLOR_PROPERTIES_PUB
Source
1 PACKAGE BODY BSC_KPI_COLOR_PROPERTIES_PUB AS
2 /* $Header: BSCPKCPB.pls 120.2.12000000.1 2007/07/17 07:44:02 appldev noship $ */
3
4
5 /************************************************************************************
6 ************************************************************************************/
7
8 PROCEDURE Update_Kpi_Color_Properties (
9 p_commit IN VARCHAR2 := FND_API.G_FALSE
10 , p_objective_id IN BSC_KPIS_B.indicator%TYPE
11 , p_kpi_measure_id IN BSC_KPI_ANALYSIS_MEASURES_B.kpi_measure_id%TYPE
12 , p_disable_color IN BSC_KPI_MEASURE_PROPS.disable_color%TYPE
13 , p_kpi_prototype_color IN BSC_KPI_MEASURE_PROPS.prototype_color_id%TYPE
14 , p_kpi_prototype_trend IN BSC_KPI_MEASURE_PROPS.prototype_trend_id%TYPE
15 , p_color_by_total IN BSC_KPI_MEASURE_PROPS.color_by_total%TYPE
16 , p_disable_trend IN BSC_KPI_MEASURE_PROPS.disable_trend%TYPE
17 , p_need_color_recalc IN VARCHAR2 := 'N'
18 , x_return_status OUT NOCOPY VARCHAR2
19 , x_msg_count OUT NOCOPY NUMBER
20 , x_msg_data OUT NOCOPY VARCHAR2
21 )
22 IS
23 l_kpi_measure_rec BSC_KPI_MEASURE_PROPS_PUB.kpi_measure_props_rec;
24 l_obj_prototype_flag BSC_KPIS_B.prototype_flag%TYPE;
25
26 BEGIN
27
28 FND_MSG_PUB.Initialize;
29 x_return_status := FND_API.G_RET_STS_SUCCESS;
30
31 -- Any Business Logic Validation
32
33 BSC_KPI_MEASURE_PROPS_PUB.Retrieve_Kpi_Measure_Props
34 ( p_objective_id => p_objective_id
35 , p_kpi_measure_id => p_kpi_measure_id
36 , x_kpi_measure_rec => l_kpi_measure_rec
37 , x_return_status => x_return_status
38 , x_msg_count => x_msg_count
39 , x_msg_data => x_msg_data
40 );
41
42 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
43 RAISE FND_API.G_EXC_ERROR;
44 END IF;
45
46 l_kpi_measure_rec.disable_color := p_disable_color;
47 l_kpi_measure_rec.disable_trend := p_disable_trend;
48 l_kpi_measure_rec.prototype_color := p_kpi_prototype_color;
49 l_kpi_measure_rec.prototype_trend := p_kpi_prototype_trend;
50 l_kpi_measure_rec.color_by_total := p_color_by_total;
51
52 BSC_KPI_MEASURE_PROPS_PUB.Update_Kpi_Measure_Props
53 ( p_commit => p_commit
54 , p_kpi_measure_rec => l_kpi_measure_rec
55 , x_return_status => x_return_status
56 , x_msg_count => x_msg_count
57 , x_msg_data => x_msg_data
58 );
59
60 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
61 RAISE FND_API.G_EXC_ERROR;
62 END IF;
63
64 IF (p_need_color_recalc = 'Y') THEN
65
66 Change_Prototype_Flag
67 ( p_objective_id => p_objective_id
68 , p_kpi_measure_id => p_kpi_measure_id
69 , p_prototype_flag => 7
70 , x_return_status => x_return_status
71 , x_msg_count => x_msg_count
72 , x_msg_data => x_msg_data
73 );
74
75
76 END IF;
77
78
79
80 EXCEPTION
81 WHEN FND_API.G_EXC_ERROR THEN
82 IF (x_msg_data IS NULL) THEN
83 FND_MSG_PUB.Count_And_Get
84 ( p_encoded => FND_API.G_FALSE
85 , p_count => x_msg_count
86 , p_data => x_msg_data
87 );
88 END IF;
89 x_return_status := FND_API.G_RET_STS_ERROR;
90 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
91 IF (x_msg_data IS NULL) THEN
92 FND_MSG_PUB.Count_And_Get
93 ( p_encoded => FND_API.G_FALSE
94 , p_count => x_msg_count
95 , p_data => x_msg_data
96 );
97 END IF;
98 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
99 WHEN NO_DATA_FOUND THEN
100 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
101 IF (x_msg_data IS NOT NULL) THEN
102 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Update_Kpi_Color_Properties ';
103 ELSE
104 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Update_Kpi_Color_Properties ';
105 END IF;
106 WHEN OTHERS THEN
107 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
108 IF (x_msg_data IS NOT NULL) THEN
109 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Update_Kpi_Color_Properties ';
110 ELSE
111 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Update_Kpi_Color_Properties ';
112 END IF;
113
114 END Update_Kpi_Color_Properties;
115
116
117
118 /************************************************************************************
119 ************************************************************************************/
120
121 PROCEDURE Update_Obj_Color_Properties (
122 p_commit IN VARCHAR2 := FND_API.G_FALSE
123 , p_objective_id IN BSC_KPIS_B.indicator%TYPE
124 , p_obj_prototype_color_id IN BSC_KPIS_B.prototype_color_id%TYPE
125 , p_obj_prototype_trend_id IN BSC_KPIS_B.prototype_trend_id%TYPE
126 , p_color_rollup_type IN BSC_KPIS_B.color_rollup_type%TYPE
127 , p_weighted_color_method IN BSC_KPIS_B.weighted_color_method%TYPE
128 , p_need_color_recalc IN VARCHAR2 := 'Y'
129 , x_return_status OUT NOCOPY VARCHAR2
130 , x_msg_count OUT NOCOPY NUMBER
131 , x_msg_data OUT NOCOPY VARCHAR2
132 )
133 IS
134 l_objective_rec BSC_KPI_PUB.Bsc_Kpi_Entity_Rec;
135
136 CURSOR c_shared_obj(p_indicator NUMBER) IS
137 SELECT indicator
138 FROM bsc_kpis_b
139 WHERE source_indicator = p_indicator
140 AND share_flag = 2 -- shared objective.
141 AND prototype_flag <> 2;
142
143 BEGIN
144
145 FND_MSG_PUB.Initialize;
146 x_return_status := FND_API.G_RET_STS_SUCCESS;
147
148 -- Any Business Logic Validation
149
150 l_objective_rec.Bsc_Kpi_Id := p_objective_id;
151
152 IF (p_obj_prototype_color_id IS NOT NULL) THEN
153 l_objective_rec.Bsc_Prototype_Color_Id := p_obj_prototype_color_id;
154 END IF;
155
156 IF (p_obj_prototype_trend_id IS NOT NULL) THEN
157 l_objective_rec.Bsc_Prototype_Trend_Id := p_obj_prototype_trend_id;
158 END IF;
159
160 IF (p_color_rollup_type IS NOT NULL) THEN
161 l_objective_rec.Bsc_Color_Rollup_Type := p_color_rollup_type;
162 END IF;
163
164 IF (p_weighted_color_method IS NOT NULL) THEN
165 l_objective_rec.Bsc_Weighted_Color_Method := p_weighted_color_method;
166 END IF;
167
168
169 BSC_KPI_PVT.Update_Kpi
170 ( p_commit => p_commit
171 , p_Bsc_Kpi_Entity_Rec => l_objective_rec
172 , x_return_status => x_return_status
173 , x_msg_count => x_msg_count
174 , x_msg_data => x_msg_data
175 );
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 FOR c_shared IN c_shared_obj(p_objective_id) LOOP
182 l_objective_rec.Bsc_Kpi_Id := c_shared.indicator;
183 BSC_KPI_PVT.Update_Kpi
184 ( p_commit => p_commit
185 , p_Bsc_Kpi_Entity_Rec => l_objective_rec
186 , x_return_status => x_return_status
187 , x_msg_count => x_msg_count
188 , x_msg_data => x_msg_data
189 );
190 END LOOP;
191
192
193 IF (p_need_color_recalc = 'Y') THEN
194
195 Obj_Prototype_Flag_Change
196 ( p_objective_id => p_objective_id
197 , p_prototype_flag => 7
198 , x_return_status => x_return_status
199 , x_msg_count => x_msg_count
200 , x_msg_data => x_msg_data
201 );
202
203
204 END IF;
205
206 EXCEPTION
207 WHEN FND_API.G_EXC_ERROR THEN
208 IF (x_msg_data IS NULL) THEN
209 FND_MSG_PUB.Count_And_Get
210 ( p_encoded => FND_API.G_FALSE
211 , p_count => x_msg_count
212 , p_data => x_msg_data
213 );
214 END IF;
215 x_return_status := FND_API.G_RET_STS_ERROR;
216 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
217 IF (x_msg_data IS NULL) THEN
218 FND_MSG_PUB.Count_And_Get
219 ( p_encoded => FND_API.G_FALSE
220 , p_count => x_msg_count
221 , p_data => x_msg_data
222 );
223 END IF;
224 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
225 WHEN NO_DATA_FOUND THEN
226 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
227 IF (x_msg_data IS NOT NULL) THEN
228 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Update_Obj_Color_Properties ';
229 ELSE
230 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Update_Obj_Color_Properties ';
231 END IF;
232 WHEN OTHERS THEN
233 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
234 IF (x_msg_data IS NOT NULL) THEN
235 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Update_Obj_Color_Properties ';
236 ELSE
237 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Update_Obj_Color_Properties ';
238 END IF;
239
240
241 END Update_Obj_Color_Properties;
242
243
244
245 /************************************************************************************
246 ************************************************************************************/
247
248 PROCEDURE Create_Update_Kpi_Mes_Weights (
249 p_commit IN VARCHAR2 := FND_API.G_FALSE
250 , p_objective_id IN BSC_KPIS_B.indicator%TYPE
251 , p_kpi_measure_id IN BSC_KPI_ANALYSIS_MEASURES_B.kpi_measure_id%TYPE
252 , p_kpi_weight IN BSC_KPI_MEASURE_WEIGHTS.weight%TYPE
253 , x_return_status OUT NOCOPY VARCHAR2
254 , x_msg_count OUT NOCOPY NUMBER
255 , x_msg_data OUT NOCOPY VARCHAR2
256 )
257 IS
258 l_kpi_measure_weights_rec BSC_KPI_MEASURE_WEIGHTS_PUB.kpi_measure_weights_rec;
259 l_num VARCHAR(2);
260 l_obj_prototype_flag BSC_KPIS_B.prototype_flag%TYPE;
261 l_color_rollup_type BSC_KPIS_B.color_rollup_type%TYPE;
262 BEGIN
263
264 FND_MSG_PUB.Initialize;
265 x_return_status := FND_API.G_RET_STS_SUCCESS;
266
267 -- Any Business Logic Validation
268
269 l_kpi_measure_weights_rec.objective_id := p_objective_id;
270 l_kpi_measure_weights_rec.kpi_measure_id := p_kpi_measure_id;
271 l_kpi_measure_weights_rec.weight := p_kpi_weight;
272
273 SELECT count(1) INTO l_num FROM bsc_kpi_measure_weights WHERE indicator = p_objective_id AND kpi_measure_id = p_kpi_measure_id;
274
275 IF (l_num = 0) THEN
276
277 BSC_KPI_MEASURE_WEIGHTS_PUB.Create_Kpi_Measure_Weights
278 ( p_commit => p_commit
279 , p_kpi_measure_weights_rec => l_kpi_measure_weights_rec
280 , p_cascade_shared => TRUE
281 , x_return_status => x_return_status
282 , x_msg_count => x_msg_count
283 , x_msg_data => x_msg_data
284 );
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 ELSE
291
292 BSC_KPI_MEASURE_WEIGHTS_PUB.Update_Kpi_Measure_Weights
293 ( p_commit => p_commit
294 , p_kpi_measure_weights_rec => l_kpi_measure_weights_rec
295 , p_cascade_shared => TRUE
296 , x_return_status => x_return_status
297 , x_msg_count => x_msg_count
298 , x_msg_data => x_msg_data
299 );
300
301 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
302 RAISE FND_API.G_EXC_ERROR;
303 END IF;
304
305 END IF;
306
307 /*SELECT prototype_flag INTO l_obj_prototype_flag
308 FROM bsc_kpis_b
309 WHERE indicator = p_objective_id;*/
310
311 SELECT bk.color_rollup_type, bk.prototype_flag
312 INTO l_color_rollup_type, l_obj_prototype_flag
313 FROM bsc_db_color_ao_defaults_v dd, bsc_kpi_analysis_measures_vl km, bsc_kpis_b bk
314 WHERE km.indicator = p_objective_id AND
315 bk.indicator = km.indicator AND
316 km.indicator = dd.indicator AND
317 dd.a0_default = km.analysis_option0 AND
318 dd.a1_default = km.analysis_option1 AND
319 dd.a2_default = km.analysis_option2 AND
320 km.default_value = 1;
321
322 IF (l_obj_prototype_flag <> 2 AND l_obj_prototype_flag <> 7
323 AND l_color_rollup_type = BSC_COLOR_CALC_UTIL.WEIGHTED_AVERAGE) THEN
324
325 Obj_Prototype_Flag_Change
326 ( p_objective_id => p_objective_id
327 , p_prototype_flag => 7
328 , x_return_status => x_return_status
332
329 , x_msg_count => x_msg_count
330 , x_msg_data => x_msg_data
331 );
333 END IF;
334
335
336
337 EXCEPTION
338 WHEN FND_API.G_EXC_ERROR THEN
339 IF (x_msg_data IS NULL) THEN
340 FND_MSG_PUB.Count_And_Get
341 ( p_encoded => FND_API.G_FALSE
342 , p_count => x_msg_count
343 , p_data => x_msg_data
344 );
345 END IF;
346 x_return_status := FND_API.G_RET_STS_ERROR;
347 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
348 IF (x_msg_data IS NULL) THEN
349 FND_MSG_PUB.Count_And_Get
350 ( p_encoded => FND_API.G_FALSE
351 , p_count => x_msg_count
352 , p_data => x_msg_data
353 );
354 END IF;
355 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
356 WHEN NO_DATA_FOUND THEN
357 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
358 IF (x_msg_data IS NOT NULL) THEN
359 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Create_Update_Kpi_Measure_Weights ';
360 ELSE
361 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Create_Update_Kpi_Measure_Weights ';
362 END IF;
363 WHEN OTHERS THEN
364 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
365 IF (x_msg_data IS NOT NULL) THEN
366 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Create_Update_Kpi_Measure_Weights ';
367 ELSE
368 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Create_Update_Kpi_Measure_Weights ';
369 END IF;
370
371 END Create_Update_Kpi_Mes_Weights;
372
373
374 /************************************************************************************
375 ************************************************************************************/
376
377 PROCEDURE Obj_Prototype_Flag_Change (
378 p_objective_id IN BSC_KPIS_B.indicator%TYPE
379 , p_prototype_flag IN NUMBER
380 , x_return_status OUT NOCOPY VARCHAR2
381 , x_msg_count OUT NOCOPY NUMBER
382 , x_msg_data OUT NOCOPY VARCHAR2
383 )
384 IS
385
386 CURSOR c_shared_obj(p_indicator NUMBER) IS
387 SELECT indicator
388 FROM bsc_kpis_b
389 WHERE source_indicator = p_indicator
390 AND share_flag = 2 -- shared objective.
391 AND prototype_flag <> 2;
392
393 BEGIN
394
395 FND_MSG_PUB.Initialize;
396 x_return_status := FND_API.G_RET_STS_SUCCESS;
397
398 -- Any Business Logic Validation
399
400 BSC_DESIGNER_PVT.ActionFlag_Change_Cascade
401 ( p_indicator => p_objective_id
402 , p_newflag => p_prototype_flag
403 , p_cascade_color => FALSE
404 );
405
406
407 FOR c_shared IN c_shared_obj(p_objective_id) LOOP
408 BSC_DESIGNER_PVT.ActionFlag_Change_Cascade
409 ( p_indicator => c_shared.indicator
410 , p_newflag => p_prototype_flag
411 , p_cascade_color => FALSE
412 );
413 END LOOP;
414
415
416 EXCEPTION
417 WHEN FND_API.G_EXC_ERROR THEN
418 IF (x_msg_data IS NULL) THEN
419 FND_MSG_PUB.Count_And_Get
420 ( p_encoded => FND_API.G_FALSE
421 , p_count => x_msg_count
422 , p_data => x_msg_data
423 );
424 END IF;
425 x_return_status := FND_API.G_RET_STS_ERROR;
426 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
427 IF (x_msg_data IS NULL) THEN
428 FND_MSG_PUB.Count_And_Get
429 ( p_encoded => FND_API.G_FALSE
430 , p_count => x_msg_count
431 , p_data => x_msg_data
432 );
433 END IF;
434 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
435 WHEN NO_DATA_FOUND THEN
436 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
437 IF (x_msg_data IS NOT NULL) THEN
438 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
439 ELSE
440 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
441 END IF;
442 WHEN OTHERS THEN
443 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
444 IF (x_msg_data IS NOT NULL) THEN
445 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
446 ELSE
447 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
448 END IF;
449
450 END Obj_Prototype_Flag_Change;
451
452
453 /************************************************************************************
454 ************************************************************************************/
455
456 PROCEDURE Kpi_Prototype_Flag_Change (
457 p_objective_id IN BSC_KPIS_B.indicator%TYPE
458 , p_kpi_measure_id IN BSC_KPI_ANALYSIS_MEASURES_B.kpi_measure_id%TYPE
459 , p_prototype_flag IN NUMBER
460 , x_return_status OUT NOCOPY VARCHAR2
461 , x_msg_count OUT NOCOPY NUMBER
462 , x_msg_data OUT NOCOPY VARCHAR2
463 )
464 IS
465 l_kpi_measure_id NUMBER;
466
467 CURSOR c_shared_obj(p_indicator NUMBER) IS
468 SELECT indicator
469 FROM bsc_kpis_b
470 WHERE source_indicator = p_indicator
471 AND share_flag = 2 -- shared objective.
472 AND prototype_flag <> 2;
473
474 BEGIN
475
476 FND_MSG_PUB.Initialize;
477 x_return_status := FND_API.G_RET_STS_SUCCESS;
478
479 -- Any Business Logic Validation
480
481 BSC_DESIGNER_PVT.Update_Kpi_Prototype_Flag
482 ( p_objective_id => p_objective_id
483 , p_kpi_measure_id => p_kpi_measure_id
487 FOR c_shared IN c_shared_obj(p_objective_id) LOOP
484 , p_flag => p_prototype_flag
485 );
486
488
489 l_kpi_measure_id := BSC_KPI_MEASURE_PROPS_PUB.get_shared_obj_kpi_measure
490 ( p_objective_id => p_objective_id
491 , p_kpi_measure_id => p_kpi_measure_id
492 , p_shared_objective_id => c_shared.indicator
493 );
494
495 IF l_kpi_measure_id IS NULL THEN
496 RAISE FND_API.G_EXC_ERROR;
497 END IF;
498
499 BSC_DESIGNER_PVT.Update_Kpi_Prototype_Flag
500 ( p_objective_id => c_shared.indicator
501 , p_kpi_measure_id => l_kpi_measure_id
502 , p_flag => p_prototype_flag
503 );
504
505
506 END LOOP;
507
508
509 EXCEPTION
510 WHEN FND_API.G_EXC_ERROR THEN
511 IF (x_msg_data IS NULL) THEN
512 FND_MSG_PUB.Count_And_Get
513 ( p_encoded => FND_API.G_FALSE
514 , p_count => x_msg_count
515 , p_data => x_msg_data
516 );
517 END IF;
518 x_return_status := FND_API.G_RET_STS_ERROR;
519 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
520 IF (x_msg_data IS NULL) THEN
521 FND_MSG_PUB.Count_And_Get
522 ( p_encoded => FND_API.G_FALSE
523 , p_count => x_msg_count
524 , p_data => x_msg_data
525 );
526 END IF;
527 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
528 WHEN NO_DATA_FOUND THEN
529 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
530 IF (x_msg_data IS NOT NULL) THEN
531 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Kpi_Prototype_Flag_Change ';
532 ELSE
533 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Kpi_Prototype_Flag_Change ';
534 END IF;
535 WHEN OTHERS THEN
536 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
537 IF (x_msg_data IS NOT NULL) THEN
538 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Kpi_Prototype_Flag_Change ';
539 ELSE
540 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Kpi_Prototype_Flag_Change ';
541 END IF;
542
543 END Kpi_Prototype_Flag_Change;
544
545
546 /************************************************************************************
547 ************************************************************************************/
548
549 PROCEDURE Change_Prototype_Flag (
550 p_objective_id IN BSC_KPIS_B.indicator%TYPE
551 , p_kpi_measure_id IN BSC_KPI_ANALYSIS_MEASURES_B.kpi_measure_id%TYPE
552 , p_prototype_flag IN NUMBER
553 , x_return_status OUT NOCOPY VARCHAR2
554 , x_msg_count OUT NOCOPY NUMBER
555 , x_msg_data OUT NOCOPY VARCHAR2
556 )
557 IS
558 l_obj_prototype_flag BSC_KPIS_B.prototype_flag%TYPE;
559 l_color_rollup_type BSC_KPIS_B.color_rollup_type%TYPE;
560 l_def_kpi_measure_id BSC_KPI_ANALYSIS_MEASURES_VL.kpi_measure_id%TYPE;
561 BEGIN
562
563 FND_MSG_PUB.Initialize;
564 x_return_status := FND_API.G_RET_STS_SUCCESS;
565
566 -- Any Business Logic Validation
567
568 Kpi_Prototype_Flag_Change
569 ( p_objective_id => p_objective_id
570 , p_kpi_measure_id => p_kpi_measure_id
571 , p_prototype_flag => p_prototype_flag
572 , x_return_status => x_return_status
573 , x_msg_count => x_msg_count
574 , x_msg_data => x_msg_data
575 );
576
577 /*SELECT prototype_flag INTO l_obj_prototype_flag
578 FROM bsc_kpis_b
579 WHERE indicator = p_objective_id;*/
580
581 SELECT bk.color_rollup_type, km.kpi_measure_id, bk.prototype_flag
582 INTO l_color_rollup_type, l_def_kpi_measure_id, l_obj_prototype_flag
583 FROM bsc_db_color_ao_defaults_v dd, bsc_kpi_analysis_measures_vl km, bsc_kpis_b bk
584 WHERE km.indicator = p_objective_id AND
585 bk.indicator = km.indicator AND
586 km.indicator = dd.indicator AND
587 dd.a0_default = km.analysis_option0 AND
588 dd.a1_default = km.analysis_option1 AND
589 dd.a2_default = km.analysis_option2 AND
590 km.default_value = 1;
591
592 IF (l_obj_prototype_flag <> 2 AND
593 l_obj_prototype_flag <> p_prototype_flag AND
594 ((l_color_rollup_type = BSC_COLOR_CALC_UTIL.DEFAULT_KPI AND l_def_kpi_measure_id = p_kpi_measure_id)
595 OR (l_color_rollup_type <> BSC_COLOR_CALC_UTIL.DEFAULT_KPI))) THEN
596
597 Obj_Prototype_Flag_Change
598 ( p_objective_id => p_objective_id
599 , p_prototype_flag => p_prototype_flag
600 , x_return_status => x_return_status
601 , x_msg_count => x_msg_count
602 , x_msg_data => x_msg_data
603 );
604
605 END IF;
606
607 EXCEPTION
608 WHEN FND_API.G_EXC_ERROR THEN
609 IF (x_msg_data IS NULL) THEN
610 FND_MSG_PUB.Count_And_Get
611 ( p_encoded => FND_API.G_FALSE
612 , p_count => x_msg_count
613 , p_data => x_msg_data
614 );
615 END IF;
616 x_return_status := FND_API.G_RET_STS_ERROR;
617 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
618 IF (x_msg_data IS NULL) THEN
619 FND_MSG_PUB.Count_And_Get
620 ( p_encoded => FND_API.G_FALSE
621 , p_count => x_msg_count
622 , p_data => x_msg_data
623 );
624 END IF;
625 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
626 WHEN NO_DATA_FOUND THEN
627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
628 IF (x_msg_data IS NOT NULL) THEN
629 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
630 ELSE
631 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
632 END IF;
633 WHEN OTHERS THEN
634 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
635 IF (x_msg_data IS NOT NULL) THEN
636 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
637 ELSE
638 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Obj_Prototype_Flag_Change ';
639 END IF;
640
641 END Change_Prototype_Flag;
642
643
644 /************************************************************************************
645 ************************************************************************************/
646
647 PROCEDURE Save_Disable_Color_Of_Kpi (
648 p_commit IN VARCHAR2 := FND_API.G_FALSE
649 , p_objective_id IN BSC_KPIS_B.indicator%TYPE
650 , p_kpi_measure_id IN BSC_KPI_ANALYSIS_MEASURES_B.kpi_measure_id%TYPE
651 , p_disable_color IN BSC_KPI_MEASURE_PROPS.disable_color%TYPE
652 , p_need_color_recalc IN VARCHAR2 := 'N'
653 , x_return_status OUT NOCOPY VARCHAR2
654 , x_msg_count OUT NOCOPY NUMBER
655 , x_msg_data OUT NOCOPY VARCHAR2
656 )
657 IS
658 l_kpi_measure_rec BSC_KPI_MEASURE_PROPS_PUB.kpi_measure_props_rec;
659 l_obj_prototype_flag BSC_KPIS_B.prototype_flag%TYPE;
660
661 BEGIN
662
663 FND_MSG_PUB.Initialize;
664 x_return_status := FND_API.G_RET_STS_SUCCESS;
665
666 -- Any Business Logic Validation
667
668 BSC_KPI_MEASURE_PROPS_PUB.Retrieve_Kpi_Measure_Props
669 ( p_objective_id => p_objective_id
670 , p_kpi_measure_id => p_kpi_measure_id
671 , x_kpi_measure_rec => l_kpi_measure_rec
672 , x_return_status => x_return_status
673 , x_msg_count => x_msg_count
674 , x_msg_data => x_msg_data
675 );
676
677 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
678 RAISE FND_API.G_EXC_ERROR;
679 END IF;
680
681 l_kpi_measure_rec.disable_color := p_disable_color;
682
683 BSC_KPI_MEASURE_PROPS_PUB.Update_Kpi_Measure_Props
684 ( p_commit => p_commit
685 , p_kpi_measure_rec => l_kpi_measure_rec
686 , x_return_status => x_return_status
687 , x_msg_count => x_msg_count
688 , x_msg_data => x_msg_data
689 );
690
691 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
692 RAISE FND_API.G_EXC_ERROR;
693 END IF;
694
695 IF (p_need_color_recalc = 'Y') THEN
696
697 Change_Prototype_Flag
698 ( p_objective_id => p_objective_id
699 , p_kpi_measure_id => p_kpi_measure_id
700 , p_prototype_flag => 7
701 , x_return_status => x_return_status
702 , x_msg_count => x_msg_count
703 , x_msg_data => x_msg_data
704 );
705
706
707 END IF;
708
709
710
711 EXCEPTION
712 WHEN FND_API.G_EXC_ERROR THEN
713 IF (x_msg_data IS NULL) THEN
714 FND_MSG_PUB.Count_And_Get
715 ( p_encoded => FND_API.G_FALSE
716 , p_count => x_msg_count
717 , p_data => x_msg_data
718 );
719 END IF;
720 x_return_status := FND_API.G_RET_STS_ERROR;
721 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
722 IF (x_msg_data IS NULL) THEN
723 FND_MSG_PUB.Count_And_Get
724 ( p_encoded => FND_API.G_FALSE
725 , p_count => x_msg_count
726 , p_data => x_msg_data
727 );
728 END IF;
729 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
730 WHEN NO_DATA_FOUND THEN
731 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
732 IF (x_msg_data IS NOT NULL) THEN
733 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Save_Disable_Color_Of_Kpi ';
734 ELSE
735 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Save_Disable_Color_Of_Kpi ';
736 END IF;
737 WHEN OTHERS THEN
738 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
739 IF (x_msg_data IS NOT NULL) THEN
740 x_msg_data := x_msg_data || ' -> BSC_KPI_COLOR_PROPERTIES_PUB.Save_Disable_Color_Of_Kpi ';
741 ELSE
742 x_msg_data := SQLERRM || ' at BSC_KPI_COLOR_PROPERTIES_PUB.Save_Disable_Color_Of_Kpi ';
743 END IF;
744
745 END Save_Disable_Color_Of_Kpi;
746
747
748 END BSC_KPI_COLOR_PROPERTIES_PUB;