DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_DOCUMENT_DATATYPES_PKG

Source


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