99: )
100: RETURN NUMBER IS
101:
102: l_index NUMBER;
103: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
104: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
105:
106: BEGIN
107:
100: RETURN NUMBER IS
101:
102: l_index NUMBER;
103: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
104: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
105:
106: BEGIN
107:
108: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
104: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
105:
106: BEGIN
107:
108: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
109:
110: FOR l_index IN 1 .. l_array_colors.COUNT LOOP
111: l_color_rec := l_array_colors(l_index);
112: IF l_color_rec.color_id = p_color_id THEN
205: )
206: RETURN NUMBER IS
207:
208: l_index NUMBER;
209: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
210: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
211:
212: BEGIN
213:
206: RETURN NUMBER IS
207:
208: l_index NUMBER;
209: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
210: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
211:
212: BEGIN
213:
214: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
210: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
211:
212: BEGIN
213:
214: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
215: FOR l_index IN 1 .. l_array_colors.COUNT LOOP
216: l_color_rec := l_array_colors(l_index);
217: IF l_color_rec.color_id = p_color_id THEN
218: RETURN l_color_rec.numeric_eq;
260: p_array_of_number IN OUT NOCOPY BSC_UPDATE_UTIL.t_array_of_number
261: )
262: IS
263: l_index NUMBER;
264: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
265: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
266:
267: BEGIN
268:
261: )
262: IS
263: l_index NUMBER;
264: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
265: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
266:
267: BEGIN
268:
269: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
265: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
266:
267: BEGIN
268:
269: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
270: FOR l_index IN 1 .. l_array_colors.COUNT LOOP
271: l_color_rec := l_array_colors(l_index);
272: p_array_of_number(l_color_rec.color_id) := 0;
273: END LOOP;
298: WHERE dim_level1 || dim_level2 || dim_level3 || dim_level4 || dim_level5 || dim_level6 || dim_level7 || dim_level8 || period_id = p_dim_comb
299: AND indicator = p_indicator
300: AND tab_id = p_tab_id
301: UNION -- bsc_sys_kpi_colors may not contain a color entry for 'color enabled' KPIs for which data has not been loaded
302: SELECT kpi_measure_id, BSC_COLOR_REPOSITORY.NO_COLOR kpi_color
303: FROM bsc_kpi_measure_props
304: WHERE indicator = p_indicator
305: AND disable_color = 'F'
306: AND kpi_measure_id NOT IN
323: FOR l_dim_comb IN c_dim_comb(p_objective_color_rec.objective_id, p_objective_color_rec.tab_id) LOOP
324:
325: IF l_dim_comb.dim_comb IS NOT NULL THEN
326:
327: l_obj_color := BSC_COLOR_REPOSITORY.NO_COLOR;
328: l_set_no_color := FALSE;
329: l_weighted_average_val := 0;
330:
331: FOR l_kpi_colors IN c_kpi_colors(p_objective_color_rec.objective_id, p_objective_color_rec.tab_id, l_dim_comb.dim_comb) LOOP
331: FOR l_kpi_colors IN c_kpi_colors(p_objective_color_rec.objective_id, p_objective_color_rec.tab_id, l_dim_comb.dim_comb) LOOP
332:
333: l_kpi_weight := get_kpi_measure_weight(p_objective_color_rec.objective_id, l_kpi_colors.kpi_measure_id);
334:
335: IF l_kpi_colors.kpi_color = BSC_COLOR_REPOSITORY.NO_COLOR AND l_kpi_weight <> 0 THEN
336: l_obj_color := BSC_COLOR_REPOSITORY.NO_COLOR;
337: l_set_no_color := TRUE;
338: EXIT;
339: END IF;
332:
333: l_kpi_weight := get_kpi_measure_weight(p_objective_color_rec.objective_id, l_kpi_colors.kpi_measure_id);
334:
335: IF l_kpi_colors.kpi_color = BSC_COLOR_REPOSITORY.NO_COLOR AND l_kpi_weight <> 0 THEN
336: l_obj_color := BSC_COLOR_REPOSITORY.NO_COLOR;
337: l_set_no_color := TRUE;
338: EXIT;
339: END IF;
340:
392: l_obj_color_method NUMBER;
393: l_threshold_prop_table threshold_prop_table;
394: BEGIN
395:
396: l_obj_color := BSC_COLOR_REPOSITORY.NO_COLOR;
397:
398: l_obj_color_method := get_objective_color_method(p_pbjective_id);
399:
400: l_threshold_prop_table := Get_Kpi_Measure_Threshold (p_pbjective_id, NULL);
552: WHERE dim_level1 || dim_level2 || dim_level3 || dim_level4 || dim_level5 || dim_level6 || dim_level7 || dim_level8 || period_id = p_dim_comb
553: AND indicator = p_indicator
554: AND tab_id = p_tab_id
555: UNION -- bsc_sys_kpi_colors may not contain a color entry for 'color enabled' KPIs for which data has not been loaded
556: SELECT BSC_COLOR_REPOSITORY.NO_COLOR kpi_color, kpi_measure_id
557: FROM bsc_kpi_measure_props
558: WHERE indicator = p_indicator
559: AND disable_color = 'F'
560: AND kpi_measure_id NOT IN
578:
579: IF l_dim_comb.dim_comb IS NOT NULL THEN
580:
581: l_color_index := 0;
582: l_obj_color := BSC_COLOR_REPOSITORY.NO_COLOR;
583:
584: FOR l_kpi_colors IN c_kpi_colors(p_objective_color_rec.objective_id, p_objective_color_rec.tab_id, l_dim_comb.dim_comb) LOOP
585:
586: l_color_index := l_color_index + 1;
661: BEGIN
662:
663: IF p_num_colors = 0 THEN
664:
665: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
666: x_kpi_index := -1;
667:
668: ELSIF p_num_colors = 1 THEN
669:
679: FOR l_index IN 1 .. p_num_colors LOOP
680: -- we could have started counter from 2, but we are doing from 1 since we want
681: -- to check for NO_COLOR for the first color p_colors(1) also.
682:
683: IF p_colors(l_index) = BSC_COLOR_REPOSITORY.NO_COLOR THEN
684: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
685: x_kpi_index := l_index;
686: RETURN;
687: END IF;
680: -- we could have started counter from 2, but we are doing from 1 since we want
681: -- to check for NO_COLOR for the first color p_colors(1) also.
682:
683: IF p_colors(l_index) = BSC_COLOR_REPOSITORY.NO_COLOR THEN
684: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
685: x_kpi_index := l_index;
686: RETURN;
687: END IF;
688:
726: BEGIN
727:
728: IF p_num_colors = 0 THEN
729:
730: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
731: x_kpi_index := -1;
732: RETURN;
733:
734: ELSIF p_num_colors = 1 THEN
745: FOR l_index IN 1 .. p_num_colors LOOP
746: -- we could have started counter from 2, but we are doing from 1 since we want
747: -- to check for NO_COLOR for the first color p_colors(1) also.
748:
749: IF p_colors(l_index) = BSC_COLOR_REPOSITORY.NO_COLOR THEN
750: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
751: x_kpi_index := l_index;
752: RETURN;
753: END IF;
746: -- we could have started counter from 2, but we are doing from 1 since we want
747: -- to check for NO_COLOR for the first color p_colors(1) also.
748:
749: IF p_colors(l_index) = BSC_COLOR_REPOSITORY.NO_COLOR THEN
750: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
751: x_kpi_index := l_index;
752: RETURN;
753: END IF;
754:
782: , p_color_count OUT NOCOPY NUMBER
783: )
784: IS
785: l_index NUMBER;
786: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
787: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
788:
789: BEGIN
790:
783: )
784: IS
785: l_index NUMBER;
786: l_array_colors BSC_COLOR_REPOSITORY.t_array_colors;
787: l_color_rec BSC_COLOR_REPOSITORY.t_color_rec;
788:
789: BEGIN
790:
791: p_color_count := 0;
788:
789: BEGIN
790:
791: p_color_count := 0;
792: l_array_colors := BSC_COLOR_REPOSITORY.get_color_props();
793: FOR l_index IN 1 .. l_array_colors.COUNT LOOP
794: l_color_rec := l_array_colors(l_index);
795:
796: IF p_array_of_number(l_color_rec.color_id) = p_max_count THEN
831: BEGIN
832:
833: IF p_num_colors = 0 THEN
834:
835: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
836: x_kpi_index := -1;
837:
838: ELSIF p_num_colors = 1 THEN
839:
841: x_kpi_index := 1;
842:
843: ELSE
844:
845: l_most_freq_color := BSC_COLOR_REPOSITORY.NO_COLOR;
846: x_kpi_index := -1;
847: initialize_color_array(l_array_of_number);
848:
849: FOR l_index IN 1 .. p_num_colors LOOP
847: initialize_color_array(l_array_of_number);
848:
849: FOR l_index IN 1 .. p_num_colors LOOP
850:
851: IF p_colors(l_index) = BSC_COLOR_REPOSITORY.NO_COLOR THEN
852: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
853: x_kpi_index := l_index;
854: RETURN;
855: END IF;
848:
849: FOR l_index IN 1 .. p_num_colors LOOP
850:
851: IF p_colors(l_index) = BSC_COLOR_REPOSITORY.NO_COLOR THEN
852: x_color := BSC_COLOR_REPOSITORY.NO_COLOR;
853: x_kpi_index := l_index;
854: RETURN;
855: END IF;
856: