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