Перейти к содержимому


Фотография
- - - - -

Проблема с Экспортом

экспорт материалов

Лучший Ответ SmetDenis , 22 March 2014 - 09:45

Как оказалось, мы закрыли топик раньше времени.

Попробую более подробнее описать проблему и сложность её решения.

 

 

Экспорт выгружает материалы четко по шагам. За шаг - 500 материалов.

Это сделано для того чтобы можно было выгружать относительно большой объем информации без превышения лимитов сервера (по памяти). На каждом шаге генерируется массив, который сохраняется в csv.

 

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

 

Какие могут быть альтернативы

 - Увеличить шаг до примерного кол-ва материалов на сайте.

Это можно сделать тут \media\zoo\applications\jbuniversal\framework\helpers\jbexport.php. Константа STEP_SIZE

 

- Выгружать материалы по частям (по категориям, по каталогам и тд)

 

- Использовать опцию для объединения

mg1_200x0.png

 

 

Других решений у меня на данный момент нет.

Если придумаю оптимальный способ, то добавлю его в новом релизе.

 

 

 

 

 

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 10

#1 Максим Саликов

Максим Саликов

Отправлено 12 March 2014 - 08:16

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

стати - смотрю любой такой некорректный товар просто в магазине он-лайн - там все параметры на своих местах

Файл-образец в приложении.


  • 0

#2 Sliapy

Sliapy

Отправлено 12 March 2014 - 09:04

Файла нет.


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 .polega.

.polega.

Отправлено 12 March 2014 - 09:05

Аналогичную проблему наблюдаю и у себя на сайте при экспорте всех материалов.

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

Прилагаю скриншот, как это выглядит в LibreOffice

screenshot_ 2014-03-12 10.07.26.jpg

Причём объект с ID=4600 ничем особым не отличается от объекта с ID=4599, всё как обычно.

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


Сообщение отредактировал realtygroupinfo: 12 March 2014 - 09:13

  • 0

#4 Максим Саликов

Максим Саликов

Отправлено 12 March 2014 - 09:20

вот файлик

Прикрепленные файлы


  • 0

#5 SmetDenis

SmetDenis

Отправлено 12 March 2014 - 15:19

У меня есть гипотиза, как такое могло получится.

 

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

Я имею ввиду, что даже если изменить настройки типа материала (набор полей), то данные в базе у материалов не изменяться.

 

Когда работает экспорт, он обрабатывает каждый материал по той же идеологии.

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

 

Когда я разрабатывал экспорт, то не предвидел подобных ситуаций.

 

Попробуйте пересохранить пару материалов и проверить экспорт после этого.

Возможно поможет чистка базы данных.

 

Это лишь гипотеза, у меня такой баг никогда не проявлялся.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 .polega.

.polega.

Отправлено 12 March 2014 - 17:22

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

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

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

Ну у меня риэлторы постоянно пересохраняют старые материалы, или цена поменялась, или фотки добавили - если бы это имело влияние, файл экспорта был бы с хаотичными  смещениями, разбросанными по разным местам. А имеем всего 5-6 смещений колонок, блоками по нескольку сотен штук материалов.

Чистку базы ранее делал, сдвиги в файле экспорта не исчезали. Сегодня попозже ещё раз попробую, результат сообщу.

Денис, если есть возможность, можете зайти на сайт и сами посмотреть. Доступы не менял.


  • 1

#7 .polega.

.polega.

Отправлено 12 March 2014 - 20:46

попробовал ещё раз чистку базы и потом снова экспорт - ничего не изменилось.

 

посмотрел файл, приложенный топикстартером - явно видно смещение после 500 элементов.

следующий "сбой" - в районе 1000 элементов.

 

в своём файле выгрузки ситуация аналогична, смещение после 500 материалов, следующее смещение - после 1500 материалов.

 

однако тенденция :)

 

может это натолкнёт на какие мысли?


Сообщение отредактировал realtygroupinfo: 13 March 2014 - 06:18

  • 0

#8 SmetDenis

SmetDenis

Отправлено 13 March 2014 - 11:59

может это натолкнёт на какие мысли?

Кстати да, натолкнула.
Кажется я понял почему это происходит. Но пока не знаю как исправить, думаю.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#9 SmetDenis

SmetDenis

Отправлено 22 March 2014 - 09:45   Лучший Ответ

Как оказалось, мы закрыли топик раньше времени.

Попробую более подробнее описать проблему и сложность её решения.

 

 

Экспорт выгружает материалы четко по шагам. За шаг - 500 материалов.

Это сделано для того чтобы можно было выгружать относительно большой объем информации без превышения лимитов сервера (по памяти). На каждом шаге генерируется массив, который сохраняется в csv.

 

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

 

Какие могут быть альтернативы

 - Увеличить шаг до примерного кол-ва материалов на сайте.

Это можно сделать тут \media\zoo\applications\jbuniversal\framework\helpers\jbexport.php. Константа STEP_SIZE

 

- Выгружать материалы по частям (по категориям, по каталогам и тд)

 

- Использовать опцию для объединения

mg1_200x0.png

 

 

Других решений у меня на данный момент нет.

Если придумаю оптимальный способ, то добавлю его в новом релизе.

 

 

 

 

 


  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 .polega.

.polega.

Отправлено 22 March 2014 - 19:54

Всё внимательно прочёл, в общем-то причина проблемы понятна.

Попробую рассказать, что получилось по итогам рекомендаций Дениса.

Какие могут быть альтернативы - Выгружать материалы по частям (по категориям, по каталогам и тд)

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

- Использовать опцию для объединения

пробовал - не помогает, "смещение" остаётся

- Увеличить шаг до примерного кол-ва материалов на сайте. Это можно сделать тут \media\zoo\applications\jbuniversal\framework\helpers\jbexport.php. Константа STEP_SIZE

Всего объектов в базе, которые необходимо выгружать ~3750. Методом тыка подобрал максимальный шаг, который не приводил к ошибке при выгрузке. Получилось нормально при шаге 1700.  При 1800 уже ощибка. В итоговом файле экспорта при таком шаге образовалось всего одно смещение. В любом случае правок потребуется меньше, чем раньше. Уже лучше.

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

Ну и будем надеяться, что в будущем всё таки удастся найти решение.

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


  • 0





Темы с аналогичным тегами экспорт материалов

Click to return to top of page in style!