Генерация печатных форм по расписанию. NullReferenceException.
Коллеги, добрый день.
Подскажите, пожалуйста, возможно кто-то сталкивался с аналогичной проблемой.
Есть бизнес- процесс, который в числе прочих действий генерирует печатную форму и отправляет её по Email как аттачмент.
Если запускать этот БП вручную, он успешно отрабатывает. При вызове из задания (QuartzScheduler) - падает на шаге генерации ПФ.
ПФ генерируется в ScriptTask с помощью вызова ReportService:
Шаг падает со следующим Exception:
at Terrasoft.Configuration.ReportService.ReportService..ctor()
at Terrasoft.Core.Process.UsrOutdatedTSActNotif.ScriptTask2Execute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
Нравится
Здравствуйте, вероятно при работе планировщика нет userconnection-а, попробуйте из стороннего c# кода вызвать свой бп с формированием отчета:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/zapusk-process…
если получится, то сделайте бп который будет работать по планировщику, и вызывать таким же образом образом другой бп с формированием отчета.
Такой вызов должен эмулировать нормальный заход пользователя на сайт (авторизация) и запуск процесса как бы в ручном режиме.
Илья,
большое спасибо, помогло.
Единственный минус - в таком случае придётся заводить служебного пользователя для поторяющизся задач и хранить где-то его логин/пароль в открытом виде.
Возможно есть какой-то более простой способ получить UserConnection в БП, запускаемом из Quartz?
Здравствуйте!
В создании дополнительно пользователя нет необходимости.
Будет подтягиваться userconnection пользователя, которого вы укажите при создании job’а.
Условно:
…
string userName = userConnection.CurrentUser.Name;
AppScheduler.ScheduleMinutelyProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, solutionName, userName, minutleyInterval, isSystemUser : true);