Добрый день.
Поставлена задача - регулярно пополнять раздел Продукты из прайслистов + в каждый продукт добавлять фото.

Фото хранятся 

1. в отдельных файлах (в структурированных папках) 

2. в файлах excel

3. в 1С

 

Коллеги, у кого есть опыт массовой загрузки файлов в карточки продуктов?

Спасибо.

 

Видела подобную тему двухгодичной давности ИМПОРТ ФОТО ИЗ EXCEL

Есть ли подвижки?

 

Нравится

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

Марина, стандартного решения, скорее всего, нет.

Тем более, Вы хотите загружать из трёх разнотипных мест: ФС, Excel и 1С. Для каждого нужно искать или разрабатывать свои инструменты.

 

Для файлов, проверьте возможности дополнения «File manager», там упоминается работа с галереями фото продуктов.

 

По Excel — сомневаюсь, что такое стандартно будет, нужно смотреть либо в строну встроенных скриптов на Бейсике, либо разбирать формат файла или использовать библиотеки для работы с ним. Кстати, xlsx  — это просто zip-архив, если файл переименовать и распаковать в папку, все картинки там будут.

 

С системой 1С тоже есть несколько интеграций, нужно смотреть их возможности.

 

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

Доброго времени суток. Возникла проблема с синхронизацией почты на 7.16.1

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

Может кто-то сталкивался с подобной проблемой?

Заранее благодарен.

Нравится

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

Кирилл, в 7.16 архитектуру интеграции с почтой меняли.

Создали отдельный от основной системы Exchange Listener, который устанавливается на своём сервере. А затем на сайте 7.Х в системной настройке ExchangeListenerServiceUri прописывается его адрес, а в другой настройке — адрес анонимного сервиса в системе, к которому он извне обращается.

 

Точно по этой инструкции со всеми её подстраницами настраивали?

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

Доброго всем дня.

 

Некоторое время назад появилась ошибка: "1 of 0 records imported from the source file "". 4294967295 record(s) not imported.".

Периодически появляется в коммуникационной панели в системных уведомлениях: http://prntscr.com/ru3qoq

 

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

 

По данным записям (ошибкам) в таблице Reminding колонка SubjectId с "нулевым" Id: http://prntscr.com/ru3l3r

 

Сталкивался ли кто с подобной ошибкой? 

Нравится

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

Дарья, эти уведомления генерируются ошибочно по результату получения входящих лидов/обращений с посадочной страницы.

Для устранения нужно установить пакет FileImportNotificationFix_20.04.07_12.51.35.zip на сайт (лучше сначала проверить на тесте) или дождаться, когда выйдет очередное обноление, его включающее.

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

Большое спасибо, Александр! 

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

Добрый день!

Подскажите пожалуйста, можно ли в систему загрузить с помощью импорта из Excel 2 и более e-mail адресов в карточку Контакта?

Есть база Контактов, у которых помимо основного e-mail, указано дополнительно ещё несколько e-mail. Есть жизненная необходимость проимпортировать записи с помощью Excel, чтобы в карточке Контакта поле E-mail заполнилось автоматически с учетом нескольких электронных адресов.

Если ли какой-либо механизм или метод?

На данный момент несколько электронных адресов в карточку Контакта не получается загрузить импортом:

Нравится

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

Максимова Екатерина,

Так как в карточке контакта только 1 поле E-mail, то добавить несколько e-mail в карточку контакта можно несколькими способами.

1. В карточке контакта добавить нужное количество полей email и в каждое из этих полей проимпортировать нужное значение.

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

Например, у контакт1 есть e-mail1, email2 и email3.

Тогда Ваша таблица будет выглядеть так:

Контакт - Тип связи - Номер

контакт1 - Email - e-mail1

контакт1 - Email - e-mail2

контакт1 - Email - e-mail3

Создать отдельный Excel файл с колонками Контакт - Тип связи - Номер (там несколько полей под Номер) и заимпортировать в объект Средства связи контакта

Владимир Соколов,

Владимир, нужно проимпортировать именно несколько 

 E-mail

Максимова Екатерина,

Не совсем понимаю, в чем именно заключается проблема?

Опишите подробнее.

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

У 1 Контакта есть несколько электронных адресов, каким образом можно загрузить их импортом?

Сейчас в систему можно загрузить импортом только 1 электронный адрес, если в дальнейшем мы загружаем дополнительный эл.адрес, система обновляет значение эл.адреса и затирает. Нам же нужно чтобы в системе существовало несколько эл.адресов у 1 контакта. Как можно загрузить в систему несколько эл. адресов принадлежащих 1 контакту, чтобы они оба сохранились в карточке Контакта?

