[Home] [Help]
PACKAGE BODY: APPS.ICX_USER_SEC_ATTR_PVT
Source
1 PACKAGE BODY ICX_User_Sec_Attr_PVT AS
2 -- $Header: ICXVTUSB.pls 120.4 2005/10/26 14:08:59 tshort noship $
3
4 PROCEDURE Create_User_Sec_Attr
5 ( p_api_version_number IN NUMBER,
6 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
7 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
8 p_commit IN VARCHAR2 := FND_API.G_FALSE,
9 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
10 p_return_status OUT NOCOPY VARCHAR2,
11 p_msg_count OUT NOCOPY NUMBER,
12 p_msg_data OUT NOCOPY VARCHAR2,
13 -- p_msg_entity OUT VARCHAR2,
14 -- p_msg_entity_index OUT NUMBER,
15 p_web_user_id IN NUMBER,
16 p_attribute_code IN VARCHAR2,
17 p_attribute_appl_id IN NUMBER,
18 p_varchar2_value IN VARCHAR2,
19 p_date_value IN DATE,
20 p_number_value IN NUMBER,
21 p_created_by IN NUMBER,
22 p_creation_date IN DATE,
23 p_last_updated_by IN NUMBER,
24 p_last_update_date IN DATE,
25 p_last_update_login IN NUMBER
26 )
27 IS
28 l_api_name CONSTANT VARCHAR2(30) := 'Create_User_Sec_Attr';
29 l_api_version_number CONSTANT NUMBER := 1.0;
30
31 l_duplicate NUMBER := 0;
32
33 BEGIN
34 -- Standard Start of API savepoint
35
36 SAVEPOINT Create_User_Sec_Attr_PVT;
37
38 -- Standard call to check for call compatibility.
39
40 if NOT FND_API.Compatible_API_Call
41 (
42 l_api_version_number,
43 p_api_version_number,
44 l_api_name,
45 G_PKG_NAME
46 )
47 then
48 raise FND_API.G_EXC_UNEXPECTED_ERROR;
49 end if;
50
51 -- Initialize message list if p_init_msg_list is set to TRUE.
52
53 if FND_API.to_Boolean( p_init_msg_list)
54 then
55 FND_MSG_PUB.initialize;
56 end if;
57
58 -- Initialize API return status to success
59
60 p_return_status := FND_API.G_RET_STS_SUCCESS;
61
62 -- ************************************
63 -- VALIDATION - RESP_SEC_ATTR
64 -- ************************************
65 -- select responsibility_id
66 select count(*)
67 into l_duplicate
68 from ak_web_user_sec_attr_values
69 where web_user_id = p_web_user_id
70 and attribute_code = p_attribute_code
71 and attribute_application_id = p_attribute_appl_id
72 and ((varchar2_value = p_varchar2_value)
73 or (varchar2_value is null and p_varchar2_value is null))
74 and ((date_value = p_date_value)
75 or (date_value is null and p_date_value is null))
76 and ((number_value = p_number_value)
77 or (number_value is null and p_number_value is null));
78
79 if l_duplicate <> 0
80 -- if SQL%FOUND
81 then
82 -- responsibility-securing_attribute already exists
83
84 -- !!!!Need create message through Rami
85
86 fnd_message.set_name('FND','SECURITY-DUPLICATE USER RESP');
87 fnd_msg_pub.Add;
88 raise FND_API.G_EXC_ERROR;
89 else
90 INSERT into AK_WEB_USER_SEC_ATTR_VALUES
91 (
92 WEB_USER_ID ,
93 ATTRIBUTE_APPLICATION_ID ,
94 ATTRIBUTE_CODE ,
95 VARCHAR2_VALUE ,
96 DATE_VALUE ,
97 NUMBER_VALUE ,
98 CREATED_BY ,
99 CREATION_DATE ,
100 LAST_UPDATED_BY ,
101 LAST_UPDATE_DATE ,
102 LAST_UPDATE_LOGIN
103 )
104 values
105 (
106 p_web_user_id ,
107 p_attribute_appl_id ,
108 p_attribute_code ,
109 p_varchar2_value ,
110 p_date_value ,
111 p_number_value ,
112 p_created_by ,
113 p_creation_date ,
114 p_last_updated_by ,
115 p_last_update_date ,
116 p_last_update_login
117 );
118
119 -- taken out per Peter's suggestion
120
121 /* if SQL%NOTFOUND
122 then
123 -- Unable to INSERT
124
125 fnd_message.set_name('FND','SQL-NO INSERT');
126 fnd_message.set_token('TABLE','FND_USER');
127 fnd_msg_pub.Add;
128 raise FND_API.G_EXC_ERROR;
129 end if;
130 */
131 end if;
132
133 -- Standard check of p_commit;
134
135 if FND_API.To_Boolean( p_commit)
136 then
137 commit work;
138 end if;
139
140 -- Standard call to get message count and if count is 1, get message info.
141
142 FND_MSG_PUB.Count_And_Get
143 (
144 p_count => p_msg_count,
145 p_data => p_msg_data
146 );
147
148 EXCEPTION
149
150 WHEN FND_API.G_EXC_ERROR THEN
151
152 Rollback to Create_User_Sec_Attr_PVT;
153 p_return_status := FND_API.G_RET_STS_ERROR;
154
155 FND_MSG_PUB.Count_And_Get
156 (
157 p_count => p_msg_count,
158 p_data => p_msg_data
159 );
160
161 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162
163 Rollback to Create_User_Sec_Attr_PVT;
164 p_return_status := FND_API.G_RET_STS_ERROR;
165
166 FND_MSG_PUB.Count_And_Get
167 (
168 p_count => p_msg_count,
169 p_data => p_msg_data
170 );
171
172 WHEN OTHERS THEN
173
174 Rollback to Create_User_Sec_Attr_PVT;
175 p_return_status := FND_API.G_RET_STS_ERROR;
176
177 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
178 then
179 FND_MSG_PUB.Add_Exc_Msg
180 (
181 G_FILE_NAME,
182 G_PKG_NAME,
183 l_api_name
184 );
185 end if;
186
187 FND_MSG_PUB.Count_And_Get
188 (
189 p_count => p_msg_count,
190 p_data => p_msg_data
191 );
192
193 end Create_User_Sec_Attr;
194
195
196
197 PROCEDURE Delete_User_Sec_Attr
198 ( p_api_version_number IN NUMBER,
199 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
200 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
201 p_commit IN VARCHAR2 := FND_API.G_FALSE,
202 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
203 p_return_status OUT NOCOPY VARCHAR2,
204 p_msg_count OUT NOCOPY NUMBER,
205 p_msg_data OUT NOCOPY VARCHAR2,
206 -- p_msg_entity OUT VARCHAR2,
207 -- p_msg_entity_index OUT NUMBER,
208 p_web_user_id IN NUMBER,
209 p_attribute_code IN VARCHAR2,
210 p_attribute_appl_id IN NUMBER,
211 p_varchar2_value IN VARCHAR2,
212 p_date_value IN DATE,
213 p_number_value IN NUMBER
214
215 )
216 IS
217 l_api_name CONSTANT VARCHAR2(30) := 'Delete_User_Sec_Attr';
218 l_api_version_number CONSTANT NUMBER := 1.0;
219
220 BEGIN
221
222 -- Standard Start of API savepoint
223
224 SAVEPOINT Delete_User_Sec_Attr_PVT;
225
226 -- Standard call to check for call compatibility.
227
228 if NOT FND_API.Compatible_API_Call
229 (
230 l_api_version_number,
231 p_api_version_number,
232 l_api_name,
233 G_PKG_NAME
234 )
235 then
236 raise FND_API.G_EXC_UNEXPECTED_ERROR;
237 end if;
238
239 -- Initialize message list if p_init_msg_list is set to TRUE.
240
241 if FND_API.to_Boolean( p_init_msg_list)
242 then
243 FND_MSG_PUB.initialize;
244 end if;
245
246 -- Initialize API return status to success
247
248 p_return_status := FND_API.G_RET_STS_SUCCESS;
249
250 Delete from AK_WEB_USER_SEC_ATTR_VALUES
251 where web_user_id = p_web_user_id
252 and attribute_code = p_attribute_code
253 and attribute_application_id = p_attribute_appl_id
254 and ((varchar2_value = p_varchar2_value)
255 or (varchar2_value is null and p_varchar2_value is null))
256 and ((date_value = p_date_value)
257 or (date_value is null and p_date_value is null))
258 and ((number_value = p_number_value)
259 or (number_value is null and p_number_value is null));
260
261 if SQL%NOTFOUND
262 then
263
264 -- Need to replace message after creating messages through Rami
265 -- !!!!
266
267 fnd_message.set_name('FND','SQL-NO DELETE');
268 fnd_message.set_token('TABLE','FND_USER_RESPONSIBILITY');
269 fnd_msg_pub.Add;
270 raise FND_API.G_EXC_ERROR;
271 end if;
272
273 -- Standard check of p_commit;
274
275 if FND_API.To_Boolean( p_commit)
276 then
277 commit work;
278 end if;
279
280 -- Standard call to get message count and if count is 1, get message info.
281
282 FND_MSG_PUB.Count_And_Get
283 (
284 p_count => p_msg_count,
285 p_data => p_msg_data
286 );
287
288 EXCEPTION
289
290 WHEN FND_API.G_EXC_ERROR THEN
291
292 Rollback to Delete_User_Sec_Attr_PVT;
293 p_return_status := FND_API.G_RET_STS_ERROR;
294
295 FND_MSG_PUB.Count_And_Get
296 (
297 p_count => p_msg_count,
298 p_data => p_msg_data
299 );
300
301 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
302
303 Rollback to Delete_User_Sec_Attr_PVT;
304 p_return_status := FND_API.G_RET_STS_ERROR;
305
306 FND_MSG_PUB.Count_And_Get
307 (
308 p_count => p_msg_count,
309 p_data => p_msg_data
310 );
311
312 WHEN OTHERS THEN
313
314 Rollback to Delete_User_Sec_Attr_PVT;
315 p_return_status := FND_API.G_RET_STS_ERROR;
316
317 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
318 then
319 FND_MSG_PUB.Add_Exc_Msg
320 (
321 G_FILE_NAME,
322 G_PKG_NAME,
323 l_api_name
324 );
325 end if;
326
327 FND_MSG_PUB.Count_And_Get
328 (
329 p_count => p_msg_count,
330 p_data => p_msg_data
331 );
332
333 end Delete_User_Sec_Attr;
334
335 PROCEDURE Create_Def_User_Sec_Attr
336 ( p_api_version_number IN NUMBER,
337 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
338 p_simulate IN VARCHAR2 := FND_API.G_FALSE,
339 p_commit IN VARCHAR2 := FND_API.G_FALSE,
340 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
341 p_web_user_id IN NUMBER,
342 p_resp_application_id IN NUMBER,
343 p_responsibility_id IN NUMBER,
344 p_created_by IN NUMBER,
345 p_creation_date IN DATE,
346 p_last_updated_by IN NUMBER,
347 p_last_update_date IN DATE,
348 p_last_update_login IN NUMBER,
349 p_return_status OUT NOCOPY VARCHAR2,
350 p_msg_count OUT NOCOPY NUMBER,
351 p_msg_data OUT NOCOPY VARCHAR2
352 ) is
353
354 l_api_name CONSTANT VARCHAR2(30) := 'Create_Def_User_Sec_Attr';
355 l_api_version_number CONSTANT NUMBER := 1.0;
356
357 l_customer_contact_id number;
358 l_vendor_contact_id number;
359 l_internal_contact_id number;
360 l_data_type varchar2(30);
361 l_varchar2_value varchar2(240);
362 l_date_value date;
363 l_number_value number;
364
365 l_duplicate NUMBER := 0;
366
367 l_return_status varchar2(1);
368 l_msg_count number;
369 l_msg_data varchar2(2000);
370
371 cursor cust_sec_attr is
372 select b.REGION_APPLICATION_ID,b.REGION_CODE,
373 a.ATTRIBUTE_APPLICATION_ID,a.ATTRIBUTE_CODE
374 from AK_OBJECT_ATTRIBUTES c,
375 AK_REGIONS b,
376 AK_RESP_SECURITY_ATTRIBUTES a
377 where a.RESPONSIBILITY_ID = p_responsibility_id
378 and a.RESP_APPLICATION_ID = p_resp_application_id
379 and a.ATTRIBUTE_CODE = b.REGION_CODE
380 and b.DATABASE_OBJECT_NAME = c.DATABASE_OBJECT_NAME
381 and c.ATTRIBUTE_CODE = 'ICX_CUSTOMER_CONTACT_ID';
382
383 cursor int_sec_attr is
384 select b.REGION_APPLICATION_ID,b.REGION_CODE,
385 a.ATTRIBUTE_APPLICATION_ID,a.ATTRIBUTE_CODE
386 from AK_OBJECT_ATTRIBUTES c,
387 AK_REGIONS b,
388 AK_RESP_SECURITY_ATTRIBUTES a
389 where a.RESPONSIBILITY_ID = p_responsibility_id
390 and a.RESP_APPLICATION_ID = p_resp_application_id
391 and a.ATTRIBUTE_CODE = b.REGION_CODE
392 and b.DATABASE_OBJECT_NAME = c.DATABASE_OBJECT_NAME
393 and c.ATTRIBUTE_CODE = 'ICX_INTERNAL_CONTACT_ID';
394
395 cursor supp_sec_attr is
396 select b.REGION_APPLICATION_ID,b.REGION_CODE,
397 a.ATTRIBUTE_APPLICATION_ID,a.ATTRIBUTE_CODE
398 from AK_OBJECT_ATTRIBUTES c,
399 AK_REGIONS b,
400 AK_RESP_SECURITY_ATTRIBUTES a
401 where a.RESPONSIBILITY_ID = p_responsibility_id
402 and a.RESP_APPLICATION_ID = p_resp_application_id
403 and a.ATTRIBUTE_CODE = b.REGION_CODE
404 and b.DATABASE_OBJECT_NAME = c.DATABASE_OBJECT_NAME
405 and c.ATTRIBUTE_CODE = 'ICX_SUPPLIER_CONTACT_ID';
406
407 begin
408
409 -- Standard Start of API savepoint
410
411 SAVEPOINT Create_Def_User_Sec_Attr;
412
413 -- Standard call to check for call compatibility.
414
415 if NOT FND_API.Compatible_API_Call
416 (
417 l_api_version_number,
418 p_api_version_number,
419 l_api_name,
420 G_PKG_NAME
421 )
422 then
423 raise FND_API.G_EXC_UNEXPECTED_ERROR;
424 end if;
425
426 -- Initialize message list if p_init_msg_list is set to TRUE.
427
428 if FND_API.to_Boolean( p_init_msg_list)
429 then
430 FND_MSG_PUB.initialize;
431 end if;
432
433 -- Initialize API return status to success
434
435 p_return_status := FND_API.G_RET_STS_SUCCESS;
436
437 -- ************************************
438 -- VALIDATION - RESP_SEC_ATTR
439 -- ************************************
440
441 select CUSTOMER_ID,SUPPLIER_ID,EMPLOYEE_ID
442 into l_customer_contact_id,l_vendor_contact_id,l_internal_contact_id
443 from FND_USER
444 where USER_ID = p_web_user_id;
445
446 if l_customer_contact_id is not null
447 then
448 for s in cust_sec_attr loop
449
450 ak_query_pkg.exec_query(
451 P_PARENT_REGION_APPL_ID => s.REGION_APPLICATION_ID,
452 P_PARENT_REGION_CODE => s.REGION_CODE,
453 P_WHERE_CLAUSE => 'CONTACT_ID = '||l_customer_contact_id,
454 P_RETURN_PARENTS => 'T',
455 P_RETURN_CHILDREN => 'F');
456
457 -- icx_on_utilities2.printPLSQLtables;
458
459 select DATA_TYPE
460 into l_data_type
461 from AK_ATTRIBUTES
462 where ATTRIBUTE_CODE = s.ATTRIBUTE_CODE
463 and ATTRIBUTE_APPLICATION_ID = s.ATTRIBUTE_APPLICATION_ID;
464
465 for r in ak_query_pkg.g_results_table.FIRST..ak_query_pkg.g_results_table.LAST loop
466 if l_data_type = 'NUMBER'
467 then
468 l_varchar2_value := '';
469 l_date_value := '';
470 l_number_value := to_number(ak_query_pkg.g_results_table(r).value1);
471 elsif l_data_type = 'DATE'
472 then
473 l_varchar2_value := '';
474 l_date_value := to_date(ak_query_pkg.g_results_table(r).value1,icx_sec.getID(icx_sec.PV_DATE_FORMAT));
475 l_number_value := '';
476 else
477 l_varchar2_value := ak_query_pkg.g_results_table(r).value1;
478 l_date_value := '';
479 l_number_value := '';
480 end if;
481
482 ICX_User_Sec_Attr_PVT.Create_User_Sec_Attr(
483 p_api_version_number => 1.0,
484 p_init_msg_list => 'T',
485 p_commit => 'T',
486 p_return_status => l_return_status,
487 p_msg_count => l_msg_count,
488 p_msg_data => l_msg_data,
489 p_web_user_id => p_web_user_id,
490 p_attribute_code => s.ATTRIBUTE_CODE,
491 p_attribute_appl_id => s.ATTRIBUTE_APPLICATION_ID,
492 p_varchar2_value => l_varchar2_value,
493 p_date_value => l_date_value,
494 p_number_value => l_number_value,
495 p_created_by => p_created_by,
496 p_creation_date => p_creation_date,
497 p_last_updated_by => p_last_updated_by,
498 p_last_update_date => p_last_update_date,
499 p_last_update_login => p_last_update_login);
500
501 end loop; -- results
502
503 end loop; -- cust_sec_attr
504 end if;
505
506 if l_internal_contact_id is not null
507 then
508 for s in int_sec_attr loop
509
510 ak_query_pkg.exec_query(
511 P_PARENT_REGION_APPL_ID => s.REGION_APPLICATION_ID,
512 P_PARENT_REGION_CODE => s.REGION_CODE,
513 P_WHERE_CLAUSE => 'CONTACT_ID = '||l_internal_contact_id,
514 P_RETURN_PARENTS => 'T',
515 P_RETURN_CHILDREN => 'F');
516
517 -- icx_on_utilities2.printPLSQLtables;
518
519 select DATA_TYPE
520 into l_data_type
521 from AK_ATTRIBUTES
522 where ATTRIBUTE_CODE = s.ATTRIBUTE_CODE
523 and ATTRIBUTE_APPLICATION_ID = s.ATTRIBUTE_APPLICATION_ID;
524
525 for r in ak_query_pkg.g_results_table.FIRST..ak_query_pkg.g_results_table.LAST loop
526 if l_data_type = 'NUMBER'
527 then
528 l_varchar2_value := '';
529 l_date_value := '';
530 l_number_value := to_number(ak_query_pkg.g_results_table(r).value1);
531 elsif l_data_type = 'DATE'
532 then
533 l_varchar2_value := '';
534 l_date_value := to_date(ak_query_pkg.g_results_table(r).value1,icx_sec.getID(icx_sec.PV_DATE_FORMAT));
535 l_number_value := '';
536 else
537 l_varchar2_value := ak_query_pkg.g_results_table(r).value1;
538 l_date_value := '';
539 l_number_value := '';
540 end if;
541
542 ICX_User_Sec_Attr_PVT.Create_User_Sec_Attr(
543 p_api_version_number => 1.0,
544 p_init_msg_list => 'T',
545 p_commit => 'T',
546 p_return_status => l_return_status,
547 p_msg_count => l_msg_count,
548 p_msg_data => l_msg_data,
549 p_web_user_id => p_web_user_id,
550 p_attribute_code => s.ATTRIBUTE_CODE,
551 p_attribute_appl_id => s.ATTRIBUTE_APPLICATION_ID,
552 p_varchar2_value => l_varchar2_value,
553 p_date_value => l_date_value,
554 p_number_value => l_number_value,
555 p_created_by => p_created_by,
556 p_creation_date => p_creation_date,
557 p_last_updated_by => p_last_updated_by,
558 p_last_update_date => p_last_update_date,
559 p_last_update_login => p_last_update_login);
560
561 end loop; -- results
562
563 end loop; -- int_sec_attr
564 end if;
565
566 if l_vendor_contact_id is not null
567 then
568 for s in supp_sec_attr loop
569
570 ak_query_pkg.exec_query(
571 P_PARENT_REGION_APPL_ID => s.REGION_APPLICATION_ID,
572 P_PARENT_REGION_CODE => s.REGION_CODE,
573 P_WHERE_CLAUSE => 'CONTACT_ID = '||l_vendor_contact_id,
574 P_RETURN_PARENTS => 'T',
575 P_RETURN_CHILDREN => 'F');
576
577 -- icx_on_utilities2.printPLSQLtables;
578
579 select DATA_TYPE
580 into l_data_type
581 from AK_ATTRIBUTES
582 where ATTRIBUTE_CODE = s.ATTRIBUTE_CODE
583 and ATTRIBUTE_APPLICATION_ID = s.ATTRIBUTE_APPLICATION_ID;
584
585 for r in ak_query_pkg.g_results_table.FIRST..ak_query_pkg.g_results_table.LAST loop
586 if l_data_type = 'NUMBER'
587 then
588 l_varchar2_value := '';
589 l_date_value := '';
590 l_number_value := to_number(ak_query_pkg.g_results_table(r).value1);
591 elsif l_data_type = 'DATE'
592 then
593 l_varchar2_value := '';
594 l_date_value := to_date(ak_query_pkg.g_results_table(r).value1,icx_sec.getID(icx_sec.PV_DATE_FORMAT));
595 l_number_value := '';
596 else
597 l_varchar2_value := ak_query_pkg.g_results_table(r).value1;
598 l_date_value := '';
599 l_number_value := '';
600 end if;
601
602 ICX_User_Sec_Attr_PVT.Create_User_Sec_Attr(
603 p_api_version_number => 1.0,
604 p_init_msg_list => 'T',
605 p_commit => 'T',
606 p_return_status => l_return_status,
607 p_msg_count => l_msg_count,
608 p_msg_data => l_msg_data,
609 p_web_user_id => p_web_user_id,
610 p_attribute_code => s.ATTRIBUTE_CODE,
611 p_attribute_appl_id => s.ATTRIBUTE_APPLICATION_ID,
612 p_varchar2_value => l_varchar2_value,
613 p_date_value => l_date_value,
614 p_number_value => l_number_value,
615 p_created_by => p_created_by,
616 p_creation_date => p_creation_date,
617 p_last_updated_by => p_last_updated_by,
618 p_last_update_date => p_last_update_date,
619 p_last_update_login => p_last_update_login);
620
621 end loop; -- results
622
623 end loop; -- supp_sec_attr
624 end if;
625
626
627 /*
628 if l_duplicate <> 0
629 then
630 -- responsibility-securing_attribute already exists
631
632 -- !!!!Need create message through Rami
633
634 fnd_message.set_name('FND','SECURITY-DUPLICATE USER RESP');
635 fnd_msg_pub.Add;
636 raise FND_API.G_EXC_ERROR;
637 else
638 end if;
639 */
640
641 -- Standard check of p_commit;
642
643 if FND_API.To_Boolean( p_commit)
644 then
645 commit work;
646 end if;
647
648 -- Standard call to get message count and if count is 1, get message info.
649
650 FND_MSG_PUB.Count_And_Get
651 (
652 p_count => p_msg_count,
653 p_data => p_msg_data
654 );
655
656 EXCEPTION
657
658 WHEN FND_API.G_EXC_ERROR THEN
659
660 Rollback to Create_Def_User_Sec_Attr;
661 p_return_status := FND_API.G_RET_STS_ERROR;
662
663 FND_MSG_PUB.Count_And_Get
664 (
665 p_count => p_msg_count,
666 p_data => p_msg_data
667 );
668
669 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
670
671 Rollback to Create_Def_User_Sec_Attr;
672 p_return_status := FND_API.G_RET_STS_ERROR;
673
674 FND_MSG_PUB.Count_And_Get
675 (
676 p_count => p_msg_count,
677 p_data => p_msg_data
678 );
679
680 WHEN OTHERS THEN
681
682 Rollback to Create_Def_User_Sec_Attr;
683 p_return_status := FND_API.G_RET_STS_ERROR;
684
685 if FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
686 then
687 FND_MSG_PUB.Add_Exc_Msg
688 (
689 G_FILE_NAME,
690 G_PKG_NAME,
691 l_api_name
692 );
693 end if;
694
695 FND_MSG_PUB.Count_And_Get
696 (
697 p_count => p_msg_count,
698 p_data => p_msg_data
699 );
700
701 end Create_Def_User_Sec_Attr;
702
703 end ICX_User_Sec_Attr_PVT;