Добрый день!
Есть задача с вложенными файлам, отправляем E-mail либо через кнопку "Добавить связанную активность", либо из вкладки "E-mail", надо, чтобы вложенные файлы подтягивались в E-mail из задачи.
Нравится
Добрый день Евгений!!!
данную задачу решить можно, но есть сразу несколько вопросов. Файлы каждой сущности в 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"