Вопрос

Коллеги, доброго дня!

На странице лендинга клиент может вложить файл. Нужно передать этот файл в лид как вложение на деталь Файлы и Ссылки.

Что то никак не можем записать его в облачную систему.

Подскажите,  какие варианты есть. Спасибо!

У меня такой же вопрос

3 комментария

По идее, если на сайте перед отправкой, преобразовать файл в BLOB, то никаких проблем со вставкой в BPM возникнуть уже не должно

Как вариант, можно не использовать механизм лендингов, а по веб-форме, не связанной с bpm'online, генерировать и отправлять письмо со вложениями.

Затем в bpm'online его разбирать как обычное письмо со вложениями. Подробнее см. обсуждение похожего вопроса.

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

Коллеги, спасибо!  Таки уже реализовали через лендинг). Проблема была, что лендинг только с одной табл.работает. Только преобразование файла в BLOB результата не дает. Нужно  положить файл в другую табл. Трудоемко конечно получилось, но работает).

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

На Marketplace опубликовано новое дополнение, расширяющее стандартные возможности системы bpm'online по работе с вложениями.
Дополнение создано командой компании "Аплана.Бизнес-решения", входящей в ГК "АйТи".

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

Более подробная информация о дополнении доступна по ссылке: https://marketplace.terrasoft.ru/app/file-manager-bpmonline

Поделиться

1 комментарий

Лично видел как это работает. Очень круто! 

Рекомендую к установке в каждый проект.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

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

Если ли возможность добавить поля для вложения документов в объект?
Если нет, то как это можно сделать?

У меня такой же вопрос

1 комментарий

Здравствуйте!

Предположим речь идет о продаже (объект Продажа) и 3 документах в продаже (объект Файл и ссылка продажи). Наличие документов получится определить только по названию вложенных файлов.
Подход к решению:
1. Читать данные в “Продажа”, где Id = Id целевой продажи
2. Читать кол-во записей в “Файл и ссылка продажи”, где (Продажа = Пункт 1. Id) && (Название содержит “Первый документ” || Название содержит “Второй документ”…)
От пункт 2 условный поток: Пункт 2. Кол-во записей = 3. В таком случае изменить стадию продажи.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Как в BPM 5.4 on-site в разделе файлы и ссылки сделать чтобы добавленные файлы типа jpg и png отображались в виде изображений?

Сейчас же файлы, чтобы просмотреть необходимо сначала скачать.

У меня такой же вопрос

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

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу

Добрый день, Илья.

В базовой версии такой функционал не реализован. Приблизительный алгоритм реализации такой ( хочу обратить Ваше внимание что данный алгоритм не тестировался, поэтому это не окончательное решение.)

Требуется, добавить отдельную деталь, на страницу детали добавляем контрол Imagebox, на PageLoadComplete устанавливаем в этот контрол изображение.

Пример кода.

//получение файла
var facilityFileESQ = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "FacilityFile");
var nameColumn = facilityFileESQ.AddColumn("Name").Name;
var imageWidthXHeightColumn = facilityFileESQ.AddColumn("ImageWidthXHeight").Name;
var entity = facilityFileESQ.GetEntity(UserConnection, recordId);
if (entity == null) {
          return true;
}
 
