Настройка периодических напоминаний об открытых задачах
Comindware Business Application Platform поддерживает в базовой конфигурации отправку системных уведомлений (См. Настройка системных уведомлений) пользователю по поставленной задаче или процессного уведомления (См. Настройка отправки уведомлений по эл. почте) с информацией из бизнес-процесса.
Иногда возникает необходимость настроить напоминания сотруднику об его открытых задачах, например, ежедневно в определенное время.
Для данной настройки создайте 2 бизнес-процесса:
- Поиск сотрудников для отправки напоминания;
- Оправка ежедневного напоминания.
Первый процесс будет запускаться по таймеру ежедневно, например, в 7:00 и искать сотрудников, у которых есть открытые задачи в этот момент времени, и по каждому запускать параллельно в цикле подпроцесс «Отправка ежедневного напоминания», который в свою очередь будет формировать и отправлять перечень открытых задач сотрудника на эл. почту в виде таблицы.
Настройка процесса «Поиск сотрудников для отправки напоминания»
1. Создайте новый шаблон процесса.
Создание шаблона процесса
2. В связанном с процессом шаблоне записи создайте атрибут:
- Сотрудники (Sotrudniki) — вычисляемый атрибут с типом данных «Пользователь». Вставьте выражение:
@prefix cmw: <http://comindware.com/logics#>. @prefix container: <http://comindware.com/ontology/container#>. @prefix account: <http://comindware.com/ontology/account#>. @prefix taskStatus: <http://comindware.com/ontology/taskStatus#>.
{ ?class cmw:className "Account". ?value a ?class. ?value account:active true. not {?value cmw:isDisabled true.}. or {?tasks cmw:assignee ?value.} or {?tasks cmw:possibleAssignee ?value.}. ?tasks cmw:taskStatus taskStatus:inProgress. } |
3. Нарисуйте схему процесса по типу:
Типовая схема процесса
4. Настройте стартовое событие-таймер.
Настройка таймера
5. Настройте запуск повторно-используемого подпроцесса.
Настройка подпроцесса
Вставьте следующее выражение:
from a in db-> Poiskisotrudnikovdlyaotpravkinapominaniya where a->id==$id select a->Sotrudniki |
Настройка процесса «Отправка ежедневного напоминания»
1. Создайте новый шаблон процесса.
Создание шаблона процесса
2. В связанном с процессом шаблоне записи создайте атрибуты:
- Сотрудник (Sotrudnik) — атрибут с типом данных «Пользователь», кому будет отправляться напоминание;
- Тело письма (body) — вычисляемый атрибут с типом данных «Текст» и форматом отображения «HTML» с таблицей задач. Вставьте следующее выражение:
@prefix cmw: <http://comindware.com/logics#>. @prefix string: <http://www.w3.org/2000/10/swap/string#>. @prefix cmwstring: <http://comindware.com/logics/string#>. @prefix object: <http://comindware.com/ontology/object#>. @prefix configuration: <http://comindware.com/ontology/configuration#>. @prefix taskStatus: <http://comindware.com/ontology/taskStatus#>.
{ ?confid a configuration:Configuration. ?confid configuration:baseUri ?baseUri. ("Poiskisotrudnikovdlyaotpravkinapominaniya" "Sotrudnik") object:findProperty ?Sotrudnik.
?item ?Sotrudnik ?SotrudnikVal.
#First table ("<p style='font-size: 100%' >Перечень задач на исполнение</p>" "<table border='1' style='width: 60%; border-collapse: collapse; border: 1px solid black' ><tbody> <tr><td style='padding: 2px; width: 200px; border: 1px solid black'>Задача</td> <td style='width: 200px; padding: 2px; border: 1px solid black'>Срок</td></tr>") string:concatenation ?firstHeaderRow.
from { ?tasks a cmw:UserTask. or {?tasks cmw:assignee ?SotrudnikVal.} or {?tasks cmw:possibleAssignee ?SotrudnikVal.}. ?tasks cmw:taskStatus taskStatus:inProgress. ?tasks cmw:title ?title. ?tasks cmw:id ?id. ("{0}" ?title) string:format ?titleVal. ("{0}" ?id) string:format ?idVal.
or {?tasks cmw:dueDate ?dueDate.} or {"" -> ?dueDate.}.
("{0}" ?dueDate) string:format ?dueDateVal.
("<tr><td class='A' style='padding: 2px; border: 1px solid black; '><a href='" ?baseUri "#task/" ?idVal "'>" ?titleVal "</a></td><td align='right' style='padding: 2px; border: 1px solid black; text-align: right'>" ?dueDateVal "</td></tr>") string:concatenation ?firstRow. } select ?firstRow -> ?firstFactrow. (" " ?firstFactrow) cmwstring:join ?firstFact. (?firstHeaderRow ?firstFact "</tbody></table> <br/>") string:concatenation ?first. ?first -> ?value. } |
- Кому (to) — вычисляемый атрибут с типом данных «Текст» с адресом эл. почты сотрудника. Вставьте следующее выражение:
$SotrudnikRef->cmw.account.mbox |
3. Нарисуйте схему процесса по типу:
Типовая схема процесса
4. Настройте параметры отправки напоминания (См. Настройка События-отправка сообщения).
В выбранный шаблон сообщения настройте передачу значений соответствующих атрибутов шаблона записи.
5. Опубликуйте оба процесса и протестируйте.
Перед началом тестирования проверьте работоспособность канала связи (см. Добавление канала для отправки почты) и правильность настройки исходящего пути передачи данных (см. Добавление исходящего пути передачи данных).
Примечание : для корректной работы вычисляемых полей и формулы запуска подпроцесса проверьте точное соответствие системного имени каждого шаблона записи и атрибутов, а также шаблонов процессов.