[Home] [Help]
PACKAGE BODY: APPS.BNE_COMPONENTS_PKG
Source
1 package body BNE_COMPONENTS_PKG as
2 /* $Header: bnecompb.pls 120.2 2005/06/29 03:39:46 dvayro noship $ */
3
4 procedure INSERT_ROW (
5 X_ROWID in out NOCOPY VARCHAR2,
6 X_APPLICATION_ID in NUMBER,
7 X_COMPONENT_CODE in VARCHAR2,
8 X_OBJECT_VERSION_NUMBER in NUMBER,
9 X_COMPONENT_JAVA_CLASS in VARCHAR2,
10 X_PARAM_LIST_APP_ID in NUMBER,
11 X_PARAM_LIST_CODE in VARCHAR2,
12 X_USER_NAME in VARCHAR2,
13 X_CREATION_DATE in DATE,
14 X_CREATED_BY in NUMBER,
15 X_LAST_UPDATE_DATE in DATE,
16 X_LAST_UPDATED_BY in NUMBER,
17 X_LAST_UPDATE_LOGIN in NUMBER
18 ) is
19 cursor C is select ROWID from BNE_COMPONENTS_B
20 where APPLICATION_ID = X_APPLICATION_ID
21 and COMPONENT_CODE = X_COMPONENT_CODE
22 ;
23 begin
24 insert into BNE_COMPONENTS_B (
25 COMPONENT_CODE,
26 OBJECT_VERSION_NUMBER,
27 COMPONENT_JAVA_CLASS,
28 PARAM_LIST_APP_ID,
29 PARAM_LIST_CODE,
30 APPLICATION_ID,
31 CREATION_DATE,
32 CREATED_BY,
33 LAST_UPDATE_DATE,
34 LAST_UPDATED_BY,
35 LAST_UPDATE_LOGIN
36 ) values (
37 X_COMPONENT_CODE,
38 X_OBJECT_VERSION_NUMBER,
39 X_COMPONENT_JAVA_CLASS,
40 X_PARAM_LIST_APP_ID,
41 X_PARAM_LIST_CODE,
42 X_APPLICATION_ID,
43 X_CREATION_DATE,
44 X_CREATED_BY,
45 X_LAST_UPDATE_DATE,
46 X_LAST_UPDATED_BY,
47 X_LAST_UPDATE_LOGIN
48 );
49
50 insert into BNE_COMPONENTS_TL (
51 LAST_UPDATED_BY,
52 LAST_UPDATE_LOGIN,
53 LAST_UPDATE_DATE,
54 APPLICATION_ID,
55 COMPONENT_CODE,
56 USER_NAME,
57 CREATED_BY,
58 CREATION_DATE,
59 LANGUAGE,
60 SOURCE_LANG
61 ) select
62 X_LAST_UPDATED_BY,
63 X_LAST_UPDATE_LOGIN,
64 X_LAST_UPDATE_DATE,
65 X_APPLICATION_ID,
66 X_COMPONENT_CODE,
67 X_USER_NAME,
68 X_CREATED_BY,
69 X_CREATION_DATE,
70 L.LANGUAGE_CODE,
71 userenv('LANG')
72 from FND_LANGUAGES L
73 where L.INSTALLED_FLAG in ('I', 'B')
74 and not exists
75 (select NULL
76 from BNE_COMPONENTS_TL T
77 where T.APPLICATION_ID = X_APPLICATION_ID
78 and T.COMPONENT_CODE = X_COMPONENT_CODE
79 and T.LANGUAGE = L.LANGUAGE_CODE);
80
81 open c;
82 fetch c into X_ROWID;
83 if (c%notfound) then
84 close c;
85 raise no_data_found;
86 end if;
87 close c;
88
89 end INSERT_ROW;
90
91 procedure LOCK_ROW (
92 X_APPLICATION_ID in NUMBER,
93 X_COMPONENT_CODE in VARCHAR2,
94 X_OBJECT_VERSION_NUMBER in NUMBER,
95 X_COMPONENT_JAVA_CLASS in VARCHAR2,
96 X_PARAM_LIST_APP_ID in NUMBER,
97 X_PARAM_LIST_CODE in VARCHAR2,
98 X_USER_NAME in VARCHAR2
99 ) is
100 cursor c is select
101 OBJECT_VERSION_NUMBER,
102 COMPONENT_JAVA_CLASS,
103 PARAM_LIST_APP_ID,
104 PARAM_LIST_CODE
105 from BNE_COMPONENTS_B
106 where APPLICATION_ID = X_APPLICATION_ID
107 and COMPONENT_CODE = X_COMPONENT_CODE
108 for update of APPLICATION_ID nowait;
109 recinfo c%rowtype;
110
111 cursor c1 is select
112 USER_NAME,
113 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
114 from BNE_COMPONENTS_TL
115 where APPLICATION_ID = X_APPLICATION_ID
116 and COMPONENT_CODE = X_COMPONENT_CODE
117 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
118 for update of APPLICATION_ID nowait;
119 begin
120 open c;
121 fetch c into recinfo;
122 if (c%notfound) then
123 close c;
124 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
125 app_exception.raise_exception;
126 end if;
127 close c;
128 if ( (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
129 AND (recinfo.COMPONENT_JAVA_CLASS = X_COMPONENT_JAVA_CLASS)
130 AND ((recinfo.PARAM_LIST_APP_ID = X_PARAM_LIST_APP_ID)
131 OR ((recinfo.PARAM_LIST_APP_ID is null) AND (X_PARAM_LIST_APP_ID is null)))
132 AND ((recinfo.PARAM_LIST_CODE = X_PARAM_LIST_CODE)
133 OR ((recinfo.PARAM_LIST_CODE is null) AND (X_PARAM_LIST_CODE is null)))
134 ) then
135 null;
136 else
137 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
138 app_exception.raise_exception;
139 end if;
140
141 for tlinfo in c1 loop
142 if (tlinfo.BASELANG = 'Y') then
143 if ( (tlinfo.USER_NAME = X_USER_NAME)
144 ) then
145 null;
146 else
147 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
148 app_exception.raise_exception;
149 end if;
150 end if;
151 end loop;
152 return;
153 end LOCK_ROW;
154
155 procedure UPDATE_ROW (
156 X_APPLICATION_ID in NUMBER,
157 X_COMPONENT_CODE in VARCHAR2,
158 X_OBJECT_VERSION_NUMBER in NUMBER,
159 X_COMPONENT_JAVA_CLASS in VARCHAR2,
160 X_PARAM_LIST_APP_ID in NUMBER,
161 X_PARAM_LIST_CODE in VARCHAR2,
162 X_USER_NAME in VARCHAR2,
163 X_LAST_UPDATE_DATE in DATE,
164 X_LAST_UPDATED_BY in NUMBER,
165 X_LAST_UPDATE_LOGIN in NUMBER
166 ) is
167 begin
168 update BNE_COMPONENTS_B set
169 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
170 COMPONENT_JAVA_CLASS = X_COMPONENT_JAVA_CLASS,
171 PARAM_LIST_APP_ID = X_PARAM_LIST_APP_ID,
172 PARAM_LIST_CODE = X_PARAM_LIST_CODE,
173 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
174 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
175 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
176 where APPLICATION_ID = X_APPLICATION_ID
177 and COMPONENT_CODE = X_COMPONENT_CODE;
178
179 if (sql%notfound) then
180 raise no_data_found;
181 end if;
182
183 update BNE_COMPONENTS_TL set
184 USER_NAME = X_USER_NAME,
185 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
186 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
187 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
188 SOURCE_LANG = userenv('LANG')
189 where APPLICATION_ID = X_APPLICATION_ID
190 and COMPONENT_CODE = X_COMPONENT_CODE
191 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
192
193 if (sql%notfound) then
194 raise no_data_found;
195 end if;
196 end UPDATE_ROW;
197
198 procedure DELETE_ROW (
199 X_APPLICATION_ID in NUMBER,
200 X_COMPONENT_CODE in VARCHAR2
201 ) is
202 begin
203 delete from BNE_COMPONENTS_TL
204 where APPLICATION_ID = X_APPLICATION_ID
205 and COMPONENT_CODE = X_COMPONENT_CODE;
206
207 if (sql%notfound) then
208 raise no_data_found;
209 end if;
210
211 delete from BNE_COMPONENTS_B
212 where APPLICATION_ID = X_APPLICATION_ID
213 and COMPONENT_CODE = X_COMPONENT_CODE;
214
215 if (sql%notfound) then
216 raise no_data_found;
217 end if;
218 end DELETE_ROW;
219
220 procedure ADD_LANGUAGE
221 is
222 begin
223 delete from BNE_COMPONENTS_TL T
224 where not exists
225 (select NULL
226 from BNE_COMPONENTS_B B
227 where B.APPLICATION_ID = T.APPLICATION_ID
228 and B.COMPONENT_CODE = T.COMPONENT_CODE
229 );
230
231 update BNE_COMPONENTS_TL T set (
232 USER_NAME
233 ) = (select
234 B.USER_NAME
235 from BNE_COMPONENTS_TL B
236 where B.APPLICATION_ID = T.APPLICATION_ID
237 and B.COMPONENT_CODE = T.COMPONENT_CODE
238 and B.LANGUAGE = T.SOURCE_LANG)
239 where (
240 T.APPLICATION_ID,
241 T.COMPONENT_CODE,
242 T.LANGUAGE
243 ) in (select
244 SUBT.APPLICATION_ID,
245 SUBT.COMPONENT_CODE,
246 SUBT.LANGUAGE
247 from BNE_COMPONENTS_TL SUBB, BNE_COMPONENTS_TL SUBT
248 where SUBB.APPLICATION_ID = SUBT.APPLICATION_ID
249 and SUBB.COMPONENT_CODE = SUBT.COMPONENT_CODE
250 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
251 and (SUBB.USER_NAME <> SUBT.USER_NAME
252 ));
253
254 insert into BNE_COMPONENTS_TL (
255 LAST_UPDATED_BY,
256 LAST_UPDATE_LOGIN,
257 LAST_UPDATE_DATE,
258 APPLICATION_ID,
259 COMPONENT_CODE,
260 USER_NAME,
261 CREATED_BY,
262 CREATION_DATE,
263 LANGUAGE,
264 SOURCE_LANG
265 ) select
266 B.LAST_UPDATED_BY,
267 B.LAST_UPDATE_LOGIN,
268 B.LAST_UPDATE_DATE,
269 B.APPLICATION_ID,
270 B.COMPONENT_CODE,
271 B.USER_NAME,
272 B.CREATED_BY,
273 B.CREATION_DATE,
274 L.LANGUAGE_CODE,
275 B.SOURCE_LANG
276 from BNE_COMPONENTS_TL B, FND_LANGUAGES L
277 where L.INSTALLED_FLAG in ('I', 'B')
278 and B.LANGUAGE = userenv('LANG')
279 and not exists
280 (select NULL
281 from BNE_COMPONENTS_TL T
282 where T.APPLICATION_ID = B.APPLICATION_ID
283 and T.COMPONENT_CODE = B.COMPONENT_CODE
284 and T.LANGUAGE = L.LANGUAGE_CODE);
285 end ADD_LANGUAGE;
286
287
288 --------------------------------------------------------------------------------
289 -- PROCEDURE: LOAD_ROW --
290 -- --
291 -- DESCRIPTION: Load a row into the BNE_COMPONENTS entity. --
292 -- This proc is called from the apps loader. --
293 -- --
294 -- SEE: http://www-apps.us.oracle.com/atg/plans/r115/fndloadqr.txt --
295 -- --
296 -- --
297 -- MODIFICATION HISTORY --
298 -- Date Username Description --
299 -- 1-Oct-02 DGROVES CREATED --
300 --------------------------------------------------------------------------------
301
302 procedure LOAD_ROW(
303 x_component_asn IN VARCHAR2,
304 x_component_code IN VARCHAR2,
305 x_object_version_number IN VARCHAR2,
306 x_component_java_class IN VARCHAR2,
307 x_param_list_asn IN VARCHAR2,
308 x_param_list_code IN VARCHAR2,
309 x_user_name IN VARCHAR2,
310 x_owner IN VARCHAR2,
311 x_last_update_date IN VARCHAR2,
312 x_custom_mode IN VARCHAR2
313 )
314 is
315 l_app_id number;
316 l_param_app_id number;
317 l_row_id varchar2(64);
318 f_luby number; -- entity owner in file
319 f_ludate date; -- entity update date in file
320 db_luby number; -- entity owner in db
321 db_ludate date; -- entity update date in db
322 begin
323 -- translate values to IDs
324 l_app_id := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_component_asn);
325 l_param_app_id := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_param_list_asn);
326
327 -- Translate owner to file_last_updated_by
328 f_luby := fnd_load_util.owner_id(x_owner);
329
330 -- Translate char last_update_date to date
331 f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
332 begin
333 select LAST_UPDATED_BY, LAST_UPDATE_DATE
334 into db_luby, db_ludate
335 from BNE_COMPONENTS_B
336 where APPLICATION_ID = l_app_id
337 and COMPONENT_CODE = x_component_code;
338
339 -- Test for customization and version
340 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
341 db_ludate, x_custom_mode)) then
342 -- Update existing row
343 BNE_COMPONENTS_PKG.Update_Row(
344 X_APPLICATION_ID => l_app_id,
345 X_COMPONENT_CODE => x_component_code,
346 X_PARAM_LIST_APP_ID => l_param_app_id,
350 X_USER_NAME => x_user_name,
347 X_PARAM_LIST_CODE => x_param_list_code,
348 X_OBJECT_VERSION_NUMBER => x_object_version_number,
349 X_COMPONENT_JAVA_CLASS => x_component_java_class,
351 X_LAST_UPDATE_DATE => f_ludate,
352 X_LAST_UPDATED_BY => f_luby,
353 X_LAST_UPDATE_LOGIN => 0
354 );
355 end if;
356 exception
357 when no_data_found then
358 -- Record doesn't exist - insert in all cases
359 BNE_COMPONENTS_PKG.Insert_Row(
360 X_ROWID => l_row_id,
361 X_APPLICATION_ID => l_app_id,
362 X_COMPONENT_CODE => x_component_code,
363 X_PARAM_LIST_APP_ID => l_param_app_id,
364 X_PARAM_LIST_CODE => x_param_list_code,
365 X_OBJECT_VERSION_NUMBER => x_object_version_number,
366 X_COMPONENT_JAVA_CLASS => x_component_java_class,
367 X_USER_NAME => x_user_name,
368 X_CREATION_DATE => f_ludate,
369 X_CREATED_BY => f_luby,
370 X_LAST_UPDATE_DATE => f_ludate,
371 X_LAST_UPDATED_BY => f_luby,
372 X_LAST_UPDATE_LOGIN => 0
373 );
374 end;
375 end LOAD_ROW;
376
377
378 --------------------------------------------------------------------------------
379 -- PROCEDURE: TRANSLATE_ROW --
380 -- --
381 -- DESCRIPTION: Load a translation into the BNE_COMPONENTS entity. --
382 -- This proc is called from the apps loader. --
383 -- --
384 -- SEE: http://www-apps.us.oracle.com/atg/plans/r115/fndloadqr.txt --
385 -- --
386 -- --
387 -- MODIFICATION HISTORY --
388 -- Date Username Description --
389 -- 1-Oct-02 DGROVES CREATED --
390 --------------------------------------------------------------------------------
391
392 procedure TRANSLATE_ROW(
393 x_component_asn IN VARCHAR2,
394 x_component_code IN VARCHAR2,
395 x_user_name IN VARCHAR2,
396 x_owner IN VARCHAR2,
397 x_last_update_date IN VARCHAR2,
398 x_custom_mode IN VARCHAR2
399 )
400 is
401 l_app_id number;
402 f_luby number; -- entity owner in file
403 f_ludate date; -- entity update date in file
404 db_luby number; -- entity owner in db
405 db_ludate date; -- entity update date in db
406 begin
407 -- translate values to IDs
408 l_app_id := BNE_LCT_TOOLS_PKG.ASN_TO_APP_ID(x_component_asn);
409
410 -- Translate owner to file_last_updated_by
411 f_luby := fnd_load_util.owner_id(x_owner);
412
413 -- Translate char last_update_date to date
414 f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
415 begin
416 select LAST_UPDATED_BY, LAST_UPDATE_DATE
417 into db_luby, db_ludate
418 from BNE_COMPONENTS_TL
419 where APPLICATION_ID = l_app_id
420 and COMPONENT_CODE = x_component_code
421 and LANGUAGE = userenv('LANG');
422
423 -- Test for customization and version
424 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
425 db_ludate, x_custom_mode)) then
426
427 update BNE_COMPONENTS_TL
428 set USER_NAME = x_user_name,
429 LAST_UPDATE_DATE = f_ludate,
430 LAST_UPDATED_BY = f_luby,
431 LAST_UPDATE_LOGIN = 0,
432 SOURCE_LANG = userenv('LANG')
433 where APPLICATION_ID = l_app_id
434 AND COMPONENT_CODE = x_component_code
435 AND userenv('LANG') in (LANGUAGE, SOURCE_LANG)
436 ;
437 end if;
438 exception
439 when no_data_found then
440 -- Do not insert missing translations, skip this row
441 null;
442 end;
443 end TRANSLATE_ROW;
444
445 end BNE_COMPONENTS_PKG;