Задача - организовать ежедневную выгрузку представления(сводится из нескольких таблиц) в файл(csv - подойдёт), для последующего использования за пределами КБ.
В документации нашёл только http://clientbase.ru...dmin_16/export/ и там описано как организовать выгрузку из одной таблицы.
Сделал по аналогии:
export_data('Документы', '<Имя представления>', '/home/<путь к установке КБ>/export/offers.csv');
Однако это не дало ожидаемого результата. Вероятно для представлений нужно делать как-то иначе. Как?
2
Сообщений в теме: 6
#1
Отправлено 12 Февраль 2012 - 23:32
#2
Отправлено 13 Февраль 2012 - 09:27
Функция export_data работает исключительно с таблицами, разумеется представление сэкспортировать вы ей не сможете, т.к. программа не в состоянии определить какие именно данные брать из него. Единственный вариант здесь - самостоятельно сохранять данные представления в какую-либо из таблиц и затем экспортировать данные из нее. Разумеется при этом и код представления должен также автоматически выполняться через крон перед вызовом функции export_data. По сути это уже будет просто набор команд по формированию данных в некую таблицу и затем выполняющих их экспорт, само представление здесь уже не нужно.
#3
Отправлено 13 Февраль 2012 - 10:56
Каким образом это будет правильно сделать? Можно ли использовать данные из шага подготовки данных этого представления, чтобы не плодить одну и ту же выборку, которая ещё и меняется время от времени?
Можно/нужно использовать какие-то методы для занесения данных в таблицу или нужно заполнять её выполняя каждый раз INSERT запрос?
Если это есть в документации - направьте где, потому что я не смог найти.
Можно/нужно использовать какие-то методы для занесения данных в таблицу или нужно заполнять её выполняя каждый раз INSERT запрос?
Если это есть в документации - направьте где, потому что я не смог найти.
#4
Отправлено 13 Февраль 2012 - 11:06
1. Создаете таблицу средствами самой программы, через Настройки.
2. Создаете фильтр по умолчанию, в данном случае - пустой фильтр "Все записи", это необходимо для команды export_data.
3. Пишете ваш код, который можно скопировать из выбранного представления, единственно что данные после выборки необходимо будет записывать в созданную таблицу, а не выводить на экран, как это происходит в случае представления.
4. Для записи можно использовать стандартный INSERT, а можно использовать и нашу функцию insert_query. Описание здесь: http://clientbase.ru...?showtopic=3221
2. Создаете фильтр по умолчанию, в данном случае - пустой фильтр "Все записи", это необходимо для команды export_data.
3. Пишете ваш код, который можно скопировать из выбранного представления, единственно что данные после выборки необходимо будет записывать в созданную таблицу, а не выводить на экран, как это происходит в случае представления.
4. Для записи можно использовать стандартный INSERT, а можно использовать и нашу функцию insert_query. Описание здесь: http://clientbase.ru...?showtopic=3221
#5
Отправлено 21 Февраль 2012 - 23:13
Сделал отдельную таблицу, данные туда успешно вносятся.
Настроил экспорт:
Т.е., в целом, всё просто. Но в логах крон-задач такое:
и в результирующем файле две строки - строка заголовка(с именами полей) и первая строка из таблицы.
КБ: Версия: 1.9.5 Ревизия:
Настроил экспорт:
export_data( '<имя таблицы>', '<имя фильтра на этой таблице>', '<путь к файлу>' );
Т.е., в целом, всё просто. Но в логах крон-задач такое:
[color=#000000]2012-02-21 23:57:01 - OneTime - Task terminated[/color] [color=#000000]<br />[/color] [color=#000000]<b>Fatal error</b>: Call to undefined function insert_log() in <b>/home/da-crm/data/www/crm.discountaround.ru/include/functions_cron.php</b> on line <b>2162</b><br />[/color]
и в результирующем файле две строки - строка заголовка(с именами полей) и первая строка из таблицы.
КБ: Версия: 1.9.5 Ревизия:
3429 от 2012-02-09
#6
Отправлено 22 Февраль 2012 - 11:56
Обновите ревизию до последней.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных