Подтягивание вложенных файлов из задачи в E-mail

Добрый день!

Есть задача с вложенными файлам, отправляем E-mail либо через кнопку "Добавить связанную активность", либо из вкладки "E-mail", надо, чтобы вложенные файлы подтягивались в E-mail из задачи.

Нравится

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

Добрый день Евгений!!!

данную задачу решить можно, но есть сразу несколько вопросов. Файлы каждой сущности в BPMOnline хранятся в отдельных таблицах. Это один момент. Второй момент когда к примеру создаешь Контрагента и при создание загружаешь Файл (на закладке Файлы и примечания), то автоматически происходит сохранение карточки Контрагента, так как Связь в таблице AccountFile с таблицей Account, по полю AccountId имеет "1 ко многим" и следовательно на момент Добавление записи в таблицу AccountFile, запись в Таблице Account должны быть создана.

Так же и с вложением файлов в Емайлы, данную задачу можно решить, но запись в таблице Активности при создание Емайла и добавление в него Файла будет уже сохранена. И здесь сразу появляется вопрос а Если пользователь сначало захотел направить письмо с Вложением а потом отказался, а запись в таблице, при нажатие Отмены, уже будет создана. Поэтому у меня вопрос вас такая ситуация устроит? если да то тогда подскажу как выполнить вашу задачу. Спасибо!!!

Добрый день, Михаил!
В целом устроит, т.к. достаточно редко происходит отмена писем.

Еще один момент: как я понимаю функционал существует и он работает при пересылке письме - появляется сообщение с вопросом: "Скопировать вложения из оригинального письма?" Остается только применить этот функционал между задачей и e-mail

Добрый день Евгений!!!

весь механизм копирования вложения реализован на C# и вызывается на клиенте следующим кодом:

var requestConfig = {
     serviceName: "EntityUtilsService",
     methodName: "CopyEntities",
     data: {
          sourceEntityId: forwardEmailId,
          recipientEntityId: this.get("Id"),
          columnName: "Activity",
          entitySchemaName: "Activity",
          sourceEntitySchemaNames: ["ActivityFile"]
     }
};

сейчас подумаю куда правильнее вставить данный код при Добавление Связанной активности. и в следующем посте отвечу. так как здесь вижу следующее решение, перед добавлением связанной Активности, требуется проверить есть вложение в текущей Активности или нет, и если есть тогда Задать вопрос пользователю, что желает или нет скопировать вложение и если да создавать Емайл и копировать вложения.

Добрый день, Михаил!
Куда правильнее вставить данный код?

Добрый день Евгений!!!

самое интересное заключается в том, что меню "Связанная активность" формируется (генерируется) автоматически в Миксине "QuickAddMixin", результат формирования помещается в "QuickAddMenuItems". И далее результат мы видим на экране. После того как пользователь в меню "Связанной активности", выбрал какую связанную активность он хочет добавить, отрабатывается метод "onQuickAddRecord", данный метод отрабатывается в схеме BaseSectionV2 и далее по подписки возвращается обратно в Миксин. Если идти далее по цепочки то последний метод, что открывает страницу редактирования - это метод "openQuickActivityPage". Вот его я думаю и требуется изменить. Но здесь нужно не забыть, что нам нужно передать через подписку "sourceEntityId", т.е Id родительской задачи и далее уже вставить тот код что я писал ранее. Вставлять код лучше в цикл:

this.Terrasoft.chain(
  ....
);

что есть в методе "openQuickActivityPage", миксина "QuickAddMixin"

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