Friday, November 2, 2018

Script to End Date Responsibility for a User

Script to End Date Responsibility for a User

This script below will get the list of all inactive users and end date all the responsibilities assigned to them.
Declare
  --cursor to get all inactive users
  CURSOR cur_inactive_user  
  IS
        select  
        fu.user_id,
        fd.responsibility_id,
        fd.responsibility_application_id,
        fd.security_group_id,
        fd.start_date,
        fd.end_date
    from
        fnd_user fu,
        fnd_user_resp_groups_direct fd
    where
        fu.user_id = fd.user_id
        and  (fu.end_date <= sysdate or fu.end_date is NOT NULL)
        and fd.end_date is null;
 
BEGIN
 
FOR rec_inactive_user IN cur_inactive_user
LOOP
 
--checking if the responsibility is assigned to the user
 
IF (fnd_user_resp_groups_api.assignment_exists
   (rec_inactive_user.user_id,
    rec_inactive_user.responsibility_id,
    rec_inactive_user.responsibility_application_id,
    rec_inactive_user.security_group_id)) then                                                                
 
    -- Call API to End date the responsibility
 
    fnd_user_resp_groups_api.update_assignment
 
     (user_id  => rec_inactive_user.user_id,
      responsibility_id => rec_inactive_user.responsibility_id,
      responsibility_application_id => rec_inactive_user.responsibility_application_id,
      security_group_id =>  rec_inactive_user.security_group_id ,
      start_date => rec_inactive_user.start_date ,
      end_date => rec_inactive_user.end_date,
      description => NULL);      
 
    COMMIT;                                                                                          
 
END IF;
END LOOP;                  
END;

No comments:

Post a Comment

SQL Important Queries

  How to delete rows with no where clause The following example deletes  all rows  from the  Person.Person  the table in the AdventureWork...