RUS  ENG 

Настройка оповещения

Страницы: 1
RSS
Настройка оповещения, Можно ли настроить оповещение по скрипту Версия 10.0.0.9020u.x64
 
Можно ли настроить оповещение по скрипту:
Sub CheckDataAndNotify()
Dim Db As Object
Dim LastRecordTime As Date
Dim CurrentTime As Date
Dim TimeDifference As Double
Dim NotificationMessage As String

' Открываем базу данных
Set Db = CreateObject("Zb.ZbDatabase")
Db.Open "Z:\skru-3-nydro\Водоснабжение СКРУ-3 В1.sqlite" ' Укажите имя вашей базы данных

' Получаем время последней записи
LastRecordTime = Db.ExecuteScalar("SEL ECT MAX(TagTimeStamp) FR OM HistoryData") -- Укажите таблицу и колонку с временем

' Получаем текущее время
CurrentTime = Now

' Вычисляем разницу во времени (в минутах)
TimeDifference = DateDiff("n", LastRecordTime, CurrentTime)

' Проверяем, превышает ли разница допустимый порог (например, 10 минут)
If TimeDifference > 10 Then
NotificationMessage = "Ошибка: данные с расходомеров не поступают уже " & TimeDifference & " минут."

' Отправляем оповещение
MsgBox NotificationMessage, vbCritical, "Оповещение"

' Дополнительно: отправка уведомления по электронной почте
SendEmailNotification NotificationMessage
End If
End Sub

Sub SendEmailNotification(Message As String)
Dim OutlookApp As Object
Dim MailItem As Object

' Создаем объект Outlook
Set OutlookApp = CreateObject("Outlook.Application")
Set MailItem = OutlookApp.CreateItem(0)

' Настраиваем письмо
With MailItem
.To = "ivan.votchinov@uralkali.com" -- Укажите email для уведомлений
.Subject = "Оповещение Zulu: данные с расходомеров не поступают"
.Body = Message
.Send
End With

' Освобождаем ресурсы
Set MailItem = Nothing
Изменено: Иван Вотчинов - 12.03.2025 06:19:50
 
Цитата
написал:
Можно ли настроить оповещение по скрипту:
Добрый день. Уточните, пожалуйста, в чем конкретно вопрос?
 
Необходимо чтоб раз в 60 мин запускался данный скрипт. И проверить правильность его написания
 
Цитата
написал:
Необходимо чтоб раз в 60 мин запускался данный скрипт. И проверить правильность его написания
1. Скрипт из Zulu по таймеру не запускается. Можно через плагин. Потом, оповещение все-таки не должно зависеть, запущена где-то Zulu или нет. Скрипт можно запускать по расписанию средствами Windows, например.

2. Насчет правильности текста.

Set Db = CreateObject("Zb.ZbDatabase") создает наш объект.
Наш объект методом Open может открыть только нашу базу данных имя которой можно получить, например, через объект Layer. Примеры есть ( https://politerm.com/samples/zulugis/macros/zapis-dannykh-v-tablitsy-sloya/ )

"Z:\skru-3-nydro\Водоснабжение СКРУ-3 В1.sqlite" точно не является именем нашей базы

Метод Db.ExecuteScalar у нашего объекта ZbDatabase отсутствует

Правильно ли описана работа с Outlook? Тут лучше обратиться к описанию Outlook
Изменено: Алексей Аширов - 12.03.2025 21:16:41
Страницы: 1