[Home] [Help]
PACKAGE BODY: APPS.IEC_O_ALG_DATA_DEFS_PKG
Source
1 package body IEC_O_ALG_DATA_DEFS_PKG as
2 /* $Header: IECHDADB.pls 120.2 2005/07/21 10:35:06 appldev ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_DATA_CODE in VARCHAR2,
6 X_OWNER_CODE in VARCHAR2,
7 X_OWNER_TYPE_CODE in VARCHAR2,
8 X_OBJECT_VERSION_NUMBER in NUMBER,
9 X_REF_NAME in VARCHAR2,
10 X_REF_VALUE in VARCHAR2,
11 X_REF_TABLE in VARCHAR2,
12 X_REF_WHERE in VARCHAR2,
13 X_DATA_TYPE in VARCHAR2,
14 X_IS_REF_FLAG in VARCHAR2,
15 X_NAME in VARCHAR2,
16 X_CREATION_DATE in DATE,
17 X_CREATED_BY in NUMBER,
18 X_LAST_UPDATE_DATE in DATE,
19 X_LAST_UPDATED_BY in NUMBER,
20 X_LAST_UPDATE_LOGIN in NUMBER
21 ) is
22 cursor C is select ROWID from IEC_O_ALG_DATA_DEFS_B
23 where DATA_CODE = X_DATA_CODE
24 and OWNER_CODE = X_OWNER_CODE
25 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE
26 ;
27 begin
28 insert into IEC_O_ALG_DATA_DEFS_B (
29 OBJECT_VERSION_NUMBER,
30 REF_NAME,
31 REF_VALUE,
32 REF_TABLE,
33 REF_WHERE,
34 DATA_TYPE,
35 IS_REF_FLAG,
36 DATA_CODE,
37 OWNER_CODE,
38 OWNER_TYPE_CODE,
39 CREATION_DATE,
40 CREATED_BY,
41 LAST_UPDATE_DATE,
42 LAST_UPDATED_BY,
43 LAST_UPDATE_LOGIN
44 ) values (
45 X_OBJECT_VERSION_NUMBER,
46 X_REF_NAME,
47 X_REF_VALUE,
48 X_REF_TABLE,
49 X_REF_WHERE,
50 X_DATA_TYPE,
51 X_IS_REF_FLAG,
52 X_DATA_CODE,
53 X_OWNER_CODE,
54 X_OWNER_TYPE_CODE,
55 X_CREATION_DATE,
56 X_CREATED_BY,
57 X_LAST_UPDATE_DATE,
58 X_LAST_UPDATED_BY,
59 X_LAST_UPDATE_LOGIN
60 );
61
62 insert into IEC_O_ALG_DATA_DEFS_TL (
63 DATA_CODE,
64 OWNER_CODE,
65 OWNER_TYPE_CODE,
66 NAME,
67 CREATED_BY,
68 CREATION_DATE,
69 LAST_UPDATED_BY,
70 LAST_UPDATE_DATE,
71 LAST_UPDATE_LOGIN,
72 OBJECT_VERSION_NUMBER,
73 LANGUAGE,
74 SOURCE_LANG
75 ) select
76 X_DATA_CODE,
77 X_OWNER_CODE,
78 X_OWNER_TYPE_CODE,
79 X_NAME,
80 X_CREATED_BY,
81 X_CREATION_DATE,
82 X_LAST_UPDATED_BY,
83 X_LAST_UPDATE_DATE,
84 X_LAST_UPDATE_LOGIN,
85 X_OBJECT_VERSION_NUMBER,
86 L.LANGUAGE_CODE,
87 userenv('LANG')
88 from FND_LANGUAGES L
89 where L.INSTALLED_FLAG in ('I', 'B')
90 and not exists
91 (select NULL
92 from IEC_O_ALG_DATA_DEFS_TL T
93 where T.DATA_CODE = X_DATA_CODE
94 and T.OWNER_CODE = X_OWNER_CODE
95 and T.OWNER_TYPE_CODE = X_OWNER_TYPE_CODE
96 and T.LANGUAGE = L.LANGUAGE_CODE);
97
98 open c;
99 fetch c into X_ROWID;
100 if (c%notfound) then
101 close c;
102 raise no_data_found;
103 end if;
104 close c;
105
106 end INSERT_ROW;
107
108 procedure LOCK_ROW (
109 X_DATA_CODE in VARCHAR2,
110 X_OWNER_CODE in VARCHAR2,
111 X_OWNER_TYPE_CODE in VARCHAR2,
112 X_OBJECT_VERSION_NUMBER in NUMBER,
113 X_REF_NAME in VARCHAR2,
114 X_REF_VALUE in VARCHAR2,
115 X_REF_TABLE in VARCHAR2,
116 X_REF_WHERE in VARCHAR2,
117 X_DATA_TYPE in VARCHAR2,
118 X_IS_REF_FLAG in VARCHAR2,
119 X_NAME in VARCHAR2
120 ) is
121 cursor c is select
122 OBJECT_VERSION_NUMBER,
123 REF_NAME,
124 REF_VALUE,
125 REF_TABLE,
126 REF_WHERE,
127 DATA_TYPE,
128 IS_REF_FLAG
129 from IEC_O_ALG_DATA_DEFS_B
130 where DATA_CODE = X_DATA_CODE
131 and OWNER_CODE = X_OWNER_CODE
132 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE
133 for update of DATA_CODE nowait;
134 recinfo c%rowtype;
135
136 cursor c1 is select
137 NAME,
138 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
139 from IEC_O_ALG_DATA_DEFS_TL
140 where DATA_CODE = X_DATA_CODE
141 and OWNER_CODE = X_OWNER_CODE
142 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE
143 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
144 for update of DATA_CODE nowait;
145 begin
146 open c;
147 fetch c into recinfo;
148 if (c%notfound) then
149 close c;
150 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
151 app_exception.raise_exception;
152 end if;
153 close c;
154 if ( (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
155 AND ((recinfo.REF_NAME = X_REF_NAME)
156 OR ((recinfo.REF_NAME is null) AND (X_REF_NAME is null)))
157 AND ((recinfo.REF_VALUE = X_REF_VALUE)
158 OR ((recinfo.REF_VALUE is null) AND (X_REF_VALUE is null)))
159 AND ((recinfo.REF_TABLE = X_REF_TABLE)
160 OR ((recinfo.REF_TABLE is null) AND (X_REF_TABLE is null)))
161 AND ((recinfo.REF_WHERE = X_REF_WHERE)
162 OR ((recinfo.REF_WHERE is null) AND (X_REF_WHERE is null)))
163 AND ((recinfo.DATA_TYPE = X_DATA_TYPE)
164 OR ((recinfo.DATA_TYPE is null) AND (X_DATA_TYPE is null)))
165 AND (recinfo.IS_REF_FLAG = X_IS_REF_FLAG)
166 ) then
167 null;
168 else
169 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
170 app_exception.raise_exception;
171 end if;
172
173 for tlinfo in c1 loop
174 if (tlinfo.BASELANG = 'Y') then
175 if ( (tlinfo.NAME = X_NAME)
176 ) then
177 null;
178 else
179 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
180 app_exception.raise_exception;
181 end if;
182 end if;
183 end loop;
184 return;
185 end LOCK_ROW;
186
187 procedure UPDATE_ROW (
188 X_DATA_CODE in VARCHAR2,
189 X_OWNER_CODE in VARCHAR2,
190 X_OWNER_TYPE_CODE in VARCHAR2,
191 X_OBJECT_VERSION_NUMBER in NUMBER,
192 X_REF_NAME in VARCHAR2,
193 X_REF_VALUE in VARCHAR2,
194 X_REF_TABLE in VARCHAR2,
195 X_REF_WHERE in VARCHAR2,
196 X_DATA_TYPE in VARCHAR2,
197 X_IS_REF_FLAG in VARCHAR2,
198 X_NAME in VARCHAR2,
199 X_LAST_UPDATE_DATE in DATE,
200 X_LAST_UPDATED_BY in NUMBER,
201 X_LAST_UPDATE_LOGIN in NUMBER
202 ) is
203 begin
204 update IEC_O_ALG_DATA_DEFS_B set
205 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
206 REF_NAME = X_REF_NAME,
207 REF_VALUE = X_REF_VALUE,
208 REF_TABLE = X_REF_TABLE,
209 REF_WHERE = X_REF_WHERE,
210 DATA_TYPE = X_DATA_TYPE,
211 IS_REF_FLAG = X_IS_REF_FLAG,
212 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
213 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
214 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
215 where DATA_CODE = X_DATA_CODE
216 and OWNER_CODE = X_OWNER_CODE
217 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE;
218
219 if (sql%notfound) then
220 raise no_data_found;
221 end if;
222
223 update IEC_O_ALG_DATA_DEFS_TL set
224 NAME = X_NAME,
225 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
226 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
227 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
228 SOURCE_LANG = userenv('LANG')
229 where DATA_CODE = X_DATA_CODE
230 and OWNER_CODE = X_OWNER_CODE
231 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE
232 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
233
234 if (sql%notfound) then
235 raise no_data_found;
236 end if;
237 end UPDATE_ROW;
238
239 procedure LOAD_ROW (
240 X_DATA_CODE in VARCHAR2,
241 X_OWNER_CODE in VARCHAR2,
242 X_OWNER_TYPE_CODE in VARCHAR2,
243 X_REF_NAME in VARCHAR2,
244 X_REF_VALUE in VARCHAR2,
245 X_REF_TABLE in VARCHAR2,
246 X_REF_WHERE in VARCHAR2,
247 X_DATA_TYPE in VARCHAR2,
248 X_IS_REF_FLAG in VARCHAR2,
249 X_NAME in VARCHAR2,
250 P_OWNER IN VARCHAR2) is
251 user_id number := 0;
252 x_rowid VARCHAR2(500) := null;
253 begin
254
255 USER_ID := fnd_load_util.owner_id(P_OWNER);
256
257 UPDATE_ROW (X_DATA_CODE,X_OWNER_CODE,X_OWNER_TYPE_CODE,0,X_REF_NAME,X_REF_VALUE, X_REF_TABLE,X_REF_WHERE,X_DATA_TYPE,X_IS_REF_FLAG,X_NAME,sysdate,user_id,0);
258 EXCEPTION
259 when no_data_found then
260 INSERT_ROW (X_ROWID,X_DATA_CODE,X_OWNER_CODE,X_OWNER_TYPE_CODE,0,X_REF_NAME,X_REF_VALUE, X_REF_TABLE,X_REF_WHERE,X_DATA_TYPE,X_IS_REF_FLAG,X_NAME,sysdate,user_id,sysdate,user_id,0);
261 end LOAD_ROW;
262
263 procedure LOAD_SEED_ROW (
264 X_upload_mode in VARCHAR2,
265 X_DATA_CODE in VARCHAR2,
266 X_OWNER_CODE in VARCHAR2,
267 X_OWNER_TYPE_CODE in VARCHAR2,
268 X_REF_NAME in VARCHAR2,
269 X_REF_VALUE in VARCHAR2,
270 X_REF_TABLE in VARCHAR2,
271 X_REF_WHERE in VARCHAR2,
272 X_DATA_TYPE in VARCHAR2,
273 X_IS_REF_FLAG in VARCHAR2,
274 X_NAME in VARCHAR2,
275 P_OWNER IN VARCHAR2) is
276 begin
277 if(X_upload_mode='NLS') then
278 IEC_O_ALG_DATA_DEFS_PKG.TRANSLATE_ROW (
279 X_DATA_CODE,
280 X_OWNER_CODE,
281 X_OWNER_TYPE_CODE,
282 X_NAME,
283 P_OWNER);
284 else
285 IEC_O_ALG_DATA_DEFS_PKG.LOAD_ROW (
286 X_DATA_CODE,
287 X_OWNER_CODE,
288 X_OWNER_TYPE_CODE,
289 X_REF_NAME,
290 X_REF_VALUE,
291 X_REF_TABLE,
292 X_REF_WHERE,
293 X_DATA_TYPE,
294 X_IS_REF_FLAG,
295 X_NAME,
296 P_OWNER);
297 end if;
298
299 end LOAD_SEED_ROW;
300
301 procedure TRANSLATE_ROW (
302 X_DATA_CODE in VARCHAR2,
303 X_OWNER_CODE in VARCHAR2,
304 X_OWNER_TYPE_CODE in VARCHAR2,
305 X_NAME in VARCHAR2,
306 P_OWNER IN VARCHAR2)is
307 BEGIN
308 UPDATE iec_o_alg_data_defs_tl SET
309 source_lang = userenv('LANG'),
310 NAME = X_NAME,
311 last_update_date = sysdate,
312 last_updated_by = fnd_load_util.owner_id(P_OWNER),
313 last_update_login = 0
314 WHERE DATA_CODE = X_DATA_CODE
315 AND OWNER_CODE = X_OWNER_CODE
316 AND OWNER_TYPE_CODE = X_OWNER_TYPE_CODE
317 AND userenv('LANG') IN (language, source_lang);
318
319 END TRANSLATE_ROW;
320
321 procedure DELETE_ROW (
322 X_DATA_CODE in VARCHAR2,
323 X_OWNER_CODE in VARCHAR2,
324 X_OWNER_TYPE_CODE in VARCHAR2
325 ) is
326 begin
327 delete from IEC_O_ALG_DATA_DEFS_TL
328 where DATA_CODE = X_DATA_CODE
329 and OWNER_CODE = X_OWNER_CODE
330 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE;
331
332 if (sql%notfound) then
333 raise no_data_found;
334 end if;
335
336 delete from IEC_O_ALG_DATA_DEFS_B
337 where DATA_CODE = X_DATA_CODE
338 and OWNER_CODE = X_OWNER_CODE
339 and OWNER_TYPE_CODE = X_OWNER_TYPE_CODE;
340
341 if (sql%notfound) then
342 raise no_data_found;
343 end if;
344 end DELETE_ROW;
345
346 procedure ADD_LANGUAGE
347 is
348 begin
349 delete from IEC_O_ALG_DATA_DEFS_TL T
350 where not exists
351 (select NULL
352 from IEC_O_ALG_DATA_DEFS_B B
353 where B.DATA_CODE = T.DATA_CODE
354 and B.OWNER_CODE = T.OWNER_CODE
355 and B.OWNER_TYPE_CODE = T.OWNER_TYPE_CODE
356 );
357
358 update IEC_O_ALG_DATA_DEFS_TL T set (
359 NAME
360 ) = (select
361 B.NAME
362 from IEC_O_ALG_DATA_DEFS_TL B
363 where B.DATA_CODE = T.DATA_CODE
364 and B.OWNER_CODE = T.OWNER_CODE
365 and B.OWNER_TYPE_CODE = T.OWNER_TYPE_CODE
366 and B.LANGUAGE = T.SOURCE_LANG)
367 where (
368 T.DATA_CODE,
369 T.OWNER_CODE,
370 T.OWNER_TYPE_CODE,
371 T.LANGUAGE
372 ) in (select
373 SUBT.DATA_CODE,
374 SUBT.OWNER_CODE,
375 SUBT.OWNER_TYPE_CODE,
376 SUBT.LANGUAGE
377 from IEC_O_ALG_DATA_DEFS_TL SUBB, IEC_O_ALG_DATA_DEFS_TL SUBT
378 where SUBB.DATA_CODE = SUBT.DATA_CODE
379 and SUBB.OWNER_CODE = SUBT.OWNER_CODE
380 and SUBB.OWNER_TYPE_CODE = SUBT.OWNER_TYPE_CODE
381 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
382 and (SUBB.NAME <> SUBT.NAME
383 ));
384
385 insert into IEC_O_ALG_DATA_DEFS_TL (
386 DATA_CODE,
387 OWNER_CODE,
388 OWNER_TYPE_CODE,
389 NAME,
390 CREATED_BY,
391 CREATION_DATE,
392 LAST_UPDATED_BY,
393 LAST_UPDATE_DATE,
394 LAST_UPDATE_LOGIN,
395 OBJECT_VERSION_NUMBER,
396 LANGUAGE,
397 SOURCE_LANG
398 ) select /*+ ORDERED */
399 B.DATA_CODE,
400 B.OWNER_CODE,
401 B.OWNER_TYPE_CODE,
402 B.NAME,
403 B.CREATED_BY,
404 B.CREATION_DATE,
405 B.LAST_UPDATED_BY,
406 B.LAST_UPDATE_DATE,
407 B.LAST_UPDATE_LOGIN,
408 B.OBJECT_VERSION_NUMBER,
409 L.LANGUAGE_CODE,
410 B.SOURCE_LANG
411 from IEC_O_ALG_DATA_DEFS_TL B, FND_LANGUAGES L
412 where L.INSTALLED_FLAG in ('I', 'B')
413 and B.LANGUAGE = userenv('LANG')
414 and not exists
415 (select NULL
416 from IEC_O_ALG_DATA_DEFS_TL T
417 where T.DATA_CODE = B.DATA_CODE
418 and T.OWNER_CODE = B.OWNER_CODE
419 and T.OWNER_TYPE_CODE = B.OWNER_TYPE_CODE
420 and T.LANGUAGE = L.LANGUAGE_CODE);
421 end ADD_LANGUAGE;
422
423 end IEC_O_ALG_DATA_DEFS_PKG;