[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;