1. 程式人生 > >Oracle EBS 複製使用者職責

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;