Пт Мар 26, 2010 11:45 Запуск JOBа от имени другого пользователя
Полезность: Нет оценки
Хочу сделать операцию запускающую задания по расписанию, включить ее в завершение дня, можно ли сделать так, чтобы JOB запускался от имени пользователя TRC, а не от имени закрывающего день?
Можно в JOB подменить пользователя:
stdlib.userid := trc_user;
После нужно дернуть процедуру установки контекста пользователя.
ИБСО под рукой нет, как назывется не помню. Помню только, что находится TRC.
можно не подменять stdlib.userid
следующие строки вот такие:
::[SYSTEM].[VARIABLES].set_system_vars_by_user(exec_user,true);
::[TRC].[INI].trc_set_var_current;
exec_user - ссылка на пользователя в типе ::[USER]
можно не подменять stdlib.userid
следующие строки вот такие:
::[SYSTEM].[VARIABLES].set_system_vars_by_user(exec_user,true);
::[TRC].[INI].trc_set_var_current;
exec_user - ссылка на пользователя в типе ::[USER]
Можно и так.
Только, если мне не изменяет память, set_system_vars_by_user работает только в job'ах. Если хочется подменить пользователя в обычной операции, то stdlib.userid и rc_set_var_current помогут.
не прокатило. даже не в завершение дня вставил, а отдельным job-ом,
Цитата:
locate prov_user in [USER] where prov_user.[USERNAME] = 'TRC';
::[SYSTEM].[VARIABLES].set_system_vars_by_user(prov_user,false,true);
::[TRC].[INI].trc_set_var_current;
далее запуск других job-ов, которые должны под поользователем TRC заупститься
stdlib.UserId.[USERNAME] выдает правильно юзера, а задание все равно подо мной запускается
Я так понимаю, что job'ы запускаются от юзера Oracle а не ИБСО.
Цель запуска джобов именно от юзера TRC? Может, в запускаемых джобах подменять контекст?
-- процедура инициализации переменных РЦ по заданному филиалу
-- Вычисляет пользователя из настроек договора РЦ филиала и устанавливает
-- в соответствии с ним переменные РЦ, системного пользователя
-- и зависящие от него переменные пакета SYSTEM.VARIABLES
-- Может использоваться только в процедурах, работающих в заданиях по расписанию
procedure trc_set_var(filial ref [BRANCH]);
-- Делает тоже самое, что и trc_set_var (см. описание выше),
-- но системный пользователь (stdlib.userid) не подменяется
-- и SYSTEM.VARIABLES инициализируется от подразделения,
-- которое можно задать параметром p_depart (используется в СПЭД и BankFactura)
-- !!! Если задан p_depart, то значение параметра filial игнорируется
-- p_do - если true, то выполнять переинициализацию
-- даже если filial равен текущему значению переменной ::[TRC].[INI].USER_FILIAL
procedure trc_set_var_lim(filial ref [BRANCH],
p_depart ref [DEPART] default null,
p_do boolean default false);
Мы сделал вот так, чтобы пользователя головы могли обрабатывать документы любых филиалов.
Но ведь никто не мешает подставить нужного пользователя.
А если дело косается запуска джобов для обработки документов РЦ, то вообще ничего не надо. И так уже все есть, только нужно сделать соответствующие настройки.
Хотелось бы заставить ибсятину выполнять JOB'ы от имени других пользователей.. при этом не залогиниваясь или же для установки Задачи. Может у кого получилось подобное реализовать? _________________ Всего должно быть в меру.
Хотелось бы заставить ибсятину выполнять JOB'ы от имени других пользователей.. при этом не залогиниваясь или же для установки Задачи. Может у кого получилось подобное реализовать?
В свое время писал джоб для закрытия дня.. там как раз выислялся юзер из настройки
Вне зависимости, с экранной ли формы user или я его locate'ом определяю... в теле ли операции, или же в блоке "p_message = 'DEFAULT' все одно stdio всегда возвращает пользователя, которым залогинен.. Что то не получается. _________________ Всего должно быть в меру.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Домен cftclub.ru не связан с ЗАО "Центр Финансовых Технологий" и ни в коей мере не нарушает авторских и иных прав
Владелец может не разделять мнения Участников и не несет ответственности за их публикации
Powered by phpBB