Настройка системы напоминаний в Adempiere
Введение
В Adempiere можно настроить рассылку напоминаний пользователям о любых событиях системы.
Общий алгоритм работы:
1. Настраиваем частоту опроса системы. С данной периодичностью будет проверяться удовлетворение текущих параметров системы заданным параметрам.
2. Указываем текст сообщения-напоминания.
3. Настраиваем правила сравнения текущих параметров системы с заданными параметрами. Текущие параметры системы определяются SQL-запросом к системе, сравнение с заданными параметрами можно указывать в группе операторов WHERE SQL-запроса.
4. Указываем пользователей – адресатов, кто будет получать данное сообщение системы.
Таким образом, SQL-запрос с заданной периодичностью и с заданными условиями обращается к базе данных, а результат запроса отсылается виде напоминания указанным пользователям.
Рассмотрим это более подробно.
Настройка системы напоминаний.
Допустим, что у нас стоит задача – каждое утро отсылать секретарю компании напоминания о предстоящих в ближайшую неделю днях рождения наших клиентов.
1. Сначала с помощью SQL-менеджера (например, PL/SQL Developer) напишем и отладим запрос к базе данных, который будет отображать список фамилий наших клиентов, до дней рождения которых осталось меньше 7 дней.
SELECT AD_User.Name, C_BPartner.Name, AD_User.Birthday, 31*(MONTHS_BETWEEN (CURRENT_DATE, AD_User.Birthday)- 12*(EXTRACT (YEAR FROM CURRENT_DATE)-EXTRACT (YEAR FROM AD_User.Birthday)-1)) FROM AD_User, C_BPartner WHERE AD_User.C_BPartner_Id = C_BPartner.C_BPartner_Id AND (31*(MONTHS_BETWEEN (CURRENT_DATE, AD_User.Birthday)- 12*(EXTRACT (YEAR FROM CURRENT_DATE)-EXTRACT (YEAR FROM AD_User.Birthday)-1)))<=7
2. Зайдём в систему Adempiere с ролю администратора владельца, например Demo_Admin и откроем окно Тревога в меню «Анализ эффективности бизнеса -> Настройка анализа эффективности бизнеса». Заполним название тревоги/напоминания и текст сообщения тревоги пользователю, как показано на рисунке
3. В поле Процессор тревоги правой кнопкой мыши вызовем функцию «Рассмотреть».
4. В открывшемся окне Процессора тревоги заполним поле Название. А в поле Планирование правой кнопкой мыши вызовем функцию «Рассмотреть».
5. В окне Планирование укажем название и другие поля:
- Тип расписания – Частота;
- Тип частоты – День;
- Частота – 1;
- Поставим галочки на днях недели с Пн по Пт;
- Назначенный час: 10;
- Назначенные минуты: 00;
как показано на рисунке.
Таким образом, мы говорим системе, что запускать процессор тревоги нужно в 10 часов утра каждого рабочего дня.
Сохраняем документ Планирование и возвращаемся в документ Процессор тревоги
6. В документе «Процессор тревоги» обновляем поле «Планирование» и указываем в нём только что созданный планировщик. Сохраняем Процессор тревоги и возвращаемся в документ «Тревога».
7. В документе Тревога обновляем поле Процессор тревоги и указываем в нём только что созданный процессор тревоги. Сохраняем документ «Тревога» и переключаемся на его вкладку «Правило тревоги».
Указываем название правила, а в полях SELECT, FROM, WHERE указываем текст из соответствующей группы нашего запроса из п.1, как показано на рисунке.
Сохраняем документ и переключаемся на вкладку Получатель тревоги
8. На вкладке Получатель тревоги документа Тревога указываем список пользователей, которым будет осуществляться рассылка с напоминаниями о днях рождения.
9. Перезагружаем сервер приложения (без этого не работает).
10. Теперь, ежедневно 10 утра наш секретарь будет получать сообщение вида:
До дня рождения клиента осталось меньше 7 дней! #1: ------------------ NAME = Петров Иван Васильевич NAME = ОАО "Универсал" BIRTHDAY = 1960-04-16