DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_KPI_DEFAULTS_PKG

Source


1 package body BSC_KPI_DEFAULTS_PKG as
2 /* $Header: BSCKPIDB.pls 115.6 2003/02/12 14:25:56 adrao ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_TAB_ID in NUMBER,
6   X_INDICATOR in NUMBER,
7   X_FORMAT_MASK in VARCHAR2,
8   X_COLOR_METHOD in NUMBER,
9   X_COLOR_LEVEL1 in NUMBER,
10   X_COLOR_LEVEL2 in NUMBER,
11   X_COLOR_LEVEL3 in NUMBER,
12   X_COLOR_LEVEL4 in NUMBER,
13   X_DIM_SET_ID in NUMBER,
14   X_DIM_LEVEL1_VALUE in NUMBER,
15   X_DIM_LEVEL2_VALUE in NUMBER,
16   X_DIM_LEVEL3_VALUE in NUMBER,
17   X_DIM_LEVEL4_VALUE in NUMBER,
18   X_DIM_LEVEL5_VALUE in NUMBER,
19   X_DIM_LEVEL6_VALUE in NUMBER,
20   X_DIM_LEVEL7_VALUE in NUMBER,
21   X_DIM_LEVEL8_VALUE in NUMBER,
22   X_ANALYSIS_OPTION0_NAME in VARCHAR2,
23   X_ANALYSIS_OPTION1_NAME in VARCHAR2,
24   X_ANALYSIS_OPTION2_NAME in VARCHAR2,
25   X_PERIOD_NAME in VARCHAR2,
26   X_SERIES_NAME in VARCHAR2,
27   X_DIM_LEVEL1_NAME in VARCHAR2,
28   X_DIM_LEVEL2_NAME in VARCHAR2,
29   X_DIM_LEVEL3_NAME in VARCHAR2,
30   X_DIM_LEVEL4_NAME in VARCHAR2,
31   X_DIM_LEVEL5_NAME in VARCHAR2,
32   X_DIM_LEVEL6_NAME in VARCHAR2,
33   X_DIM_LEVEL7_NAME in VARCHAR2,
34   X_DIM_LEVEL8_NAME in VARCHAR2,
35   X_DIM_LEVEL1_TEXT in VARCHAR2,
36   X_DIM_LEVEL2_TEXT in VARCHAR2,
37   X_DIM_LEVEL3_TEXT in VARCHAR2,
38   X_DIM_LEVEL4_TEXT in VARCHAR2,
39   X_DIM_LEVEL5_TEXT in VARCHAR2,
40   X_DIM_LEVEL6_TEXT in VARCHAR2,
41   X_DIM_LEVEL7_TEXT in VARCHAR2,
42   X_DIM_LEVEL8_TEXT in VARCHAR2
43 ) is
44   cursor C is select ROWID from BSC_KPI_DEFAULTS_B
45     where TAB_ID = X_TAB_ID
46     and INDICATOR = X_INDICATOR
47     ;
48 begin
49   insert into BSC_KPI_DEFAULTS_B (
50     TAB_ID,
51     INDICATOR,
52     FORMAT_MASK,
53     COLOR_METHOD,
54     COLOR_LEVEL1,
55     COLOR_LEVEL2,
56     COLOR_LEVEL3,
57     COLOR_LEVEL4,
58     DIM_SET_ID,
59     DIM_LEVEL1_VALUE,
60     DIM_LEVEL2_VALUE,
61     DIM_LEVEL3_VALUE,
62     DIM_LEVEL4_VALUE,
63     DIM_LEVEL5_VALUE,
64     DIM_LEVEL6_VALUE,
65     DIM_LEVEL7_VALUE,
66     DIM_LEVEL8_VALUE
67   ) values (
68     X_TAB_ID,
69     X_INDICATOR,
70     X_FORMAT_MASK,
71     X_COLOR_METHOD,
72     X_COLOR_LEVEL1,
73     X_COLOR_LEVEL2,
74     X_COLOR_LEVEL3,
75     X_COLOR_LEVEL4,
76     X_DIM_SET_ID,
77     X_DIM_LEVEL1_VALUE,
78     X_DIM_LEVEL2_VALUE,
79     X_DIM_LEVEL3_VALUE,
80     X_DIM_LEVEL4_VALUE,
81     X_DIM_LEVEL5_VALUE,
82     X_DIM_LEVEL6_VALUE,
83     X_DIM_LEVEL7_VALUE,
84     X_DIM_LEVEL8_VALUE
85   );
86 
87   insert into BSC_KPI_DEFAULTS_TL (
88     TAB_ID,
89     INDICATOR,
90     ANALYSIS_OPTION0_NAME,
91     ANALYSIS_OPTION1_NAME,
92     ANALYSIS_OPTION2_NAME,
93     PERIOD_NAME,
94     SERIES_NAME,
95     DIM_LEVEL1_NAME,
96     DIM_LEVEL2_NAME,
97     DIM_LEVEL3_NAME,
98     DIM_LEVEL4_NAME,
99     DIM_LEVEL5_NAME,
100     DIM_LEVEL6_NAME,
101     DIM_LEVEL7_NAME,
102     DIM_LEVEL8_NAME,
103     DIM_LEVEL1_TEXT,
104     DIM_LEVEL2_TEXT,
105     DIM_LEVEL3_TEXT,
106     DIM_LEVEL4_TEXT,
107     DIM_LEVEL5_TEXT,
108     DIM_LEVEL6_TEXT,
109     DIM_LEVEL7_TEXT,
110     DIM_LEVEL8_TEXT,
111     LANGUAGE,
112     SOURCE_LANG
113   ) select
114     X_TAB_ID,
115     X_INDICATOR,
116     X_ANALYSIS_OPTION0_NAME,
117     X_ANALYSIS_OPTION1_NAME,
118     X_ANALYSIS_OPTION2_NAME,
119     X_PERIOD_NAME,
120     X_SERIES_NAME,
121     X_DIM_LEVEL1_NAME,
122     X_DIM_LEVEL2_NAME,
123     X_DIM_LEVEL3_NAME,
124     X_DIM_LEVEL4_NAME,
125     X_DIM_LEVEL5_NAME,
126     X_DIM_LEVEL6_NAME,
127     X_DIM_LEVEL7_NAME,
128     X_DIM_LEVEL8_NAME,
129     X_DIM_LEVEL1_TEXT,
130     X_DIM_LEVEL2_TEXT,
131     X_DIM_LEVEL3_TEXT,
132     X_DIM_LEVEL4_TEXT,
133     X_DIM_LEVEL5_TEXT,
134     X_DIM_LEVEL6_TEXT,
135     X_DIM_LEVEL7_TEXT,
136     X_DIM_LEVEL8_TEXT,
137     L.LANGUAGE_CODE,
138     userenv('LANG')
139   from FND_LANGUAGES L
140   where L.INSTALLED_FLAG in ('I', 'B')
141   and not exists
142     (select NULL
143     from BSC_KPI_DEFAULTS_TL T
144     where T.TAB_ID = X_TAB_ID
145     and T.INDICATOR = X_INDICATOR
146     and T.LANGUAGE = L.LANGUAGE_CODE);
147 
148   open c;
149   fetch c into X_ROWID;
150   if (c%notfound) then
151     close c;
152     raise no_data_found;
153   end if;
154   close c;
155 
156 end INSERT_ROW;
157 
158 procedure LOCK_ROW (
159   X_TAB_ID in NUMBER,
160   X_INDICATOR in NUMBER,
161   X_FORMAT_MASK in VARCHAR2,
162   X_COLOR_METHOD in NUMBER,
163   X_COLOR_LEVEL1 in NUMBER,
164   X_COLOR_LEVEL2 in NUMBER,
165   X_COLOR_LEVEL3 in NUMBER,
166   X_COLOR_LEVEL4 in NUMBER,
167   X_DIM_SET_ID in NUMBER,
168   X_DIM_LEVEL1_VALUE in NUMBER,
169   X_DIM_LEVEL2_VALUE in NUMBER,
170   X_DIM_LEVEL3_VALUE in NUMBER,
171   X_DIM_LEVEL4_VALUE in NUMBER,
172   X_DIM_LEVEL5_VALUE in NUMBER,
173   X_DIM_LEVEL6_VALUE in NUMBER,
174   X_DIM_LEVEL7_VALUE in NUMBER,
175   X_DIM_LEVEL8_VALUE in NUMBER,
176   X_ANALYSIS_OPTION0_NAME in VARCHAR2,
177   X_ANALYSIS_OPTION1_NAME in VARCHAR2,
178   X_ANALYSIS_OPTION2_NAME in VARCHAR2,
179   X_PERIOD_NAME in VARCHAR2,
180   X_SERIES_NAME in VARCHAR2,
181   X_DIM_LEVEL1_NAME in VARCHAR2,
182   X_DIM_LEVEL2_NAME in VARCHAR2,
183   X_DIM_LEVEL3_NAME in VARCHAR2,
184   X_DIM_LEVEL4_NAME in VARCHAR2,
185   X_DIM_LEVEL5_NAME in VARCHAR2,
186   X_DIM_LEVEL6_NAME in VARCHAR2,
187   X_DIM_LEVEL7_NAME in VARCHAR2,
188   X_DIM_LEVEL8_NAME in VARCHAR2,
189   X_DIM_LEVEL1_TEXT in VARCHAR2,
190   X_DIM_LEVEL2_TEXT in VARCHAR2,
191   X_DIM_LEVEL3_TEXT in VARCHAR2,
192   X_DIM_LEVEL4_TEXT in VARCHAR2,
193   X_DIM_LEVEL5_TEXT in VARCHAR2,
194   X_DIM_LEVEL6_TEXT in VARCHAR2,
195   X_DIM_LEVEL7_TEXT in VARCHAR2,
196   X_DIM_LEVEL8_TEXT in VARCHAR2
197 ) is
198   cursor c is select
199       FORMAT_MASK,
200       COLOR_METHOD,
201       COLOR_LEVEL1,
202       COLOR_LEVEL2,
203       COLOR_LEVEL3,
204       COLOR_LEVEL4,
205       DIM_SET_ID,
206       DIM_LEVEL1_VALUE,
207       DIM_LEVEL2_VALUE,
208       DIM_LEVEL3_VALUE,
209       DIM_LEVEL4_VALUE,
210       DIM_LEVEL5_VALUE,
211       DIM_LEVEL6_VALUE,
212       DIM_LEVEL7_VALUE,
213       DIM_LEVEL8_VALUE
214     from BSC_KPI_DEFAULTS_B
215     where TAB_ID = X_TAB_ID
216     and INDICATOR = X_INDICATOR
217     for update of TAB_ID nowait;
218   recinfo c%rowtype;
219 
220   cursor c1 is select
221       ANALYSIS_OPTION0_NAME,
222       ANALYSIS_OPTION1_NAME,
223       ANALYSIS_OPTION2_NAME,
224       PERIOD_NAME,
225       SERIES_NAME,
226       DIM_LEVEL1_NAME,
227       DIM_LEVEL2_NAME,
228       DIM_LEVEL3_NAME,
229       DIM_LEVEL4_NAME,
230       DIM_LEVEL5_NAME,
231       DIM_LEVEL6_NAME,
232       DIM_LEVEL7_NAME,
233       DIM_LEVEL8_NAME,
234       DIM_LEVEL1_TEXT,
235       DIM_LEVEL2_TEXT,
236       DIM_LEVEL3_TEXT,
237       DIM_LEVEL4_TEXT,
238       DIM_LEVEL5_TEXT,
239       DIM_LEVEL6_TEXT,
240       DIM_LEVEL7_TEXT,
241       DIM_LEVEL8_TEXT,
242       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
243     from BSC_KPI_DEFAULTS_TL
244     where TAB_ID = X_TAB_ID
245     and INDICATOR = X_INDICATOR
246     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
247     for update of TAB_ID nowait;
248 begin
249   open c;
250   fetch c into recinfo;
251   if (c%notfound) then
252     close c;
253     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
254     app_exception.raise_exception;
255   end if;
256   close c;
257   if (    ((recinfo.FORMAT_MASK = X_FORMAT_MASK)
258            OR ((recinfo.FORMAT_MASK is null) AND (X_FORMAT_MASK is null)))
259       AND ((recinfo.COLOR_METHOD = X_COLOR_METHOD)
260            OR ((recinfo.COLOR_METHOD is null) AND (X_COLOR_METHOD is null)))
261       AND ((recinfo.COLOR_LEVEL1 = X_COLOR_LEVEL1)
262            OR ((recinfo.COLOR_LEVEL1 is null) AND (X_COLOR_LEVEL1 is null)))
263       AND ((recinfo.COLOR_LEVEL2 = X_COLOR_LEVEL2)
264            OR ((recinfo.COLOR_LEVEL2 is null) AND (X_COLOR_LEVEL2 is null)))
265       AND ((recinfo.COLOR_LEVEL3 = X_COLOR_LEVEL3)
266            OR ((recinfo.COLOR_LEVEL3 is null) AND (X_COLOR_LEVEL3 is null)))
267       AND ((recinfo.COLOR_LEVEL4 = X_COLOR_LEVEL4)
268            OR ((recinfo.COLOR_LEVEL4 is null) AND (X_COLOR_LEVEL4 is null)))
269       AND ((recinfo.DIM_SET_ID = X_DIM_SET_ID)
270            OR ((recinfo.DIM_SET_ID is null) AND (X_DIM_SET_ID is null)))
271       AND ((recinfo.DIM_LEVEL1_VALUE = X_DIM_LEVEL1_VALUE)
272            OR ((recinfo.DIM_LEVEL1_VALUE is null) AND (X_DIM_LEVEL1_VALUE is null)))
273       AND ((recinfo.DIM_LEVEL2_VALUE = X_DIM_LEVEL2_VALUE)
274            OR ((recinfo.DIM_LEVEL2_VALUE is null) AND (X_DIM_LEVEL2_VALUE is null)))
275       AND ((recinfo.DIM_LEVEL3_VALUE = X_DIM_LEVEL3_VALUE)
276            OR ((recinfo.DIM_LEVEL3_VALUE is null) AND (X_DIM_LEVEL3_VALUE is null)))
277       AND ((recinfo.DIM_LEVEL4_VALUE = X_DIM_LEVEL4_VALUE)
278            OR ((recinfo.DIM_LEVEL4_VALUE is null) AND (X_DIM_LEVEL4_VALUE is null)))
279       AND ((recinfo.DIM_LEVEL5_VALUE = X_DIM_LEVEL5_VALUE)
280            OR ((recinfo.DIM_LEVEL5_VALUE is null) AND (X_DIM_LEVEL5_VALUE is null)))
281       AND ((recinfo.DIM_LEVEL6_VALUE = X_DIM_LEVEL6_VALUE)
282            OR ((recinfo.DIM_LEVEL6_VALUE is null) AND (X_DIM_LEVEL6_VALUE is null)))
283       AND ((recinfo.DIM_LEVEL7_VALUE = X_DIM_LEVEL7_VALUE)
284            OR ((recinfo.DIM_LEVEL7_VALUE is null) AND (X_DIM_LEVEL7_VALUE is null)))
285       AND ((recinfo.DIM_LEVEL8_VALUE = X_DIM_LEVEL8_VALUE)
286            OR ((recinfo.DIM_LEVEL8_VALUE is null) AND (X_DIM_LEVEL8_VALUE is null)))
287   ) then
288     null;
289   else
290     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
291     app_exception.raise_exception;
292   end if;
293 
294   for tlinfo in c1 loop
295     if (tlinfo.BASELANG = 'Y') then
296       if (    ((tlinfo.ANALYSIS_OPTION0_NAME = X_ANALYSIS_OPTION0_NAME)
297                OR ((tlinfo.ANALYSIS_OPTION0_NAME is null) AND (X_ANALYSIS_OPTION0_NAME is null)))
298           AND ((tlinfo.ANALYSIS_OPTION1_NAME = X_ANALYSIS_OPTION1_NAME)
299                OR ((tlinfo.ANALYSIS_OPTION1_NAME is null) AND (X_ANALYSIS_OPTION1_NAME is null)))
300           AND ((tlinfo.ANALYSIS_OPTION2_NAME = X_ANALYSIS_OPTION2_NAME)
301                OR ((tlinfo.ANALYSIS_OPTION2_NAME is null) AND (X_ANALYSIS_OPTION2_NAME is null)))
302           AND ((tlinfo.PERIOD_NAME = X_PERIOD_NAME)
303                OR ((tlinfo.PERIOD_NAME is null) AND (X_PERIOD_NAME is null)))
304           AND ((tlinfo.SERIES_NAME = X_SERIES_NAME)
305                OR ((tlinfo.SERIES_NAME is null) AND (X_SERIES_NAME is null)))
306           AND ((tlinfo.DIM_LEVEL1_NAME = X_DIM_LEVEL1_NAME)
307                OR ((tlinfo.DIM_LEVEL1_NAME is null) AND (X_DIM_LEVEL1_NAME is null)))
308           AND ((tlinfo.DIM_LEVEL2_NAME = X_DIM_LEVEL2_NAME)
309                OR ((tlinfo.DIM_LEVEL2_NAME is null) AND (X_DIM_LEVEL2_NAME is null)))
310           AND ((tlinfo.DIM_LEVEL3_NAME = X_DIM_LEVEL3_NAME)
311                OR ((tlinfo.DIM_LEVEL3_NAME is null) AND (X_DIM_LEVEL3_NAME is null)))
312           AND ((tlinfo.DIM_LEVEL4_NAME = X_DIM_LEVEL4_NAME)
313                OR ((tlinfo.DIM_LEVEL4_NAME is null) AND (X_DIM_LEVEL4_NAME is null)))
314           AND ((tlinfo.DIM_LEVEL5_NAME = X_DIM_LEVEL5_NAME)
315                OR ((tlinfo.DIM_LEVEL5_NAME is null) AND (X_DIM_LEVEL5_NAME is null)))
316           AND ((tlinfo.DIM_LEVEL6_NAME = X_DIM_LEVEL6_NAME)
317                OR ((tlinfo.DIM_LEVEL6_NAME is null) AND (X_DIM_LEVEL6_NAME is null)))
318           AND ((tlinfo.DIM_LEVEL7_NAME = X_DIM_LEVEL7_NAME)
319                OR ((tlinfo.DIM_LEVEL7_NAME is null) AND (X_DIM_LEVEL7_NAME is null)))
320           AND ((tlinfo.DIM_LEVEL8_NAME = X_DIM_LEVEL8_NAME)
321                OR ((tlinfo.DIM_LEVEL8_NAME is null) AND (X_DIM_LEVEL8_NAME is null)))
322           AND ((tlinfo.DIM_LEVEL1_TEXT = X_DIM_LEVEL1_TEXT)
323                OR ((tlinfo.DIM_LEVEL1_TEXT is null) AND (X_DIM_LEVEL1_TEXT is null)))
324           AND ((tlinfo.DIM_LEVEL2_TEXT = X_DIM_LEVEL2_TEXT)
325                OR ((tlinfo.DIM_LEVEL2_TEXT is null) AND (X_DIM_LEVEL2_TEXT is null)))
326           AND ((tlinfo.DIM_LEVEL3_TEXT = X_DIM_LEVEL3_TEXT)
327                OR ((tlinfo.DIM_LEVEL3_TEXT is null) AND (X_DIM_LEVEL3_TEXT is null)))
328           AND ((tlinfo.DIM_LEVEL4_TEXT = X_DIM_LEVEL4_TEXT)
329                OR ((tlinfo.DIM_LEVEL4_TEXT is null) AND (X_DIM_LEVEL4_TEXT is null)))
330           AND ((tlinfo.DIM_LEVEL5_TEXT = X_DIM_LEVEL5_TEXT)
331                OR ((tlinfo.DIM_LEVEL5_TEXT is null) AND (X_DIM_LEVEL5_TEXT is null)))
332           AND ((tlinfo.DIM_LEVEL6_TEXT = X_DIM_LEVEL6_TEXT)
333                OR ((tlinfo.DIM_LEVEL6_TEXT is null) AND (X_DIM_LEVEL6_TEXT is null)))
334           AND ((tlinfo.DIM_LEVEL7_TEXT = X_DIM_LEVEL7_TEXT)
335                OR ((tlinfo.DIM_LEVEL7_TEXT is null) AND (X_DIM_LEVEL7_TEXT is null)))
336           AND ((tlinfo.DIM_LEVEL8_TEXT = X_DIM_LEVEL8_TEXT)
337                OR ((tlinfo.DIM_LEVEL8_TEXT is null) AND (X_DIM_LEVEL8_TEXT is null)))
338       ) then
339         null;
340       else
341         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
342         app_exception.raise_exception;
343       end if;
344     end if;
345   end loop;
346   return;
347 end LOCK_ROW;
348 
349 procedure UPDATE_ROW (
350   X_TAB_ID in NUMBER,
351   X_INDICATOR in NUMBER,
352   X_FORMAT_MASK in VARCHAR2,
353   X_COLOR_METHOD in NUMBER,
354   X_COLOR_LEVEL1 in NUMBER,
355   X_COLOR_LEVEL2 in NUMBER,
356   X_COLOR_LEVEL3 in NUMBER,
357   X_COLOR_LEVEL4 in NUMBER,
358   X_DIM_SET_ID in NUMBER,
359   X_DIM_LEVEL1_VALUE in NUMBER,
360   X_DIM_LEVEL2_VALUE in NUMBER,
361   X_DIM_LEVEL3_VALUE in NUMBER,
362   X_DIM_LEVEL4_VALUE in NUMBER,
363   X_DIM_LEVEL5_VALUE in NUMBER,
364   X_DIM_LEVEL6_VALUE in NUMBER,
365   X_DIM_LEVEL7_VALUE in NUMBER,
366   X_DIM_LEVEL8_VALUE in NUMBER,
367   X_ANALYSIS_OPTION0_NAME in VARCHAR2,
368   X_ANALYSIS_OPTION1_NAME in VARCHAR2,
369   X_ANALYSIS_OPTION2_NAME in VARCHAR2,
370   X_PERIOD_NAME in VARCHAR2,
371   X_SERIES_NAME in VARCHAR2,
372   X_DIM_LEVEL1_NAME in VARCHAR2,
373   X_DIM_LEVEL2_NAME in VARCHAR2,
374   X_DIM_LEVEL3_NAME in VARCHAR2,
375   X_DIM_LEVEL4_NAME in VARCHAR2,
376   X_DIM_LEVEL5_NAME in VARCHAR2,
377   X_DIM_LEVEL6_NAME in VARCHAR2,
378   X_DIM_LEVEL7_NAME in VARCHAR2,
379   X_DIM_LEVEL8_NAME in VARCHAR2,
380   X_DIM_LEVEL1_TEXT in VARCHAR2,
381   X_DIM_LEVEL2_TEXT in VARCHAR2,
382   X_DIM_LEVEL3_TEXT in VARCHAR2,
383   X_DIM_LEVEL4_TEXT in VARCHAR2,
384   X_DIM_LEVEL5_TEXT in VARCHAR2,
385   X_DIM_LEVEL6_TEXT in VARCHAR2,
386   X_DIM_LEVEL7_TEXT in VARCHAR2,
387   X_DIM_LEVEL8_TEXT in VARCHAR2
388 ) is
389 begin
390   update BSC_KPI_DEFAULTS_B set
391     FORMAT_MASK = X_FORMAT_MASK,
392     COLOR_METHOD = X_COLOR_METHOD,
393     COLOR_LEVEL1 = X_COLOR_LEVEL1,
394     COLOR_LEVEL2 = X_COLOR_LEVEL2,
398     DIM_LEVEL1_VALUE = X_DIM_LEVEL1_VALUE,
395     COLOR_LEVEL3 = X_COLOR_LEVEL3,
396     COLOR_LEVEL4 = X_COLOR_LEVEL4,
397     DIM_SET_ID = X_DIM_SET_ID,
399     DIM_LEVEL2_VALUE = X_DIM_LEVEL2_VALUE,
400     DIM_LEVEL3_VALUE = X_DIM_LEVEL3_VALUE,
401     DIM_LEVEL4_VALUE = X_DIM_LEVEL4_VALUE,
402     DIM_LEVEL5_VALUE = X_DIM_LEVEL5_VALUE,
403     DIM_LEVEL6_VALUE = X_DIM_LEVEL6_VALUE,
404     DIM_LEVEL7_VALUE = X_DIM_LEVEL7_VALUE,
405     DIM_LEVEL8_VALUE = X_DIM_LEVEL8_VALUE
406   where TAB_ID = X_TAB_ID
407   and INDICATOR = X_INDICATOR;
408 
409   if (sql%notfound) then
410     raise no_data_found;
411   end if;
412 
413   update BSC_KPI_DEFAULTS_TL set
414     ANALYSIS_OPTION0_NAME = X_ANALYSIS_OPTION0_NAME,
415     ANALYSIS_OPTION1_NAME = X_ANALYSIS_OPTION1_NAME,
416     ANALYSIS_OPTION2_NAME = X_ANALYSIS_OPTION2_NAME,
417     PERIOD_NAME = X_PERIOD_NAME,
418     SERIES_NAME = X_SERIES_NAME,
419     DIM_LEVEL1_NAME = X_DIM_LEVEL1_NAME,
420     DIM_LEVEL2_NAME = X_DIM_LEVEL2_NAME,
421     DIM_LEVEL3_NAME = X_DIM_LEVEL3_NAME,
422     DIM_LEVEL4_NAME = X_DIM_LEVEL4_NAME,
423     DIM_LEVEL5_NAME = X_DIM_LEVEL5_NAME,
424     DIM_LEVEL6_NAME = X_DIM_LEVEL6_NAME,
425     DIM_LEVEL7_NAME = X_DIM_LEVEL7_NAME,
426     DIM_LEVEL8_NAME = X_DIM_LEVEL8_NAME,
427     DIM_LEVEL1_TEXT = X_DIM_LEVEL1_TEXT,
428     DIM_LEVEL2_TEXT = X_DIM_LEVEL2_TEXT,
429     DIM_LEVEL3_TEXT = X_DIM_LEVEL3_TEXT,
430     DIM_LEVEL4_TEXT = X_DIM_LEVEL4_TEXT,
431     DIM_LEVEL5_TEXT = X_DIM_LEVEL5_TEXT,
432     DIM_LEVEL6_TEXT = X_DIM_LEVEL6_TEXT,
433     DIM_LEVEL7_TEXT = X_DIM_LEVEL7_TEXT,
434     DIM_LEVEL8_TEXT = X_DIM_LEVEL8_TEXT,
435     SOURCE_LANG = userenv('LANG')
436   where TAB_ID = X_TAB_ID
437   and INDICATOR = X_INDICATOR
438   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
439 
440   if (sql%notfound) then
441     raise no_data_found;
442   end if;
443 end UPDATE_ROW;
444 
445 procedure DELETE_ROW (
446   X_TAB_ID in NUMBER,
447   X_INDICATOR in NUMBER
448 ) is
449 begin
450   delete from BSC_KPI_DEFAULTS_TL
451   where TAB_ID = X_TAB_ID
452   and INDICATOR = X_INDICATOR;
453 
454   if (sql%notfound) then
455     raise no_data_found;
456   end if;
457 
458   delete from BSC_KPI_DEFAULTS_B
459   where TAB_ID = X_TAB_ID
460   and INDICATOR = X_INDICATOR;
461 
462   if (sql%notfound) then
463     raise no_data_found;
464   end if;
465 end DELETE_ROW;
466 
467 procedure ADD_LANGUAGE
468 is
469 begin
470   delete from BSC_KPI_DEFAULTS_TL T
471   where not exists
472     (select NULL
473     from BSC_KPI_DEFAULTS_B B
474     where B.TAB_ID = T.TAB_ID
475     and B.INDICATOR = T.INDICATOR
476     );
477 
478   update BSC_KPI_DEFAULTS_TL T set (
479       ANALYSIS_OPTION0_NAME,
480       ANALYSIS_OPTION1_NAME,
481       ANALYSIS_OPTION2_NAME,
482       PERIOD_NAME,
483       SERIES_NAME,
484       DIM_LEVEL1_NAME,
485       DIM_LEVEL2_NAME,
486       DIM_LEVEL3_NAME,
487       DIM_LEVEL4_NAME,
488       DIM_LEVEL5_NAME,
489       DIM_LEVEL6_NAME,
490       DIM_LEVEL7_NAME,
491       DIM_LEVEL8_NAME,
492       DIM_LEVEL1_TEXT,
493       DIM_LEVEL2_TEXT,
494       DIM_LEVEL3_TEXT,
495       DIM_LEVEL4_TEXT,
496       DIM_LEVEL5_TEXT,
497       DIM_LEVEL6_TEXT,
498       DIM_LEVEL7_TEXT,
499       DIM_LEVEL8_TEXT
500     ) = (select
501       B.ANALYSIS_OPTION0_NAME,
502       B.ANALYSIS_OPTION1_NAME,
503       B.ANALYSIS_OPTION2_NAME,
504       B.PERIOD_NAME,
505       B.SERIES_NAME,
506       B.DIM_LEVEL1_NAME,
507       B.DIM_LEVEL2_NAME,
508       B.DIM_LEVEL3_NAME,
509       B.DIM_LEVEL4_NAME,
510       B.DIM_LEVEL5_NAME,
511       B.DIM_LEVEL6_NAME,
512       B.DIM_LEVEL7_NAME,
513       B.DIM_LEVEL8_NAME,
514       B.DIM_LEVEL1_TEXT,
515       B.DIM_LEVEL2_TEXT,
516       B.DIM_LEVEL3_TEXT,
517       B.DIM_LEVEL4_TEXT,
518       B.DIM_LEVEL5_TEXT,
519       B.DIM_LEVEL6_TEXT,
520       B.DIM_LEVEL7_TEXT,
521       B.DIM_LEVEL8_TEXT
522     from BSC_KPI_DEFAULTS_TL B
523     where B.TAB_ID = T.TAB_ID
524     and B.INDICATOR = T.INDICATOR
525     and B.LANGUAGE = T.SOURCE_LANG)
526   where (
527       T.TAB_ID,
528       T.INDICATOR,
529       T.LANGUAGE
530   ) in (select
531       SUBT.TAB_ID,
532       SUBT.INDICATOR,
533       SUBT.LANGUAGE
534     from BSC_KPI_DEFAULTS_TL SUBB, BSC_KPI_DEFAULTS_TL SUBT
535     where SUBB.TAB_ID = SUBT.TAB_ID
536     and SUBB.INDICATOR = SUBT.INDICATOR
537     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
538     and (SUBB.ANALYSIS_OPTION0_NAME <> SUBT.ANALYSIS_OPTION0_NAME
539       or (SUBB.ANALYSIS_OPTION0_NAME is null and SUBT.ANALYSIS_OPTION0_NAME is not null)
540       or (SUBB.ANALYSIS_OPTION0_NAME is not null and SUBT.ANALYSIS_OPTION0_NAME is null)
541       or SUBB.ANALYSIS_OPTION1_NAME <> SUBT.ANALYSIS_OPTION1_NAME
542       or (SUBB.ANALYSIS_OPTION1_NAME is null and SUBT.ANALYSIS_OPTION1_NAME is not null)
543       or (SUBB.ANALYSIS_OPTION1_NAME is not null and SUBT.ANALYSIS_OPTION1_NAME is null)
544       or SUBB.ANALYSIS_OPTION2_NAME <> SUBT.ANALYSIS_OPTION2_NAME
545       or (SUBB.ANALYSIS_OPTION2_NAME is null and SUBT.ANALYSIS_OPTION2_NAME is not null)
549       or (SUBB.PERIOD_NAME is not null and SUBT.PERIOD_NAME is null)
546       or (SUBB.ANALYSIS_OPTION2_NAME is not null and SUBT.ANALYSIS_OPTION2_NAME is null)
547       or SUBB.PERIOD_NAME <> SUBT.PERIOD_NAME
548       or (SUBB.PERIOD_NAME is null and SUBT.PERIOD_NAME is not null)
550       or SUBB.SERIES_NAME <> SUBT.SERIES_NAME
551       or (SUBB.SERIES_NAME is null and SUBT.SERIES_NAME is not null)
552       or (SUBB.SERIES_NAME is not null and SUBT.SERIES_NAME is null)
553       or SUBB.DIM_LEVEL1_NAME <> SUBT.DIM_LEVEL1_NAME
554       or (SUBB.DIM_LEVEL1_NAME is null and SUBT.DIM_LEVEL1_NAME is not null)
555       or (SUBB.DIM_LEVEL1_NAME is not null and SUBT.DIM_LEVEL1_NAME is null)
556       or SUBB.DIM_LEVEL2_NAME <> SUBT.DIM_LEVEL2_NAME
557       or (SUBB.DIM_LEVEL2_NAME is null and SUBT.DIM_LEVEL2_NAME is not null)
558       or (SUBB.DIM_LEVEL2_NAME is not null and SUBT.DIM_LEVEL2_NAME is null)
559       or SUBB.DIM_LEVEL3_NAME <> SUBT.DIM_LEVEL3_NAME
560       or (SUBB.DIM_LEVEL3_NAME is null and SUBT.DIM_LEVEL3_NAME is not null)
561       or (SUBB.DIM_LEVEL3_NAME is not null and SUBT.DIM_LEVEL3_NAME is null)
562       or SUBB.DIM_LEVEL4_NAME <> SUBT.DIM_LEVEL4_NAME
563       or (SUBB.DIM_LEVEL4_NAME is null and SUBT.DIM_LEVEL4_NAME is not null)
564       or (SUBB.DIM_LEVEL4_NAME is not null and SUBT.DIM_LEVEL4_NAME is null)
565       or SUBB.DIM_LEVEL5_NAME <> SUBT.DIM_LEVEL5_NAME
566       or (SUBB.DIM_LEVEL5_NAME is null and SUBT.DIM_LEVEL5_NAME is not null)
567       or (SUBB.DIM_LEVEL5_NAME is not null and SUBT.DIM_LEVEL5_NAME is null)
568       or SUBB.DIM_LEVEL6_NAME <> SUBT.DIM_LEVEL6_NAME
569       or (SUBB.DIM_LEVEL6_NAME is null and SUBT.DIM_LEVEL6_NAME is not null)
570       or (SUBB.DIM_LEVEL6_NAME is not null and SUBT.DIM_LEVEL6_NAME is null)
571       or SUBB.DIM_LEVEL7_NAME <> SUBT.DIM_LEVEL7_NAME
572       or (SUBB.DIM_LEVEL7_NAME is null and SUBT.DIM_LEVEL7_NAME is not null)
573       or (SUBB.DIM_LEVEL7_NAME is not null and SUBT.DIM_LEVEL7_NAME is null)
574       or SUBB.DIM_LEVEL8_NAME <> SUBT.DIM_LEVEL8_NAME
575       or (SUBB.DIM_LEVEL8_NAME is null and SUBT.DIM_LEVEL8_NAME is not null)
576       or (SUBB.DIM_LEVEL8_NAME is not null and SUBT.DIM_LEVEL8_NAME is null)
577       or SUBB.DIM_LEVEL1_TEXT <> SUBT.DIM_LEVEL1_TEXT
578       or (SUBB.DIM_LEVEL1_TEXT is null and SUBT.DIM_LEVEL1_TEXT is not null)
579       or (SUBB.DIM_LEVEL1_TEXT is not null and SUBT.DIM_LEVEL1_TEXT is null)
580       or SUBB.DIM_LEVEL2_TEXT <> SUBT.DIM_LEVEL2_TEXT
581       or (SUBB.DIM_LEVEL2_TEXT is null and SUBT.DIM_LEVEL2_TEXT is not null)
582       or (SUBB.DIM_LEVEL2_TEXT is not null and SUBT.DIM_LEVEL2_TEXT is null)
583       or SUBB.DIM_LEVEL3_TEXT <> SUBT.DIM_LEVEL3_TEXT
584       or (SUBB.DIM_LEVEL3_TEXT is null and SUBT.DIM_LEVEL3_TEXT is not null)
585       or (SUBB.DIM_LEVEL3_TEXT is not null and SUBT.DIM_LEVEL3_TEXT is null)
586       or SUBB.DIM_LEVEL4_TEXT <> SUBT.DIM_LEVEL4_TEXT
587       or (SUBB.DIM_LEVEL4_TEXT is null and SUBT.DIM_LEVEL4_TEXT is not null)
588       or (SUBB.DIM_LEVEL4_TEXT is not null and SUBT.DIM_LEVEL4_TEXT is null)
589       or SUBB.DIM_LEVEL5_TEXT <> SUBT.DIM_LEVEL5_TEXT
590       or (SUBB.DIM_LEVEL5_TEXT is null and SUBT.DIM_LEVEL5_TEXT is not null)
591       or (SUBB.DIM_LEVEL5_TEXT is not null and SUBT.DIM_LEVEL5_TEXT is null)
592       or SUBB.DIM_LEVEL6_TEXT <> SUBT.DIM_LEVEL6_TEXT
593       or (SUBB.DIM_LEVEL6_TEXT is null and SUBT.DIM_LEVEL6_TEXT is not null)
594       or (SUBB.DIM_LEVEL6_TEXT is not null and SUBT.DIM_LEVEL6_TEXT is null)
595       or SUBB.DIM_LEVEL7_TEXT <> SUBT.DIM_LEVEL7_TEXT
596       or (SUBB.DIM_LEVEL7_TEXT is null and SUBT.DIM_LEVEL7_TEXT is not null)
597       or (SUBB.DIM_LEVEL7_TEXT is not null and SUBT.DIM_LEVEL7_TEXT is null)
598       or SUBB.DIM_LEVEL8_TEXT <> SUBT.DIM_LEVEL8_TEXT
599       or (SUBB.DIM_LEVEL8_TEXT is null and SUBT.DIM_LEVEL8_TEXT is not null)
600       or (SUBB.DIM_LEVEL8_TEXT is not null and SUBT.DIM_LEVEL8_TEXT is null)
601   ));
602 
603   insert into BSC_KPI_DEFAULTS_TL (
604     TAB_ID,
605     INDICATOR,
606     ANALYSIS_OPTION0_NAME,
607     ANALYSIS_OPTION1_NAME,
608     ANALYSIS_OPTION2_NAME,
609     PERIOD_NAME,
610     SERIES_NAME,
611     DIM_LEVEL1_NAME,
612     DIM_LEVEL2_NAME,
613     DIM_LEVEL3_NAME,
614     DIM_LEVEL4_NAME,
615     DIM_LEVEL5_NAME,
616     DIM_LEVEL6_NAME,
617     DIM_LEVEL7_NAME,
618     DIM_LEVEL8_NAME,
619     DIM_LEVEL1_TEXT,
620     DIM_LEVEL2_TEXT,
621     DIM_LEVEL3_TEXT,
622     DIM_LEVEL4_TEXT,
623     DIM_LEVEL5_TEXT,
624     DIM_LEVEL6_TEXT,
625     DIM_LEVEL7_TEXT,
626     DIM_LEVEL8_TEXT,
627     LANGUAGE,
628     SOURCE_LANG
629   ) select
630     B.TAB_ID,
631     B.INDICATOR,
632     B.ANALYSIS_OPTION0_NAME,
633     B.ANALYSIS_OPTION1_NAME,
634     B.ANALYSIS_OPTION2_NAME,
635     B.PERIOD_NAME,
636     B.SERIES_NAME,
637     B.DIM_LEVEL1_NAME,
638     B.DIM_LEVEL2_NAME,
639     B.DIM_LEVEL3_NAME,
640     B.DIM_LEVEL4_NAME,
641     B.DIM_LEVEL5_NAME,
642     B.DIM_LEVEL6_NAME,
643     B.DIM_LEVEL7_NAME,
644     B.DIM_LEVEL8_NAME,
645     B.DIM_LEVEL1_TEXT,
646     B.DIM_LEVEL2_TEXT,
647     B.DIM_LEVEL3_TEXT,
648     B.DIM_LEVEL4_TEXT,
649     B.DIM_LEVEL5_TEXT,
650     B.DIM_LEVEL6_TEXT,
651     B.DIM_LEVEL7_TEXT,
652     B.DIM_LEVEL8_TEXT,
653     L.LANGUAGE_CODE,
654     B.SOURCE_LANG
655   from BSC_KPI_DEFAULTS_TL B, FND_LANGUAGES L
656   where L.INSTALLED_FLAG in ('I', 'B')
657   and B.LANGUAGE = userenv('LANG')
658   and not exists
659     (select NULL
660     from BSC_KPI_DEFAULTS_TL T
661     where T.TAB_ID = B.TAB_ID
662     and T.INDICATOR = B.INDICATOR
663     and T.LANGUAGE = L.LANGUAGE_CODE);
664 end ADD_LANGUAGE;
665 
666 end BSC_KPI_DEFAULTS_PKG;