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