Планировщик задач

Планировщик предназначен для выполнения определенных задач по расписанию или событию. Типовые задачи: формирование пакетных отчетов, рассылка электронных писем (отчетов), прием документов из электронных писем, резервное копирование баз данных и т.п.

Cкачать дистрибутив службы планировщика, актуальной для соответствующей версии базы данных, можно по ссылке : https://keysystems.ru/files/web/INSTALL/SMART2/install/TaskSchedulerService/ .

Планировщик может быть запущен/настроен локально либо удаленно - для выбора настраиваемого планировщика используется кнопка "Выбрать расположение планировщика" :

mnu_planir_localiz

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

Кнопка "Запуск вручную" всегда запускает задачу в текущем процессе экземпляра "Бюджет-СМАРТ", как служба задача работает только по расписанию.

Лог работы планировщика хранится в виде txt файла с именем содержащим дату logГГГГММДД.txt (где ГГГГ - год, ММ - месяц, ДД - число месяца) и расположен по пути:

На каждый день создается отдельный файл лога.

Для включения логирования в файле конфигурации appsettings.json задать полный путь к лог-файлу в параметре "path", затем перезапустить Планировщик.

Пример:

"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "c:/Program Files(x86)/Keysystems/TaskSchedulerService/logs/log_.txt",
"rollingInterval": "Day"
}
}
]
},

События планировщика (успешное завершение, сбой и т.п.) доводятся по внутренней почте до пользователей, указанных в настройке "Адресаты системных сообщений".

Использование прокси-сервера

Для некоторых задач требуется выход в интернет (например при обновлении Справочника БИК): планировщиком используется прокси указанный для комплекса в окне входа.

Если подключение к интернету осуществляется через прокси, то параметры прокси-сервера следует указывать:

Задачи

Загрузка справочника банков

Требования для успешного обновления справочника банков: версия службы планировщика не ниже 2.20.2.2981 (инсталлятор см в дистрибутиве клиентской части "Бюджет-СМАРТ").

Предназначена для автоматического обновления Справочника БИК по расписанию с сайта Банка России. Для этого:

Примечание. Если задача выполняется в текущем процессе "Бюджет-СМАРТ" и подключение к интернету осуществляется через прокси, то параметры прокси-сервера следует указывать на вкладке "Соединение" окна входа в комплекс.

При удачном завершении очередной загрузки на вкладке "Журнал событий" задачи будет результат в виде
"Выполнено успешно: Загрузка справочника из файла: C:\...\....zip. Загружено банков: ...". Любые другие сообщения говорят о каких-то проблемах - подробностьи см в протоколе приема справочника БИК в режиме "Навигатор: СЕРВИСНЫЕ РЕЖИМЫ \ Журнал событий".

Для просмотра протокола загрузки следует открыть детализацию на вкладке "Журнала событий" в задаче планировщика.

mnu_planir_jurnal_bank

Задача приема файлов по email (выписки, ФНС, платежки и т.п.).

Решается последовательно двумя типами задач:

1) Проверка внешнего почтового ящика.

С заданной периодичностью проверяет внешний почтовый ящик и загружает файлы из входящих сообщений в заданную папку. Обработанные почтовые сообщения удаляются из входящих.

2) Импорт документов (ЭОД).

Осуществляет прием файлов из определенной папки (которую пополняет первая задача по проверке почтового ящика). Обработанные файлы не удаляются и не перемещаются. Работает задача не по расписанию, а по факту появления файла приема в заданной папке.

Для некоторых ведомостей важен порядок приема набора файлов, либо требуется обеспечить их "одновременный" прием в одной сессии (тогда комплекс сам определит нужный порядок приема). Поэтому рекомендуем ведомости/выписки принимать по файлу с описанием (см далее).

Рекомендуемые настройки для приема отдельных документов (платежки, заявки и т.п.)

Параметры задачи:

Триггера задачи:

Рекомендуемые настройки для приема выписок

Параметры задачи:

где 98ac9f51-ea1a-df11-a3dc-16c03228c478 - уникальный идентификатор сеанса приема, для каждого файла описания свой (например поле GUID из одного из файлов RK). Далее в тегах <file> перечислены имена файлов приема в нужном порядке.

