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