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