Автоматическая регулярная отправка отчетов на emal

Avatar
  • обновлен
  • На рассмотрении

Мне нужно реализовать такую задачу. 

В системе регулярно формируются отчеты по примеру описанного здесь:

https://simplight.ru/manual_next/redaktor-otchetov/otchet-periodicheskiy

В отчете будут содержаться данные нескольких каналов: средние значения и минимумы/максимумы за указанные интервалы времени.


Эти отчеты должны регулярно отправляться на указанную электронную почту. 

Как я понял, для этого у вас служит функция: https://simplight.ru/manual_next/opoveshchenie-po-email/sendemail


Вопрос в том, как сделать, чтобы это делалось автоматически. (В документации я этого не нашел)

Приведите, пожалуйста, пример скрипта, решающего эту задачу.

Avatar
Станислав С

Отправил. Жду ответ

Avatar
Цитата от Станислав С

Если в генераторе отчетов выбрать шаблон и нажать "Сформировать отчет", появляется указанное окно с ошибкой.

А эта ошибка всегда возникает, независимо от того, какой отчет выбран.

Версия 4.7.6.50 Pro.

День добрый.

Пришлите Ваш проект для проверки на simp@simplight.ru

Avatar
Станислав С

Если в генераторе отчетов выбрать шаблон и нажать "Сформировать отчет", появляется указанное окно с ошибкой.

А эта ошибка всегда возникает, независимо от того, какой отчет выбран.

Версия 4.7.6.50 Pro.

Avatar
Цитата от Станислав С

В общем, мне так и не удалось найти нормальный способ генерации отчетов.

Мне нужно сделать, чтобы при возникновении определенного события (авария в системе), 

делать 10-минутный срез всех основных параметров с секундной дискретностью.

Проблема в том, что модуль генерации отчетов не позволяет выгружать отчет в формате Excel (2007).

Возникает ошибка доступа (скриншот - во вложении). 

Формат PDF мне не подходит, поскольку мне нужно потом эти данные обрабатывать и строить по ним графики. 

Я пробовал идти другим путем: написал скрипт, который при возникновении определенных условий в системе, запускает посекундную запись в файл csv. Возникает проблема, связанная с тем, что возникают пропуски в данных: значения отдельных каналов не обновляются по 5 и более секунд. Получается, что Simp Light не успевает записывать 2 десятка параметров со скоростью 1 значение в секунду! 

Я вижу, на данный момент, единственный вариант решить эту задачу:

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

GetValueFromStream и дальше записывать эти значения с меткой времени в строку,

а из строк формировать уже файл csv.

Однако, мне кажется, данный путь трудоемким и нерациональным - хотелось бы найти более простое решение.


Что вы можете порекомендовать?!

Screenshot - 19.02.2021 , 11_22_01.png

День добрый, Станислав.

Уточните, на каком этапе появляется ошибка при генерации отчета в Эксель. Если есть возможность пришлите Ваш проект на нашу почту simp@simplight.ru. Проверим Ваш отчет, и дадим рекомендации как действовать дальше. Так же укажите какая версия СИМП ЛАЙТ установлена на данный момент (цифры версии и тип лицензии Лайт, Про, Ент)

Avatar
Станислав С

В общем, мне так и не удалось найти нормальный способ генерации отчетов.

Мне нужно сделать, чтобы при возникновении определенного события (авария в системе), 

делать 10-минутный срез всех основных параметров с секундной дискретностью.

Проблема в том, что модуль генерации отчетов не позволяет выгружать отчет в формате Excel (2007).

Возникает ошибка доступа (скриншот - во вложении). 

Формат PDF мне не подходит, поскольку мне нужно потом эти данные обрабатывать и строить по ним графики. 

Я пробовал идти другим путем: написал скрипт, который при возникновении определенных условий в системе, запускает посекундную запись в файл csv. Возникает проблема, связанная с тем, что возникают пропуски в данных: значения отдельных каналов не обновляются по 5 и более секунд. Получается, что Simp Light не успевает записывать 2 десятка параметров со скоростью 1 значение в секунду! 

Я вижу, на данный момент, единственный вариант решить эту задачу:

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

GetValueFromStream и дальше записывать эти значения с меткой времени в строку,

а из строк формировать уже файл csv.

Однако, мне кажется, данный путь трудоемким и нерациональным - хотелось бы найти более простое решение.


Что вы можете порекомендовать?!

Screenshot - 19.02.2021 , 11_22_01.png

Avatar
Цитата от Станислав С

Нет. Я прочитал в документации, как это сделать вручную.

А мне нужно понять по шагам, как это автоматизировать.

День добрый.

Решение: В скрипте в необходимое время вызываете на генерацию необходимый отчет - https://simplight.ru/manual_next/razdel/savereporttofile

Указываете при вызове место сохранения и имя создаваемого отчета.

Затем к примеру раз в сутки отправляете сформированный отчет на почту (имя файла отчета и путь его расположения Вы знаете, прикрепляете этот файл к письму) -  https://simplight.ru/manual_next/opoveshchenie-po-email/sendemail

Avatar
Станислав С

Нет. Я прочитал в документации, как это сделать вручную.

А мне нужно понять по шагам, как это автоматизировать.

Avatar
СИМП Лайт (тех поддержка)
  • На рассмотрении

День добрый.

Отчет генерируете скриптом? Какую функцию используете SaveReportToFile?