[Home] [Help]
PACKAGE BODY: APPS.IEU_CTL_PLUGINS_PKG
Source
1 package body IEU_CTL_PLUGINS_PKG as
2 /* $Header: IEUCTLPB.pls 120.4 2005/08/04 23:16:32 appldev ship $ */
3 procedure INSERT_ROW (
4 P_PLUGIN_ID IN NUMBER,
5 P_INIT_ERROR_MSG_NAME IN VARCHAR2,
6 P_APPLICATION_ID IN NUMBER,
7 P_IS_REQUIRED_FLAG IN VARCHAR2,
8 P_DO_LAUNCH_FUNC IN VARCHAR2,
9 P_OBJECT_VERSION_NUMBER IN NUMBER,
10 P_CLASS_NAME IN VARCHAR2,
11 P_IMAGE_FILE_NAME IN VARCHAR2,
12 P_AUDIO_FILE_NAME IN VARCHAR2,
13 P_NAME IN VARCHAR2,
14 P_DESCRIPTION IN VARCHAR2,
15 X_ROWID IN OUT NOCOPY VARCHAR2
16 ) is
17 cursor C is select ROWID from IEU_CTL_PLUGINS_B
18 where PLUGIN_ID = P_PLUGIN_ID
19 ;
20 begin
21 insert into IEU_CTL_PLUGINS_B (
22 INIT_ERROR_MSG_NAME,
23 APPLICATION_ID,
24 IS_REQUIRED_FLAG,
25 DO_LAUNCH_FUNC,
26 PLUGIN_ID,
27 OBJECT_VERSION_NUMBER,
28 CLASS_NAME,
29 IMAGE_FILE_NAME,
30 AUDIO_FILE_NAME,
31 CREATION_DATE,
32 CREATED_BY,
33 LAST_UPDATE_DATE,
34 LAST_UPDATED_BY,
35 LAST_UPDATE_LOGIN
36 ) values (
37 P_INIT_ERROR_MSG_NAME,
38 P_APPLICATION_ID,
39 P_IS_REQUIRED_FLAG,
40 P_DO_LAUNCH_FUNC,
41 P_PLUGIN_ID,
42 P_OBJECT_VERSION_NUMBER,
43 P_CLASS_NAME,
44 P_IMAGE_FILE_NAME,
45 P_AUDIO_FILE_NAME,
46 SYSDATE,
47 FND_GLOBAL.USER_ID,
48 SYSDATE,
49 FND_GLOBAL.USER_ID,
50 FND_GLOBAL.LOGIN_ID
51 );
52
53 insert into IEU_CTL_PLUGINS_TL (
54 CREATION_DATE,
55 LAST_UPDATED_BY,
56 LAST_UPDATE_DATE,
57 CREATED_BY,
58 PLUGIN_ID,
59 OBJECT_VERSION_NUMBER,
60 DESCRIPTION,
61 LAST_UPDATE_LOGIN,
62 NAME,
63 LANGUAGE,
64 SOURCE_LANG
65 ) select
66 SYSDATE,
67 FND_GLOBAL.USER_ID,
68 SYSDATE,
69 FND_GLOBAL.USER_ID,
70 P_PLUGIN_ID,
71 P_OBJECT_VERSION_NUMBER,
72 P_DESCRIPTION,
73 FND_GLOBAL.LOGIN_ID,
74 P_NAME,
75 L.LANGUAGE_CODE,
76 userenv('LANG')
77 from FND_LANGUAGES L
78 where L.INSTALLED_FLAG in ('I', 'B')
79 and not exists
80 (select NULL
81 from IEU_CTL_PLUGINS_TL T
82 where T.PLUGIN_ID = P_PLUGIN_ID
83 and T.LANGUAGE = L.LANGUAGE_CODE);
84
85 open c;
86 fetch c into X_ROWID;
87 if (c%notfound) then
88 close c;
89 raise no_data_found;
90 end if;
91 close c;
92
93 end INSERT_ROW;
94
95 procedure LOCK_ROW (
96 P_PLUGIN_ID IN NUMBER,
97 P_INIT_ERROR_MSG_NAME IN VARCHAR2,
98 P_APPLICATION_ID IN NUMBER,
99 P_IS_REQUIRED_FLAG IN VARCHAR2,
100 P_DO_LAUNCH_FUNC IN VARCHAR2,
101 P_OBJECT_VERSION_NUMBER IN NUMBER,
102 P_CLASS_NAME IN VARCHAR2,
103 P_IMAGE_FILE_NAME IN VARCHAR2,
104 P_AUDIO_FILE_NAME IN VARCHAR2,
105 P_NAME IN VARCHAR2,
106 P_DESCRIPTION IN VARCHAR2
107 ) is
108 cursor c is select
109 INIT_ERROR_MSG_NAME,
110 APPLICATION_ID,
111 IS_REQUIRED_FLAG,
112 DO_LAUNCH_FUNC,
113 OBJECT_VERSION_NUMBER,
114 CLASS_NAME,
115 IMAGE_FILE_NAME,
116 AUDIO_FILE_NAME
117 from IEU_CTL_PLUGINS_B
118 where PLUGIN_ID = P_PLUGIN_ID
119 for update of PLUGIN_ID nowait;
120 recinfo c%rowtype;
121
122 cursor c1 is select
123 NAME,
124 DESCRIPTION,
125 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
126 from IEU_CTL_PLUGINS_TL
127 where PLUGIN_ID = P_PLUGIN_ID
128 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
129 for update of PLUGIN_ID nowait;
130 begin
131 open c;
132 fetch c into recinfo;
133 if (c%notfound) then
134 close c;
135 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
136 app_exception.raise_exception;
137 end if;
138 close c;
139 if ( ((recinfo.INIT_ERROR_MSG_NAME = P_INIT_ERROR_MSG_NAME)
140 OR ((recinfo.INIT_ERROR_MSG_NAME is null) AND (P_INIT_ERROR_MSG_NAME is null)))
141 AND ((recinfo.APPLICATION_ID = P_APPLICATION_ID)
142 OR ((recinfo.APPLICATION_ID is null) AND (P_APPLICATION_ID is null)))
143 AND ((recinfo.IS_REQUIRED_FLAG = P_IS_REQUIRED_FLAG)
144 OR ((recinfo.IS_REQUIRED_FLAG is null) AND (P_IS_REQUIRED_FLAG is null)))
145 AND ((recinfo.DO_LAUNCH_FUNC = P_DO_LAUNCH_FUNC)
146 OR ((recinfo.DO_LAUNCH_FUNC is null) AND (P_DO_LAUNCH_FUNC is null)))
147 AND (recinfo.OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER)
148 AND (recinfo.CLASS_NAME = P_CLASS_NAME)
149 AND (recinfo.IMAGE_FILE_NAME = P_IMAGE_FILE_NAME)
150 AND ((recinfo.AUDIO_FILE_NAME = P_AUDIO_FILE_NAME)
151 OR ((recinfo.AUDIO_FILE_NAME is null) AND (P_AUDIO_FILE_NAME is null)))
152 ) then
153 null;
154 else
155 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
156 app_exception.raise_exception;
157 end if;
158
159 for tlinfo in c1 loop
160 if (tlinfo.BASELANG = 'Y') then
161 if ( (tlinfo.NAME = P_NAME)
162 AND (tlinfo.DESCRIPTION = P_DESCRIPTION)
163 ) then
164 null;
165 else
166 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
167 app_exception.raise_exception;
168 end if;
169 end if;
170 end loop;
171 return;
172 end LOCK_ROW;
173
174 procedure UPDATE_ROW (
175 P_PLUGIN_ID IN NUMBER,
176 P_INIT_ERROR_MSG_NAME IN VARCHAR2,
177 P_APPLICATION_ID IN NUMBER,
178 P_IS_REQUIRED_FLAG IN VARCHAR2,
179 P_DO_LAUNCH_FUNC IN VARCHAR2,
180 P_OBJECT_VERSION_NUMBER IN NUMBER,
181 P_CLASS_NAME IN VARCHAR2,
182 P_IMAGE_FILE_NAME IN VARCHAR2,
183 P_AUDIO_FILE_NAME IN VARCHAR2,
184 P_NAME IN VARCHAR2,
185 P_DESCRIPTION IN VARCHAR2
186 ) is
187 begin
188 update IEU_CTL_PLUGINS_B set
189 INIT_ERROR_MSG_NAME = P_INIT_ERROR_MSG_NAME,
190 APPLICATION_ID = P_APPLICATION_ID,
191 IS_REQUIRED_FLAG = P_IS_REQUIRED_FLAG,
192 DO_LAUNCH_FUNC = P_DO_LAUNCH_FUNC,
193 OBJECT_VERSION_NUMBER = P_OBJECT_VERSION_NUMBER,
194 CLASS_NAME = P_CLASS_NAME,
195 IMAGE_FILE_NAME = P_IMAGE_FILE_NAME,
196 AUDIO_FILE_NAME = P_AUDIO_FILE_NAME,
197 LAST_UPDATE_DATE = SYSDATE,
198 LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
199 LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
200 where PLUGIN_ID = P_PLUGIN_ID;
201
202 if (sql%notfound) then
203 raise no_data_found;
204 end if;
205
206 update IEU_CTL_PLUGINS_TL set
207 NAME = P_NAME,
208 DESCRIPTION = P_DESCRIPTION,
209 LAST_UPDATE_DATE = SYSDATE,
210 LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
211 LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID,
212 SOURCE_LANG = userenv('LANG')
213 where PLUGIN_ID = P_PLUGIN_ID
214 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
215
216 if (sql%notfound) then
217 raise no_data_found;
218 end if;
219 end UPDATE_ROW;
220
221 procedure DELETE_ROW (
222 P_PLUGIN_ID in NUMBER
223 ) is
224 begin
225 delete from IEU_CTL_PLUGINS_TL
226 where PLUGIN_ID = P_PLUGIN_ID;
227
228 if (sql%notfound) then
229 raise no_data_found;
230 end if;
231
232 delete from IEU_CTL_PLUGINS_B
233 where PLUGIN_ID = P_PLUGIN_ID;
234
235 if (sql%notfound) then
236 raise no_data_found;
237 end if;
238 end DELETE_ROW;
239
240 procedure ADD_LANGUAGE
241 is
242 begin
243 delete from IEU_CTL_PLUGINS_TL T
244 where not exists
245 (select NULL
246 from IEU_CTL_PLUGINS_B B
247 where B.PLUGIN_ID = T.PLUGIN_ID
248 );
249
250 update IEU_CTL_PLUGINS_TL T set (
251 NAME,
252 DESCRIPTION
253 ) = (select
254 B.NAME,
255 B.DESCRIPTION
256 from IEU_CTL_PLUGINS_TL B
257 where B.PLUGIN_ID = T.PLUGIN_ID
258 and B.LANGUAGE = T.SOURCE_LANG)
259 where (
260 T.PLUGIN_ID,
261 T.LANGUAGE
262 ) in (select
263 SUBT.PLUGIN_ID,
264 SUBT.LANGUAGE
265 from IEU_CTL_PLUGINS_TL SUBB, IEU_CTL_PLUGINS_TL SUBT
266 where SUBB.PLUGIN_ID = SUBT.PLUGIN_ID
267 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
268 and (SUBB.NAME <> SUBT.NAME
269 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
270 ));
271
272 insert into IEU_CTL_PLUGINS_TL (
273 CREATION_DATE,
274 LAST_UPDATED_BY,
275 LAST_UPDATE_DATE,
276 CREATED_BY,
277 PLUGIN_ID,
278 OBJECT_VERSION_NUMBER,
279 DESCRIPTION,
280 LAST_UPDATE_LOGIN,
281 NAME,
282 LANGUAGE,
283 SOURCE_LANG
284 ) select
285 B.CREATION_DATE,
286 B.LAST_UPDATED_BY,
287 B.LAST_UPDATE_DATE,
288 B.CREATED_BY,
289 B.PLUGIN_ID,
290 B.OBJECT_VERSION_NUMBER,
291 B.DESCRIPTION,
292 B.LAST_UPDATE_LOGIN,
293 B.NAME,
294 L.LANGUAGE_CODE,
295 B.SOURCE_LANG
296 from IEU_CTL_PLUGINS_TL B, FND_LANGUAGES L
297 where L.INSTALLED_FLAG in ('I', 'B')
298 and B.LANGUAGE = userenv('LANG')
299 and not exists
300 (select NULL
301 from IEU_CTL_PLUGINS_TL T
302 where T.PLUGIN_ID = B.PLUGIN_ID
303 and T.LANGUAGE = L.LANGUAGE_CODE);
304 end ADD_LANGUAGE;
305
306 procedure TRANSLATE_ROW (
307 P_PLUGIN_ID IN NUMBER,
308 P_NAME IN VARCHAR2,
309 P_DESCRIPTION IN VARCHAR2,
310 P_OWNER IN VARCHAR2
311 ) IS
312 user_id NUMBER := 0;
313 BEGIN
314 --only update rows that have not been altered by user
315
316 user_id := fnd_load_util.owner_id(P_OWNER);
317
318 UPDATE IEU_CTL_PLUGINS_TL
319 SET
320 NAME = P_NAME,
321 SOURCE_LANG = userenv( 'LANG' ),
322 DESCRIPTION = P_DESCRIPTION,
323 LAST_UPDATE_DATE = SYSDATE,
324 --LAST_UPDATED_BY = decode( P_OWNER, 'SEED', 1, 0 ),
325 LAST_UPDATED_BY = user_id,
326 LAST_UPDATE_LOGIN = 0
327 WHERE
328 PLUGIN_ID = P_PLUGIN_ID
329 AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
330
331 END TRANSLATE_ROW;
332
333
334 procedure LOAD_ROW (
335 P_PLUGIN_ID IN NUMBER,
336 P_INIT_ERROR_MSG_NAME IN VARCHAR2,
337 P_APPLICATION_ID IN NUMBER,
338 P_IS_REQUIRED_FLAG IN VARCHAR2,
339 P_DO_LAUNCH_FUNC IN VARCHAR2,
340 P_OBJECT_VERSION_NUMBER IN NUMBER,
341 P_CLASS_NAME IN VARCHAR2,
342 P_IMAGE_FILE_NAME IN VARCHAR2,
343 P_AUDIO_FILE_NAME IN VARCHAR2,
344 P_NAME IN VARCHAR2,
345 P_DESCRIPTION IN VARCHAR2,
346 P_OWNER IN VARCHAR2
347 ) IS
348
349 BEGIN
350
351 DECLARE
352 user_id NUMBER := 0;
353 rowid VARCHAR2(50);
354 BEGIN
355
356 --IF (P_OWNER = 'SEED') then
357 -- user_id := 1;
358 --END IF;
359
360 user_id := fnd_load_util.owner_id(P_OWNER);
361
362 UPDATE_ROW (
363 P_PLUGIN_ID ,
364 P_INIT_ERROR_MSG_NAME ,
365 P_APPLICATION_ID ,
366 P_IS_REQUIRED_FLAG ,
367 P_DO_LAUNCH_FUNC ,
368 P_OBJECT_VERSION_NUMBER ,
369 P_CLASS_NAME ,
370 P_IMAGE_FILE_NAME ,
371 P_AUDIO_FILE_NAME ,
372 P_NAME ,
373 P_DESCRIPTION
374 );
375
376 EXCEPTION
377 when no_data_found then
378
379 INSERT_ROW (
380 P_PLUGIN_ID ,
381 P_INIT_ERROR_MSG_NAME ,
382 P_APPLICATION_ID ,
383 P_IS_REQUIRED_FLAG ,
384 P_DO_LAUNCH_FUNC ,
385 P_OBJECT_VERSION_NUMBER ,
386 P_CLASS_NAME ,
387 P_IMAGE_FILE_NAME ,
388 P_AUDIO_FILE_NAME ,
389 P_NAME ,
390 P_DESCRIPTION ,
391 rowid
392 );
393 END;
394
395 END LOAD_ROW;
396
397 procedure LOAD_SEED_ROW (
398 P_UPLOAD_MODE IN VARCHAR2,
399 P_PLUGIN_ID IN NUMBER,
400 P_INIT_ERROR_MSG_NAME IN VARCHAR2,
401 P_APPLICATION_ID IN NUMBER,
402 P_IS_REQUIRED_FLAG IN VARCHAR2,
403 P_DO_LAUNCH_FUNC IN VARCHAR2,
404 P_OBJECT_VERSION_NUMBER IN NUMBER,
405 P_CLASS_NAME IN VARCHAR2,
406 P_IMAGE_FILE_NAME IN VARCHAR2,
407 P_AUDIO_FILE_NAME IN VARCHAR2,
408 P_NAME IN VARCHAR2,
409 P_DESCRIPTION IN VARCHAR2,
410 P_OWNER IN VARCHAR2
411 ) IS
412
413 BEGIN
414
415 IF ( P_UPLOAD_MODE = 'NLS' ) THEN
416 TRANSLATE_ROW (
417 P_PLUGIN_ID,
418 P_NAME,
419 P_DESCRIPTION,
420 P_OWNER );
421 ELSE
422 LOAD_ROW(
423 P_PLUGIN_ID,
424 P_INIT_ERROR_MSG_NAME,
425 P_APPLICATION_ID,
426 P_IS_REQUIRED_FLAG,
427 P_DO_LAUNCH_FUNC,
428 P_OBJECT_VERSION_NUMBER,
429 P_CLASS_NAME,
430 P_IMAGE_FILE_NAME,
431 P_AUDIO_FILE_NAME,
432 P_NAME,
433 P_DESCRIPTION,
434 P_OWNER);
435 END IF;
436
437 END LOAD_SEED_ROW;
438
439 end IEU_CTL_PLUGINS_PKG;