[Home] [Help]
PACKAGE BODY: APPS.HR_FORM_CANVASES_PKG
Source
1 package body HR_FORM_CANVASES_PKG as
2 /* $Header: hrfcnlct.pkb 120.1 2006/10/16 12:19:08 snukala noship $ */
3 procedure OWNER_TO_WHO (
4 X_OWNER in VARCHAR2,
5 X_CREATION_DATE out nocopy DATE,
6 X_CREATED_BY out nocopy NUMBER,
7 X_LAST_UPDATE_DATE out nocopy DATE,
8 X_LAST_UPDATED_BY out nocopy NUMBER,
9 X_LAST_UPDATE_LOGIN out nocopy NUMBER
10 ) is
11 begin
12 if X_OWNER = 'SEED' then
13 X_CREATED_BY := 1;
14 X_LAST_UPDATED_BY := 1;
15 else
16 X_CREATED_BY := 0;
17 X_LAST_UPDATED_BY := 0;
18 end if;
19 X_CREATION_DATE := sysdate;
20 X_LAST_UPDATE_DATE := sysdate;
21 X_LAST_UPDATE_LOGIN := 0;
22 end OWNER_TO_WHO;
23 procedure INSERT_ROW (
24 X_ROWID in out nocopy VARCHAR2,
25 X_FORM_CANVAS_ID in NUMBER,
26 X_OBJECT_VERSION_NUMBER in NUMBER,
27 X_FORM_WINDOW_ID in NUMBER,
28 X_CANVAS_TYPE in VARCHAR2,
29 X_CANVAS_NAME in VARCHAR2,
30 X_USER_CANVAS_NAME in VARCHAR2,
31 X_DESCRIPTION in VARCHAR2,
32 X_CREATION_DATE in DATE,
33 X_CREATED_BY in NUMBER,
34 X_LAST_UPDATE_DATE in DATE,
35 X_LAST_UPDATED_BY in NUMBER,
36 X_LAST_UPDATE_LOGIN in NUMBER
37 ) is
38 cursor C is select ROWID from HR_FORM_CANVASES_B
39 where FORM_CANVAS_ID = X_FORM_CANVAS_ID
40 ;
41 begin
42 -- Added cursor check for Bug 5600334 to avoid unwanted inserts.
43 open c;
44 fetch c into X_ROWID;
45 if (c%notfound) then
46 close c;
47 insert into HR_FORM_CANVASES_B (
48 OBJECT_VERSION_NUMBER,
49 FORM_WINDOW_ID,
50 CANVAS_TYPE,
51 FORM_CANVAS_ID,
52 CANVAS_NAME,
53 CREATION_DATE,
54 CREATED_BY,
55 LAST_UPDATE_DATE,
56 LAST_UPDATED_BY,
57 LAST_UPDATE_LOGIN
58 ) values (
59 X_OBJECT_VERSION_NUMBER,
60 X_FORM_WINDOW_ID,
61 X_CANVAS_TYPE,
62 X_FORM_CANVAS_ID,
63 X_CANVAS_NAME,
64 X_CREATION_DATE,
65 X_CREATED_BY,
66 X_LAST_UPDATE_DATE,
67 X_LAST_UPDATED_BY,
68 X_LAST_UPDATE_LOGIN
69 );
70 end if;
71 close c;
72
73 insert into HR_FORM_CANVASES_TL (
74 FORM_CANVAS_ID,
75 USER_CANVAS_NAME,
76 DESCRIPTION,
77 LAST_UPDATE_DATE,
78 LAST_UPDATED_BY,
79 LAST_UPDATE_LOGIN,
80 CREATED_BY,
81 CREATION_DATE,
82 LANGUAGE,
83 SOURCE_LANG
84 ) select
85 X_FORM_CANVAS_ID,
86 X_USER_CANVAS_NAME,
87 X_DESCRIPTION,
88 X_LAST_UPDATE_DATE,
89 X_LAST_UPDATED_BY,
90 X_LAST_UPDATE_LOGIN,
91 X_CREATED_BY,
92 X_CREATION_DATE,
93 L.LANGUAGE_CODE,
94 userenv('LANG')
95 from FND_LANGUAGES L
96 where L.INSTALLED_FLAG in ('I', 'B')
97 and not exists
98 (select NULL
99 from HR_FORM_CANVASES_TL T
100 where T.FORM_CANVAS_ID = X_FORM_CANVAS_ID
101 and T.LANGUAGE = L.LANGUAGE_CODE);
102
103 open c;
104 fetch c into X_ROWID;
105 if (c%notfound) then
106 close c;
107 raise no_data_found;
108 end if;
109 close c;
110
111 end INSERT_ROW;
112
113 procedure LOCK_ROW (
114 X_FORM_CANVAS_ID in NUMBER,
115 X_OBJECT_VERSION_NUMBER in NUMBER,
116 X_FORM_WINDOW_ID in NUMBER,
117 X_CANVAS_TYPE in VARCHAR2,
118 X_CANVAS_NAME in VARCHAR2,
119 X_USER_CANVAS_NAME in VARCHAR2,
120 X_DESCRIPTION in VARCHAR2
121 ) is
122 cursor c is select
123 OBJECT_VERSION_NUMBER,
124 FORM_WINDOW_ID,
125 CANVAS_TYPE,
126 CANVAS_NAME
127 from HR_FORM_CANVASES_B
128 where FORM_CANVAS_ID = X_FORM_CANVAS_ID
129 for update of FORM_CANVAS_ID nowait;
130 recinfo c%rowtype;
131
132 cursor c1 is select
133 USER_CANVAS_NAME,
134 DESCRIPTION,
135 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
136 from HR_FORM_CANVASES_TL
137 where FORM_CANVAS_ID = X_FORM_CANVAS_ID
138 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
139 for update of FORM_CANVAS_ID nowait;
140 begin
141 open c;
142 fetch c into recinfo;
143 if (c%notfound) then
144 close c;
145 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
146 app_exception.raise_exception;
147 end if;
148 close c;
149 if ( (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
150 AND (recinfo.FORM_WINDOW_ID = X_FORM_WINDOW_ID)
151 AND (recinfo.CANVAS_TYPE = X_CANVAS_TYPE)
152 AND (recinfo.CANVAS_NAME = X_CANVAS_NAME)
153 ) then
154 null;
155 else
156 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
157 app_exception.raise_exception;
158 end if;
159
160 for tlinfo in c1 loop
161 if (tlinfo.BASELANG = 'Y') then
162 if ( (tlinfo.USER_CANVAS_NAME = X_USER_CANVAS_NAME)
163 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
164 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
165 ) then
166 null;
167 else
168 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
169 app_exception.raise_exception;
170 end if;
171 end if;
172 end loop;
173 return;
174 end LOCK_ROW;
175
176 procedure UPDATE_ROW (
177 X_FORM_CANVAS_ID in NUMBER,
178 X_OBJECT_VERSION_NUMBER in NUMBER,
179 X_FORM_WINDOW_ID in NUMBER,
180 X_CANVAS_TYPE in VARCHAR2,
181 X_CANVAS_NAME in VARCHAR2,
182 X_USER_CANVAS_NAME in VARCHAR2,
183 X_DESCRIPTION in VARCHAR2,
184 X_LAST_UPDATE_DATE in DATE,
185 X_LAST_UPDATED_BY in NUMBER,
186 X_LAST_UPDATE_LOGIN in NUMBER
187 ) is
188 begin
189 update HR_FORM_CANVASES_B set
190 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
191 FORM_WINDOW_ID = X_FORM_WINDOW_ID,
192 CANVAS_TYPE = X_CANVAS_TYPE,
193 CANVAS_NAME = X_CANVAS_NAME,
194 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
195 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
196 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
197 where FORM_CANVAS_ID = X_FORM_CANVAS_ID;
198
199 if (sql%notfound) then
200 raise no_data_found;
201 end if;
202
203 update HR_FORM_CANVASES_TL set
204 USER_CANVAS_NAME = X_USER_CANVAS_NAME,
205 DESCRIPTION = X_DESCRIPTION,
206 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
207 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
208 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
209 SOURCE_LANG = userenv('LANG')
210 where FORM_CANVAS_ID = X_FORM_CANVAS_ID
211 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
212
213 if (sql%notfound) then
214 raise no_data_found;
215 end if;
216 end UPDATE_ROW;
217
218 procedure DELETE_ROW (
219 X_FORM_CANVAS_ID in NUMBER
220 ) is
221 begin
222 delete from HR_FORM_CANVASES_TL
223 where FORM_CANVAS_ID = X_FORM_CANVAS_ID;
224
225 if (sql%notfound) then
226 raise no_data_found;
227 end if;
228
229 delete from HR_FORM_CANVASES_B
230 where FORM_CANVAS_ID = X_FORM_CANVAS_ID;
231
232 if (sql%notfound) then
233 raise no_data_found;
234 end if;
235 end DELETE_ROW;
236
237 procedure ADD_LANGUAGE
238 is
239 begin
240 delete from HR_FORM_CANVASES_TL T
241 where not exists
242 (select NULL
243 from HR_FORM_CANVASES_B B
244 where B.FORM_CANVAS_ID = T.FORM_CANVAS_ID
245 );
246
247 update HR_FORM_CANVASES_TL T set (
248 USER_CANVAS_NAME,
249 DESCRIPTION
250 ) = (select
251 B.USER_CANVAS_NAME,
252 B.DESCRIPTION
253 from HR_FORM_CANVASES_TL B
254 where B.FORM_CANVAS_ID = T.FORM_CANVAS_ID
255 and B.LANGUAGE = T.SOURCE_LANG)
256 where (
257 T.FORM_CANVAS_ID,
258 T.LANGUAGE
259 ) in (select
260 SUBT.FORM_CANVAS_ID,
261 SUBT.LANGUAGE
262 from HR_FORM_CANVASES_TL SUBB, HR_FORM_CANVASES_TL SUBT
263 where SUBB.FORM_CANVAS_ID = SUBT.FORM_CANVAS_ID
264 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
265 and (SUBB.USER_CANVAS_NAME <> SUBT.USER_CANVAS_NAME
266 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
267 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
268 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
269 ));
270
271 insert into HR_FORM_CANVASES_TL (
272 FORM_CANVAS_ID,
273 USER_CANVAS_NAME,
274 DESCRIPTION,
275 LAST_UPDATE_DATE,
276 LAST_UPDATED_BY,
277 LAST_UPDATE_LOGIN,
278 CREATED_BY,
279 CREATION_DATE,
280 LANGUAGE,
281 SOURCE_LANG
282 ) select
283 B.FORM_CANVAS_ID,
284 B.USER_CANVAS_NAME,
285 B.DESCRIPTION,
286 B.LAST_UPDATE_DATE,
287 B.LAST_UPDATED_BY,
288 B.LAST_UPDATE_LOGIN,
289 B.CREATED_BY,
290 B.CREATION_DATE,
291 L.LANGUAGE_CODE,
292 B.SOURCE_LANG
293 from HR_FORM_CANVASES_TL B, FND_LANGUAGES L
294 where L.INSTALLED_FLAG in ('I', 'B')
295 and B.LANGUAGE = userenv('LANG')
296 and not exists
297 (select NULL
298 from HR_FORM_CANVASES_TL T
299 where T.FORM_CANVAS_ID = B.FORM_CANVAS_ID
300 and T.LANGUAGE = L.LANGUAGE_CODE);
301 end ADD_LANGUAGE;
302
303 procedure TRANSLATE_ROW (
304 X_APPLICATION_SHORT_NAME in VARCHAR2,
305 X_FORM_NAME in VARCHAR2,
306 X_CANVAS_NAME in VARCHAR2,
307 X_WINDOW_NAME in VARCHAR2,
308 X_OWNER in VARCHAR2,
309 X_USER_CANVAS_NAME in VARCHAR2,
310 X_DESCRIPTION in VARCHAR2) is
311 X_ROWID ROWID;
312 X_CREATION_DATE DATE;
313 X_CREATED_BY NUMBER;
314 X_LAST_UPDATE_DATE DATE;
315 X_LAST_UPDATED_BY NUMBER;
316 X_LAST_UPDATE_LOGIN NUMBER;
317 X_FORM_ID NUMBER;
318 X_APPLICATION_ID NUMBER;
319 X_FORM_CANVAS_ID NUMBER;
320 X_FORM_WINDOW_ID NUMBER;
321 begin
322
323 OWNER_TO_WHO (
324 X_OWNER,
325 X_CREATION_DATE,
326 X_CREATED_BY,
327 X_LAST_UPDATE_DATE,
328 X_LAST_UPDATED_BY,
329 X_LAST_UPDATE_LOGIN
330 );
331
332 select application_id
333 into x_application_id
334 from fnd_application
335 where application_short_name = x_application_short_name;
336
337 select form_id
338 into x_form_id
339 from fnd_form
340 where form_name = x_form_name
341 and application_id = x_application_id;
342
343 select hfc.form_canvas_id,hfw.form_window_id
344 into x_form_canvas_id,x_form_window_id
345 from hr_form_canvases_b hfc
346 ,hr_form_windows_b hfw
347 where hfc.canvas_name = x_canvas_name
348 and hfw.application_id = x_application_id
349 and hfw.form_id = x_form_id
350 and hfw.window_name = x_window_name;
351
352 update HR_FORM_CANVASES_TL set
353 DESCRIPTION = X_DESCRIPTION,
354 USER_CANVAS_NAME = X_USER_CANVAS_NAME,
355 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
356 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
357 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
358 SOURCE_LANG = userenv('LANG')
359 where userenv('LANG') in (LANGUAGE,SOURCE_LANG)
360 and form_canvas_id = x_form_canvas_id;
361
362 end TRANSLATE_ROW;
363 procedure LOAD_ROW (
364 X_APPLICATION_SHORT_NAME in VARCHAR2,
365 X_FORM_NAME in VARCHAR2,
366 X_CANVAS_NAME in VARCHAR2,
367 X_WINDOW_NAME in VARCHAR2,
368 X_OWNER in VARCHAR2,
369 X_OBJECT_VERSION_NUMBER in VARCHAR2,
370 X_CANVAS_TYPE in VARCHAR2,
371 X_USER_CANVAS_NAME in VARCHAR2,
372 X_DESCRIPTION in VARCHAR2) is
373 X_ROWID ROWID;
374 X_CREATION_DATE DATE;
375 X_CREATED_BY NUMBER;
376 X_LAST_UPDATE_DATE DATE;
377 X_LAST_UPDATED_BY NUMBER;
378 X_LAST_UPDATE_LOGIN NUMBER;
379 X_FORM_ID NUMBER;
380 X_APPLICATION_ID NUMBER;
381 X_FORM_CANVAS_ID NUMBER;
382 X_FORM_WINDOW_ID NUMBER;
383 begin
384
385 OWNER_TO_WHO (
386 X_OWNER,
387 X_CREATION_DATE,
388 X_CREATED_BY,
389 X_LAST_UPDATE_DATE,
390 X_LAST_UPDATED_BY,
391 X_LAST_UPDATE_LOGIN
392 );
393
394 select application_id
395 into x_application_id
396 from fnd_application
397 where application_short_name = x_application_short_name;
398
399 select form_id
400 into x_form_id
401 from fnd_form
402 where form_name = x_form_name
403 and application_id = x_application_id;
404
405 select hfw.form_window_id
406 into x_form_window_id
407 from hr_form_windows_b hfw
408 where hfw.application_id = x_application_id
409 and hfw.form_id = x_form_id
410 and hfw.window_name = x_window_name;
411
412 begin
413 select hfc.form_canvas_id
414 into x_form_canvas_id
415 from hr_form_canvases_b hfc
416 where hfc.canvas_name = x_canvas_name
417 and hfc.form_window_id = x_form_window_id;
418 exception
419 when no_data_found then
420 select hr_form_canvases_b_s.nextval
421 into x_form_canvas_id
422 from dual;
423 end;
424
425 begin
426 UPDATE_ROW (
427 X_FORM_CANVAS_ID,
428 to_number(X_OBJECT_VERSION_NUMBER),
429 X_FORM_WINDOW_ID,
430 X_CANVAS_TYPE,
431 X_CANVAS_NAME,
432 X_USER_CANVAS_NAME,
433 X_DESCRIPTION,
434 X_LAST_UPDATE_DATE,
435 X_LAST_UPDATED_BY,
436 X_LAST_UPDATE_LOGIN
437 );
438 exception
439 when no_data_found then
440 INSERT_ROW (
441 X_ROWID,
442 X_FORM_CANVAS_ID,
443 to_number(X_OBJECT_VERSION_NUMBER),
444 X_FORM_WINDOW_ID,
445 X_CANVAS_TYPE,
446 X_CANVAS_NAME,
447 X_USER_CANVAS_NAME,
448 X_DESCRIPTION,
449 X_CREATION_DATE,
450 X_CREATED_BY,
451 X_LAST_UPDATE_DATE,
452 X_LAST_UPDATED_BY,
453 X_LAST_UPDATE_LOGIN);
454
455 end;
456 end LOAD_ROW;
457 end HR_FORM_CANVASES_PKG;