Добрый день коллеги!

 

Подскажите, есть ли в системе информация о том, какие именно записи (id)  были созданы в ходе импорта из Excel с помощью коробочной функциональности? 

 

Интересует информация как для коробочных, пример -  объект "ContactCommunication", так и для кастомных объектов.

 

Нравится

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

Добрый день!



На текущий момент при импорте записи, которые были импортированы, отмечаются в разделе тегом, например,

 

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

 

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



С уважением,

Богдан

Bogdan,

Добрый день!

Благодарю за ответ!



Предоставленные опции не решают задачи:

1. Идентификации id созданной записи в детали;

2. Идентификации id созданной записи в кастомном разделе.

 

Есть ли способ сопоставлять конкретную операцию импорта и id созданных в ходе импорта записей перечисленных объектов?

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

Требуется переопределить базовую схему FileImportStartPage. Что бы при вызове стандартного импорта вида ViewModule.aspx?vm=FileImportWizard#FileImportModule/FileImportStartPage/b8482840-b481-47ba-8d10-ce16561429f1/Contact

Выдавалась моя страница с частично изменённой логикой. Но при переопределении схем FileImportStartPage, FileImportModule, FileImportWizard

Падает с ошибками

Нравится

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

Добрый день.

Уточните, пожалуйста, какую ошибку вы получаете?

Также уточните, как именно вы переопределяете указанные схемы, предоставьте, пожалуйста, код вашей схемы.

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

Добрый день!

 

Есть проблема с импортом записей из Excel. При импорте не заполняется номер обращения, который автозаполняется при добавлении записей. Маска и текущий номер.

 

Реализация автозаполнения сделана на серверной стороне посредством событийного слоя, триггер - после добавления записи. 

 

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

Нравится

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

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



Есть потребность в импорте пользователей с заранее прописанными ролями. Возможно ли это? Или это можно выполнить только вручную? Версия 7.18.2.1236

Нравится

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

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

под выгрузкой имею ввиду через excel

Также можно импортировать пользователей в связке с ролями из Active Directory. Ссылки на документацию:

 

https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/up…

https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/up…

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

Добрый день! 

Надо настроить взаимосвязи контактов. Контакт(тип клиент)-Контакт(тип ответсвенный)-Аптека.

При импорте клиента через эксель, указывается ответсвенный. При этом в карточке ответсвенного должна появися таблица со всеми клиентами за которые он ответсвенный. В карточке клиента ФИО ответсвенного, и аптеки. В аптеке ФИО клиента, и таблица с несколькими адресами. 

Подскажите как можно это реализовать? Как в дизайнере страцы создать такие таблицы?

Нравится

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

Альмир, судя по описанию, Вам нужно будет создать деталь развязки. Создать в разделе «Конфигурация» новый объект, унаследованный от «Базовый объект», кроме стандартных колонок добавить справочные колонки «Клиент», «Ответственный» и «Аптека», ссылающиеся на нужные таблицы.

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

То есть сверху вниз: выбрать объект детали, затем введёте её название,  одно из трёх справочных полей и в нижнем поле — Id контакта или аптеки.

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

Поле ответственный в карточке контрагента заполняется автоматически текущим контактом пользователя. При импорте из Excel происходит тоже самое.

Вопрос. Как заставить систему оставить данное поле пустым?

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

Нравится

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

Можно сделать импорт, а затем с помощью БП очистить это поле. По тэгу легко найдете заимпортированные записи

Алексей, это задано тут:

При желании, можно в своём пакете переопределить пустым.

Но нужно учесть негативные последствия, если где-то на это завязана логика, например, та же раздача прав.

Можно сделать импорт, а затем с помощью БП очистить это поле. По тэгу легко найдете заимпортированные записи

Спасибо за ответы. Вариант с БП для моего кейса лучше. Удивляюсь что сам не додумался. Импорт контрагентов когда нибудь закончится и менеджеры начнут создавать сами. Тогда и пригодится автозаполнение.

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

Команда Академии рада сообщить, что теперь доступен новый онлайн-курс "Импорт данных из Excel"!

Научиться выполнять импорт из Excel в Creatio стало проще, чем когда бы то ни было :)

