[Home] [Help]
PACKAGE BODY: APPS.BSC_KPI_ANALYSIS_MEASURES_PKG
Source
1 package body BSC_KPI_ANALYSIS_MEASURES_PKG as
2 /* $Header: BSCKAMSB.pls 115.9 2003/06/21 01:24:19 meastmon ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_INDICATOR in NUMBER,
6 X_ANALYSIS_OPTION0 in NUMBER,
7 X_ANALYSIS_OPTION1 in NUMBER,
8 X_ANALYSIS_OPTION2 in NUMBER,
9 X_SERIES_ID in NUMBER,
10 X_DATASET_ID in NUMBER,
11 X_AXIS in NUMBER,
12 X_SERIES_TYPE in NUMBER,
13 X_STACK_SERIES_ID in NUMBER,
14 X_BM_FLAG in NUMBER,
15 X_BUDGET_FLAG in NUMBER,
16 X_DEFAULT_VALUE in NUMBER,
17 X_SERIES_COLOR in NUMBER,
18 X_BM_COLOR in NUMBER,
19 X_NAME in VARCHAR2,
20 X_HELP in VARCHAR2
21 ) is
22 cursor C is select ROWID from BSC_KPI_ANALYSIS_MEASURES_B
23 where INDICATOR = X_INDICATOR
24 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
25 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
26 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
27 and SERIES_ID = X_SERIES_ID
28 ;
29 begin
30 insert into BSC_KPI_ANALYSIS_MEASURES_B (
31 ANALYSIS_OPTION2,
32 SERIES_ID,
33 DATASET_ID,
34 AXIS,
35 SERIES_TYPE,
36 STACK_SERIES_ID,
37 BM_FLAG,
38 BUDGET_FLAG,
39 DEFAULT_VALUE,
40 SERIES_COLOR,
41 BM_COLOR,
42 INDICATOR,
43 ANALYSIS_OPTION0,
44 ANALYSIS_OPTION1
45 ) values (
46 X_ANALYSIS_OPTION2,
47 X_SERIES_ID,
48 X_DATASET_ID,
49 X_AXIS,
50 X_SERIES_TYPE,
51 X_STACK_SERIES_ID,
52 X_BM_FLAG,
53 X_BUDGET_FLAG,
54 X_DEFAULT_VALUE,
55 X_SERIES_COLOR,
56 X_BM_COLOR,
57 X_INDICATOR,
58 X_ANALYSIS_OPTION0,
59 X_ANALYSIS_OPTION1
60 );
61
62 insert into BSC_KPI_ANALYSIS_MEASURES_TL (
63 INDICATOR,
64 ANALYSIS_OPTION0,
65 ANALYSIS_OPTION1,
66 ANALYSIS_OPTION2,
67 SERIES_ID,
68 NAME,
69 HELP,
70 LANGUAGE,
71 SOURCE_LANG
72 ) select
73 X_INDICATOR,
74 X_ANALYSIS_OPTION0,
75 X_ANALYSIS_OPTION1,
76 X_ANALYSIS_OPTION2,
77 X_SERIES_ID,
78 X_NAME,
79 X_HELP,
80 L.LANGUAGE_CODE,
81 userenv('LANG')
82 from FND_LANGUAGES L
83 where L.INSTALLED_FLAG in ('I', 'B')
84 and not exists
85 (select NULL
86 from BSC_KPI_ANALYSIS_MEASURES_TL T
87 where T.INDICATOR = X_INDICATOR
88 and T.ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
89 and T.ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
90 and T.ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
91 and T.SERIES_ID = X_SERIES_ID
92 and T.LANGUAGE = L.LANGUAGE_CODE);
93
94 open c;
95 fetch c into X_ROWID;
96 if (c%notfound) then
97 close c;
98 raise no_data_found;
99 end if;
100 close c;
101
102 end INSERT_ROW;
103
104 procedure LOCK_ROW (
105 X_INDICATOR in NUMBER,
106 X_ANALYSIS_OPTION0 in NUMBER,
107 X_ANALYSIS_OPTION1 in NUMBER,
108 X_ANALYSIS_OPTION2 in NUMBER,
109 X_SERIES_ID in NUMBER,
110 X_DATASET_ID in NUMBER,
111 X_AXIS in NUMBER,
112 X_SERIES_TYPE in NUMBER,
113 X_STACK_SERIES_ID in NUMBER,
114 X_BM_FLAG in NUMBER,
115 X_BUDGET_FLAG in NUMBER,
116 X_DEFAULT_VALUE in NUMBER,
117 X_SERIES_COLOR in NUMBER,
118 X_BM_COLOR in NUMBER,
119 X_NAME in VARCHAR2,
120 X_HELP in VARCHAR2
121 ) is
122 cursor c is select
123 DATASET_ID,
124 AXIS,
125 SERIES_TYPE,
126 STACK_SERIES_ID,
127 BM_FLAG,
128 BUDGET_FLAG,
129 DEFAULT_VALUE,
130 SERIES_COLOR,
131 BM_COLOR
132 from BSC_KPI_ANALYSIS_MEASURES_B
133 where INDICATOR = X_INDICATOR
134 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
135 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
136 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
137 and SERIES_ID = X_SERIES_ID
138 for update of INDICATOR nowait;
139 recinfo c%rowtype;
140
141 cursor c1 is select
142 NAME,
143 HELP,
144 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
145 from BSC_KPI_ANALYSIS_MEASURES_TL
146 where INDICATOR = X_INDICATOR
147 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
148 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
149 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
150 and SERIES_ID = X_SERIES_ID
151 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
152 for update of INDICATOR nowait;
153 begin
154 open c;
155 fetch c into recinfo;
156 if (c%notfound) then
157 close c;
158 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
159 app_exception.raise_exception;
160 end if;
161 close c;
162 if ( (recinfo.DATASET_ID = X_DATASET_ID)
163 AND (recinfo.AXIS = X_AXIS)
164 AND (recinfo.SERIES_TYPE = X_SERIES_TYPE)
165 AND ((recinfo.STACK_SERIES_ID = X_STACK_SERIES_ID)
166 OR ((recinfo.STACK_SERIES_ID is null) AND (X_STACK_SERIES_ID is null)))
167 AND (recinfo.BM_FLAG = X_BM_FLAG)
168 AND (recinfo.BUDGET_FLAG = X_BUDGET_FLAG)
169 AND (recinfo.DEFAULT_VALUE = X_DEFAULT_VALUE)
170 AND (recinfo.SERIES_COLOR = X_SERIES_COLOR)
171 AND (recinfo.BM_COLOR = X_BM_COLOR)
172 ) then
173 null;
174 else
175 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
176 app_exception.raise_exception;
177 end if;
178
179 for tlinfo in c1 loop
180 if (tlinfo.BASELANG = 'Y') then
181 if ( (tlinfo.NAME = X_NAME)
182 AND (tlinfo.HELP = X_HELP)
183 ) then
184 null;
185 else
186 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
187 app_exception.raise_exception;
188 end if;
189 end if;
190 end loop;
191 return;
192 end LOCK_ROW;
193
194 procedure UPDATE_ROW (
195 X_INDICATOR in NUMBER,
196 X_ANALYSIS_OPTION0 in NUMBER,
197 X_ANALYSIS_OPTION1 in NUMBER,
198 X_ANALYSIS_OPTION2 in NUMBER,
199 X_SERIES_ID in NUMBER,
200 X_DATASET_ID in NUMBER,
201 X_AXIS in NUMBER,
202 X_SERIES_TYPE in NUMBER,
203 X_STACK_SERIES_ID in NUMBER,
204 X_BM_FLAG in NUMBER,
205 X_BUDGET_FLAG in NUMBER,
206 X_DEFAULT_VALUE in NUMBER,
207 X_SERIES_COLOR in NUMBER,
208 X_BM_COLOR in NUMBER,
209 X_NAME in VARCHAR2,
210 X_HELP in VARCHAR2
211 ) is
212 l_old_dataset_id number;
213 begin
214
215 -- mdamle 4/23/2003 - PMD - Measure Definer - Update flag if dataset changed
216 select dataset_id into l_old_dataset_id
217 from bsc_kpi_analysis_measures_b
218 where INDICATOR = X_INDICATOR
219 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
220 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
221 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
222 and SERIES_ID = X_SERIES_ID;
223
224 if (l_old_dataset_id <> X_DATASET_ID) then
225 BSC_DESIGNER_PVT.ActionFlag_Change(x_indicator, BSC_DESIGNER_PVT.G_ActionFlag.GAA_Structure);
226 end if;
227
228 update BSC_KPI_ANALYSIS_MEASURES_B set
229 DATASET_ID = X_DATASET_ID,
230 AXIS = X_AXIS,
231 SERIES_TYPE = X_SERIES_TYPE,
232 STACK_SERIES_ID = X_STACK_SERIES_ID,
233 BM_FLAG = X_BM_FLAG,
234 BUDGET_FLAG = X_BUDGET_FLAG,
235 DEFAULT_VALUE = X_DEFAULT_VALUE,
236 SERIES_COLOR = X_SERIES_COLOR,
237 BM_COLOR = X_BM_COLOR
238 where INDICATOR = X_INDICATOR
239 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
240 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
241 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
242 and SERIES_ID = X_SERIES_ID;
243
244 if (sql%notfound) then
245 raise no_data_found;
246 end if;
247
248 update BSC_KPI_ANALYSIS_MEASURES_TL set
249 NAME = X_NAME,
250 HELP = X_HELP,
251 SOURCE_LANG = userenv('LANG')
252 where INDICATOR = X_INDICATOR
253 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
254 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
255 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
256 and SERIES_ID = X_SERIES_ID
257 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
258
259 if (sql%notfound) then
260 raise no_data_found;
261 end if;
262 end UPDATE_ROW;
263
264 procedure DELETE_ROW (
265 X_INDICATOR in NUMBER,
266 X_ANALYSIS_OPTION0 in NUMBER,
267 X_ANALYSIS_OPTION1 in NUMBER,
268 X_ANALYSIS_OPTION2 in NUMBER,
269 X_SERIES_ID in NUMBER
270 ) is
271 begin
272 delete from BSC_KPI_ANALYSIS_MEASURES_TL
273 where INDICATOR = X_INDICATOR
274 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
275 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
276 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
277 and SERIES_ID = X_SERIES_ID;
278
279 if (sql%notfound) then
280 raise no_data_found;
281 end if;
282
283 delete from BSC_KPI_ANALYSIS_MEASURES_B
284 where INDICATOR = X_INDICATOR
285 and ANALYSIS_OPTION0 = X_ANALYSIS_OPTION0
286 and ANALYSIS_OPTION1 = X_ANALYSIS_OPTION1
287 and ANALYSIS_OPTION2 = X_ANALYSIS_OPTION2
288 and SERIES_ID = X_SERIES_ID;
289
290 if (sql%notfound) then
291 raise no_data_found;
292 end if;
293 end DELETE_ROW;
294
295 procedure ADD_LANGUAGE
296 is
297 begin
298 delete from BSC_KPI_ANALYSIS_MEASURES_TL T
299 where not exists
300 (select NULL
301 from BSC_KPI_ANALYSIS_MEASURES_B B
302 where B.INDICATOR = T.INDICATOR
303 and B.ANALYSIS_OPTION0 = T.ANALYSIS_OPTION0
304 and B.ANALYSIS_OPTION1 = T.ANALYSIS_OPTION1
305 and B.ANALYSIS_OPTION2 = T.ANALYSIS_OPTION2
306 and B.SERIES_ID = T.SERIES_ID
307 );
308
309 update BSC_KPI_ANALYSIS_MEASURES_TL T set (
310 NAME,
311 HELP
312 ) = (select
313 B.NAME,
314 B.HELP
315 from BSC_KPI_ANALYSIS_MEASURES_TL B
316 where B.INDICATOR = T.INDICATOR
317 and B.ANALYSIS_OPTION0 = T.ANALYSIS_OPTION0
318 and B.ANALYSIS_OPTION1 = T.ANALYSIS_OPTION1
319 and B.ANALYSIS_OPTION2 = T.ANALYSIS_OPTION2
320 and B.SERIES_ID = T.SERIES_ID
321 and B.LANGUAGE = T.SOURCE_LANG)
322 where (
323 T.INDICATOR,
324 T.ANALYSIS_OPTION0,
325 T.ANALYSIS_OPTION1,
326 T.ANALYSIS_OPTION2,
327 T.SERIES_ID,
328 T.LANGUAGE
329 ) in (select
330 SUBT.INDICATOR,
331 SUBT.ANALYSIS_OPTION0,
332 SUBT.ANALYSIS_OPTION1,
333 SUBT.ANALYSIS_OPTION2,
334 SUBT.SERIES_ID,
335 SUBT.LANGUAGE
336 from BSC_KPI_ANALYSIS_MEASURES_TL SUBB, BSC_KPI_ANALYSIS_MEASURES_TL SUBT
337 where SUBB.INDICATOR = SUBT.INDICATOR
338 and SUBB.ANALYSIS_OPTION0 = SUBT.ANALYSIS_OPTION0
339 and SUBB.ANALYSIS_OPTION1 = SUBT.ANALYSIS_OPTION1
340 and SUBB.ANALYSIS_OPTION2 = SUBT.ANALYSIS_OPTION2
341 and SUBB.SERIES_ID = SUBT.SERIES_ID
342 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
343 and (SUBB.NAME <> SUBT.NAME
344 or SUBB.HELP <> SUBT.HELP
345 ));
346
347 insert into BSC_KPI_ANALYSIS_MEASURES_TL (
348 INDICATOR,
349 ANALYSIS_OPTION0,
350 ANALYSIS_OPTION1,
351 ANALYSIS_OPTION2,
352 SERIES_ID,
353 NAME,
354 HELP,
355 LANGUAGE,
356 SOURCE_LANG
357 ) select
358 B.INDICATOR,
359 B.ANALYSIS_OPTION0,
360 B.ANALYSIS_OPTION1,
361 B.ANALYSIS_OPTION2,
362 B.SERIES_ID,
363 B.NAME,
364 B.HELP,
365 L.LANGUAGE_CODE,
366 B.SOURCE_LANG
367 from BSC_KPI_ANALYSIS_MEASURES_TL B, FND_LANGUAGES L
368 where L.INSTALLED_FLAG in ('I', 'B')
369 and B.LANGUAGE = userenv('LANG')
370 and not exists
371 (select NULL
372 from BSC_KPI_ANALYSIS_MEASURES_TL T
373 where T.INDICATOR = B.INDICATOR
374 and T.ANALYSIS_OPTION0 = B.ANALYSIS_OPTION0
375 and T.ANALYSIS_OPTION1 = B.ANALYSIS_OPTION1
376 and T.ANALYSIS_OPTION2 = B.ANALYSIS_OPTION2
377 and T.SERIES_ID = B.SERIES_ID
378 and T.LANGUAGE = L.LANGUAGE_CODE);
379 end ADD_LANGUAGE;
380
381 end BSC_KPI_ANALYSIS_MEASURES_PKG;