280: -- if p_role does not exist, it throws exception
281: -- So we should not write sql to check AdhocRole existence directly
282: -- For safety purpose we just don't care about this execption
283: --
284: WF_DIRECTORY.SetAdHocRoleStatus( role_name => p_role_name
285: , status => 'ACTIVE') ;
286:
287: -- l_existence := TRUE ;
288: -- OWF.G Bug3490260
285: , status => 'ACTIVE') ;
286:
287: -- l_existence := TRUE ;
288: -- OWF.G Bug3490260
289: -- Added additoinal check because WF_DIRECTORY.SetAdHocRoleStatus
290: -- does not raise exception correctly
291: -- Once the bug is fixed need to remove
292: FOR l_rec IN c_role(p_role_name => p_role_name)
293: LOOP
340: -- So we can not write correct sql to check AdhocRole existence
341: -- before calling SetAdhocRoleExpiration
342: -- For safety purpose we just don't care about this execption
343: --
344: WF_DIRECTORY.SetAdhocRoleExpiration
345: ( role_name => p_role_name
346: , expiration_date => SYSDATE) ;
347:
348: exception
355:
356:
357:
358: ----------------------------------------------------------
359: -- WF Directory related OBSOLETE API for Bug4532263
360: -- Replaced with new APIs with post_fix 2
361: -- Keep APIs here for any customization
362: ----------------------------------------------------------
363:
383: LOOP
384:
385: l_user_role := person_rec.user_role ;
386:
387: IF (WF_DIRECTORY.UserActive(l_user_role ))
388: THEN
389:
390: -- Prevent duplicate user
391: IF x_role_users IS NULL OR
430:
431: FOR grp_member_rec in c_grp_members (p_group_id => p_group_id )
432: LOOP
433:
434: IF (WF_DIRECTORY.UserActive(grp_member_rec.user_role ))
435: THEN
436:
437: -- Prevent duplicate user
438: IF x_role_users IS NULL OR
501: -- Check if the Role already exists
502: IF CheckRoleExistence(p_role_name => p_role_name ) THEN
503:
504: -- Replacing existing Users in this Adhoc Role
505: WF_DIRECTORY.RemoveUsersFromAdhocRole
506: ( role_name => p_role_name
507: , role_users => NULL ) ;
508:
509: WF_DIRECTORY.AddUsersToAdhocRole
505: WF_DIRECTORY.RemoveUsersFromAdhocRole
506: ( role_name => p_role_name
507: , role_users => NULL ) ;
508:
509: WF_DIRECTORY.AddUsersToAdhocRole
510: ( role_name => p_role_name
511: , role_users => p_role_users ) ;
512:
513: ELSE
511: , role_users => p_role_users ) ;
512:
513: ELSE
514:
515: WF_DIRECTORY.CreateAdHocRole( role_name => p_role_name
516: , role_display_name => p_role_display_name
517: , role_users => p_role_users
518: , expiration_date => p_expiration_date
519: );
523:
524:
525: END SetWFAdhocRole ;
526: ----------------------------------------------------------
527: -- End of WF Directory related Obsolete API for Bug4532263
528: ----------------------------------------------------------
529:
530:
531: -------------------------------------------------------------------
528: ----------------------------------------------------------
529:
530:
531: -------------------------------------------------------------------
532: -- New WF Directory related APIs for Bug4532263
533: -------------------------------------------------------------------
534:
535: -- Add Role to WF_DIRECTORY.UserTable
536: PROCEDURE AddRoleToRoleUserTable
531: -------------------------------------------------------------------
532: -- New WF Directory related APIs for Bug4532263
533: -------------------------------------------------------------------
534:
535: -- Add Role to WF_DIRECTORY.UserTable
536: PROCEDURE AddRoleToRoleUserTable
537: ( p_role_name IN VARCHAR2
538: , x_role_users IN OUT NOCOPY WF_DIRECTORY.UserTable
539: )
534:
535: -- Add Role to WF_DIRECTORY.UserTable
536: PROCEDURE AddRoleToRoleUserTable
537: ( p_role_name IN VARCHAR2
538: , x_role_users IN OUT NOCOPY WF_DIRECTORY.UserTable
539: )
540: IS
541: l_index NUMBER ;
542: l_dup_flag BOOLEAN ;
544:
545: BEGIN
546:
547: -- First, check the user role is Active
548: IF (WF_DIRECTORY.UserActive(p_role_name))
549: THEN
550:
551: l_dup_flag := FALSE ;
552: l_new_index := 0 ;
580:
581: -- Set User to Role Users2
582: PROCEDURE SetUserToRoleUsers2
583: ( p_party_id IN NUMBER
584: , x_role_users IN OUT NOCOPY WF_DIRECTORY.UserTable
585: )
586: IS
587:
588: l_user_role VARCHAR2(320) ;
609:
610: -- Set User to Role Users
611: PROCEDURE SetGroupToRoleUsers2
612: ( p_group_id IN NUMBER
613: , x_role_users IN OUT NOCOPY WF_DIRECTORY.UserTable
614: )
615: IS
616: CURSOR c_grp_members (p_group_id NUMBER)
617: IS
635: --
636: -- 4258267 9.2.0.5.0 MAILER 11.5.10 PRODID-174 PORTID-110 3623217
637: -- Abstract: UNABLE TO SEND NOTIFICATION FOR USER WHOSE NAME HAS SPACES
638: -- Need to call CreateAdHocRole2 which accepts
639: -- WF_DIRECTORY.UserTable as role_users.
640: -- WF base bug3623217 of wf bug4258267:
641: --
642: PROCEDURE SetWFAdhocRole2 (p_role_name IN OUT NOCOPY VARCHAR2,
643: p_role_display_name IN OUT NOCOPY VARCHAR2,
640: -- WF base bug3623217 of wf bug4258267:
641: --
642: PROCEDURE SetWFAdhocRole2 (p_role_name IN OUT NOCOPY VARCHAR2,
643: p_role_display_name IN OUT NOCOPY VARCHAR2,
644: p_role_users IN WF_DIRECTORY.UserTable,
645: p_expiration_date IN DATE DEFAULT SYSDATE)
646: IS
647:
648: BEGIN
650: -- Check if the Role already exists
651: IF CheckRoleExistence(p_role_name => p_role_name ) THEN
652:
653: -- Replacing existing Users in this Adhoc Role
654: WF_DIRECTORY.RemoveUsersFromAdhocRole
655: ( role_name => p_role_name
656: , role_users => NULL ) ;
657:
658:
656: , role_users => NULL ) ;
657:
658:
659: --
660: -- WF_DIRECTORY.AddUsersToAdHocRole2(role_name in varchar2,
661: -- role_users in WF_DIRECTORY.UserTable);
662: WF_DIRECTORY.AddUsersToAdhocRole2
663: ( role_name => p_role_name
664: , role_users => p_role_users ) ;
657:
658:
659: --
660: -- WF_DIRECTORY.AddUsersToAdHocRole2(role_name in varchar2,
661: -- role_users in WF_DIRECTORY.UserTable);
662: WF_DIRECTORY.AddUsersToAdhocRole2
663: ( role_name => p_role_name
664: , role_users => p_role_users ) ;
665:
658:
659: --
660: -- WF_DIRECTORY.AddUsersToAdHocRole2(role_name in varchar2,
661: -- role_users in WF_DIRECTORY.UserTable);
662: WF_DIRECTORY.AddUsersToAdhocRole2
663: ( role_name => p_role_name
664: , role_users => p_role_users ) ;
665:
666:
664: , role_users => p_role_users ) ;
665:
666:
667: ELSE
668: -- WF_DIRECTORY.CreateAdHocRole2(role_name in out nocopy varchar2,
669: -- role_display_name in out nocopy varchar2,
670: -- language in varchar2 default null,
671: -- territory in varchar2 default null,
672: -- role_description in varchar2 default null,
670: -- language in varchar2 default null,
671: -- territory in varchar2 default null,
672: -- role_description in varchar2 default null,
673: -- notification_preference in varchar2 default 'MAILHTML',
674: -- role_users in WF_DIRECTORY.UserTable,
675: -- email_address in varchar2 default null,
676: -- fax in varchar2 default null,
677: -- status in varchar2 default 'ACTIVE',
678: -- expiration_date in date default null,
679: -- parent_orig_system in varchar2 default null,
680: -- parent_orig_system_id in number default null,
681: -- owner_tag in varchar2 default null);
682:
683: WF_DIRECTORY.CreateAdHocRole2( role_name => p_role_name
684: , role_display_name => p_role_display_name
685: , role_users => p_role_users
686: , expiration_date => p_expiration_date
687: );
689:
690: END SetWFAdhocRole2 ;
691:
692: -------------------------------------------------------------------
693: -- End of New WF Directory related APIs for Bug4532263
694: -------------------------------------------------------------------
695:
696:
697: -- Get Organization Info
1158: l_role_name VARCHAR2(320) ;
1159: l_role_display_name VARCHAR2(320) ;
1160: -- Bug4532263
1161: -- l_role_users VARCHAR2(2000) ;
1162: l_role_users WF_DIRECTORY.UserTable ;
1163:
1164: c1 PLS_INTEGER;
1165: list_rest VARCHAR2(2000);
1166:
1224: , 'ADHOC_PARTY_ROLE');
1225:
1226: l_role_display_name := l_role_name ;
1227:
1228: -- Set Adhoc Role and Users in WF Directory Adhoc Role
1229: SetWFAdhocRole2( p_role_name => l_role_name
1230: , p_role_display_name => l_role_display_name
1231: , p_role_users => l_role_users
1232: , p_expiration_date => NULL
1738: l_return_status VARCHAR2(1);
1739: l_msg_count NUMBER ;
1740: l_msg_data VARCHAR2(200);
1741:
1742: -- ut Wf_Directory.UserTable;
1743:
1744:
1745: BEGIN
1746:
1758: , p_item_type => itemtype
1759: , p_item_key => itemkey
1760: ) ;
1761:
1762: -- wf_directory.getroleusers( 'EGO_ADHOC,'||itemtype || '-' ||itemkey,ut);
1763:
1764: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1765:
1766: -- set result