Курс доступен здесь: https://academy.terrasoft.ru/online-courses/video-kursy-4

Нравится

Поделиться

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

Не получается настроить шаблон! Могу поменять стиль колонок, их порядок.

Но как сделать так, чтоб на основании выгруженных данных автоматически строились нужные мне графики?

 

Нравится

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

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

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

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

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

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

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

Из документации к приложению:

Создайте шаблон Excel. Оставьте первую страницу таблицы Excel пустой. На этой странице будут отображаться экспортированные данные. Настройте колонки в таблице согласно описанному выше порядку. Вы можете использовать тот же порядок, чтобы ссылаться на данные при построении формул и графиков на других страницах вашей таблицы.

Так что ничто не мешает вам в шаблон добавить графики и при  формировании по шаблону они будут подхватыватся!

Если нужно более сложное форматирование то формировать отчеты Excel можно на c# используя Open XML SDK

Григорий Чех,

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

Спасибо за ответы! Попробую разобраться с Open XML SDK

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

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

Есть базовый функционал импорта из Excel который при каждом импорте запрашивает связку полей Excel документа и полей таблицы куда идет импорт. 

Можно ли сделать преднастройку связывания данных при импорте из Excel, что бы каждый раз не приходилось делать одни и те же настройки?

 

Нравится

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

Посмотри пример добавления вложений в письмо EmailMessagePublisherPage

