Можно ли настроить оповещение по скрипту:
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 = "[URL=mailto:ivan.votchinov@uralkali.com]ivan.votchinov@uralkali.com[/URL]" -- Укажите email для уведомлений
.Subject = "Оповещение Zulu: данные с расходомеров не поступают"
.Body = Message
.Send
End With
' Освобождаем ресурсы
Set MailItem = Nothing
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 = "[URL=mailto:ivan.votchinov@uralkali.com]ivan.votchinov@uralkali.com[/URL]" -- Укажите email для уведомлений
.Subject = "Оповещение Zulu: данные с расходомеров не поступают"
.Body = Message
.Send
End With
' Освобождаем ресурсы
Set MailItem = Nothing
Изменено: - 12.03.2025 06:19:50