Коллеги, приветствую.
Нужно реализовать уведомление пользователю, что через 2 часа срок разрешения обращения закончится.
2 часа (120 минут) буду зашивать в системную настройку (чтобы можно было варьировать админу)
Хочу реализовать с помощью БП по таймеру, который раз в час будет отбирать обращения по определенным критериям.
далее, из записи вычитаю поле "время разрешения" (тип поля - дата/время) и тут главная загвозка.... как мне высчитать, что обращение должно разрешиться через 2 часа (120 минут)?
если должно решиться больше 2 часов - пропустить запись
если меньше, то по идее, должно было уже отправиться уведомление.
ко всему прочему, кажется, что могут возникнут потери записей (из разряда, если на момент проверки, "время разрешения" должно быть через 2 часа и 5 минут, то в следующую проверку может быть уже меньше 2 часов) - это смущает.
из идей:
- пробовать преобразовать поле с помощью формул .TotalHours/.TotalMinutes в часы/минуты и сравнивать..
- попробовать с помощью формул .AddMinutes(), .AddHours() добавить настройке "текущее время и дата" значение системной настройки и сравнить...
в общем, буду рада советом, а сама пошла пока пробовать :)
Нравится
Aleksei Efimenko,
я прибегла к другому решению:
- сделала системную настройку, которая хранит значение за сколько нужно уведомление (в минутах)
- сделала 2 параметра:
Параметр 1: [#Системная переменная.Текущее значение времени#]. AddMinutes([число из системной настройки])
Параметр 2: параметр 1. AddMinutes(59) - чтобы получился час
- и развела условными потоками:
1. если время разрешение больше моих параметров или меньше - проскакиваю
2. если время разрешение попадает в промежуток параметров - высылаю уведомление
Создаю новое поле - Reminding time. И его сравниваю.
Ещё процессы, которые его заполняют. И поле с временем, когда уведомление было отправлено. Это позволит избежать ситуации, когда таймер не сработает, например. Надо всего лишь выбирать те, у которых время уведомления прошло, но уведомление не было отправлено
Александра Дубс, подскажите, решило ли вашу задачу предоставленное решение от Владимира?
Aleksei Efimenko,
я прибегла к другому решению:
- сделала системную настройку, которая хранит значение за сколько нужно уведомление (в минутах)
- сделала 2 параметра:
Параметр 1: [#Системная переменная.Текущее значение времени#]. AddMinutes([число из системной настройки])
Параметр 2: параметр 1. AddMinutes(59) - чтобы получился час
- и развела условными потоками:
1. если время разрешение больше моих параметров или меньше - проскакиваю
2. если время разрешение попадает в промежуток параметров - высылаю уведомление