[Home] [Help]
PACKAGE BODY: APPS.AMS_DS_TCA_ENTITY_PKG
Source
1 package body AMS_DS_TCA_ENTITY_PKG as
2 /* $Header: amsltceb.pls 120.2 2006/06/30 13:18:29 bmuthukr ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in OUT NOCOPY VARCHAR2,
5 X_ENTITY_ID in NUMBER,
6 X_ENTITY_NAME in VARCHAR2,
7 X_TABLE_NAME 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 AMS_DS_TCA_ENTITY
16 where ENTITY_ID = X_ENTITY_ID
17 ;
18 begin
19 insert into AMS_DS_TCA_ENTITY (
20 ENTITY_ID,
21 ENTITY_NAME,
22 TABLE_NAME,
23 CREATION_DATE,
24 CREATED_BY,
25 LAST_UPDATE_DATE,
26 LAST_UPDATED_BY,
27 LAST_UPDATE_LOGIN
28 ) values (
29 X_ENTITY_ID,
30 X_ENTITY_NAME,
31 X_TABLE_NAME,
32 X_CREATION_DATE,
33 X_CREATED_BY,
34 X_LAST_UPDATE_DATE,
35 X_LAST_UPDATED_BY,
36 X_LAST_UPDATE_LOGIN
37 );
38
39 insert into AMS_DS_TCA_ENTITY_TL (
40 LAST_UPDATED_BY,
41 ENTITY_ID,
42 LAST_UPDATE_DATE,
43 CREATION_DATE,
44 CREATED_BY,
45 LAST_UPDATE_LOGIN,
46 DESCRIPTION,
47 LANGUAGE,
48 SOURCE_LANG
49 ) select
50 X_LAST_UPDATED_BY,
51 X_ENTITY_ID,
52 X_LAST_UPDATE_DATE,
53 X_CREATION_DATE,
54 X_CREATED_BY,
55 X_LAST_UPDATE_LOGIN,
56 X_DESCRIPTION,
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 AMS_DS_TCA_ENTITY_TL T
64 where T.ENTITY_ID = X_ENTITY_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_ENTITY_ID in NUMBER,
79 X_ENTITY_NAME in VARCHAR2,
80 X_TABLE_NAME in VARCHAR2,
81 X_DESCRIPTION in VARCHAR2
82 ) is
83 cursor c is select
84 ENTITY_NAME,
85 TABLE_NAME
86 from AMS_DS_TCA_ENTITY
87 where ENTITY_ID = X_ENTITY_ID
88 for update of ENTITY_ID nowait;
89 recinfo c%rowtype;
90
91 cursor c1 is select
92 DESCRIPTION,
93 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
94 from AMS_DS_TCA_ENTITY_TL
95 where ENTITY_ID = X_ENTITY_ID
96 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
97 for update of ENTITY_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.ENTITY_NAME = X_ENTITY_NAME)
108 AND ((recinfo.TABLE_NAME = X_TABLE_NAME)
109 OR ((recinfo.TABLE_NAME is null) AND (X_TABLE_NAME is null)))
110 ) then
111 null;
112 else
113 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
114 app_exception.raise_exception;
115 end if;
116
117 for tlinfo in c1 loop
118 if (tlinfo.BASELANG = 'Y') then
119 if ( ((tlinfo.DESCRIPTION = X_DESCRIPTION)
120 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
121 ) then
122 null;
123 else
124 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
125 app_exception.raise_exception;
126 end if;
127 end if;
128 end loop;
129 return;
130 end LOCK_ROW;
131
132 procedure UPDATE_ROW (
133 X_ENTITY_ID in NUMBER,
134 X_ENTITY_NAME in VARCHAR2,
135 X_TABLE_NAME in VARCHAR2,
136 X_DESCRIPTION in VARCHAR2,
137 X_LAST_UPDATE_DATE in DATE,
138 X_LAST_UPDATED_BY in NUMBER,
139 X_LAST_UPDATE_LOGIN in NUMBER
140 ) is
141 begin
142 update AMS_DS_TCA_ENTITY set
143 ENTITY_NAME = X_ENTITY_NAME,
144 TABLE_NAME = X_TABLE_NAME,
145 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
146 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
147 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
148 where ENTITY_ID = X_ENTITY_ID;
149
150 if (sql%notfound) then
151 raise no_data_found;
152 end if;
153
154 update AMS_DS_TCA_ENTITY_TL set
155 DESCRIPTION = X_DESCRIPTION,
156 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
157 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
158 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
159 SOURCE_LANG = userenv('LANG')
160 where ENTITY_ID = X_ENTITY_ID
161 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
162
163 if (sql%notfound) then
164 raise no_data_found;
165 end if;
166 end UPDATE_ROW;
167
168 procedure DELETE_ROW (
169 X_ENTITY_ID in NUMBER
170 ) is
171 begin
172 delete from AMS_DS_TCA_ENTITY_TL
173 where ENTITY_ID = X_ENTITY_ID;
174
175 if (sql%notfound) then
176 raise no_data_found;
177 end if;
178
179 delete from AMS_DS_TCA_ENTITY
180 where ENTITY_ID = X_ENTITY_ID;
181
182 if (sql%notfound) then
183 raise no_data_found;
184 end if;
185 end DELETE_ROW;
186
187
188 procedure LOAD_ROW (
189 X_ENTITY_ID in NUMBER,
190 X_ENTITY_NAME in VARCHAR2,
191 X_TABLE_NAME in VARCHAR2,
192 X_DESCRIPTION in VARCHAR2,
193 X_OWNER in VARCHAR2,
194 x_custom_mode IN VARCHAR2,
195 X_CREATION_DATE in DATE,
196 X_CREATED_BY in NUMBER,
197 X_LAST_UPDATE_DATE in DATE,
198 X_LAST_UPDATED_BY in NUMBER,
199 X_LAST_UPDATE_LOGIN in NUMBER
200 ) IS
201
202 l_user_id number := 0;
203 l_colmap_id number;
204 l_obj_verno number;
205 l_dummy_char varchar2(1);
206 l_row_id varchar2(100);
207 l_db_luby_id number;
208
209 cursor c_chk_col_exists is
210 select 'x'
211 from AMS_DS_TCA_ENTITY
212 where ENTITY_ID = X_ENTITY_ID;
213
214 cursor c_get_col_mapping_id is
215 select AMS_DS_TCA_ENTITY_s.nextval
216 from dual;
217
218 cursor c_get_luby is
219 select last_updated_by
220 from AMS_DS_TCA_ENTITY
221 where entity_id = X_ENTITY_ID;
222
223 BEGIN
224 if X_OWNER = 'SEED' then
225 l_user_id := 1;
226 elsif X_OWNER = 'ORACLE' then
227 l_user_id := 2;
228 elsif X_OWNER = 'SYSADMIN' then
229 l_user_id := 0;
230 end if;
231 open c_chk_col_exists;
232 fetch c_chk_col_exists into l_dummy_char;
233 if c_chk_col_exists%notfound
234 then
235 close c_chk_col_exists;
236 if X_ENTITY_ID is null
237 then
238 open c_get_col_mapping_id;
239 fetch c_get_col_mapping_id into l_colmap_id;
240 close c_get_col_mapping_id;
241 else
242 l_colmap_id := X_ENTITY_ID;
243 end if;
244 AMS_DS_TCA_ENTITY_PKG.INSERT_ROW (
245 X_ROWID => l_row_id,
246 X_ENTITY_ID => X_ENTITY_ID,
247 X_ENTITY_NAME => X_ENTITY_NAME,
248 X_TABLE_NAME => X_TABLE_NAME,
249 X_DESCRIPTION => X_DESCRIPTION,
250 X_CREATION_DATE => X_CREATION_DATE, -- sysdate,
251 X_CREATED_BY => l_user_id,
252 X_LAST_UPDATE_DATE => X_LAST_UPDATE_DATE, -- sysdate,
253 X_LAST_UPDATED_BY => l_user_id,
254 X_LAST_UPDATE_LOGIN => 1);
255
256 else
257 close c_chk_col_exists;
258 OPEN c_get_luby;
259 FETCH c_get_luby INTO l_db_luby_id;
260 CLOSE c_get_luby;
261
262
263 if (l_db_luby_id IN (0, 1, 2) or NVL(x_custom_mode, 'PRESERVE')='FORCE')
264 then
265
266 l_colmap_id := X_ENTITY_ID ;
267
268 AMS_DS_TCA_ENTITY_PKG.UPDATE_ROW (
269 X_ENTITY_ID => X_ENTITY_ID,
270 X_ENTITY_NAME => X_ENTITY_NAME,
271 X_TABLE_NAME => X_TABLE_NAME,
272 X_DESCRIPTION => X_DESCRIPTION,
273 X_LAST_UPDATE_DATE => X_LAST_UPDATE_DATE, -- sysdate,
274 X_LAST_UPDATED_BY => l_user_id,
275 X_LAST_UPDATE_LOGIN => 1
276 );
277 end if;
278 end if;
279
280 end LOAD_ROW;
281
282 procedure ADD_LANGUAGE
283 is
284 begin
285 delete from AMS_DS_TCA_ENTITY_TL T
286 where not exists
287 (select NULL
288 from AMS_DS_TCA_ENTITY B
289 where B.ENTITY_ID= T.ENTITY_ID
290 );
291
292 update AMS_DS_TCA_ENTITY_TL T set (
293 DESCRIPTION
294 ) = (select
295 B.DESCRIPTION
296 from AMS_DS_TCA_ENTITY_TL B
297 where B.ENTITY_ID= T.ENTITY_ID
298 and B.LANGUAGE = T.SOURCE_LANG)
299 where (
300 T.ENTITY_ID,
301 T.LANGUAGE
302 ) in (select
303 SUBT.ENTITY_ID,
304 SUBT.LANGUAGE
305 from AMS_DS_TCA_ENTITY_TL SUBB, AMS_DS_TCA_ENTITY_TL SUBT
306 where SUBB.ENTITY_ID= SUBT.ENTITY_ID
307 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
308 and (
309 SUBB.DESCRIPTION <> SUBT.DESCRIPTION
310 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
311 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
312 ));
313
314 insert into AMS_DS_TCA_ENTITY_TL (
315 LAST_UPDATED_BY,
316 ENTITY_ID,
317 LAST_UPDATE_DATE,
318 CREATION_DATE,
319 CREATED_BY,
320 LAST_UPDATE_LOGIN,
321 DESCRIPTION,
322 LANGUAGE,
323 SOURCE_LANG
324 ) select
325 B.LAST_UPDATED_BY,
326 B.ENTITY_ID,
327 B.LAST_UPDATE_DATE,
328 B.CREATION_DATE,
329 B.CREATED_BY,
330 B.LAST_UPDATE_LOGIN,
331 B.DESCRIPTION,
332 L.LANGUAGE_CODE,
333 B.SOURCE_LANG
334 from FND_LANGUAGES L, AMS_DS_TCA_ENTITY_TL B
335 where L.INSTALLED_FLAG in ('I', 'B')
336 and B.LANGUAGE = userenv('LANG')
337 and not exists
338 (select NULL
339 from AMS_DS_TCA_ENTITY_TL T
340 where T.ENTITY_ID = B.ENTITY_ID
341 and T.LANGUAGE = L.LANGUAGE_CODE);
342
343 end ADD_LANGUAGE;
344
345 PROCEDURE TRANSLATE_ROW (
346 X_ENTITY_ID IN NUMBER,
347 X_DESCRIPTION IN VARCHAR2,
348 X_OWNER IN VARCHAR2,
349 X_CUSTOM_MODE IN VARCHAR2
350 ) IS
351
352 CURSOR c_last_updated_by IS
353 SELECT last_updated_by
354 FROM AMS_DS_TCA_ENTITY_TL
355 WHERE ENTITY_ID = X_ENTITY_ID
356 AND USERENV('LANG') = LANGUAGE;
357
358 l_luby number; --last updated by
359
360 BEGIN
361 -- only UPDATE rows that have not been altered by user
362 OPEN c_last_updated_by;
363 FETCH c_last_updated_by INTO l_luby;
364 CLOSE c_last_updated_by;
365
366 IF (l_luby IN (0, 1, 2) or NVL(X_CUSTOM_MODE, 'PRESERVE')='FORCE') THEN
367 UPDATE AMS_DS_TCA_ENTITY_TL
368 SET DESCRIPTION = NVL(X_DESCRIPTION, DESCRIPTION),
369 SOURCE_LANG = userenv('LANG'),
370 LAST_UPDATE_DATE = SYSDATE,
371 LAST_UPDATED_BY = decode(x_owner, 'SEED', 1, 'ORACLE', 2, 'SYSADMIN', 0, -1),
372 LAST_UPDATE_LOGIN = 0
373 WHERE ENTITY_ID = X_ENTITY_ID
374 AND userenv('LANG') IN (language, source_lang);
375 END IF;
376 END TRANSLATE_ROW;
377
378 end AMS_DS_TCA_ENTITY_PKG;