Oracle EBS 复制用户职责

DECLARE
  l_new_user_name VARCHAR2(100) := 'HAND_HYL';
  l_new_password  VARCHAR2(100) := '54321';
  l_new_user_id   NUMBER;

  l_user_name_copy_from VARCHAR2(100) := 'SYSADMIN';

BEGIN
  -- Test statements here

  IF fnd_user_pkg.userExists(x_user_name => l_new_user_name) THEN
    NULL;
  ELSE
    fnd_user_pkg.CreateUser(x_user_name            => l_new_user_name,
                            x_unencrypted_password => l_new_password,
                            x_owner                => NULL);
  END IF;
  SELECT user_id INTO l_new_user_id FROM fnd_user fu WHERE fu.user_name = l_new_user_name;

  FOR rec IN (SELECT d.RESPONSIBILITY_ID
                    ,d.RESPONSIBILITY_APPLICATION_ID
                    ,d.START_DATE
                    ,d.END_DATE
              FROM   fnd_user_resp_groups_direct d
                    ,fnd_user u
              WHERE  d.user_id = u.user_id
                     AND u.user_name = l_user_name_copy_from
                     AND SYSDATE BETWEEN nvl(d.START_DATE, SYSDATE - 1) AND
                     nvl(d.END_DATE, SYSDATE + 1)) LOOP
  
    IF fnd_user_resp_groups_api.Assignment_Exists(user_id                       => l_new_user_id,
                                                  responsibility_id             => rec.responsibility_id,
                                                  responsibility_application_id => rec.responsibility_application_id) THEN
      NULL;
    ELSE
      fnd_user_resp_groups_api.Insert_Assignment(user_id                       => l_new_user_id,
                                                 responsibility_id             => rec.responsibility_id,
                                                 responsibility_application_id => rec.responsibility_application_id,
                                                 start_date                    => rec.START_DATE,
                                                 end_date                      => rec.END_DATE,
                                                 description                   => NULL);
    END IF;
  END LOOP;
END;

猜你喜欢

转载自www.cnblogs.com/jenrry/p/10006823.html