планировщик запуска процесса

Добрый день!
Есть такой процесс в ITIL - процесс наполнения очередей единого окна,
который запускается автоматически ( когда пользователь в системе) каждые 5 минут ( в соответствии с указанным интервалом-системной настройкой "интервал обновления очередей единого окна")

Подскажите, пожалуйста, где собственно (в какой схеме или быть может справочнике) прописывается сам автоматический запуск процесса - то, что именно этот процесс запускается автоматически через определенный интервал времени

Нравится

22 комментария

Здравствуйте, Дарья!

Эта логика прописана в самом процессе - перед завершением он записывает время своего следующего выполнения в планировщик, предварительно "посмотрев" на системную настройку.

Вот такой он бессмертный!

Добрый день, Александр!
Спасибо за секрет бессмертия))
Видела элемент в процессе "актуализировать задание планировщика"
UserConnection userConnection = context.UserConnection;
Terrasoft.Configuration.QueuesUtilities.UpdateQueuesTrigger(userConnection);
return true;

Но не поняла до конца, где находится сам планировщик, что он собой представляет в bpm? - (хотела бы записывать туда время выполнения еще одного процесса)

Здравствуйте, Дарья!
Александр Вам в этом случае не поможет - будет помогать Алексей.:smile:

Добавьте в задание-сценарий код:

string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "ProcessingEmail"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 30; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, UserConnection.Workspace.Name, UserConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

Укажите в Usings Quartz.Impl.Triggers (с пустым псевдонимом), Quartz (с псевдонимом Quartz ), Terrasoft.Core.Scheduler (с пустым псевдонимом).

спасибо, Алексей))

Добрый день!
Попробовала так и сделать..
Процесс состоит из задачи и задания-сценарий, в котором прописан указанный код, перезапускающий данный процесс
Но почему-то перезапуска не происходит, просто процесс завершается

Данный код запустит новый экземпляр процесса.
Дополнительно, при указании названия процесса, Вам необходимо соблюдать регистр.

спасибо, все получилось)

Добрый день, при использовании следующего кода

string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "ProcessingEmail"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 30; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, UserConnection.Workspace.Name, UserConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

В 7.5 все работает нормально, в 7.7 выдает следующую ошибку
1
В чем может быть ошибка и как ее исправить?

Добрый день!

Пример добавления триггера в планировщик для версии 7.7:
var userConnection = Get("UserConnection");
string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "UsrTestScheduler"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 20; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

Добрый день!
При попытке использовать следующий код, который привел Олег

var userConnection = Get("UserConnection");
string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "UsrTestScheduler"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 20; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

Выдает следующую ошибку:
1

Олег,

Извиняюсь, глаз замылился;) Текст в треугольных скобках в комментах опускается.

Добрый день,
Подскажите реально ли поставить в планировщик БП передавая попутно параметры?

"Зарицкий Олег" написал:Пример добавления триггера в планировщик для версии 7.7:

Пора в документацию вставлять

Владимир, скоро появится.

"Зарицкий Олег" написал:

Владимир, скоро появится.

Здравствуйте! Каким образом можно в бизнес-процессе не только создавать триггер в планировщик, но и во всех активностях, где Завершение < DateTime.Now, устанавливать “Просроченная активность” = true?
(чекбокс “Просроченная активность” - пользовательское поле, созданное нами)

Здравствуйте!

Используйте элемент "Изменить данные". В элементе "Изменить данные" Вам необходимо в поле "Просроченная активность" установить значение true.

В фильтре укажите "Завершение" <= "Текущий час" и "Завершение" <= "Сегодня".

"Демьяник Алексей" написал:

Здравствуйте!

Используйте элемент "Изменить данные". В элементе "Изменить данные" Вам необходимо в поле "Просроченная активность" установить значение true.

В фильтре укажите "Завершение" <= "Текущий час" и "Завершение" <= "Сегодня".

Поясню немного: задача в том, чтобы реализовать процесс отправки уведомления ответственному за задачу, если задача просрочена (как только дата завершения задачи становится меньше текущей даты и времени).
Таким образом, нужно создать процесс, который вы описали, и запускать его планировщиком каждые несколько минут или раз в минуту? Будет ли это нести особую нагрузку на систему?

Анастасия, при инициации отправки уведомления будет увеличиваться нагрузка на сервер приложения. Если просроченных активностей немного, то увеличение нагрузки будет незначительным.

"Демьяник Алексей" написал:

Анастасия, при инициации отправки уведомления будет увеличиваться нагрузка на сервер приложения. Если просроченных активностей немного, то увеличение нагрузки будет незначительным.

Планировщик на каждые, допустим, 5 минут + описанный вами процесс - единственно возможное решение кейса, Алексей? Или можете подсказать еще какое-то решение?

Здравствуйте!
Не получается в sales team 7.8 реализовать в бизнес-процессе, чтобы активности отмечались просроченными, если Завершение <= Текущие дата и время.

Бизнес-процесс состоит из элемента "Задание-сценарий" (там размещен код планировщика) и из элемента "Изменить данные активности", где Данные какого объекта изменить: Активность, а в фильтре указано, что менять нужно активности, у которых Состояние не равно "Завершена" И Завершение <=Текущие дата и время (Текущие дата и время - это параметр процесса со значением "[#Системная переменная.Текущее значение даты и времени#]").

Проблема: планировщик запускается с нужным интервалом, но меняет все незавершенные активности, игнорируя фильтр по дате завершения в элементе "Изменить данные активности". Что делаю неправильно?
Предложенный Алексеем вариант условия "Завершение" <= "Текущий час" и "Завершение" <= "Сегодня" также не работает.

Также пробовали в элементе "Изменить данные активности" в фильтре указывать условия:

Состояние не равно Завершена
И
Завершение<Текущие дата и время (где Текущие дата и время - параметр процесса со значением "[#Системная переменная.Текущее значение даты и времени#]").

С данными настройками процесс вообще перестал менять активности.

Показать все комментарии