define("EmailMessagePublisherPage", ["EmailMessagePublisherPageResources", "LookupUtilities", "EmailImageMixin",
		 "ConfigurationConstants", "MaskHelper", "ExchangeNUIConstants", "EmailActionsMixin", "MacrosUtilities",
		"ExtendedHtmlEditModuleUtilities", "ExtendedHtmlEditModule", "MessagePublisherAttachmentUtilities",
		"MacrosHelperServiceRequest", "EntityResponseValidationMixin", "css!HtmlEditModule",
		"css!EmailMessagePublisherModule"],
		function(resources, LookupUtilities, EmailImageMixin, ConfigurationConstants, MaskHelper, ExchangeNUIConstants) {
			return {
				entitySchemaName: "Activity",
 
{
	"operation": "insert",
	"name": "AttachFileButton",
	"propertyName": "items",
	"parentName": "PublisherBottomContainer",
	"values": {
		"itemType": this.Terrasoft.ViewItemType.BUTTON,
		"style": this.Terrasoft.controls.ButtonEnums.style.DEFAULT,
		"iconAlign": this.Terrasoft.controls.ButtonEnums.iconAlign.LEFT,
		"imageConfig": {
			"bindTo": "getAttachFileButtonImageConfig"
		},
		"tag": "attachFileButton",
		"fileUpload": true,
		"filesSelected": {"bindTo": "onAttachFileSelected"},
		"enabled": {
			"bindTo": "IsPublishButtonEnabled"
		},
		"click": {
			"bindTo": "onAttachFileButtonClick"
		},
 

В MessagePublisherAttachmentUtilities в методе onAttachFileSelected выполняется загрузка файла а метод onComplete вызывается после окончания загрузки вот туда можно вставить вызов твоего сервиса по импорту данных и передать ему fileId загруженного файла.

В более сложном варианте можно обойтись без загрузки файла в БД но для этого тебе нужно по аналогии с FileApiService написать свой сервис обработки файлового потока и вызывать его

 

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

Почти 2 года назад озвучивала здесь это пожелание Возможность сохранения настроек импорта из Microsoft Excel. Но из-за того, что потребность в данной функциональности у пользователей bpm'online crm низкая, она до сих пор не реализована.

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

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

Если вы часто выполняете импорт может стоить подумать о других механизмах а не Экселе. Импорт из экселя задумывался для разового переноса/наполнения системы. Использование его оправадано если данных сравнительно немного и их вручную нужно просматривать/фильтровать менять.

Если вы постоянно выполняете обновления то можно использовать интеграции с вэб сервисами или инструменты интеграции на уровне БД (Например на основе мастера экспорта импорта MSSQL Managment Studio можно создать свой пакет сохранив туда все настройки и использовать его для автоматизации процесса переноса записей)

 

Григорий Чех,

Импорт с Экселя оправдан т.к. данные вносятся туда вручную и их не так уж и много. 

Что было бы лучше? 1. Копаться в базовом импорте с Эксель и пробовать через этот способ сделать. 2. Сделать программу которая импортировала данны прямо в БД, но тогда мне неизвестно будет ли отрабатываться процессы на уровне Entity. 3. Сделать все как в 2 пункте только в БД специально созданной для этого случая и потом как-то синхронизировать её(эту БД) с bpmonline.

Алла Савельева,

Идею поддержал.

По поводу своего преднастроенного импорта. Если делать его через отдельную программу на C# , то будет ли срабатывать событийные процессы на уровне Entity?

Андреев Андрей Сергеевич,

Я бы написал свой БП или лучше сервис для импорта данных в bpm. Чтобы срабатывали событийные процессы для вставки данных используй esq

Как то так

var _caseFile = new Terrasoft.Configuration.CaseFile(UserConnection);
    _caseFile.SetDefColumnValues();
    _caseFile.SetColumnValue("Name", url);
    _caseFile.SetColumnValue("TypeId", FileConsts.LinkTypeUId);
    _caseFile.Save();

 

Григорий Чех,

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

ServiceHelper.callService(config);

Что-бы там его получить и уже как-то занести в БД?

Посмотри пример добавления вложений в письмо EmailMessagePublisherPage

define("EmailMessagePublisherPage", ["EmailMessagePublisherPageResources", "LookupUtilities", "EmailImageMixin",
		 "ConfigurationConstants", "MaskHelper", "ExchangeNUIConstants", "EmailActionsMixin", "MacrosUtilities",
		"ExtendedHtmlEditModuleUtilities", "ExtendedHtmlEditModule", "MessagePublisherAttachmentUtilities",
		"MacrosHelperServiceRequest", "EntityResponseValidationMixin", "css!HtmlEditModule",
		"css!EmailMessagePublisherModule"],
		function(resources, LookupUtilities, EmailImageMixin, ConfigurationConstants, MaskHelper, ExchangeNUIConstants) {
			return {
				entitySchemaName: "Activity",
 
{
	"operation": "insert",
	"name": "AttachFileButton",
	"propertyName": "items",
	"parentName": "PublisherBottomContainer",
	"values": {
		"itemType": this.Terrasoft.ViewItemType.BUTTON,
		"style": this.Terrasoft.controls.ButtonEnums.style.DEFAULT,
		"iconAlign": this.Terrasoft.controls.ButtonEnums.iconAlign.LEFT,
		"imageConfig": {
			"bindTo": "getAttachFileButtonImageConfig"
		},
		"tag": "attachFileButton",
		"fileUpload": true,
		"filesSelected": {"bindTo": "onAttachFileSelected"},
		"enabled": {
			"bindTo": "IsPublishButtonEnabled"
		},
		"click": {
			"bindTo": "onAttachFileButtonClick"
		},
 

В MessagePublisherAttachmentUtilities в методе onAttachFileSelected выполняется загрузка файла а метод onComplete вызывается после окончания загрузки вот туда можно вставить вызов твоего сервиса по импорту данных и передать ему fileId загруженного файла.

В более сложном варианте можно обойтись без загрузки файла в БД но для этого тебе нужно по аналогии с FileApiService написать свой сервис обработки файлового потока и вызывать его

 

Еще проще по нажатию кнопки вызвать

selectFile(event) {
    event.preventDefault();
 
    file_input = document.createElement('input');
    file_input.addEventListener("change", uploadFile, false);
    file_input.type = 'file';
    file_input.click();
},
 
uploadFile() {
    //отправка file_input.files[0]) например используя  XMLHttpRequest post
}

 

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

В чем может быть проблема и как ее исправить?Изображение удалено.

Нравится

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

Рекомендуется импортировать не больше 50 тыщ записей за раз, если у вас больше или сопоставимо разбейте данные на несколько порций и импортируйте по очереди

Григорий Чех,

Одна строка с данными

 

Если дело в первом сообщении консоли, то не смог сработать планировщик, когда пытался создать задание для запуска процесса импорта в фоне.

Нужно смотреть в файлах логов Error.log или Scheduler.log полный текст процитированного сообщения.

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