Вопрос

импорт из Excel

Подскажите можно ли для новосозданных разделов скачивать шаблон для импорта записей из Excel. Потому что кнопки как н-р у раздела Контакты или Контрагенты для скачивания шаблона и импорта в BPMonline 5.4.0 не наблюдаю

Нравится

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

BPMonline 5.4.0.317

Здравствуйте, Денис.

Для нового раздела скачивание шаблона для импорта невозможно. В базовой версии импорт реализован только для разделов контакты, контрагенты и продукты.
Но реализовать импорт возможно, вот приблизительный алгоритм:
1. Создать в системе пользовательский инструмент импорта;
2. Реализовать возможность выборочного импорта (по заданным параметрам);
3. Сформировать Подстановку стандартного шаблона для импорта;
4. Создать процесс импорта, с помощью бизнес-логики.

"Maxim Gritsenko" написал:Но реализовать импорт возможно, вот приблизительный алгоритм:

Максим, если можно, то с этого места поподробней... Т.е. где посмотреть саму функцию процесса импорта из Excel-файла?

Копала код "Импортирование контрагентов", но, к сожалению, не нашла ответ на свой вопрос. Возможно, оно так "зашифровано", что я его упустила? Также нашла схему этого процесса -- но там только, насколько я поняла, окошки с сообщениями и вывод лог-файла, сам импорт не совсем понятно где...

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

Ольга, поищите в конфигурации по ключевому слову Import:

Шаблоны располагаются в базе знаний:

спасибо, Максим!
Искала, даже пыталась создать копии схем, по аналогии с импортом контрагентов + параллельно обратилась в Поддержку для уточнения "где посмотреть функцию импорта".
ответ меня "порадовал":

"Олейник Дмитрий" написал:
В целом, вопрос импорта из екслеля в сущности системы очень сложный, и для каждого раздела есть свои особенности. Реализовать новый импорт простым копированием схем – не выйдет. Нужно писать свой класс импорта, строить сложный процесс, парсить построчно файл ексель с использованием Open XML и т.д.

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

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

Насчет Вашего ответа. Спасибо. Схемы, про которые Вы говорите, я нашла. Сами шаблоны я не находила -- спасибо за "наводку".. Но меня интересовал сам процесс импорта, где-что-как скорректировать и как "привязать" это действие к нужному разделу (у меня был нестандартный импорт продаж, продуктов и продуктов в продаже), как "связать" схему с нужным шаблоном...
В 3ке можно создавать ЭктивОбжект приложения ексель и обращаться к содержимому ячеек -- где такое прописано в бпм, к сожалению, я так и не нашла...

Если Вы можете эти моменты разъяснить -- буду признательна (хотя интерес уже только "спортивный" или на будущее, т.к. задача решена "в обход").
Спасибо.

"Ольга Прилипко" написал:Поскольку задача была срочная, то ее решили по-другому, не задействуя функционал бпм-онлайн.

Ольга, а можно поинтересоваться, как вы провели импорт? Если конечно это не конфиденциальная информация...

Оказывается, есть куча способов.
1) самый "простой" (исходя из опыта импорта в обычной 3ке, т.е. в Террасофте версии 3.х), это написать "обычный" импорт в джей-скрипте +триггеры при вставке записей в таблицу. Импорт я завязала на кнопку в окошке, которое может запускаться без "оболочки" ТС (подробнее можно почитать тут). Примечание: импорт написан свой, без использования встроенной утилиты, т.к. поля в файле были нестандартные, обьединенные ячейки и т.п.

другие способы я нашла, но из-за а. срочности задачи и б. недостатка опыта в той области (точнее, его отсутствия), толком в них не разбиралась (возможно, разберусь позже, "на досуге":smile:). Итак.

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

3)написать утилиту на чем-то другом (Сшарпе, Джаве, Делфи или еще на чем-то) -- вариант почти сразу отпал из-за нехватки опыта, т.е. нужно "сидеть и разбираться"

4) еще пару вариантов нарыла в гугле, например, тут, т.е. был вариант загружать данные, используя сам SQL. я даже выяснила примерный алгоритм:
1) преобразовать ексель в csv, т.е. в текстовый формат
2) загрузить во временную таблицу скула данные
3) курсором пройтись по ним и вставить их, куда нужно.

Возможно, есть еще варианты и/или способы получше. Буду рада их рассмотреть)

о, еще вспомнила:
5) в самом екселе, начиная с 2007 версии, можно настроить соединение с бд и как-то напрямую "брать"/"заливать" данные.
но тоже нужно разбираться и тоже вроде для одной таблицы..

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