Максимова Екатерина,

Так как в карточке контакта только 1 поле E-mail, то добавить несколько e-mail в карточку контакта можно несколькими способами.

1. В карточке контакта добавить нужное количество полей email и в каждое из этих полей проимпортировать нужное значение.

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

Например, у контакт1 есть e-mail1, email2 и email3.

Тогда Ваша таблица будет выглядеть так:

Контакт - Тип связи - Номер

контакт1 - Email - e-mail1

контакт1 - Email - e-mail2

контакт1 - Email - e-mail3

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

Добрый день!

 Нужно загрузить в систему объекты связанные с Контрагентом. Например, договоры.

мы можем подготовить 2 файла.

1 с данными о контрагентах, другой с данными о договорах.

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

можно ли настроить импорт так, чтобы поиск справочных полей был по кастомным полям, например, по ИНН и КПП?

то есть в файл по договорам добавляем 2 столбца и при загрузке по этим двум столбцам  находится потребитель

 

Нравится

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

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

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

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

Коллеги, здравствуйте.
Возник вопрос по импорту фото из Excel.
Есть ли сейчас такая возможность, либо какое-то обходное решение?
Заранее спасибо!

Нравится

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

Здравствуйте, Роман!

На текущий момент функционал импорта фото из Excel не реализован в базовой версии продукта.

Мы передали пожелание команде разработки для анализа возможности внедрения функционала в будущих версиях.

Shevchenko Andrey,

Коллеги, удалось ли реализовать данное решение?

Может действительно есть обходное решение?

Конечная цель - МАССОВО загружать фото в продуктовый каталог.

 

Милова Марина,

Добрый день,

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

 

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

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

Как запретить "Роли" импорт в определенный раздел?

Есть раздел Контакты, роль должна мочь создавать их руками, но не должна мочь загрузить через импорт. При этом в раздел "Контрагенты" роль должна иметь доступ на импорт.

От того и вопрос, как ограничивать импорт по объектам (разделам)

Нравится

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

Здравствуйте, Евгений

Логика приложения работает таким образом, что можно либо разрешить импорт в приложение либо запретить его.

Запрет импорта в определенные объекты приложения не реализован.

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

Denys Diachenko,

А можно тогда ограничить список отображемых объектов при импорте для роли?

Пример:
Роль будет видеть в списке только раздел "Контрагент", а контакт просто не будет ему отображаться?

То есть нужен хитрый фильтр который в зависимости от роли показывает объекты в которые можно произвести импорт

Добрый день, Евгений. Оптимальный вариант решения вашей задачи - раздача прав доступа на объекты системы. Если необходима ситуация, когда у роли есть доступ к Контактам, но нет возможности их импорта - рекомендуем просто убрать у них возможность импорта, и раздать ее, например, только роли администраторов. Логика импорта находится в FileImportWizard, и в теории вы можете переопределить какие-то ее фрагменты через Ext.override, но на практике не рекомендуем выполнять подобные манипуляции чтобы не сломать базовую логику продукта.

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

Доброго времени суток, есть вопрос следующего характера
У меня есть расширяющий модуль для FileDetailV2
Внутри него я получаю контент PDF документа (контент строкой)
Каким образом мне этот контент передать на FileApiService модуль в метод Upload что бы загрузить этот файл?
Если я загружаю руками документ то получаю в консоли POST запрос на

https://testDomain.bpmonline.com/0/rest/FileApiService/Upload?fileapi14996709535744&totalFileLength=47386&fileId=file_id&mimeType=application%2Fpdf&columnName=Data&fileName=20846491.pdf&parentColumnName=Document&parentColumnValue=parent_document_value&entitySchemaName=DocumentFile

И также интересно как в JS получить текущий entitySchemaName?

Нравится

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

Сформируйте аналогичный запрос со значениями колонок в url, и с данными файла в теле запроса средствами js.
Ответ на второй вопрос:

"Максим Шевченко" написал:file_id

Спаибо за Ваш ответ
Но в url есть значение file_id откуда мне его взять если файл еще не создан?

"Nickstery" написал:Но в url есть значение file_id откуда мне его взять если файл еще не создан?

Это просто новый рандомный гуид по которому далее файл можно будет получить, создать новый гуид можно следующим образом:
https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascri…

"Максим Шевченко" написал:
Nickstery пишет:

Но в url есть значение file_id откуда мне его взять если файл еще не создан?

Это просто новый рандомный гуид по которому далее файл можно будет получить, создать новый гуид можно следующим образом:
https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript

