Главная > Oracle e-Business Suite, SQL > Объединенный скрипт создания пользователя


Объединенный скрипт создания пользователя

oebs_create_user
Объединенный скрипт создания пользователя включает в себя

  1. Создание пользователя
  2. Заполнение профилей
  3. Добавление полномочий

DECLARE

  l_user_name VARCHAR2(100)    := 'USER_NAME';  -- !!! установить логин создаваемого пользователя

  l_user_id NUMBER;

  l_responsibility_key     fnd_responsibility.responsibility_key%TYPE := 'SYSTEM_ADMINISTRATOR';
  l_application_short_name fnd_application.application_short_name%TYPE := 'SYSADMIN';

  l_responsibility_id   NUMBER;
  l_application_id      NUMBER;
  l_responsibility_name VARCHAR2(200) := 'System Administrator';
  l_security_group_id   NUMBER := 0;

  PROCEDURE set_profile_at_user_level(p_user_name                fnd_user.user_name%TYPE,
                                      p_user_profile_option_name fnd_profile_options_vl.user_profile_option_name%TYPE,
                                      p_profile_option_value     fnd_profile_option_values.profile_option_value%TYPE
                                      ) IS
    l_user_id             fnd_user.user_id%TYPE;
    l_profile_option_name fnd_profile_options_vl.profile_option_name%TYPE;
  BEGIN
    SELECT fu.user_id
      INTO l_user_id
      FROM fnd_user fu
     WHERE fu.user_name = p_user_name;

    SELECT fpo.profile_option_name
      INTO l_profile_option_name
      FROM fnd_profile_options_vl fpo
     WHERE fpo.user_profile_option_name = p_user_profile_option_name;

    IF Fnd_Profile.SAVE(x_name        => l_profile_option_name,
                        x_value       => p_profile_option_value,
                        x_level_name  => 'USER',
                        x_level_value => l_user_id) THEN
      NULL;
    END IF;
  END set_profile_at_user_level;  

