Помогите понять, как работают триггеры:
На начало состояния
На окончание состояния
Пороговое
Задача состоит в том, что нужно чтобы при изменении жизненного цикла(статуса) заявки на изменение, прилетало уведомление на почту. Т.е. если заявка переходит в статус:
утверждено -> срабатывание триггера, отправка сообщения об утверждении
назначении -> срабатывание триггера, отправка сообщения о назначении ответчтвенных
планирование -> срабатывание триггера,
реализация -> срабатывание триггера, уведомление о закрытие заявки
Каждый создает триггеры и уведомления под себя. Что Вы подразумеваете под примерами в полном виде?
Создается триггер на определенное действие, на определенный класс, его состояние, если необходимо - фильтр. К нему прикрепляется уведомления. Примеры - см. выше.
Примеры предоставлены в виде части некого большого html хелпера по iTop, я второй день изучаю iTop и мне ОЧЕНЬ интересно было бы почитать этот хелпер целиком, а где его взять я не знаю. Если дадите ссылку вышлите или любым другим способом был бы признателен!
У меня собственно такая проблема. Модуль “Email Reply” шлет письма при изменении общего журнала агентом, но если лог поменял сам пользователь, то агенту ничего не приходит (в этом уведомлении я использую стандартный триггер, созданный модулем User Request public log update без Фильтра OQL). Так вот, что нужно прописать в фильтре oql, чтобы агенту приходили уведомления об изменении журнала самим клиентом?
Извини. Это немного не то.
Это при общении с другими агентами.
По твоему вопросу:
Создаешь триггер - Триггер (при обновлении из портала)
Целевой класс - Запрос
OQL фильтр - SELECT UserRequest WHERE status != ‘closed’ AND status = ‘assigned’ (когда запрос назначен)
В действиях триггера:
Кому SELECT Person WHERE id = :this->agent_id
Если запрос еще не назначен, а пользователь что-то записал в общем журнале, то создаешь еще один триггер - Триггер (при обновлении из портала)
OQL фильтр - SELECT UserRequest WHERE status != ‘closed’ AND status != ‘assigned’ (не назначен)
В действиях триггера:
Кому SELECT Contact AS c JOIN lnkContactToService AS l1 ON l1.contact_id = c.id WHERE l1.service_id = :this->service_id (всем Агентам, которые отвечают за этот Сервис)
Копия SELECT Person WHERE id = :this->approver_id AND :this->status = ‘waiting_for_approval’ AND :this->approver_id != :current_contact_id (утверждающему, если запрос отправлен на утверждение)
Большое спасибо, вся проблема была в трудности перевода .
Триггер (на обновление журнала) - изменение журнала агентом.
Триггер (при обновлении из портала) - изменение журнала пользователем.
OQL фильтры также сработали как надо.