DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_KPI_TREE_NODES_PKG

Source


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