Правила отчетов
Правила предназначены для автоматизации работы с отчетами без участия пользователя: правила создают отчеты по расписанию, пересчитывают их, рассылают по почте, экспортируют в файл, печатают, блокируют от правок и удаляют устаревшие.
Базовый сценарий: создание, обновление и экспорт отчета
Задача: каждые сутки создавать отчет, в течение суток обновлять его данные, а по окончании периода выгружать в файл. Понадобятся три правила в одном шаблоне.
1. Создание отчета каждые сутки
Триггер: источникПериодическая задача, периодичностьБесконечно,Дата начала правила— любая дата с нужным временем создания, например00:00:00.Условие: проверкаВремя,Совершать действие каждые—1День.Действие: типСоздать.Сдвиг относительно даты срабатывания правила—0.Продолжительность отчета по умолчанию—1День.
Каждые сутки в 00:00 ТехноДок формирует и сохраняет отчет за начавшиеся сутки.
2. Обновление данных в течение суток
Триггер: источникПериодическая задача.Условие: проверкаВремя, периодичностьПовторять в течении периода,Продолжительность—1День,Совершать действие каждые—1Час.Действие: типОбновить— выберите, какие данные сохранять при пересчете.
Правило копируется в каждый созданный отчет и пересчитывает его каждый час до конца периода. Так в отчет попадают значения, которые источники отдают с задержкой.
3. Экспорт в файл после окончания периода
Триггер: источникПериодическая задача.Условие: проверкаВремя, периодичностьОднократно,Совершить действие через—1День.Действие: типСохранить в файл.Тип файлаиПуть до директории— куда и в каком формате сохранять.
Правило тоже копируется в каждый отчет и срабатывает один раз — через сутки после создания, когда период отчета закончился.
Периодичность Однократно у правил 2 и 3 срабатывает один раз в каждом отчете, а не один раз для всего шаблона, как у Создать и Удалить. У каждой копии правила свое время начала, поэтому действие повторяется при каждом новом отчете. Подробнее — Как работает правило.
Как работает правило
Правило состоит из триггера — когда сработать, и действия — что сделать. Действия делятся на две группы по тому, к чему привязано правило.
Правила уровня шаблона. Действия Создать и Удалить хранятся только в шаблоне и не копируются в отчеты. Им доступен единственный триггер — Периодическая задача.
Такое правило действует сразу на все отчеты шаблона. Создать формирует новый отчет по расписанию. Удалить за один проход убирает из базы все отчеты шаблона с датой создания старше заданного времени хранения — созданные правилом, вручную кнопкой Сформировать или переформированием.
Правила уровня отчета. Остальные действия — Обновить, Отправить по почте, Сохранить в файл, Заблокировать, Напечатать — копируются в отчет при его создании или сохранении. Дальше копия живет отдельно от шаблона: у нее свое время начала, равное дате начала этого отчета, и свое состояние срабатывания. У шаблона с десятками отчетов это десятки независимых копий; состояние каждой видно на вкладке Правила отчета в окне Информация отчета (см. Если правило не сработало).
Такому правилу доступен любой триггер, и от триггера зависит поведение:
Событие отчета— срабатывает сразу, как с отчетом происходит нужное событие, напримерСохранен. Неважно, сохранил отчет пользователь или правилоСоздать.Периодическая задачас условиемВремя— расписание отсчитывается от даты начала конкретного отчета, а не от общего расписания шаблона. Если интервал в полеСовершать действие каждыеравен длительности отчета, первое срабатывание произойдет через этот интервал — то есть после окончания периода отчета, а не при его создании.
Правила работают только с отчетами, сохраненными в базе ТехноДок. Отчет, сформированный с включенной опцией Предпросмотр, не сохраняется, и правила его не касаются — см. Отчеты → Создание отчета. Отчеты по правилу Создать сохраняются всегда.
Триггеры
Поля каждого триггера — в Шаблоны отчетов → Условие.
- Периодическая задача → Время — действие по расписанию: создание отчета, регулярная рассылка, пересчет.
- Периодическая задача → Параметр — действие по значению параметра шаблона. Письмо уходит, только когда параметр вышел за порог, а не при каждом формировании отчета.
- Событие отчета → Своего отчета — реакция на изменение текущего отчета:
Создан,Сохранен,Обновлен,Изменен вручную,Подписан,Подписан полностью. Так письмо уходит сразу после сохранения, без ожидания расписания. - Событие отчета → Другого отчета — реакция на изменение отчета по другому шаблону. Так сводный отчет пересчитывается сразу после обновления исходного — см. Пересчет зависимого отчета по событию другого отчета.
Действия
Настройки каждого действия — в Шаблоны отчетов → Действие.
Создать
Формирует и сохраняет новый отчет — так раздел Просмотр наполняется без участия пользователя. Работает только по расписанию (Периодическая задача, условие Время) и только на уровне шаблона.
При периодичности Однократно отчеты перестанут создаваться после первого срабатывания. Для регулярного создания выбирайте Бесконечно или Повторять в течении периода.
Пример настройки — Отчет за предыдущие сутки в 7:00 текущих суток.
Обновить
Пересчитывает значения сохраненного отчета. Нужно, когда данные меняются после создания отчета:
- источник отдает значения с задержкой;
- отчет обновляется, пока не закончился его период — условие
Времяс небольшим интервалом; - к созданным отчетам нужно применить новую версию шаблона — настройка
На основе последней версии шаблона; - отчет берет данные из другого отчета и пересчитывается вместе с ним.
Пересчет зависимого отчета по событию другого отчета
Сводный отчет берет параметры из исходных отчетов через формулы и должен пересчитываться сразу после их изменения, а не по своему расписанию.
Настройте в шаблоне зависимого отчета:
- В блоке
Триггервыберите источникСобытие отчета. - В блоке
Условиевыберите событиеДругого отчетаи задайте:Отчет— шаблон-источник. Текущий шаблон в списке недоступен: для собственных событий естьСвоего отчета.Тип изменения отчета— событие отчета-источника:Создан,Сохранен,Обновлен,Изменен вручную,ПодписанилиПодписан полностью.Дата начала отсчета— точность сравнения дат начала зависимого отчета и отчета-источника:Дата формирования отчета,День отчета,Месяц отчетаилиГод отчета.Сдвиг от начала отсчета— разница между датами начала. Для отчетов за одни и те же сутки —0.Продолжительность отчета по умолчанию— ожидаемая длительность отчета-источника. Поле есть только у отчетов за период. Если фактическая длительность отличается, правило не сработает.
- В блоке
Действиевыберите типОбновитьи настройте параметры пересчета. - Сохраните шаблон.
После события в отчете-источнике ТехноДок ищет отчет зависимого шаблона с подходящей датой начала — с учетом сдвига и выбранной точности — и пересчитывает его.
Правило пересчитывает существующий отчет, но не создает его. Если подходящего отчета еще нет, пересчет не выполнится: сформируйте отчет отдельным правилом Создать или вручную.
Отправить по почте
Отправляет сохраненный отчет вложением. Нужен настроенный почтовый клиент — см. Системные настройки → Почтовый клиент.
Отправка сразу после создания отчета
Письмо уходит без ожидания расписания:
- Откройте шаблон отчета и перейдите на вкладку
Правила. - Убедитесь, что в шаблоне есть включенное правило
Создатьс периодичностью, отличной отОднократно. - Добавьте новое правило кнопкой
Добавить. - В блоке
Триггервыберите источникСобытие отчета. - В блоке
Условиевыберите событиеСвоего отчетаи тип измененияСохранен. - В блоке
Действиевыберите типОтправить по почтеи заполните адресатов, тему и остальные настройки. - Сохраните шаблон.
Письмо уйдет при следующем сохранении отчета — автоматическом или ручном.
Отправка по расписанию отдельно от момента создания
Письмо уходит через заданное время после формирования отчета — например, чтобы данные успели проверить:
- В блоке
Триггервыберите источникПериодическая задача. - В блоке
Условиевыберите проверкуВремяи задайте интервал в полеСовершать действие каждые. - В блоке
Действиевыберите типОтправить по почтеи заполните настройки.
Интервал отсчитывается от даты начала каждого отчета. Чем он меньше по сравнению с длительностью отчета, тем раньше уйдет первое письмо.
Разовая отправка без правил
Нажмите Отправить во вспомогательном меню на форме формирования отчета — см. Отчеты → Экспорт без создания. Отчет формируется, сразу уходит по почте и не сохраняется в базе.
Если письмо не пришло — см. Если правило не сработало.
Сохранить в файл
Экспортирует отчет в заданную директорию на диске сервера приложений. Так данные передают внешним системам, которые читают отчеты из общей папки, а не обращаются к ТехноДок напрямую.
Заблокировать
Закрывает ячейки отчета от ручной правки, пока его не разблокируют вручную. Так отчет фиксируют как окончательный после времени на проверку — например, через сутки после создания, чтобы исключить изменения задним числом.
Напечатать
Отправляет отчет на заданный принтер — например, чтобы бумажная копия отчета за смену печаталась к началу смены.
Удалить
Ограничивает рост базы данных: без этого правила отчеты по расписанию накапливаются бессрочно. Действует на весь шаблон сразу — см. Как работает правило.
Отбор идет по дате создания отчета, а не по датам его периода, и не меняется при переформировании. Отчет за прошлый месяц, созданный сегодня, начнет храниться от сегодняшней даты.
Пример: отчет за предыдущие сутки в 7:00 текущих суток
Задача: каждый день в 7:00 формировать отчет за предыдущие календарные сутки — с 0:00 до 0:00 — и сразу отправлять по почте. Понадобятся два правила.
Правило Создать
- В блоке
Триггервыберите источникПериодическая задача, периодичностьБесконечнои укажите в полеДата начала правилалюбую дату с временем07:00:00. - В блоке
Условиевыберите проверкуВремяи задайте в полеСовершать действие каждыезначение1День. - В блоке
Действиевыберите типСоздатьи задайте:Сдвиг относительно даты срабатывания правила—-31Час.Продолжительность отчета по умолчанию—1День.
Правило срабатывает в 7:00. Сдвиг на 31 час назад — сутки и семь часов — переносит начало отчета на 0:00 предыдущих суток, а продолжительность в сутки закрывает интервал в 0:00 текущих. Отчет охватывает ровно предыдущие календарные сутки.
Поле сдвига принимает одно число и одну единицу измерения, ввести «1 сутки 7 часов» нельзя. Если сдвиг не кратен суткам, переведите его в часы, как в этом примере.
Правило Отправить по почте настраивается как в разделе Отправка сразу после создания отчета: триггер Событие отчета, событие Своего отчета, тип изменения Сохранен. Оно сработает сразу после того, как правило Создать сохранит отчет, то есть тоже в 7:00.
Если правило не сработало
Проверяйте по порядку: если отчета нет или в нем нет нужного правила, до действия дело не дойдет.
- Отчет создан и сохранен? Откройте вкладку
Просмотр. Если отчета нет, проверьте правилоСоздать: оно должно быть включено, а периодичность — неОднократно. - Нужное правило есть в отчете и в каком оно статусе? Откройте отчет и нажмите
Информацияв панели инструментов — кнопка доступна только для сохраненных отчетов. На вкладкеПравила отчетанайдите правило по полюТип действияи проверьте:Время следующего срабатывания— если оно в будущем, действие еще не должно было выполниться. Сверьте дату с ожиданиями, особенно для триггераВремя(см. Как работает правило).Статус последнего срабатывания— значениеНе выполненоозначает, что правило сработало, а действие завершилось ошибкой. ДляОтправить по почтепереходите к пункту 3, для остальных действий — к пункту 4.
- Письмо дошло до очереди отправки? Откройте Журнал писем и найдите письмо по получателю или теме. Статус
Ожиданиепоказывает счетчик выполненных попыток, статусНе отправлено— что попытки закончились.Проверьте настройки SMTP в Системные настройки → Почтовый клиент кнопкойПредупреждениеПисьмо в статусе
Не отправленосистема повторно не отправляет — ни автоматически, ни после исправления настроек почты. Отправьте отчет вручную (см. Разовая отправка без правил) или дождитесь следующего срабатывания правила.Проверить соединение. Обратите внимание на связку порта и опцииИспользовать SSL: порт587обычно работает без SSL с последующим включением шифрования (STARTTLS), поэтому включенная опцияИспользовать SSLна этом порту приведет к ошибке соединения. - Есть ошибка выполнения действия? Для
Обновить,Сохранить в файл,Заблокировать,НапечататьиУдалитьподробности ищите в Журнале событий по тегуErrorза нужный период. - Периодические задачи работают без ошибок? На странице Диагностика → Сервер в блоке
Периодические задачипроверьте статус заданийСоздание отчетовиОбработка правил отчетов, а дляОтправить по почте— еще иОтправка почты. Задание с ошибкой отмечено предупреждающей иконкой.