Расписание (триггеры) задачи:

Примечание. Если не применять файл описания, то:

Выгрузка отчетов.

Выписки формируются с задержкой на 1-5 дней (см параметр "Смещение дней") - время, необходимое для полной обработки дня специалистами финоргана.

Тип задачи "Пакетная выгрузка отчетов".

В параметрах задачи следует:

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

Рассылка файлов по почте.

Тип задачи "Отправка файла по почте".

В параметрах задачи в поле "Сообщение" можно применить переменные:

Задача отслеживает изменения файловой системы (появление новых файлов, см вкладку "Триггеры") и при появлении в заданной папке новых файлов рассылает письма с этими файлами. Файлы должны содержаить в своём имени идентификтор получателя (счет, ИНН и т.п.) заданный в справочнике "Корреспонденты. Участники рассылок". Если источником корреспондентов задан файл Recipients.txt (список получателей, все адреса пишутся с новой строки), то все файлы будут отправляться по каждому из адресов только из этого файла.

Задача отправки файла по почте не поддерживает ручной запуск (предполагает мгновенное выполнение, а файл отправки неизвестен), поэтому в этом случае пишет про отсутствии файла для отправки.

Системная задача "Синхронизация расчетной даты".

Предназначена для актуализации расчетной даты комплекса. Для успешного выполнения задачи требуется включение настройки на пользователя "Меню Настройки: НАСТРОЙКИ \ Даты \ Изменять расчетную дату каждый день".

Принцип действия для ПК "Бюджет-СМАРТ":

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

Для "Бюджет-НЕКСТ" используется (сравнивается) дата на компьютере, где развернут сервер приложений.

Формирование справочника БК

Предназначена для обновления справочника "БК (расходы)" по данным документов.

Загрузка открытых данных

Задача по загрузке открытых данных из ЭБ. Используется API сервис ЭБ: от "Бюджет-СМАРТ" формируется и отправляется в ЭБ запрос на предоставление данных - ЭБ формирует набор данных согласно указанного в запросе фильтра и возвращает данные в "Бюджет-СМАРТ" .

В разделе "Параметры" планировщика можно выбрать следующие документы для загрузки:

Загрузка данных с внешних сервисов

Тип задачи "Загрузка данных с внешних сервисов (ЭБ, ЕСИА, ФНС и т.п.)".
Запрашивает данные с внешних сервисов, таких как ЭБ, ЕСИА, ФНС и т.п. по HTTP протоколу. Результат запроса загружается в соответствующий раздел комплекса (документы, справочники и т.п.) либо обновляет статусы документов по результатам полученных ответов на запросы.

В параметрах задачи в поле "Документ" следует выбрать документ/справочник который требуется загрузить с внешнего ресурса (сайт ЭБ, сайт ФНС и т.п.). Примеры возможных значений:

Задача сервера

Произвольная процедура/команда СУБД сервера. Доступен справочник типовых процедур:

-- СУБД MS SQL
-- параметры: DayBack - смещение дней от текущей даты, nLevel - уровень закрытия,
-- user=... - логин пользователя, от имени которого будут закрываться дни (должен иметь права на счета бюджета).
execute ('execute dbo.locked_day_close_timer @DayBack = -3, @nLevel = 1') as user = 'admin_day_close'

-- СУБД Postgre
-- Закрытие идет по счетам бюджета, доступным пользователю, запускающему функцию.
-- параметры: v_DayBack - смещение дней от текущей даты, v_nLevel - уровень закрытия.
select dbo.Locked_Day_Close_Timer (v_DayBack := -2, v_nLevel := 1);

При выполнении задачи закрываются дни с 01.01 по указанную дату (= системная дата SQL - заданное в параметре @DayBack число дней), независимо от наличия в них документов. Закрытие выполняется для счетов бюджета, доступных пользователю, под которым стартует процедура dbo.locked_day_close_timer. Если необходимо закрывать дни для документов без счета бюджета, то следует использовать дополнительный параметр @CloseEmpty = 1.