Друзья. <…> вырезано добрым феем. Третья ночь без сна, музыка в ушах, треск в мозгах. Я обожаю SAP 🙂

Сегодня мы научимся отправлять письма из потока операции (Workflow) на множество адресов электронной почты. Вариантов реализации много.

  1. Создать цикл и отправить
  2. Сформировать строчку из множества адресов, разделенных точкой с запятой, и отправить
  3. Использовать списки рассылки

Мы пойдем по самому сложному и непонятному пути, который нигде толком не описан в сети. В SBWP создаем общий список рассылки, примерно вот такой:

Список рассылки

Создаем для примера и простоты отладки новый поток в транзакции SBWB. В нем будет всего один шаг — отправить всем письмо счастья.

Создаем один шаг типа Activity:

Workflow Builder

Рассказываю. Есть в системе шаг вида Send Mail, который классный и пушистый, но он не умеет работать с массовыми рассылками. Поэтому приходится изобретать ракету и поджигать самостоятельно. Мы с вами создаем задачу (два справа от Task нажимаем на пимпочку справа от очков), где присвоим ей стандартный объект SELFITEM и метод SENDTASKDESCRIPTION, который по сути отправит самого себя куда подальше — адресатам. Есть тонкость. Надо как-то сказать ему, что мы хотим отправить толпе людей письмо. Для этого у метода есть два параметра: TypeId — тип адресата и AddressStrings — адрес адресата. Для отправки людям из Shared DIstribution List, который мы создали в SAP Office выше, нужно указать тип C. Это вы можете подглядеть в домене для параметра метода (Кэп!). А в поле адреса мы указываем название самого списка рассылки, его коротую часть. Вот так это выглядит:

Workflow Standard Task

и сама привязка параметров к контейнеру. Так как у нас статичный  список для рассылки, то мы прямо тут укажем параметры. Нажимаем на зеленую кнопочку с двумя квадратиками:

Workflow object method

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

Сохраняем все, выходим и в самой транзакции SWDD запускаем поток по кнопке F8. Снова F8. Вверху выбираем Workflow Log и любуемся.

Workflow logОсталось проверить. Открываем нашу почту в SBWP и …

Пойду сам проверю, пока вам не покажу, вдруг не получилось.

Ха!

Business Workplace (SBWP)

Теперь отвечаю на вопрос читателя, как там быть с агентами. Потоки операций построены на базе контейнеров с данными по аналогии с PUST. Точнее, PUST построен на подходах Workflow. Каждый чих засовывается в контейнер с входными и выходными параметрами. Мы можем на уровне всего потока определить свой параметр и менять его в любое время, передавать в роли агента, тем самым глобально определяя согласущих лиц. Можем на уровне каждой задачи определять агента. Причем определить можно жестко, а можно с помощью так называемых правил, когда мы задаем алгоритм, по которому система должна найти агента — согласующего. Это может быть путь анализа, функциональный модуль, объект или еще что. Любой каприс за ваше терпение… Выше на экране я привел пример правила для выбора агента из списка почтовой рассылки. 30000012 — это правило для выбора всех получателей из списка рассылки из SAP Office. Тоже вариант, к слову, для организации кругов согласующих лиц.