string pageSchemaCaption = entity.GetTypedColumnValue<string>(nameColumn);
string imageWidthXHeight = entity.GetTypedColumnValue<string>(imageWidthXHeightColumn);
//установка заголовка окна
Page.AddScript(string.Format("document.title = \"{0}\""""

"Романов Евгений Владимирович" написал:PageLoadComplete

PageLoadComplete - это процедура? Где она находится, не могу найти.

Добрый день, Илья.

PageLoadComplete это событие которое есть на каждой странице.

Вот скриншот на примере страници Звонка.

День добрый уважаемые коллеги!!!

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

Я так понял, что надо внести изменения на страницу "Базовая страница файла и ссылки", но там нельзя добавить элемент типа Imagebox.
Вот скриншот: http://joxi.ru/IsRyUxjKTJChRkY7Sgc

Михаил Викторович.
Данный функционал реализован в нашем продукте BPMonline Realty. Функционал протестировали, замедлений выявлено не было.

Илья Андреевич.

Данный контрол стоит добавлять на новую страницу. (рис 1)

После чего следует реализовать метод описаный выше.

Далие следует добавить новую деталь. (рис 2)

А как создать вкладку новой детали? Я нашел несколько разных базовых страниц для деталей и не могу выбрать.

Доброе утро, Илья Андреевич

Процесс добавления новой вкладки детали указан на скриншоте выше(рис 2). Для того, что бы эти вкладки начали отображаться в системе Вам следует очистить Redis.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Здравствуйте,
можно ли программно присоединить к создаваемому по шаблону е-мэйлу файл, как вложение.

Е-мэйл создается с помощью стандартной ф-ии:
function SendEmailByAddress(MailUtils, TemplateFileName, Address, Subject) {
// by default 'false' means immediate message sending
// 'true' means putting message to 'Outbox' Outlook folders
var SendResult = MailUtils.SendMessage(TemplateFileName, Address,
Subject, false);
if (!SendResult) {
SendResult = false;
}
return SendResult;
}

Или может быть есть другие решения задачи?

Версия Terrasoft CRM 3.0.2.245 под Firebird.

У меня такой же вопрос

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

Здравствуйте Юрий,
Попробуйте воспользоватся советама в теме http://www.community.terrasoft.com.ua/forum/topic/6788

Действительно в случае с MailUtils.SendMessage(.......) получилось прикрепить вложение, добавив параметр Attachments.

Еще вопрос можно ли аналогичное действие реализовать при создании е-мэйла через MailUtils.CreateMessage(TemplateFileName, MailAddress, MailSubject).
Просто подстановка еще одного параметра Attachments не проходит, выдается ошибка (насчет, количество параметров не соответствует).

Используйте из scr_MailUtils

function CreateEmptyMessageWithAttachments(MailAddress, MailSubject, BodyFormat,
	CodePage, Importance, Attachments)

Евгений,
к сожалению в этой версии (3.0.2.245) в scr_MailUtils функции CreateEmptyMessageWithAttachments нет.
Есть только:

function CreateEmptyMessage(MailAddress, MailSubject) {
	var MailUtils = GetMailUtils();
	MailUtils.CreateEmptyMessage(MailAddress, MailSubject);
}
 
function CreateMessageFromTemplate(TemplateFileName, MailAddress, MailSubject) {
	var MailUtils = GetMailUtils();
	MailUtils.CreateMessage(TemplateFileName, MailAddress, MailSubject);
}

Вы можете выложить Текст скрипта scr_MailUtils?

Да, выкладываю.

Выложите именно текст скрипта а не сам сервис (чуть внимательнее ;))

Выкладываю, текст скрипта

Добавьте в скрипт этот код

function CreateEmptyMessageWithAttachments(MailAddress, MailSubject, BodyFormat,
	CodePage, Importance, Attachments) {
	if (!GetCanCreateMessage(true)) {
		return;
	}
	var MailUtils = GetMailUtilsWithoutMacroses();
	if (IsEmptyValue(MailAddress)) {
        MailAddress = '';
	}
   	if (IsEmptyValue(MailSubject)) {
        MailSubject = '';
	}
	if (IsEmptyValue(BodyFormat)) {
        BodyFormat = 1;
	}
   	if (IsEmptyValue(CodePage)) {
        CodePage = '';
	}
   	if (IsEmptyValue(Importance)) {
        Importance = 1;
	}
	MailUtils.CreateEmptyMessage(MailAddress, MailSubject, BodyFormat,
		CodePage, Importance, Attachments);
}

А потом попробуйте его вызвать.
50/50 что заработает т.к. непонятна версия вашей библиотеки TSOutlookLibrary

Чем всё закончилось?

На вызов:
MailUtils.CreateEmptyMessage(MailAddress, MailSubject, BodyFormat, CodePage, Importance, Attachments);
появляется ошибка:
Недопустимое число аргументов или присвоение значения свойства.

Эх....
Похоже в вашей версии этого нет.

Да, видимо так.
Похоже это добавили начиная с версий 3.0.4.

Здравствуйте, Юрий!

Да, к сожалению функциональные возможности 3.0.2 довольно ограничены в сравнении с более поздними версиями.

Инна Безверхняя,
II линия службы поддержки Terrasoft

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Нередко при работе с Terrasoft CRM возникает необходимость отправить своему сотруднику оповещение о задаче (или инциденте). В стандартном приложении Terrasoft CRM подобный функционал реализован при помощи предварительного создания шаблона e-mail по задаче.
Но не менее удобный функционал также может пригодиться: отправка оповещения о задаче во вложении к письму с возможностью написания своему коллеге личное сообщение в самом теле письма.
Постараюсь как можно более подробно описать алгоритм реализации подобного функционала.

Предлагаю воспользоваться функцией, описанной в scr_mailUtils CreateEmptyMessageWithAttachments. Ниже приведен пример непосредственного создания сообщения.

1. Создать файл MSWord с расширением dot. Особенность этого файла - его структура - это закладки (BookMarks), которые используются для автоматической замены значений, которые можно вытянуть из выборки данных необходимых для формирования шаблона. В прикрепленном файле высылаю пример - это таблица, в которую будут заноситься данные из конкретной выборки.

2. На необходимое действие нужно добавить функционал по созданию сообщения с вложением. Например, этот функционал можно добавить на какую-либо кнопку. Лучше всего воспользоваться базовой функцией CreateEmptyMessageWithAttachments. Ниже приведен пример ее использования, а также динамическое редактирование файла-шаблона.
Пример открытия файла:

 var WordRecord = OpenWordTemplate('C:\\TestReport.dot');

Пример создания выборки данных:

var Datasets = GetNewDictionary();
var Dataset = Services.GetNewItemByUSI('ds_Contact');
//здесь можно наложить необходимые фильтры
Dataset.Open();
AddDatasetToDictionaryByUSI(Datasets, 'Contacts', Dataset);
return Datasets;

Для заполнения документа-шаблона можно использовать функцию ReplaceWordBookmarks(WordInfo, Datasets). Как параметры ей передаются файл и созданный датасет. Только в этой функции созданный документ с заполненными значениями открывается, а его можно сохранить во временных документах на диске, а после прикрепления к письму удалять.

Пример непосредственного использования функции CreateEmptyMessageWithAttachments:

var Attachments = System.CreateObject('TSObjectLibrary.StringsList');
Attachments.Add(// необходимо указать полный путь к сохраненному документу);
CreateEmptyMessageWithAttachments(MailAddress, MailSubject, BodyFormat, CodePage, Importance, Attachments);
DeleteFilesFromStringsList(Attachments);

Также можно использовать не только сохраненный на диске файл, но и загружать его из библиотеки, используя базовую функцию поиска файла по коду FindFileInLibraryByCode(Code)

Во вложении высылаю пример шаблона документа, а также сервисы, в которых описаны функции, которые я использую в примерах.

С уважением,
Мельникова Екатерина

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать