среда, 11 февраля 2009 г.

Профили на полномочия

Еще одна обертка для fnd_profile.save
На этот раз для того, чтобы было удобно готовить скрипты по массовой устаноке значений профилей на уровне полномочий.


DECLARE
PROCEDURE set_profile_at_resp_level (
p_resp_name fnd_responsibility_vl.responsibility_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_responsibility_id fnd_responsibility_vl.responsibility_id%TYPE;
l_application_id fnd_responsibility_vl.application_id%TYPE;

l_profile_option_name fnd_profile_options_vl.profile_option_name%TYPE;
BEGIN
SELECT fr.responsibility_id
,fr.application_id
INTO l_responsibility_id
,l_application_id
FROM fnd_responsibility_vl fr
WHERE fr.responsibility_name = p_resp_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 => 'RESP'
,x_level_value => l_responsibility_id
,x_level_value_app_id => l_application_id
)
THEN
NULL;
END IF;
END set_profile_at_resp_level;
BEGIN
set_profile_at_resp_level ('Системный администратор', 'Служебные программы: диагностика', 'Y');
-- set_profile_at_resp_level ('...', 'НО: операционная единица', '...');
COMMIT;
END;

Комментариев нет: