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