Вопрос

Обработка входящих писем

Добрый день!



Интересует вопрос:

1) как достать тело письма и "засунуть" его в текстовое поле (как это делает базовые процессы), немного не понимаю процесс (в теле активности текст в html коде)

2) как забирать из письма вложения и добавлять их к вложениям другого объекта?

Нравится

9 комментариев

Логика создания инцидента по письму реализована в БП IncidentRegistrationFromEmailProcess, его функции RegisterIncidentFromEmail. Там обращаются к вспомогательной схеме IncidentRegistrationFromEmaillHelper. В ней и сделано: функция CreateNewCaseByEmail создаёт запись и наполняет поля, функция ClearHtmlText превращает содержимое тела письма из HTML в текст.

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

А базовой логики переноса файлов не реализовано?

См. UploadAttachmentsData в ExchangeUtility.

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

Стартовым сигналом в  БП IncidentRegistrationFromEmailProcess является FinishedSyncSession и если я меняю его на простую активность(письмо) то все рушится. Как в этом плане лучше реализовать регистрацию обращения по письму, не изобретая велосипед. Ведь есть уже практически готовый код, но не могу понять как его переделать.

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

Не могу пронять логику:

- Поступает письмо по имеющемуся обращению

- В активности прикрепляется обращение

Но, если я делаю стартовый сигнал "Новая активность" (входящее письмо) с заполненным обращением - ничего не выходит. А если и запускается процесс (не указываю, что "обращение" заполнено), то в ходе процесса выясняю, что "обращение" не заполнено. 



При этом если я вручную меняю обращение и БП запускается после изменения - все работает как положено.



Вопрос - какой тогда использовать входной сигнал для обработки только что входящей почты с привязанным обращением?

Стандартный БП IncidentRegistrationFromEmailProcess запускается по сигналу «Добавление записи в FinishedSyncSession». Затем Id записей активностей получают из Id сессии при помощи функции GetActivityRecordsId, которая реализована в схеме этого же БП.

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

Проблема не в том, что я не могу найти активность, а в том что в этой активности БП не видит привязанное обращение. Внешне я вижу, что он определил правильно все. Я могу зайти посмотреть письмо и что оно привязано к нужному обращению. Но сам БП активно игнорирует этот факт.

Значит, на момент срабатывания оно ещё не привязано, а привязка происходит позже, чем отрабатывает Ваша логика.

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