CodUP

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Примеры CSV экспорта-импорта в 6.1.1

Примеры CSV экспорта-импорта в 6.1.1 4 года 8 мес. назад #98

  • ton123
  • ton123 аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Я использую:
Firefox на Windows 7 + сервер со свежим установленным пакетом 6.1.1

ПЕРВЫЙ ПРИМЕР: Подготовка:
Я создаю две базы данных с пользователем/паролем admin/admin
Обе с языком по умолчанию: English (US)
Одна из баз данных с демонстрационными данными, другая без них.
Базы данных:
TESTDEMO и TESTEMPTY
Если их запустить, то в меню отображается только: Settings.

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

Теперь оба меню показывают Sales, Warehouse, Accounting, Settings

ПЕРВЫЙ ПРИМЕР: Экспорт
Экспорт из TESTDEMO
Sale/Address Book/Customers
Показывает:
9 партнеров, когда кнопки Заказчики/Поставщики Светлая/Темная
26 партнеров, когда кнопки Заказчики/Поставщики Темная/Светлая
31 Партнеры когда кнопки Заказчики/Поставщики Светлая/Светлая
33 Партнеры когда кнопки Заказчики/Поставщики Темная/Темная

4 из 9 партнеров являются поставщиком и заказчиком (Axelor, Camptocamp, Seagate и Viking Direct)
9+26 = 35 минус 4 дает вам 31
2 "партнера" не заказчики и не поставщики (Shop1 и Your Company)

Я хочу экспортировать все данные, поэтому я использовал Темная/Темная и выбрал всех.
Экспорт
Тип экспорта: Import Compatible Export
Формат экспорта: CSV
Открываю все доступные поля
Добавляю все поля в экспорт
(Около 300 полей!)
Экспорт в файл
Результат: res.partner.csv

ПЕРВЫЙ ПРИМЕР: Импорт
Импорт в TESTEMPTY
Sales/Address/Customer
Заказчики/Поставщики Светлая/Светлая
Просмотр: Your Company
Импорт respartner.csv (созданный выше)
2. Проверьте формат файла
Нет отмеченных красным.
Много полей выглядят нормальными.
Также много полей, которые показывают "не импортированы". Вот несколько примеров:
banks_ids / journal_id
banks_id / company_id
banks_id / country_id
banks_id / state_id
ref_companies / bank_ids
ref_companies / bank_ids / journal_id
ref_companies / bank_ids / country_id
ref_companies / bank_ids / state_id
ref_companies / child_ids / user_ids
и многие другие
Все равно ИМПОРТ ФАЙЛА
Результат:
The import failed due to:No such external ID currently defined in the system: account.a_pay, Traceback (most recent call last): File "/var/packages/OpenERP6.1/target/openerp/addons/web/common/http.py", line 592, in send result = openerp.netsvc.dispatch_rpc(service_name, method, args) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/netsvc.py", line 360, in dispatch_rpc result = xportService.getService(service_name).dispatch(method, params) File "[email protected][email protected]ces.py", line 572, in dispatch res = fn(db, uid, *params) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/osv.py", line 167, in execute_kw return self.execute(db, uid, obj, method, *args, **kw or {}) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/osv.py", line 121, in wrapper return f(self, dbname, *args, **kwargs) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/osv.py", line 176, in execute res = self.execute_cr(cr, uid, obj, method, *args, **kw) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/osv.py", line 164, in execute_cr return getattr(object, method)(cr, uid, *args, **kw) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/orm.py", line 1412, in import_data process_liness(self, datas, [], current_module, self._name, fields_def, position=position) File "[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/orm.py", line 1371, in process_liness res = _get_id(relation, line[i], current_module, mode) File 
"[email protected]/Python/usr/lib/python2.7/site-packages/openerp/osv/orm.py", line 1268, in _get_id record_id = ir_model_data_obj._get_id(cr, uid, module, xml_id) File "[email protected][email protected]ot;, line 18, in lookup r = self.lookup(self2, cr, *args) File "[email protected][email protected]ot;, line 46, in lookup value = d[args] = self.method(self2, cr, *args) File 
"/var/packages/OpenERP6.1/target/openerp/addons/base/ir/ir_model.py", line 640, in _get_id raise ValueError('No such external ID currently defined in the system: %s.%s' % (module, xml_id)) ValueError: No such external ID currently defined in the system: account.a_pay

Re: Примеры CSV экспорта-импорта в 6.1.1 4 года 8 мес. назад #99

  • Angela
  • Angela аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Это похоже на то, что было у меня, когда я устал экспортировать/импортировать CSV по умолчанию...

Мне было бы любопытно увидеть как один из экспертов CSV экспорта/импорта завершит этот процесс так, чтобы он работал (как некоторые утверждают, что эти функции работают как часы).

