[Home] [Help]
PACKAGE BODY: APPS.JTF_RS_ROLES_PKG
Source
1 package body JTF_RS_ROLES_PKG as
2 /* $Header: jtfrstrb.pls 120.0 2005/05/11 08:22:32 appldev ship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_ROLE_ID in NUMBER,
6 X_ATTRIBUTE3 in VARCHAR2,
7 X_ATTRIBUTE4 in VARCHAR2,
8 X_ATTRIBUTE5 in VARCHAR2,
9 X_ATTRIBUTE6 in VARCHAR2,
10 X_ATTRIBUTE7 in VARCHAR2,
11 X_ATTRIBUTE8 in VARCHAR2,
12 X_ATTRIBUTE9 in VARCHAR2,
13 X_ATTRIBUTE10 in VARCHAR2,
14 X_ATTRIBUTE11 in VARCHAR2,
15 X_ATTRIBUTE12 in VARCHAR2,
16 X_ATTRIBUTE13 in VARCHAR2,
17 X_ATTRIBUTE14 in VARCHAR2,
18 X_ATTRIBUTE15 in VARCHAR2,
19 X_ATTRIBUTE_CATEGORY in VARCHAR2,
20 X_ROLE_CODE in VARCHAR2,
21 X_ROLE_TYPE_CODE in VARCHAR2,
22 X_SEEDED_FLAG in VARCHAR2,
23 X_MEMBER_FLAG in VARCHAR2,
24 X_ADMIN_FLAG in VARCHAR2,
25 X_LEAD_FLAG in VARCHAR2,
26 X_MANAGER_FLAG in VARCHAR2,
27 X_ACTIVE_FLAG in VARCHAR2,
28 X_ATTRIBUTE1 in VARCHAR2,
29 X_ATTRIBUTE2 in VARCHAR2,
30 X_ROLE_NAME in VARCHAR2,
31 X_ROLE_DESC 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 JTF_RS_ROLES_B
39 where ROLE_ID = X_ROLE_ID
40 ;
41 begin
42 insert into JTF_RS_ROLES_B (
43 ATTRIBUTE3,
44 ATTRIBUTE4,
45 ATTRIBUTE5,
46 ATTRIBUTE6,
47 ATTRIBUTE7,
48 ATTRIBUTE8,
49 ATTRIBUTE9,
50 ATTRIBUTE10,
51 ATTRIBUTE11,
52 ATTRIBUTE12,
53 ATTRIBUTE13,
54 ATTRIBUTE14,
55 ATTRIBUTE15,
56 ATTRIBUTE_CATEGORY,
57 ROLE_ID,
58 ROLE_CODE,
59 ROLE_TYPE_CODE,
60 SEEDED_FLAG,
61 MEMBER_FLAG,
62 ADMIN_FLAG,
63 LEAD_FLAG,
64 MANAGER_FLAG,
65 ACTIVE_FLAG,
66 OBJECT_VERSION_NUMBER,
67 ATTRIBUTE1,
68 ATTRIBUTE2,
69 CREATION_DATE,
70 CREATED_BY,
71 LAST_UPDATE_DATE,
72 LAST_UPDATED_BY,
73 LAST_UPDATE_LOGIN
74 ) values (
75 X_ATTRIBUTE3,
76 X_ATTRIBUTE4,
77 X_ATTRIBUTE5,
78 X_ATTRIBUTE6,
79 X_ATTRIBUTE7,
80 X_ATTRIBUTE8,
81 X_ATTRIBUTE9,
82 X_ATTRIBUTE10,
83 X_ATTRIBUTE11,
84 X_ATTRIBUTE12,
85 X_ATTRIBUTE13,
86 X_ATTRIBUTE14,
87 X_ATTRIBUTE15,
88 X_ATTRIBUTE_CATEGORY,
89 X_ROLE_ID,
90 X_ROLE_CODE,
91 X_ROLE_TYPE_CODE,
92 X_SEEDED_FLAG,
93 X_MEMBER_FLAG,
94 X_ADMIN_FLAG,
95 X_LEAD_FLAG,
96 X_MANAGER_FLAG,
97 X_ACTIVE_FLAG,
98 1,
99 X_ATTRIBUTE1,
100 X_ATTRIBUTE2,
101 X_CREATION_DATE,
102 X_CREATED_BY,
103 X_LAST_UPDATE_DATE,
104 X_LAST_UPDATED_BY,
105 X_LAST_UPDATE_LOGIN
106 );
107
108 insert into JTF_RS_ROLES_TL (
109 ROLE_ID,
110 CREATED_BY,
111 CREATION_DATE,
112 LAST_UPDATED_BY,
113 LAST_UPDATE_DATE,
114 LAST_UPDATE_LOGIN,
115 ROLE_NAME,
116 ROLE_DESC,
117 LANGUAGE,
118 SOURCE_LANG
119 ) select
120 X_ROLE_ID,
121 X_CREATED_BY,
122 X_CREATION_DATE,
123 X_LAST_UPDATED_BY,
124 X_LAST_UPDATE_DATE,
125 X_LAST_UPDATE_LOGIN,
126 X_ROLE_NAME,
127 X_ROLE_DESC,
128 L.LANGUAGE_CODE,
129 userenv('LANG')
130 from FND_LANGUAGES L
131 where L.INSTALLED_FLAG in ('I', 'B')
132 and not exists
133 (select NULL
134 from JTF_RS_ROLES_TL T
135 where T.ROLE_ID = X_ROLE_ID
136 and T.LANGUAGE = L.LANGUAGE_CODE);
137
138 open c;
139 fetch c into X_ROWID;
140 if (c%notfound) then
141 close c;
142 raise no_data_found;
143 end if;
144 close c;
145
146 end INSERT_ROW;
147
148 procedure LOCK_ROW (
149 X_ROLE_ID in NUMBER,
150 X_OBJECT_VERSION_NUMBER in NUMBER
151 ) is
152 cursor c is select
153 OBJECT_VERSION_NUMBER
154 from JTF_RS_ROLES_B
155 where ROLE_ID = X_ROLE_ID
156 and OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
157 for update of ROLE_ID nowait;
158 recinfo c%rowtype;
159
160 begin
161 open c;
162 fetch c into recinfo;
163 if (c%notfound) then
164 close c;
165 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
166 app_exception.raise_exception;
167 end if;
168
169 close c;
170
171 if recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER then
172 null;
173 else
174 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
175 app_exception.raise_exception;
176 end if;
177
178 end LOCK_ROW;
179
180 procedure UPDATE_ROW (
181 X_ROLE_ID in NUMBER,
182 X_ATTRIBUTE3 in VARCHAR2,
183 X_ATTRIBUTE4 in VARCHAR2,
184 X_ATTRIBUTE5 in VARCHAR2,
185 X_ATTRIBUTE6 in VARCHAR2,
186 X_ATTRIBUTE7 in VARCHAR2,
187 X_ATTRIBUTE8 in VARCHAR2,
188 X_ATTRIBUTE9 in VARCHAR2,
189 X_ATTRIBUTE10 in VARCHAR2,
190 X_ATTRIBUTE11 in VARCHAR2,
191 X_ATTRIBUTE12 in VARCHAR2,
192 X_ATTRIBUTE13 in VARCHAR2,
193 X_ATTRIBUTE14 in VARCHAR2,
194 X_ATTRIBUTE15 in VARCHAR2,
195 X_ATTRIBUTE_CATEGORY in VARCHAR2,
196 X_ROLE_CODE in VARCHAR2,
197 X_ROLE_TYPE_CODE in VARCHAR2,
198 X_SEEDED_FLAG in VARCHAR2,
199 X_MEMBER_FLAG in VARCHAR2,
200 X_ADMIN_FLAG in VARCHAR2,
201 X_LEAD_FLAG in VARCHAR2,
202 X_MANAGER_FLAG in VARCHAR2,
203 X_ACTIVE_FLAG in VARCHAR2,
204 X_OBJECT_VERSION_NUMBER in NUMBER,
205 X_ATTRIBUTE1 in VARCHAR2,
206 X_ATTRIBUTE2 in VARCHAR2,
207 X_ROLE_NAME in VARCHAR2,
208 X_ROLE_DESC in VARCHAR2,
209 X_LAST_UPDATE_DATE in DATE,
210 X_LAST_UPDATED_BY in NUMBER,
211 X_LAST_UPDATE_LOGIN in NUMBER
212 ) is
213 begin
214 update JTF_RS_ROLES_B set
215 ATTRIBUTE3 = X_ATTRIBUTE3,
216 ATTRIBUTE4 = X_ATTRIBUTE4,
217 ATTRIBUTE5 = X_ATTRIBUTE5,
218 ATTRIBUTE6 = X_ATTRIBUTE6,
219 ATTRIBUTE7 = X_ATTRIBUTE7,
220 ATTRIBUTE8 = X_ATTRIBUTE8,
221 ATTRIBUTE9 = X_ATTRIBUTE9,
222 ATTRIBUTE10 = X_ATTRIBUTE10,
223 ATTRIBUTE11 = X_ATTRIBUTE11,
224 ATTRIBUTE12 = X_ATTRIBUTE12,
225 ATTRIBUTE13 = X_ATTRIBUTE13,
226 ATTRIBUTE14 = X_ATTRIBUTE14,
227 ATTRIBUTE15 = X_ATTRIBUTE15,
228 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
229 ROLE_CODE = X_ROLE_CODE,
230 ROLE_TYPE_CODE = X_ROLE_TYPE_CODE,
231 SEEDED_FLAG = X_SEEDED_FLAG,
232 MEMBER_FLAG = X_MEMBER_FLAG,
233 ADMIN_FLAG = X_ADMIN_FLAG,
234 LEAD_FLAG = X_LEAD_FLAG,
235 MANAGER_FLAG = X_MANAGER_FLAG,
236 ACTIVE_FLAG = X_ACTIVE_FLAG,
237 OBJECT_VERSION_NUMBER = nvl(OBJECT_VERSION_NUMBER,1) + 1,
238 ATTRIBUTE1 = X_ATTRIBUTE1,
239 ATTRIBUTE2 = X_ATTRIBUTE2,
240 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
241 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
242 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
243 where ROLE_ID = X_ROLE_ID;
244
245 if (sql%notfound) then
246 raise no_data_found;
247 end if;
248
249 update JTF_RS_ROLES_TL set
250 ROLE_NAME = X_ROLE_NAME,
251 ROLE_DESC = X_ROLE_DESC,
252 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
253 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
254 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
255 SOURCE_LANG = userenv('LANG')
256 where ROLE_ID = X_ROLE_ID
257 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
258
259 if (sql%notfound) then
260 raise no_data_found;
261 end if;
262 end UPDATE_ROW;
263
264 Procedure TRANSLATE_ROW
265 (X_role_id in number,
266 X_role_name in varchar2,
267 x_role_desc in varchar2,
268 x_Last_update_date in date,
269 x_last_updated_by in number,
270 x_last_update_login in number)
271 is
272 begin
273
274 Update jtf_rs_roles_tl set
275 role_name = nvl(x_role_name,role_name),
276 role_desc = nvl(x_role_desc,role_desc),
277 last_update_date = nvl(x_last_update_date,sysdate),
278 last_updated_by = x_last_updated_by,
279 last_update_login = 0,
280 source_lang = userenv('LANG')
281 where role_id = x_role_id
282 and userenv('LANG') in (LANGUAGE,SOURCE_LANG);
283
284 end TRANSLATE_ROW;
285
286 procedure LOAD_ROW (
287 X_ROLE_ID in NUMBER,
288 X_ATTRIBUTE3 in VARCHAR2,
289 X_ATTRIBUTE4 in VARCHAR2,
290 X_ATTRIBUTE5 in VARCHAR2,
291 X_ATTRIBUTE6 in VARCHAR2,
292 X_ATTRIBUTE7 in VARCHAR2,
293 X_ATTRIBUTE8 in VARCHAR2,
294 X_ATTRIBUTE9 in VARCHAR2,
295 X_ATTRIBUTE10 in VARCHAR2,
296 X_ATTRIBUTE11 in VARCHAR2,
297 X_ATTRIBUTE12 in VARCHAR2,
298 X_ATTRIBUTE13 in VARCHAR2,
299 X_ATTRIBUTE14 in VARCHAR2,
300 X_ATTRIBUTE15 in VARCHAR2,
301 X_ATTRIBUTE_CATEGORY in VARCHAR2,
302 X_ROLE_CODE in VARCHAR2,
303 X_ROLE_TYPE_CODE in VARCHAR2,
304 X_SEEDED_FLAG in VARCHAR2,
305 X_MEMBER_FLAG in VARCHAR2,
306 X_ADMIN_FLAG in VARCHAR2,
307 X_LEAD_FLAG in VARCHAR2,
308 X_MANAGER_FLAG in VARCHAR2,
309 X_ACTIVE_FLAG in VARCHAR2,
310 X_OBJECT_VERSION_NUMBER in NUMBER,
311 X_ATTRIBUTE1 in VARCHAR2,
312 X_ATTRIBUTE2 in VARCHAR2,
313 X_ROLE_NAME in VARCHAR2,
314 X_ROLE_DESC in VARCHAR2,
315 X_OWNER in VARCHAR2
316 ) is
317 l_row_id rowid;
318 l_user_id number;
319 l_last_updated_by number := -1;
320
321 CURSOR c_last_updated IS
322 SELECT last_updated_by from JTF_RS_ROLES_VL
323 WHERE role_id = X_ROLE_ID;
324
325 begin
326 if (X_OWNER = 'SEED') then
327 l_user_id := 1;
328 else
329 l_user_id := 0;
330 end if;
331
332 OPEN c_last_updated;
333 FETCH c_last_updated into l_last_updated_by;
334 IF c_last_updated%NOTFOUND THEN
335 jtf_rs_roles_pkg.insert_row(
336 X_ROWID => l_row_id ,
337 X_ROLE_ID => x_role_id ,
338 X_ATTRIBUTE3 => X_ATTRIBUTE3 ,
339 X_ATTRIBUTE4 => X_ATTRIBUTE4 ,
340 X_ATTRIBUTE5 => X_ATTRIBUTE5 ,
341 X_ATTRIBUTE6 => X_ATTRIBUTE6 ,
342 X_ATTRIBUTE7 => X_ATTRIBUTE7 ,
343 X_ATTRIBUTE8 => X_ATTRIBUTE8 ,
344 X_ATTRIBUTE9 => X_ATTRIBUTE9 ,
345 X_ATTRIBUTE10 => X_ATTRIBUTE10 ,
346 X_ATTRIBUTE11 => X_ATTRIBUTE11 ,
347 X_ATTRIBUTE12 => X_ATTRIBUTE12 ,
348 X_ATTRIBUTE13 => X_ATTRIBUTE13 ,
349 X_ATTRIBUTE14 => X_ATTRIBUTE14 ,
350 X_ATTRIBUTE15 => X_ATTRIBUTE15 ,
351 X_ATTRIBUTE_CATEGORY => X_ATTRIBUTE_CATEGORY ,
352 X_ROLE_CODE => x_role_code ,
353 X_ROLE_TYPE_CODE => x_role_type_code ,
354 X_SEEDED_FLAG => x_seeded_flag ,
355 X_MEMBER_FLAG => x_member_flag ,
356 X_ADMIN_FLAG => x_admin_flag ,
357 X_LEAD_FLAG => x_lead_flag ,
358 X_MANAGER_FLAG => x_manager_flag ,
359 X_ACTIVE_FLAG => x_active_flag ,
360 X_ATTRIBUTE1 => X_ATTRIBUTE1 ,
361 X_ATTRIBUTE2 => X_ATTRIBUTE2 ,
362 X_ROLE_NAME => x_role_name ,
363 X_ROLE_DESC => x_role_desc ,
364 X_CREATION_DATE => sysdate ,
365 X_CREATED_BY => l_user_id ,
366 X_LAST_UPDATE_DATE => sysdate ,
367 X_LAST_UPDATED_BY => l_user_id ,
368 X_LAST_UPDATE_LOGIN => 0 );
369 ELSIF c_last_updated%FOUND THEN
370 IF l_last_updated_by = 1 THEN
371 jtf_rs_roles_pkg.update_row(
372 X_ROLE_ID => x_role_id ,
373 X_ATTRIBUTE3 => X_ATTRIBUTE3 ,
374 X_ATTRIBUTE4 => X_ATTRIBUTE4 ,
375 X_ATTRIBUTE5 => X_ATTRIBUTE5 ,
376 X_ATTRIBUTE6 => X_ATTRIBUTE6 ,
377 X_ATTRIBUTE7 => X_ATTRIBUTE7 ,
378 X_ATTRIBUTE8 => X_ATTRIBUTE8 ,
379 X_ATTRIBUTE9 => X_ATTRIBUTE9 ,
380 X_ATTRIBUTE10 => X_ATTRIBUTE10 ,
381 X_ATTRIBUTE11 => X_ATTRIBUTE11 ,
382 X_ATTRIBUTE12 => X_ATTRIBUTE12 ,
383 X_ATTRIBUTE13 => X_ATTRIBUTE13 ,
384 X_ATTRIBUTE14 => X_ATTRIBUTE14 ,
385 X_ATTRIBUTE15 => X_ATTRIBUTE15 ,
386 X_ATTRIBUTE_CATEGORY => X_ATTRIBUTE_CATEGORY ,
387 X_ROLE_CODE => x_role_code ,
388 X_ROLE_TYPE_CODE => x_role_type_code ,
389 X_SEEDED_FLAG => x_seeded_flag ,
390 X_MEMBER_FLAG => x_member_flag ,
391 X_ADMIN_FLAG => x_admin_flag ,
392 X_LEAD_FLAG => x_lead_flag ,
393 X_MANAGER_FLAG => x_manager_flag ,
394 X_ACTIVE_FLAG => x_active_flag ,
395 X_OBJECT_VERSION_NUMBER => x_object_version_number ,
396 X_ATTRIBUTE1 => X_ATTRIBUTE1 ,
397 X_ATTRIBUTE2 => X_ATTRIBUTE2 ,
398 X_ROLE_NAME => x_role_name ,
399 X_ROLE_DESC => x_role_desc ,
400 X_LAST_UPDATE_DATE => sysdate ,
401 X_LAST_UPDATED_BY => l_user_id ,
402 X_LAST_UPDATE_LOGIN => 0 );
403 END IF;
404 END IF;
405 CLOSE c_last_updated;
406 End LOAD_ROW;
407
408
409 procedure DELETE_ROW (
410 X_ROLE_ID in NUMBER
411 ) is
412 begin
413 delete from JTF_RS_ROLES_TL
414 where ROLE_ID = X_ROLE_ID;
415
416 if (sql%notfound) then
417 raise no_data_found;
418 end if;
419
420 delete from JTF_RS_ROLES_B
421 where ROLE_ID = X_ROLE_ID;
422
423 if (sql%notfound) then
424 raise no_data_found;
425 end if;
426 end DELETE_ROW;
427
428 procedure ADD_LANGUAGE
429 is
430 begin
431 delete from JTF_RS_ROLES_TL T
432 where not exists
433 (select NULL
434 from JTF_RS_ROLES_B B
435 where B.ROLE_ID = T.ROLE_ID
436 );
437
438 update JTF_RS_ROLES_TL T set (
439 ROLE_NAME,
440 ROLE_DESC
441 ) = (select
442 B.ROLE_NAME,
443 B.ROLE_DESC
444 from JTF_RS_ROLES_TL B
445 where B.ROLE_ID = T.ROLE_ID
446 and B.LANGUAGE = T.SOURCE_LANG)
447 where (
448 T.ROLE_ID,
449 T.LANGUAGE
450 ) in (select
451 SUBT.ROLE_ID,
452 SUBT.LANGUAGE
453 from JTF_RS_ROLES_TL SUBB, JTF_RS_ROLES_TL SUBT
454 where SUBB.ROLE_ID = SUBT.ROLE_ID
455 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
456 and (SUBB.ROLE_NAME <> SUBT.ROLE_NAME
457 or SUBB.ROLE_DESC <> SUBT.ROLE_DESC
458 or (SUBB.ROLE_DESC is null and SUBT.ROLE_DESC is not null)
459 or (SUBB.ROLE_DESC is not null and SUBT.ROLE_DESC is null)
460 ));
461
462 insert into JTF_RS_ROLES_TL (
463 ROLE_ID,
464 CREATED_BY,
465 CREATION_DATE,
466 LAST_UPDATED_BY,
467 LAST_UPDATE_DATE,
468 LAST_UPDATE_LOGIN,
469 ROLE_NAME,
470 ROLE_DESC,
471 LANGUAGE,
472 SOURCE_LANG
473 ) select
474 B.ROLE_ID,
475 B.CREATED_BY,
476 B.CREATION_DATE,
477 B.LAST_UPDATED_BY,
478 B.LAST_UPDATE_DATE,
479 B.LAST_UPDATE_LOGIN,
480 B.ROLE_NAME,
481 B.ROLE_DESC,
482 L.LANGUAGE_CODE,
483 B.SOURCE_LANG
484 from JTF_RS_ROLES_TL B, FND_LANGUAGES L
485 where L.INSTALLED_FLAG in ('I', 'B')
486 and B.LANGUAGE = userenv('LANG')
487 and not exists
488 (select NULL
489 from JTF_RS_ROLES_TL T
490 where T.ROLE_ID = B.ROLE_ID
491 and T.LANGUAGE = L.LANGUAGE_CODE);
492 end ADD_LANGUAGE;
493
494 end JTF_RS_ROLES_PKG;