Есть бизнес-задача: раз в сутки уведомлять кастомеров об окончании срока аренды оборудования письмом на электронную почту.
Проблем с добавлением своего поля с датой возврата не возникло, а вот для уведомлений готового решения не нашел. После беглого чтения документации наметились варианты:
Добавлять LifeCycle в PhysicalDevice
Добавлять StopWatch’ в PhysicalDevice
Писать свой триггер
Использовать объекты с LifeCycle (например тикеты)
Интегрировать с внешним сервисом (например, тупо скриптом по крону получать выборку и что-то с ней делать)
Задача интересная, и способов её решения есть много, тут кто на что учился)
Нужно немного уточнить условие: уведомлять об окончании срока аренды конкретного оборудования с указанием его наименования в письме. Это важно, поскольку для того, чтобы в письме вставить какие-то параметры объекта через $this->name$, нужно чтобы триггер сработал именно на этом объекте.
Для себя я выбрал такой вариант: https://github.com/itop-itsm-ru/alarm-clock-attribute. Этот модуль добавляет новый тип поля “Будильник”, который срабатывает в указанное время и может запускать триггер. Там же есть пример.
Если кастомеров не много, а список оборудования у каждого большой, то я бы сделал дату окончания аренды в договоре, к которому привязал бы все КЕ заказчика. Тогда можно уведомлять одним письмом со списком оборудования.
@vladimir, что-то не выходит каменный цветок. Установил по инструкции, атрибут, триггер добавил.
Эти куски выполняю в QueryRunner’е -
SELECT {$sClass} WHERE {$sAttCode} < '{$sNow}' AND {$sAttCode}_ac_enabled = 1;
SELECT TriggerOnAlarmClock AS t WHERE t.target_class IN ('$sClassList') AND :attcode REGEXP alarm_clock_attcodes
- все ок, нужные объекты/триггры находит.
Попробовал в лоб: error_log повставлять в код, но что-то ничего не увидел в логах.
К сожалению, я далек от php. Может посоветуете как по-простому подебажить?
Будьте внимательны, теоретически большое кол-во объектов с будильником может отрицательно сказаться на производительности. Раз в минуту крон ищет кандидатов на срабатывание и обновляет статус будильника, если он сработал.
Добрый день. Не подскажите как alarm-clock-attribute работает с iTop версии 2.3.3-3159?
Пытался поставить по инструкции, но выдаёт ошибку во время установки.
Failed to process class ‘Person’, from ‘/var/www/profivit.ru/www/datamodels/2.x/itop-config-mgmt’: Field: ‘picture’, (type: AttributeImage), missing (or empty) mandatory tag ‘sql’ under the tag 'field’
Заранее спасибо