Re: Примеры CSV экспорта-импорта в 6.1.1 4 года 8 мес. назад #100

  • raycarnes
  • raycarnes аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 7
  • Спасибо получено: 1
  • Репутация: 1
Предостережение: Я не «эксперт» форума и только утверждаю, что CSV перенос данных работает "как часы", когда вы понимаете, как это работает, какие обязательные требования к полям в местах для данных, которые вы импортируете, как работают XML идентификаторы, какие зависимости есть у импортируемых бизнес-объектов и следуете правильному порядку при их импорте.

Это отличный пример, и представляет мне возможность объяснить многие из проблем, которые возникают с CSV экспортом и импортом, которые не очевидны при первом использовании программного обеспечения.

Дайте мне немного времени, чтобы подготовить отчет с тщательным объяснением, почему это происходит и что вам нужно сделать, чтобы это работало.

Re: Примеры CSV экспорта-импорта в 6.1.1 4 года 8 мес. назад #101

  • raycarnes
  • raycarnes аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 7
  • Спасибо получено: 1
  • Репутация: 1
Делайте этот один шаг всякий раз:

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

ШАГ ПЕРВЫЙ:
Во-первых, вы должны понимать, как работают XML идентификаторы:

ID поле (также известное как XML ID или внешнее ID) предназначено для обеспечения записей быть уникально определенными и поддержки взаимодействия данных. OpenERP присваивает значения ID поля для каждой записи бизнес-объекта (партнера, счета, продукта и т.д.) в базе данных. Это то, что вы видите, когда что-нибудь экспортируете в CSV. Это НЕ то же самое, что и DATABASE ID, которое используется внутри OpenERP.

Когда вы загружаете файл CSV обратно в OpenERP и если он не содержит ID поля, то OpenERP присвоит его для вас.

Если указать ID поле в файле CSV, то OpenERP сделает одно из двух вещей:
а) если он является ID «базового» бизнес-объекта, которой вы импортируете (такого как partner), то он сначала осуществит поиск существующих записей в базе данных. Если он найдет ее, то он ОБНОВИТ запись информацией из файла CSV. Если он не найдет, то СОЗДАСТ запись по информации из CSV файла.

Пример: Вы импортируете некоторых партнеров каждый месяц, потому что вы получите обновленную таблицу с их информацией, и вы хотите убедиться, что вы не дублируете данные. В этом случае ваш выбор использовать уникальный ID. Если указать ID, который еще не находится в базе данных, то будет добавлена новая запись. OpenERP будет ОБНОВЛЯТЬ записи, для которых ID соответствует какой-нибудь в базе данных, а также СОЗДАВАТЬ записи, где ID не совпадают.

б) если будет ID 'связанного' бизнес-объекта при импорте (таких, как счета AR и AP ипортируемого партнера), то он будет только ИСКАТЬ для этих ID и жаловаться, если он не сможет их найти.

Это то, что случилось с вами - вы импортируете партнеров, которые OpenERP с радостью импортирует и назначить им ID поля, которые вы указываете, но вы также импортируете связанную информацию - счета, которые OpenERP будет импортировать только если есть соответствующая запись в базе данных.

На самом деле, не возможно импортировать партнеров без счетов. Попробуйте добавить партнера через браузер и посмотреть на вкладку Accounting - в вашем примере, вы увидите автоматически присвоенные счета.

РЕШЕНИЕ:
Демонстрационная база данных имеет счета, а пустая база данных нет. Так как счета связанны с партнерами, OpenERP ищет соответствующую запись, но не находит.

Ваша база данных должна иметь счета, но вы закрыли мастер Плана Счетов! Вы должны вновь открыть этот мастер и выбрать соответствующий план счетов. Затем нужно создать одного партнера и экспортировать его, чтобы увидеть ID счетов, которые используются. Заменить ID счетов в "пустой" базе данных на те, что в "демо" базе данных. ID находятся в полях property_account_payable/id и property_account_receivable/id.

Сделайте это, и дайте мне знать о следующей проблеме. (Бьюсь об заклад, что будет больше 'связанной' информации из демо базы данных, которой нет в "пустой" базе данных.)

Надеюсь это поможет.

Re: Примеры CSV экспорта-импорта в 6.1.1 4 года 8 мес. назад #102

  • Angela
  • Angela аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Ну, спасибо большое Ray за эти усилия. Это имеет смысл и я постараюсь сделать некоторые другие тесты с данными, которые не имеет связанного объекта (внешнего ключа), для начала, а потом попробую еще раз с партнерами и проверю бухгалтерские вещи.

Copyright © 2010-2017 CodUP.com

Top Desktop version