
Объединенный скрипт создания пользователя включает в себя
- Создание пользователя
- Заполнение профилей
- Добавление полномочий
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, '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;

Последние комментарии