DBA Data[Home] [Help]

PACKAGE BODY: APPS.XDP_FES_PKG

Source


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