С формированием параметра понятно
Каким образом отправлять контент файла в теле запроса, это form-data по ключу определенному или передаеться как binary data?
Если я формирую запрос в Postman (приложение для отправки запросов) как приведено ниже

http://joxi.ru/V2VKJBwuxeDROA

Я получаю следующий ответ:

http://joxi.ru/L21bq0kh8Jx3dA

Есть где-то дока какой ендпоинт/модуль какие есть методы, и какие поля нужно отправлять что бы загрузить документ?
Не совсем понятно каким образом проиходит передача самого документа

Я набросал кусок кода, который получает контент файла, формирует BLOB и пытаеться отправить его на FilApiService Только я получаю ту же ошибку

window.console.log("Try to grab the file content");
var http = new XMLHttpRequest();
http.open("get", "https://b981fab7.ngrok.io/getPDF", true);
http.responseType = "arraybuffer";
http.onload = function(e) {
    if (this.status === 200) {
        var uInt8Array = new Uint8Array(this.response);
        var i = uInt8Array.length;
        var binaryString = new Array(i);
        while (i--)
        {
             binaryString[i] = String.fromCharCode(uInt8Array[i]);
         }
        var data = binaryString.join("");
 
        var http2 = new XMLHttpRequest();
        http2.open("post", "/0/rest/FileApiService/Upload?fileapi14998570381414&totalFileLength=47386&" +
        "fileId=*****&mimeType=application/pdf&columnName=Data" +
        "&fileName=20846491.pdf&parentColumnName=Document" +
        "&parentColumnValue=***&entitySchemaName=DocumentFile", true);
        http2.onload = function(e) {
             window.console.log("UPLOAD FILE OPERATION DONE");
             window.console.log(e);
        };
        http2.send(new Blob([data]));
 
        }
    };
http.send();

Разобрался:
Суть в том что при расширении FileDatailV2 (логично) мы унаследуем и методы оринильного модуля.
Можно не использовать FileApiService и не генерировать 100500 параметров а просто обойтись готовым решением, как это делает аплоад документа юзер, который находится в CRM.
Достаточно использовать FileDetailV2 -> onFileSelect метод и из строчного контента сгенерировать window.File
Пример как я это реализовал ниже:

window.console.log("Try to grab the file content");
var http = new XMLHttpRequest();
http.open("get", "https://b981fab7.ngrok.io/getPDF", true);
http.responseType = "blob";
var parent = this;
http.onload = function(e) {
    if (http.readyState === 4) {
    var blob = http.response;
    parent.onFileSelect([new window.File([blob], "UPLOADED.pdf")]);
    }
};
http.send();

Таким образом не нужно думать как приатачить документ в таблицу после его загрузи, это все делает модуль автоматически

У меня задача как раз стоит чтобы загрузить файл, но не из интерфейса приложения, а сторонним приложением. И мне необходимо использовать FileApiService. Как правильно им пользоваться? Может кто нибудь показать рабочий пример кода?

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

Установил фидлер и при включенном захвате трафика выходит такая ошибка:

Зато удалось в консоли разработчика увидеть запрос отправленный на сервер:
https://my.domain.com/0/rest/FileApiService/Upload?fileapi1606730904835…
При попытке отправить этот запрос из POSTMAN, сервер возвращает ошибку: 
400 Bad request

Может, что-то не то с заголовками или content type содержимого, не знаю.  А если прямо в браузере отловить?

Отловил запрос прямо в браузере, вот:

https://my.domain.com/0/rest/FileApiService/Upload?fileapi1606730904835…

Но при попытке отправить этот запрос из POSTMAN, сервер возвращает ошибку: 
400 Bad request

Можно попробовать сравнить запрос с нормально работающим, поискать в чём отличия в содержимом.

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

Так в том и вопрос, какой он нормально работающий запрос. Я ни как не могу его найти. Могли бы вы предоставить пример рабочего запроса? Буду очень признателен.

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