BEGIN

  ---------------------------
  ------Создание юзера-------
  ---------------------------
  dbms_output.put_line('Создание юзера');

  if (fnd_user_pkg.userExists(l_user_name)) then
    dbms_output.put_line('! Пользователь ' || l_user_name || ' уже существует');
    dbms_output.put_line(' ');
  else
    l_user_id := fnd_user_pkg.CreateUserId(x_user_name            => l_user_name,
                                           x_owner                => 'CUST',
                                           x_unencrypted_password => '123456');

    SELECT application_id
      INTO l_application_id
      FROM fnd_application
     WHERE application_short_name = l_application_short_name;

    SELECT responsibility_id
      INTO l_responsibility_id
      FROM fnd_responsibility
     WHERE application_id = l_application_id
       AND responsibility_key = l_responsibility_key;

    fnd_user_resp_groups_api.insert_assignment(user_id                       => l_user_id,
                                               responsibility_id             => l_responsibility_id,
                                               responsibility_application_id => l_application_id,
                                               security_group_id             => l_security_group_id,
                                               start_date                    => trunc(SYSDATE),
                                               end_date                      => NULL,
                                               description                   => l_responsibility_name);

    fnd_wf_engine.default_event_raise('oracle.apps.fnd.security.user.assignment.change',
                                      l_user_id || ':' || l_responsibility_id);

    fnd_wf_engine.propagate_user_role('FND_USR',
                                      l_user_id,
                                      'FND_RESP' || l_application_id,
                                      l_responsibility_id,
                                      trunc(SYSDATE),
                                      NULL);

    -- Added for Function Security Cache Invalidation Project
    fnd_function_security_cache.insert_user_resp(l_user_id,
                                                 l_responsibility_id,
                                                 l_application_id);
  end if;                                                

  -------------------------------
  ------Установка профилей-------
  -------------------------------
  dbms_output.put_line('Установка профилей');                                         

  EXECUTE IMMEDIATE 'ALTER session SET NLS_LANGUAGE=''RUSSIAN'''; 

  set_profile_at_user_level (l_user_name, 'ВЕБ: время ожидания для сеанса', '3600000');
  set_profile_at_user_level (l_user_name, 'ВЕБ: форматная маска даты','DD-MM-RRRR');

  --3 профиля чтобы не вводить пароль аппса при вызове Справка-Диагностика
  set_profile_at_user_level (l_user_name, 'БОП: диагностика',   --FND: Diagnostics
                            'Y');
  set_profile_at_user_level (l_user_name, 'Служебные программы: диагностика',   --Utilities:Diagnostics
                            'Y') ;
  -- убирает пункт меню Диагностика из стандартного меню
  set_profile_at_user_level (l_user_name, 'Не показывать на экране команду меню "Диагностика"', --Hide Diagnostics menu entry
                            'N')  ;
  -- Для включения возможности персонализации веб-страничек
  set_profile_at_user_level (l_user_name, 'БОП: режим встраивания индивидуальной настройки',
                            'Y');

  EXECUTE IMMEDIATE 'ALTER session SET NLS_LANGUAGE=''AMERICAN''';

  set_profile_at_user_level(l_user_name, 'Personalize Self-Service Defn','Y');
  set_profile_at_user_level(l_user_name, 'FND: Personalization Region Link Enabled', 'N');

  --------------------------------------------
  ------Добавление основных полномочий--------
  --------------------------------------------
  dbms_output.put_line('');
  dbms_output.put_line('Добавление основных полномочий');

  dbms_output.put_line('Суперпользователь закупок');
  fnd_user_pkg.addresp(l_user_name, 'PO', 'PURCHASING_SUPER_USER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Запасы');
  fnd_user_pkg.addresp(l_user_name, 'INV', 'INVENTORY', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Управление затратами - SLA');
  fnd_user_pkg.addresp(l_user_name, 'CST', 'COST_MANAGEMENT', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Суперпользователь внедрения Проектов');
  fnd_user_pkg.addresp(l_user_name, 'PA', 'PA_IMPLEMENTATION_SU_GUI', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Суперпользователь Казначейства');
  fnd_user_pkg.addresp(l_user_name, 'XTR', 'T', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Глобальный руководитель SLA/ЗРП');
  fnd_user_pkg.addresp(l_user_name, 'PAY', 'GLB_SLA_PAYROLL_MANAGER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Глобальный суперпользователь-руководитель СУПЕР');
  fnd_user_pkg.addresp(l_user_name, 'PER', 'GLB_SHRMS_MANAGER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Закупки для SLA');
  fnd_user_pkg.addresp(l_user_name, 'PO', 'SLA_PO_DEV', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Desktop Integrator');
  fnd_user_pkg.addresp(l_user_name, 'BNE', 'DESKTOP_INTEGRATOR', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Разработчик приложений');
  fnd_user_pkg.addresp(l_user_name, 'FND', 'APPLICATION_DEVELOPER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Администратор функций');
  fnd_user_pkg.addresp(l_user_name, 'FND', 'FND_FUNC_ADMIN', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Диспетчер кредиторов');
  fnd_user_pkg.addresp(l_user_name, 'SQLAP', 'PAYABLES_MANAGER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Администратор издателя XML');
  fnd_user_pkg.addresp(l_user_name, 'XDO', 'XDO_ADMINISTRATION', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Системный администратор');
  fnd_user_pkg.addresp(l_user_name, 'SYSADMIN', 'SYSTEM_ADMINISTRATOR', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Диагностика приложения');
  fnd_user_pkg.addresp(l_user_name, 'FND', 'APPLICATION_DIAGNOSTICS', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Диспетчер основных средств');
  fnd_user_pkg.addresp(l_user_name, 'OFA', 'FIXED_ASSETS_MANAGER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Диспетчер Дебиторов');
  fnd_user_pkg.addresp(l_user_name, 'AR', 'RECEIVABLES_MANAGER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('Суперпользователь Главной книги');
  fnd_user_pkg.addresp(l_user_name, 'SQLGL', 'GENERAL_LEDGER_SUPER_USER', 'STANDARD', 'Add by script', sysdate, null);

  dbms_output.put_line('');
  dbms_output.put_line('Responsibility Added Successfully');                            

  COMMIT;
END;

Похожие записи:

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.