DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_MIME_TYPES_PKG

Source


1 package body FND_MIME_TYPES_PKG as
2 /* $Header: AFCPMMTB.pls 120.3 2006/08/21 09:14:39 pbasha ship $ */
3 
4 procedure INSERT_ROW (
5   X_ROWID in out nocopy VARCHAR2,
6   X_FILE_FORMAT_CODE in VARCHAR2,
7   X_MIME_TYPE in VARCHAR2,
8   X_DESCRIPTION in VARCHAR2,
9   X_CREATION_DATE in DATE,
10   X_CREATED_BY in NUMBER,
11   X_LAST_UPDATE_DATE in DATE,
12   X_LAST_UPDATED_BY in NUMBER,
13   X_LAST_UPDATE_LOGIN in NUMBER,
14   X_ALLOW_CLIENT_ENCODING in VARCHAR2
15 ) is
16   cursor C is select ROWID from FND_MIME_TYPES_TL
17     where FILE_FORMAT_CODE = X_FILE_FORMAT_CODE
18     and MIME_TYPE = X_MIME_TYPE
19     and LANGUAGE = userenv('LANG')
20     ;
21 begin
22   insert into FND_MIME_TYPES_TL (
23     DESCRIPTION,
24     LAST_UPDATE_LOGIN,
25     FILE_FORMAT_CODE,
26     MIME_TYPE,
27     CREATED_BY,
28     CREATION_DATE,
29     LAST_UPDATED_BY,
30     LAST_UPDATE_DATE,
31     LANGUAGE,
32     SOURCE_LANG,
33 	ALLOW_CLIENT_ENCODING
34   ) select
35     X_DESCRIPTION,
36     X_LAST_UPDATE_LOGIN,
37     X_FILE_FORMAT_CODE,
38     X_MIME_TYPE,
39     X_CREATED_BY,
40     X_CREATION_DATE,
41     X_LAST_UPDATED_BY,
42     X_LAST_UPDATE_DATE,
43     L.LANGUAGE_CODE,
44     userenv('LANG'),
45 	X_ALLOW_CLIENT_ENCODING
46   from FND_LANGUAGES L
47   where L.INSTALLED_FLAG in ('I', 'B')
48   and not exists
49     (select NULL
50     from FND_MIME_TYPES_TL T
51     where T.FILE_FORMAT_CODE = X_FILE_FORMAT_CODE
52     and T.MIME_TYPE = X_MIME_TYPE
53     and T.LANGUAGE = L.LANGUAGE_CODE);
54 
55   open c;
56   fetch c into X_ROWID;
57   if (c%notfound) then
58     close c;
59     raise no_data_found;
60   end if;
61   close c;
62 
63 end INSERT_ROW;
64 
65 procedure LOCK_ROW (
66   X_FILE_FORMAT_CODE in VARCHAR2,
67   X_MIME_TYPE in VARCHAR2,
68   X_DESCRIPTION in VARCHAR2
69 ) is
70   cursor c1 is select
71       DESCRIPTION,
72       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
73     from FND_MIME_TYPES_TL
74     where FILE_FORMAT_CODE = X_FILE_FORMAT_CODE
75     and MIME_TYPE = X_MIME_TYPE
76     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
77     for update of FILE_FORMAT_CODE nowait;
78 begin
79   for tlinfo in c1 loop
80     if (tlinfo.BASELANG = 'Y') then
81       if (    ((tlinfo.DESCRIPTION = X_DESCRIPTION)
82                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
83       ) then
84         null;
85       else
86         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
87         app_exception.raise_exception;
88       end if;
89     end if;
90   end loop;
91   return;
92 end LOCK_ROW;
93 
94 procedure UPDATE_ROW (
95   X_FILE_FORMAT_CODE in VARCHAR2,
96   X_MIME_TYPE in VARCHAR2,
97   X_DESCRIPTION in VARCHAR2,
98   X_LAST_UPDATE_DATE in DATE,
99   X_LAST_UPDATED_BY in NUMBER,
100   X_LAST_UPDATE_LOGIN in NUMBER,
101   X_ALLOW_CLIENT_ENCODING in VARCHAR2
102 ) is
103 begin
104   update FND_MIME_TYPES_TL set
105     DESCRIPTION = X_DESCRIPTION,
106     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
107     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
108     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
109     SOURCE_LANG = userenv('LANG'),
110 	ALLOW_CLIENT_ENCODING = X_ALLOW_CLIENT_ENCODING
111   where FILE_FORMAT_CODE = X_FILE_FORMAT_CODE
112   and MIME_TYPE = X_MIME_TYPE
113   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
114 
115   -- Since we are only using the TL table, we have to
116   -- make sure that ALLOW_CLIENT_ENCODING is updated for
117   -- all languages.
118   -- (This column should not be in a TL table)
119   -- Bug 4171265
120   update FND_MIME_TYPES_TL SET
121     ALLOW_CLIENT_ENCODING = X_ALLOW_CLIENT_ENCODING
122     where FILE_FORMAT_CODE = X_FILE_FORMAT_CODE
123     and MIME_TYPE = X_MIME_type;
124 
125   if (sql%notfound) then
126     raise no_data_found;
127   end if;
128 end UPDATE_ROW;
129 
130 procedure DELETE_ROW (
131   X_FILE_FORMAT_CODE in VARCHAR2,
132   X_MIME_TYPE in VARCHAR2
133 ) is
134 begin
135   delete from FND_MIME_TYPES_TL
136   where FILE_FORMAT_CODE = X_FILE_FORMAT_CODE
137   and MIME_TYPE = X_MIME_TYPE;
138 
139   if (sql%notfound) then
140     raise no_data_found;
141   end if;
142 
143 end DELETE_ROW;
144 
145 procedure ADD_LANGUAGE
146 is
147 begin
148 /* Mar/19/03 requested by Ric Ginsberg */
149 /* The following update statements are commented out */
150 /* as a quick workaround to fix the time-consuming table handler issue */
151 /* Eventually we'll need to turn them into a separate fix_language procedure */
152 /*
153 
154   update FND_MIME_TYPES_TL T set (
155       DESCRIPTION
156     ) = (select
157       B.DESCRIPTION
158     from FND_MIME_TYPES_TL B
159     where B.FILE_FORMAT_CODE = T.FILE_FORMAT_CODE
160     and B.MIME_TYPE = T.MIME_TYPE
161     and B.LANGUAGE = T.SOURCE_LANG)
162   where (
163       T.FILE_FORMAT_CODE,
164       T.MIME_TYPE,
165       T.LANGUAGE
166   ) in (select
167       SUBT.FILE_FORMAT_CODE,
168       SUBT.MIME_TYPE,
169       SUBT.LANGUAGE
170     from FND_MIME_TYPES_TL SUBB, FND_MIME_TYPES_TL SUBT
171     where SUBB.FILE_FORMAT_CODE = SUBT.FILE_FORMAT_CODE
172     and SUBB.MIME_TYPE = SUBT.MIME_TYPE
173     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
174     and (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
175       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
176       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
177   ));
178 */
179 
180   insert into FND_MIME_TYPES_TL (
181     DESCRIPTION,
182     LAST_UPDATE_LOGIN,
183     FILE_FORMAT_CODE,
184     MIME_TYPE,
185     CREATED_BY,
186     CREATION_DATE,
187     LAST_UPDATED_BY,
188     LAST_UPDATE_DATE,
189     LANGUAGE,
190     SOURCE_LANG,
191     ALLOW_CLIENT_ENCODING
192   ) select
193     B.DESCRIPTION,
194     B.LAST_UPDATE_LOGIN,
195     B.FILE_FORMAT_CODE,
196     B.MIME_TYPE,
197     B.CREATED_BY,
198     B.CREATION_DATE,
199     B.LAST_UPDATED_BY,
200     B.LAST_UPDATE_DATE,
201     L.LANGUAGE_CODE,
202     B.SOURCE_LANG,
203     B.ALLOW_CLIENT_ENCODING
204   from FND_MIME_TYPES_TL B, FND_LANGUAGES L
205   where L.INSTALLED_FLAG in ('I', 'B')
206   and B.LANGUAGE = userenv('LANG')
207   and not exists
208     (select NULL
209     from FND_MIME_TYPES_TL T
210     where T.FILE_FORMAT_CODE = B.FILE_FORMAT_CODE
211     and T.MIME_TYPE = B.MIME_TYPE
212     and T.LANGUAGE = L.LANGUAGE_CODE);
213 end ADD_LANGUAGE;
214 
215 procedure LOAD_ROW (
216   X_FILE_FORMAT_CODE		in VARCHAR2,
217   X_MIME_TYPE			in VARCHAR2,
218   X_OWNER			in VARCHAR2,
219   X_DESCRIPTION 		in VARCHAR2) is
220 
221 begin
222  fnd_mime_types_pkg.load_row(
223 	x_file_format_code => x_file_format_code,
224 	x_mime_type => x_mime_type,
225       x_owner => x_owner,
226       x_description => x_description,
227       x_last_update_date =>null,
228       x_custom_mode => null,
229 	  x_allow_client_encoding => null);
230 
231 end LOAD_ROW;
232 
233 procedure TRANSLATE_ROW
234   (X_FILE_FORMAT_CODE		in VARCHAR2,
235    X_MIME_TYPE 			in VARCHAR2,
236    X_OWNER			in VARCHAR2,
237    X_DESCRIPTION		in VARCHAR2) is
238 begin
239 
240  fnd_mime_types_pkg.translate_row(
241 	x_file_format_code => x_file_format_code,
242     	x_mime_type => x_mime_type,
243 	x_owner => x_owner,
244 	x_description => x_description,
245 	x_last_update_date => null,
246         x_custom_mode => null);
247 
248 end TRANSLATE_ROW;
249 --
250 -- ### OVERLOADED!
251 --
252 procedure TRANSLATE_ROW
253   (X_FILE_FORMAT_CODE           in VARCHAR2,
254    X_MIME_TYPE                  in VARCHAR2,
255    X_OWNER                      in VARCHAR2,
256    X_DESCRIPTION                in VARCHAR2,
257    X_LAST_UPDATE_DATE		  in VARCHAR2,
258    X_CUSTOM_MODE			  in VARCHAR2)
259 is
260   f_luby    number;  -- entity owner in file
261   f_ludate  date;    -- entity update date in file
262   db_luby   number;  -- entity owner in db
263   db_ludate date;    -- entity update date in db
264 
265 begin
266 
267   -- Translate owner to file_last_updated_by
268   f_luby := fnd_load_util.owner_id(x_owner);
269 
270   -- Translate char last_update_date to date
271   f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
272 
273   select last_updated_by, last_update_date
274   into db_luby, db_ludate
275   from fnd_mime_types_tl
276   where file_format_code  = X_FILE_FORMAT_CODE
277   and mime_type   	  = X_MIME_TYPE
278   and language            = userenv('LANG');
279 
280   if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
281                                 db_ludate, X_CUSTOM_MODE)) then
282 
283     update fnd_mime_types_tl set
284       description         = nvl(X_DESCRIPTION, description),
285       source_lang         = userenv('LANG'),
286       last_updated_by     = f_luby,
287       last_update_date    = f_ludate,
288       last_update_login   = 0
289     where file_format_code = X_FILE_FORMAT_CODE
290     and   mime_type = X_MIME_TYPE
291     and   userenv('LANG') in (language, source_lang);
292   end if;
293 
294 end TRANSLATE_ROW;
295 --
296 --OVERLOADED!!!
297 --
298 procedure LOAD_ROW (
299   X_FILE_FORMAT_CODE		in VARCHAR2,
300   X_MIME_TYPE			in VARCHAR2,
301   X_OWNER			in VARCHAR2,
302   X_DESCRIPTION 		in VARCHAR2,
303   X_LAST_UPDATE_DATE    in VARCHAR2,
304   X_CUSTOM_MODE         in VARCHAR2,
305   X_ALLOW_CLIENT_ENCODING in VARCHAR2)
306  is
307   f_luby    number;  -- entity owner in file
308   f_ludate  date;    -- entity update date in file
309   db_luby   number;  -- entity owner in db
310   db_ludate date;    -- entity update date in db
311   row_id varchar2(64);
312 begin
313 
314   -- Translate owner to file_last_updated_by
315   f_luby := fnd_load_util.owner_id(x_owner);
316 
317   -- Translate char last_update_date to date
318   f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
319 
320  begin
321 
322   select last_updated_by, last_update_date
323   into db_luby, db_ludate
324   from fnd_mime_types_tl
325   where file_format_code  = X_FILE_FORMAT_CODE
326   and mime_type   	  = X_MIME_TYPE
327   and language            = userenv('LANG');
328 
329   if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
330                                     db_ludate, X_CUSTOM_MODE)) then
331 
332     fnd_mime_types_pkg.UPDATE_ROW (
333       X_FILE_FORMAT_CODE =>	X_FILE_FORMAT_CODE,
334       X_MIME_TYPE =>		X_MIME_TYPE,
335       X_DESCRIPTION =>		X_DESCRIPTION,
336       X_LAST_UPDATE_DATE =>	f_ludate,
337       X_LAST_UPDATED_BY =>	f_luby,
338       X_LAST_UPDATE_LOGIN =>	0,
339 	  X_ALLOW_CLIENT_ENCODING => X_ALLOW_CLIENT_ENCODING);
340     end if;
341 
342     exception
343       when NO_DATA_FOUND then
344 
345         fnd_mime_types_pkg.INSERT_ROW (
346   	  X_ROWID =>		 row_id,
347 	  X_FILE_FORMAT_CODE =>  X_FILE_FORMAT_CODE,
348   	  X_MIME_TYPE =>	 X_MIME_TYPE,
349 	  X_DESCRIPTION =>	 X_DESCRIPTION,
350 	  X_CREATION_DATE =>	 f_ludate,
351 	  X_CREATED_BY =>	 f_luby,
352 	  X_LAST_UPDATE_DATE =>	 f_ludate,
353 	  X_LAST_UPDATED_BY =>	 f_luby,
354 	  X_LAST_UPDATE_LOGIN => 0,
355 	  X_ALLOW_CLIENT_ENCODING => X_ALLOW_CLIENT_ENCODING);
356 end;
357 end LOAD_ROW;
358 
359 end FND_MIME_TYPES_PKG;