Request URL: https://0987561-se-m-se-demo.creatio.com/0/rest/FileApiService/Upload?fileapi16068281951725&totalFileLength=42738&fileId=0015222a-e192-4e2d-a305-7029653b76eb&mimeType=image%2Fpng&columnName=Data&fileName=test.png&parentColumnName=Contact&parentColumnValue=eba7839a-6dff-430f-8325-fb8e02546348&entitySchemaName=ContactFile
Request Method: POST
Status Code: 200 
Remote Address: 40.91.213.136:443
Referrer Policy: strict-origin-when-cross-origin
cache-control: private
content-type: application/json; charset=utf-8
date: Tue, 01 Dec 2020 13:16:21 GMT
server: Microsoft-IIS/10.0
status: 200
x-aspnet-version: 4.0.30319
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-powered-by: ASP.NET
:authority: 0987561-se-m-se-demo.creatio.com
:method: POST
:path: /0/rest/FileApiService/Upload?fileapi16068281951725&totalFileLength=42738&fileId=0015222a-e192-4e2d-a305-7029653b76eb&mimeType=image%2Fpng&columnName=Data&fileName=test.png&parentColumnName=Contact&parentColumnValue=eba7839a-6dff-430f-8325-fb8e02546348&entitySchemaName=ContactFile
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,uk;q=0.8,ru;q=0.7
bpmcsrf
content-disposition: attachment; filename=test.png
content-length: 42738
content-range: bytes 0-42737/42738
content-type: image/png
cookie: BPMSESSIONID=oq1w3q0l1yhedqm43aayja1a; _ga=GA1.2.656850260.1571905584; UserName=83|117|112|101|114|118|105|115|111|114; BPMLOADER=ytih30doaflbq4opdaauindd; _gid=GA1.2.1302014581.1606819455; .ASPXAUTH=0008CA5627819C22386A7FD7673D990C515D14E16AAA7C3E962C321AD5B73C8A2E390A6A6F5AE4DDD258B39ED90AE52BB05619534187DF76BBB1D1FF11B042E75619D72724CFE8E56619EEA9AC684DD352340A7212E60D621B3347E1116DE823140E48AE7FF68CE26734B92A9535C2C69D4BF9A6DE071595ECA44536D4EDF49958CBE863D46ABF8E86B2BAB87496310E5A25A03B4037A458240E6FAB1DFA93DE265821214B9C08D57C5CF3D2376E197C94AC1CF59BE9DA24BE2415465689C40BB1306488AB986D58ADCA8764F99566A0BCBB108248B7FB62678B541F509BC80525781C299A0A5FE2EB0F6997868942D0BD146D40C89B36E12CC760D7C05709175E01F26E6B67BF67846BE78BFE1E583A830ACFFF907A58B713DED3C10FC4E422C74DF27E792BADD1138259551A290978A88414B1CDC15E000D4A44B70BD9E296B74C0601BD3DDD315F2722EC95987F77427E73EB062C147611AD43A0DEE6B967AB07C932
origin: https://0987561-se-m-se-demo.creatio.com
referer: https://0987561-se-m-se-demo.creatio.com/0/Nui/ViewModule.aspx
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36
x-requested-with: XMLHttpRequest
fileapi16068281951725: 
totalFileLength: 42738
fileId: 0015222a-e192-4e2d-a305-7029653b76eb
mimeType: image%2Fpng
columnName: Data
fileName: test.png
parentColumnName: Contact
parentColumnValue: eba7839a-6dff-430f-8325-fb8e02546348
entitySchemaName: ContactFile
‰PNG
 
 
IHDRТA7fœsRGB®ÎégAMA±üa

 

Если его, то видел. Но повторить и выполнить самому, для начала из POSTMAN, ни как не получается из-за ошибки 400 Bad request.

Руслан, можно в Fiddler сравнить все заголовки правильного и неправильного запросов, может чего-то не хватать.

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

Часто возникает задача загрузки данных определенной структуры в таблицы bpm'online.Решить эту задачу можно с помощью функциональности импорта из MS Excel, однако, в системе нет возможности настроить этот импорт единоразово и предоставить пользователям нужный доступ . Возможность сохранения настроек импорта в определенном разделе решила бы эту проблему. Сейчас, к сожалению, приходится извращаться

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

Здравствуйте, Алла!

Я передал Ваше пожелание аналитикам продукта.
Они рассмотрят возможность его реализации в одной из последующих версий программного продукта.

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

В этот праздничный день хочется немного рассказать об особенностях работы с bpm'online CRM в агробизнесе.
культуры

Допустим, приобрела сельскохозяйственная компания CRM и через Excel наполняет разделы и справочники, пользуясь импортом данных. Внезапно, после очередной заливки всё ломается, не работает даже страница логина в систему.
culture
Дело в том, что произвели импорт в системную таблицу SysCulture значений вроде «озимая пшеница».
Но культура, она не для «овощи там, рожь — вот это всё», а для информации о локалях и языках, например, «en-US» и «ru-RU».
После восстановления исходных значений в таблице и удаления лишних записей работоспособность сайта восстановилась.

Нравится

Поделиться

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