Перейти к содержанию

Отправка сообщений нескольким получателям

При настройке шаблона процесса (см. Создание шаблона) в Comindware Business Application Platform есть возможность отправки оповещений по задачам (см. Настройка системных уведомлений) и процессных уведомлений (см. Настройка процессных уведомлений).

В зависимости от сложности настроенного решения информация об электронной почте получателей может находиться в различных местах, соответственно способы её получения могут быть различными:

1. При наличии информации в нескольких атрибутах связанного с процессом шаблона записи возможно вычисление получателей через функцию «FORMAT» языка выражений Comindware Expression Language (см. Список функций языка выражений Comindware).

Пример: в текущем шаблоне записи есть 3 атрибута с типом данных «Пользователь» с системными именами: Manager, Assignee и HR. Вычисление электронных почт данных пользователей будет происходить по следующему выражению:

 FORMAT("{0};{1};{2}",LIST($ManagerRef->cmw.account.mbox, $AssigneeRef->cmw.account.mbox, $HRRef->cmw.account.mbox))

2. При наличии данных в определенных группах пользователей возможно вычисление получателей через запрос типа (from a in db…) языка выражений Comindware Expression Language (см. Список операторов языка выражений Comindware).

Пример: в системе есть несколько пользовательских групп с именами «Инженеры» и «Бухгалтеры» с входящими в них пользователями. Чтобы вычислить их электронные адреса, введите следующее выражение:

 (from a in db->_AccountGroup where OR (a->groupName == "Инженеры",a->groupName == "Бухгалтеры") select a->groupUsers->cmw.account.mbox)

3. При наличии информации в связанных с текущим шаблонах записи возможно вычисление получателей через язык N3.

Пример: в текущем шаблоне записи «Тендеры» (системное имя «tenders»)  есть коллекция «Поставщики по тендеру» (системное имя «suppliers»), в шаблоне записи «Поставщики по тендеру» есть атрибут с типом данных «Ссылка» — Контактное лицо (системное имя «contact»), у которого есть параметр «Эл. почта» (системное имя «Email»). Следующее выражение находит все эл. почты всех контактных лиц всех поставщиков по данному тендеру и собирает текстовое значение через «;».

 

@prefix cmw: <http://comindware.com/logics#>.

@prefix object: <http://comindware.com/ontology/object#>.

@prefix cmwstring: <http://comindware.com/logics/string#>.

{

    ("tenders" "suppliers") object:findProperty ?suppliersProperty.

    ("tender_suppliers" "contact") object:findProperty ?contactProperty.

    ("contacts" "Email") object:findProperty ?emailProperty.

    from

    {

        ?item ?suppliersProperty ?suppliers.

        ?suppliers ?contactProperty ?contact.

        ?contact ?emailProperty ?email.

    } select ?email -> ?emailValues.

    (";" ?emailValues) cmwstring:join ?joinedEmails.

            ?joinedEmails == ?value.

}

Приведенные варианты и примеры вычислений являются справочными. Решение об использовании того или иного выражения принимаются в каждом конкретном случае.