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