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