DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_KPIS_PKG

Source


1 package body BSC_KPIS_PKG as
2 /* $Header: BSCKPIB.pls 115.6 2003/02/12 14:25:54 adrao ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_INDICATOR in NUMBER,
6   X_SHARE_FLAG in NUMBER,
7   X_PERIODICITY_ID in NUMBER,
8   X_BM_GROUP_ID in NUMBER,
9   X_APPLY_COLOR_FLAG in NUMBER,
10   X_PROTOTYPE_COLOR in VARCHAR2,
11   X_DISP_ORDER in NUMBER,
12   X_PROTOTYPE_FLAG in NUMBER,
13   X_INDICATOR_TYPE in NUMBER,
14   X_CONFIG_TYPE in NUMBER,
15   X_SOURCE_INDICATOR in NUMBER,
16   X_CSF_ID in NUMBER,
17   X_IND_GROUP_ID in NUMBER,
18   X_NAME in VARCHAR2,
19   X_HELP in VARCHAR2
20 ) is
21   cursor C is select ROWID from BSC_KPIS_B
22     where INDICATOR = X_INDICATOR
23     ;
24 begin
25   insert into BSC_KPIS_B (
26     SHARE_FLAG,
27     PERIODICITY_ID,
28     BM_GROUP_ID,
29     APPLY_COLOR_FLAG,
30     PROTOTYPE_COLOR,
31     DISP_ORDER,
32     PROTOTYPE_FLAG,
33     INDICATOR_TYPE,
34     CONFIG_TYPE,
35     SOURCE_INDICATOR,
36     CSF_ID,
37     IND_GROUP_ID,
38     INDICATOR
39   ) values (
40     X_SHARE_FLAG,
41     X_PERIODICITY_ID,
42     X_BM_GROUP_ID,
43     X_APPLY_COLOR_FLAG,
44     X_PROTOTYPE_COLOR,
45     X_DISP_ORDER,
46     X_PROTOTYPE_FLAG,
47     X_INDICATOR_TYPE,
48     X_CONFIG_TYPE,
49     X_SOURCE_INDICATOR,
50     X_CSF_ID,
51     X_IND_GROUP_ID,
52     X_INDICATOR
53   );
54 
55   insert into BSC_KPIS_TL (
56     NAME,
57     HELP,
58     INDICATOR,
59     LANGUAGE,
60     SOURCE_LANG
61   ) select
62     X_NAME,
63     X_HELP,
64     X_INDICATOR,
65     L.LANGUAGE_CODE,
66     userenv('LANG')
67   from FND_LANGUAGES L
68   where L.INSTALLED_FLAG in ('I', 'B')
69   and not exists
70     (select NULL
71     from BSC_KPIS_TL T
72     where T.INDICATOR = X_INDICATOR
73     and T.LANGUAGE = L.LANGUAGE_CODE);
74 
75   open c;
76   fetch c into X_ROWID;
77   if (c%notfound) then
78     close c;
79     raise no_data_found;
80   end if;
81   close c;
82 
83 end INSERT_ROW;
84 
85 procedure LOCK_ROW (
86   X_INDICATOR in NUMBER,
87   X_SHARE_FLAG in NUMBER,
88   X_PERIODICITY_ID in NUMBER,
89   X_BM_GROUP_ID in NUMBER,
90   X_APPLY_COLOR_FLAG in NUMBER,
91   X_PROTOTYPE_COLOR in VARCHAR2,
92   X_DISP_ORDER in NUMBER,
93   X_PROTOTYPE_FLAG in NUMBER,
94   X_INDICATOR_TYPE in NUMBER,
95   X_CONFIG_TYPE in NUMBER,
96   X_SOURCE_INDICATOR in NUMBER,
97   X_CSF_ID in NUMBER,
98   X_IND_GROUP_ID in NUMBER,
99   X_NAME in VARCHAR2,
100   X_HELP in VARCHAR2
101 ) is
102   cursor c is select
103       SHARE_FLAG,
104       PERIODICITY_ID,
105       BM_GROUP_ID,
106       APPLY_COLOR_FLAG,
107       PROTOTYPE_COLOR,
108       DISP_ORDER,
109       PROTOTYPE_FLAG,
110       INDICATOR_TYPE,
111       CONFIG_TYPE,
112       SOURCE_INDICATOR,
113       CSF_ID,
114       IND_GROUP_ID
115     from BSC_KPIS_B
116     where INDICATOR = X_INDICATOR
117     for update of INDICATOR nowait;
118   recinfo c%rowtype;
119 
120   cursor c1 is select
121       NAME,
122       HELP,
123       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
124     from BSC_KPIS_TL
125     where INDICATOR = X_INDICATOR
126     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
127     for update of INDICATOR nowait;
128 begin
129   open c;
130   fetch c into recinfo;
131   if (c%notfound) then
132     close c;
133     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
134     app_exception.raise_exception;
135   end if;
136   close c;
137   if (    (recinfo.SHARE_FLAG = X_SHARE_FLAG)
138       AND (recinfo.PERIODICITY_ID = X_PERIODICITY_ID)
139       AND (recinfo.BM_GROUP_ID = X_BM_GROUP_ID)
140       AND (recinfo.APPLY_COLOR_FLAG = X_APPLY_COLOR_FLAG)
141       AND ((recinfo.PROTOTYPE_COLOR = X_PROTOTYPE_COLOR)
142            OR ((recinfo.PROTOTYPE_COLOR is null) AND (X_PROTOTYPE_COLOR is null)))
143       AND (recinfo.DISP_ORDER = X_DISP_ORDER)
144       AND (recinfo.PROTOTYPE_FLAG = X_PROTOTYPE_FLAG)
145       AND (recinfo.INDICATOR_TYPE = X_INDICATOR_TYPE)
146       AND (recinfo.CONFIG_TYPE = X_CONFIG_TYPE)
147       AND ((recinfo.SOURCE_INDICATOR = X_SOURCE_INDICATOR)
148            OR ((recinfo.SOURCE_INDICATOR is null) AND (X_SOURCE_INDICATOR is null)))
149       AND (recinfo.CSF_ID = X_CSF_ID)
150       AND (recinfo.IND_GROUP_ID = X_IND_GROUP_ID)
151   ) then
152     null;
153   else
154     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
155     app_exception.raise_exception;
156   end if;
157 
158   for tlinfo in c1 loop
159     if (tlinfo.BASELANG = 'Y') then
160       if (    (tlinfo.NAME = X_NAME)
161           AND (tlinfo.HELP = X_HELP)
162       ) then
163         null;
164       else
165         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
166         app_exception.raise_exception;
167       end if;
168     end if;
169   end loop;
170   return;
171 end LOCK_ROW;
172 
173 procedure UPDATE_ROW (
174   X_INDICATOR in NUMBER,
175   X_SHARE_FLAG in NUMBER,
176   X_PERIODICITY_ID in NUMBER,
177   X_BM_GROUP_ID in NUMBER,
178   X_APPLY_COLOR_FLAG in NUMBER,
179   X_PROTOTYPE_COLOR in VARCHAR2,
180   X_DISP_ORDER in NUMBER,
181   X_PROTOTYPE_FLAG in NUMBER,
182   X_INDICATOR_TYPE in NUMBER,
183   X_CONFIG_TYPE in NUMBER,
184   X_SOURCE_INDICATOR in NUMBER,
185   X_CSF_ID in NUMBER,
186   X_IND_GROUP_ID in NUMBER,
187   X_NAME in VARCHAR2,
188   X_HELP in VARCHAR2
189 ) is
190 begin
191   update BSC_KPIS_B set
192     SHARE_FLAG = X_SHARE_FLAG,
193     PERIODICITY_ID = X_PERIODICITY_ID,
194     BM_GROUP_ID = X_BM_GROUP_ID,
195     APPLY_COLOR_FLAG = X_APPLY_COLOR_FLAG,
196     PROTOTYPE_COLOR = X_PROTOTYPE_COLOR,
197     DISP_ORDER = X_DISP_ORDER,
198     PROTOTYPE_FLAG = X_PROTOTYPE_FLAG,
199     INDICATOR_TYPE = X_INDICATOR_TYPE,
200     CONFIG_TYPE = X_CONFIG_TYPE,
201     SOURCE_INDICATOR = X_SOURCE_INDICATOR,
202     CSF_ID = X_CSF_ID,
203     IND_GROUP_ID = X_IND_GROUP_ID
204   where INDICATOR = X_INDICATOR;
205 
206   if (sql%notfound) then
207     raise no_data_found;
208   end if;
209 
210   update BSC_KPIS_TL set
211     NAME = X_NAME,
212     HELP = X_HELP,
213     SOURCE_LANG = userenv('LANG')
214   where INDICATOR = X_INDICATOR
215   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
216 
217   if (sql%notfound) then
218     raise no_data_found;
219   end if;
220 end UPDATE_ROW;
221 
222 procedure DELETE_ROW (
223   X_INDICATOR in NUMBER
224 ) is
225 begin
226   delete from BSC_KPIS_TL
227   where INDICATOR = X_INDICATOR;
228 
229   if (sql%notfound) then
230     raise no_data_found;
231   end if;
232 
233   delete from BSC_KPIS_B
234   where INDICATOR = X_INDICATOR;
235 
236   if (sql%notfound) then
237     raise no_data_found;
238   end if;
239 end DELETE_ROW;
240 
241 procedure ADD_LANGUAGE
242 is
243 begin
244   delete from BSC_KPIS_TL T
245   where not exists
246     (select NULL
247     from BSC_KPIS_B B
248     where B.INDICATOR = T.INDICATOR
249     );
250 
251   update BSC_KPIS_TL T set (
252       NAME,
253       HELP
254     ) = (select
255       B.NAME,
256       B.HELP
257     from BSC_KPIS_TL B
258     where B.INDICATOR = T.INDICATOR
259     and B.LANGUAGE = T.SOURCE_LANG)
260   where (
261       T.INDICATOR,
262       T.LANGUAGE
263   ) in (select
264       SUBT.INDICATOR,
265       SUBT.LANGUAGE
266     from BSC_KPIS_TL SUBB, BSC_KPIS_TL SUBT
267     where SUBB.INDICATOR = SUBT.INDICATOR
268     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
269     and (SUBB.NAME <> SUBT.NAME
270       or SUBB.HELP <> SUBT.HELP
271   ));
272 
273   insert into BSC_KPIS_TL (
274     NAME,
275     HELP,
276     INDICATOR,
277     LANGUAGE,
278     SOURCE_LANG
279   ) select
280     B.NAME,
281     B.HELP,
282     B.INDICATOR,
283     L.LANGUAGE_CODE,
284     B.SOURCE_LANG
285   from BSC_KPIS_TL B, FND_LANGUAGES L
286   where L.INSTALLED_FLAG in ('I', 'B')
287   and B.LANGUAGE = userenv('LANG')
288   and not exists
289     (select NULL
290     from BSC_KPIS_TL T
291     where T.INDICATOR = B.INDICATOR
292     and T.LANGUAGE = L.LANGUAGE_CODE);
293 end ADD_LANGUAGE;
294 
295 end BSC_KPIS_PKG;