[Home] [Help]
PACKAGE BODY: APPS.IBC_FILE_EXTN_MAPPINGS_PKG
Source
1 package body IBC_FILE_EXTN_MAPPINGS_PKG as
2 /* $Header: ibctfexb.pls 120.5 2006/06/22 09:34:02 sharma ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_MAPPING_ID in NUMBER,
6 X_CONTENT_TYPE_CODE in VARCHAR2,
7 X_EXTENSION 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 ) is
15 cursor C is select ROWID from IBC_FILE_EXTN_MAPPINGS_B
16 where MAPPING_ID = X_MAPPING_ID
17 ;
18 begin
19 insert into IBC_FILE_EXTN_MAPPINGS_B (
20 MAPPING_ID,
21 CONTENT_TYPE_CODE,
22 CREATION_DATE,
23 CREATED_BY,
24 LAST_UPDATE_DATE,
25 LAST_UPDATED_BY,
26 LAST_UPDATE_LOGIN
27 ) values (
28 X_MAPPING_ID,
29 X_CONTENT_TYPE_CODE,
30 X_CREATION_DATE,
31 X_CREATED_BY,
32 X_LAST_UPDATE_DATE,
33 X_LAST_UPDATED_BY,
34 X_LAST_UPDATE_LOGIN
35 );
36
37 insert into IBC_FILE_EXTN_MAPPINGS_TL (
38 LAST_UPDATE_DATE,
39 LAST_UPDATE_LOGIN,
40 LAST_UPDATED_BY,
41 MAPPING_ID,
42 EXTENSION,
43 DESCRIPTION,
44 CREATED_BY,
45 CREATION_DATE,
46 LANGUAGE,
47 SOURCE_LANG
48 ) select
49 X_LAST_UPDATE_DATE,
50 X_LAST_UPDATE_LOGIN,
51 X_LAST_UPDATED_BY,
52 X_MAPPING_ID,
53 X_EXTENSION,
54 X_DESCRIPTION,
55 X_CREATED_BY,
56 X_CREATION_DATE,
57 L.LANGUAGE_CODE,
58 userenv('LANG')
59 from FND_LANGUAGES L
60 where L.INSTALLED_FLAG in ('I', 'B')
61 and not exists
62 (select NULL
63 from IBC_FILE_EXTN_MAPPINGS_TL T
64 where T.MAPPING_ID = X_MAPPING_ID
65 and T.LANGUAGE = L.LANGUAGE_CODE);
66
67 open c;
68 fetch c into X_ROWID;
69 if (c%notfound) then
70 close c;
71 raise no_data_found;
72 end if;
73 close c;
74
75 end INSERT_ROW;
76
77 procedure LOCK_ROW (
78 X_MAPPING_ID in NUMBER,
79 X_CONTENT_TYPE_CODE in VARCHAR2,
80 X_EXTENSION in VARCHAR2,
81 X_DESCRIPTION in VARCHAR2
82 ) is
83 cursor c is select
84 CONTENT_TYPE_CODE
85 from IBC_FILE_EXTN_MAPPINGS_B
86 where MAPPING_ID = X_MAPPING_ID
87 for update of MAPPING_ID nowait;
88 recinfo c%rowtype;
89
90 cursor c1 is select
91 EXTENSION,
92 DESCRIPTION,
93 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
94 from IBC_FILE_EXTN_MAPPINGS_TL
95 where MAPPING_ID = X_MAPPING_ID
96 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
97 for update of MAPPING_ID nowait;
98 begin
99 open c;
100 fetch c into recinfo;
101 if (c%notfound) then
102 close c;
103 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
104 app_exception.raise_exception;
105 end if;
106 close c;
107 if ( (recinfo.CONTENT_TYPE_CODE = X_CONTENT_TYPE_CODE)
108 ) then
109 null;
110 else
111 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
112 app_exception.raise_exception;
113 end if;
114
115 for tlinfo in c1 loop
116 if (tlinfo.BASELANG = 'Y') then
117 if ( (tlinfo.EXTENSION = X_EXTENSION)
118 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
119 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
120 ) then
121 null;
122 else
123 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
124 app_exception.raise_exception;
125 end if;
126 end if;
127 end loop;
128 return;
129 end LOCK_ROW;
130
131 procedure UPDATE_ROW (
132 X_MAPPING_ID in NUMBER,
133 X_CONTENT_TYPE_CODE in VARCHAR2,
134 X_EXTENSION in VARCHAR2,
135 X_DESCRIPTION in VARCHAR2,
136 X_LAST_UPDATE_DATE in DATE,
137 X_LAST_UPDATED_BY in NUMBER,
138 X_LAST_UPDATE_LOGIN in NUMBER
139 ) is
140 begin
141 update IBC_FILE_EXTN_MAPPINGS_B set
142 CONTENT_TYPE_CODE = X_CONTENT_TYPE_CODE,
143 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
144 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
145 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
146 where MAPPING_ID = X_MAPPING_ID;
147
148 if (sql%notfound) then
149 raise no_data_found;
150 end if;
151
152 update IBC_FILE_EXTN_MAPPINGS_TL set
153 EXTENSION = X_EXTENSION,
154 DESCRIPTION = X_DESCRIPTION,
155 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
156 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
157 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
158 SOURCE_LANG = userenv('LANG')
159 where MAPPING_ID = X_MAPPING_ID
160 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
161
162 if (sql%notfound) then
163 raise no_data_found;
164 end if;
165 end UPDATE_ROW;
166
167 procedure DELETE_ROW (
168 X_MAPPING_ID in NUMBER
169 ) is
170 begin
171 delete from IBC_FILE_EXTN_MAPPINGS_TL
172 where MAPPING_ID = X_MAPPING_ID;
173
174 if (sql%notfound) then
175 raise no_data_found;
176 end if;
177
178 delete from IBC_FILE_EXTN_MAPPINGS_B
179 where MAPPING_ID = X_MAPPING_ID;
180
181 if (sql%notfound) then
182 raise no_data_found;
183 end if;
184 end DELETE_ROW;
185
186 procedure ADD_LANGUAGE
187 is
188 begin
189 delete from IBC_FILE_EXTN_MAPPINGS_TL T
190 where not exists
191 (select NULL
192 from IBC_FILE_EXTN_MAPPINGS_B B
193 where B.MAPPING_ID = T.MAPPING_ID
194 );
195
196 update IBC_FILE_EXTN_MAPPINGS_TL T set (
197 EXTENSION,
198 DESCRIPTION
199 ) = (select
200 B.EXTENSION,
201 B.DESCRIPTION
202 from IBC_FILE_EXTN_MAPPINGS_TL B
203 where B.MAPPING_ID = T.MAPPING_ID
204 and B.LANGUAGE = T.SOURCE_LANG)
205 where (
206 T.MAPPING_ID,
207 T.LANGUAGE
208 ) in (select
209 SUBT.MAPPING_ID,
210 SUBT.LANGUAGE
211 from IBC_FILE_EXTN_MAPPINGS_TL SUBB, IBC_FILE_EXTN_MAPPINGS_TL SUBT
212 where SUBB.MAPPING_ID = SUBT.MAPPING_ID
213 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
214 and (SUBB.EXTENSION <> SUBT.EXTENSION
215 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
216 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
217 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
218 ));
219
220 insert into IBC_FILE_EXTN_MAPPINGS_TL (
221 LAST_UPDATE_DATE,
222 LAST_UPDATE_LOGIN,
223 LAST_UPDATED_BY,
224 MAPPING_ID,
225 EXTENSION,
226 DESCRIPTION,
227 CREATED_BY,
228 CREATION_DATE,
229 LANGUAGE,
230 SOURCE_LANG
231 ) select /*+ ORDERED */
232 B.LAST_UPDATE_DATE,
233 B.LAST_UPDATE_LOGIN,
234 B.LAST_UPDATED_BY,
235 B.MAPPING_ID,
236 B.EXTENSION,
237 B.DESCRIPTION,
238 B.CREATED_BY,
239 B.CREATION_DATE,
240 L.LANGUAGE_CODE,
241 B.SOURCE_LANG
242 from IBC_FILE_EXTN_MAPPINGS_TL B, FND_LANGUAGES L
243 where L.INSTALLED_FLAG in ('I', 'B')
244 and B.LANGUAGE = userenv('LANG')
245 and not exists
246 (select NULL
247 from IBC_FILE_EXTN_MAPPINGS_TL T
248 where T.MAPPING_ID = B.MAPPING_ID
249 and T.LANGUAGE = L.LANGUAGE_CODE);
250 end ADD_LANGUAGE;
251
252 PROCEDURE LOAD_SEED_ROW(
253 p_UPLOAD_MODE IN VARCHAR2,
254 p_mapping_id IN VARCHAR2,
255 p_content_type_code IN VARCHAR2,
256 p_extension IN VARCHAR2,
257 p_description IN VARCHAR2,
258 p_OWNER IN VARCHAR2,
259 p_LAST_UPDATE_DATE IN VARCHAR2 ) IS
260 BEGIN
261 IF (p_UPLOAD_MODE = 'NLS') THEN
262 IBC_FILE_EXTN_MAPPINGS_PKG.TRANSLATE_ROW (
263 p_UPLOAD_MODE => p_UPLOAD_MODE,
264 p_mapping_id => p_mapping_id,
265 p_extension => p_extension,
266 p_description => p_description,
267 p_OWNER =>p_OWNER,
268 p_LAST_UPDATE_DATE => p_LAST_UPDATE_DATE );
269 ELSE
270 IBC_FILE_EXTN_MAPPINGS_PKG.LOAD_ROW (
271 p_UPLOAD_MODE => p_UPLOAD_MODE,
272 p_mapping_id => p_mapping_id,
273 p_content_type_code => p_content_type_code,
274 p_extension => p_extension,
275 p_description => p_description,
276 p_OWNER =>p_OWNER,
277 p_LAST_UPDATE_DATE => p_LAST_UPDATE_DATE );
278 END IF;
279 END LOAD_SEED_ROW;
280
281 PROCEDURE LOAD_ROW(
282 p_UPLOAD_MODE IN VARCHAR2,
283 p_mapping_id IN VARCHAR2,
284 p_content_type_code IN VARCHAR2,
285 p_extension IN VARCHAR2,
286 p_description IN VARCHAR2,
287 p_OWNER IN VARCHAR2,
288 p_LAST_UPDATE_DATE IN VARCHAR2 ) IS
289
290 l_user_id NUMBER := 0;
291 l_row_id VARCHAR2(64);
292 l_last_update_date DATE;
293
294 db_user_id NUMBER := 0;
295 db_last_update_date DATE;
296
297 BEGIN
298 --get last updated by user id
299 l_user_id := FND_LOAD_UTIL.OWNER_ID(p_OWNER);
300
301 --translate data type VARCHAR2 to DATE for last_update_date
302 l_last_update_date := nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'),SYSDATE);
303
304 -- get updatedby and update_date values if existing in db
305 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE INTO db_user_id, db_last_update_date
306 FROM IBC_FILE_EXTN_MAPPINGS_B
307 WHERE MAPPING_ID = p_mapping_id;
308
309 IF (FND_LOAD_UTIL.UPLOAD_TEST(l_user_id, l_last_update_date,
310 db_user_id, db_last_update_date, p_upload_mode )) THEN
311
312 IBC_FILE_EXTN_MAPPINGS_PKG.Update_row (
313 x_mapping_id =>TO_NUMBER(p_mapping_id)
314 ,x_content_type_code =>p_content_type_code
315 ,x_extension =>NVL(p_extension,Fnd_Api.G_MISS_CHAR)
316 ,x_description =>NVL(p_description,Fnd_Api.G_MISS_CHAR)
317 ,x_last_update_date =>l_last_update_date
318 ,x_last_updated_by =>l_user_id
319 ,x_last_update_login =>0);
320 END IF;
321
322 EXCEPTION
323 WHEN NO_DATA_FOUND THEN
324
325 IBC_FILE_EXTN_MAPPINGS_Pkg.insert_row (
326 x_rowid =>l_row_id,
327 x_mapping_id =>TO_NUMBER(p_mapping_id)
328 ,x_content_type_code =>p_content_type_code
329 ,x_extension =>NVL(p_extension,Fnd_Api.G_MISS_CHAR)
330 ,x_description =>NVL(p_description,Fnd_Api.G_MISS_CHAR),
331 x_creation_date =>l_last_update_date,
332 x_created_by =>l_user_id,
333 x_last_update_date =>l_last_update_date,
334 x_last_updated_by =>l_user_id,
335 x_last_update_login =>0);
336
337 END LOAD_ROW;
338
339
340 PROCEDURE TRANSLATE_ROW(
341 p_UPLOAD_MODE IN VARCHAR2,
342 p_mapping_id IN VARCHAR2,
343 p_extension IN VARCHAR2,
344 p_description IN VARCHAR2,
345 p_OWNER IN VARCHAR2,
346 p_LAST_UPDATE_DATE IN VARCHAR2 ) IS
347
348 l_user_id NUMBER := 0;
349 l_last_update_date DATE;
350
351 db_user_id NUMBER := 0;
352 db_last_update_date DATE;
353
354 BEGIN
355 --get last updated by user id
356 l_user_id := FND_LOAD_UTIL.OWNER_ID(p_OWNER);
357
358 --translate data type VARCHAR2 to DATE for last_update_date
359 l_last_update_date := nvl(TO_DATE(p_last_update_date, 'YYYY/MM/DD'),SYSDATE);
360
361 -- get updatedby and update_date values if existing in db
362 SELECT LAST_UPDATED_BY, LAST_UPDATE_DATE INTO db_user_id, db_last_update_date
363 FROM IBC_FILE_EXTN_MAPPINGS_TL
364 WHERE MAPPING_ID = p_mapping_id
365 AND USERENV('LANG') IN (LANGUAGE, source_lang);
366
367 IF (FND_LOAD_UTIL.UPLOAD_TEST(l_user_id, l_last_update_date,
368 db_user_id, db_last_update_date, p_upload_mode )) THEN
369 -- Only update rows which have not been altered by user
370 UPDATE IBC_FILE_EXTN_MAPPINGS_TL
371 SET description = p_description,
372 Extension = p_Extension,
373 source_lang = USERENV('LANG'),
374 last_update_date = l_last_update_date,
375 last_updated_by = l_user_id,
376 last_update_login = 0
377 WHERE mapping_id = p_mapping_id
378 AND USERENV('LANG') IN (LANGUAGE, source_lang);
379 END IF;
380 END TRANSLATE_ROW;
381
382 END IBC_FILE_EXTN_MAPPINGS_PKG;