Вопрос

БП: создать контакт по входящему email

Коллеги, простенький вопрос :)

задача: автоматически создать контакт по входящему email.

Создала БП. Сигнал=входящий email, читаем данные из Активности, тип Email

Необходимо получить отдельно email и отдельно ФИО отправителя.

К сожалению, вижу только одно поле [От кого], которое объединяет данные - SenderEnum

Пример: Сергей Петрович Петров <petrov.sergejpetrovich@bk.ru>; 

Подскажите, как прочитать отдельно ФИО и отдельно email ?

Пыталась читать объект [Email] - данные не вычитываются. Спасибо.

Нравится

22 комментария
Лучший ответ

Милова Марина Федоровна,

Действитель, забыл using)

должно быть так:

Можно попробовать в скрипт-таске обработать результат:

var senderEnum = @"TEST TESTER &lt;test@test.ru&gt;";
var mail = Regex.Match(senderEnum, "&lt;.*&gt;").Captures[0].Value.Replace("&lt;", "").Replace("&gt;", "");
var user = Regex.Match(senderEnum, "^.*?&lt;").Captures[0].Value;
user = user.Substring(0, user.Length - 2);

 

Варфоломеев Данила,

Спасибо. К сожалению, не являюсь разработчиком. В каком элементе БП добавить скрипт-таск? [Добавить данные]?

В смысле «в элементе добавить скрипт-таск»? Скрипт сам по себе является элементом. Читаете из одного параметра, пишете в другой и третий. Как в коде работать с параметрами, описано тут.

А ещё можно попробовать эту логику вставить в элемент-формулу. Отдельно формулы для имени и для адреса.

Милова Марина Федоровна,

Ок. Упростим задачу.

1) Создайте 3 переменные в БП (строки). В SenderEnum с помощью Формулы передавайте значение поля (которое считываете из активности/письма)

2) Добавьте задание-сценарий (script-task)

3) Вставьте туда код (копипаста).

var senderEnum = Get&lt;string&gt;("SenderEnum");
var mail = Regex.Match(senderEnum, "&lt;.*&gt;").Captures[0].Value.Replace("&lt;", "").Replace("&gt;", "");
var user = Regex.Match(senderEnum, "^.*?&lt;").Captures[0].Value;
user = user.Substring(0, user.Length - 2);
 
Set("User", user);
Set("Email", mail);
return true;

Выглядеть в итоге должно так:

Всё. После выполнения сценария в параметре User будет лежать текст с фио пользователя, в Email - почта.

Варфоломеев Данила,

И все свалится если не добавлять using в БП, а как это сделать и не все программисты найдут :)

Коллеги, уже писала, что не программист. У меня сейчас вот такой процесс

Варфоломеев Данила,

Вставила задание-сценарий. Идет публикация

Григорий, жду, чем закончится 

Ну вроде не всё так страшно

В журнале процессов зафиксировано, что задание сценарий не выполнилось.

По совету Григория добавьте в Usings значение «System.Text.RegularExpressions». Usings находится на вкладке «МЕТОДЫ» свойств процесса.

Зверев Александр,

Пространство имен?

 

Да.

Публикую

Марина, а зачем Вы написали в Usings свою фамилию?

Поле обязательное для заполнения. Не знала что написать. Могу изменить :)))

Милова Марина Федоровна,

Действитель, забыл using)

должно быть так:

Коллеги, спасибо огромное за поддержку. В очередной раз поняла, что права аналитика в бизнес-процессах очень ограничены :(

Показать все комментарии