best practices on how to import data into openerp. cyril morisse, audaxis
DESCRIPTION
TRANSCRIPT
BEST PRACTICES ON HOW TO IMPORT DATA INTO OPENERP
Why you should love CSV Import
Cyril MORISSE ( @cmorisse )
Introduc*on ¨ With Test Driven Development and Data Migra*on, we need to gather and enter real data owned by users
¨ We need a data format within user’s reach (compared to XML)
¨ As of version 7.0 OpenERP has redesigned the import system (“base_import” module): ¤ It has nearly everything right out of the box ¤ Only missing feature is user oriented documenta*on
¨ This talk is an overview of the module
Installa*on
¨ Export func*onality is available right out of the box ¨ BUT import func*onality must be installed:
¤ Import is covered by “base_import” module ¤ Import must be installed via SeTngs / Configura*on / General SeTngs
¨ Then “Import” link is available in all list/tree views
CSV import issues
¨ When impor*ng data using CSV, you will face 3 main issues: ¤ Iden*fy the fields required for an import ¤ Understand “OpenERP External IDs” ¤ Understand how to import the different type of fields n Simple fields ( date, text, numbers, boolean,…) n Rela*onal fields:
n Many2many n Many2One n One2many
Iden*fy fields to import
¨ To iden*fy the columns required to import an object: 1. Ac*vate “Developer Mode” 2. Write down all the fields you must enter manually 3. Export a file with all these fields 4. Delete values in the id column then re-‐import the
file to check everything is ok 5. If a column is missing ; do it again from step 3 and
add the column
Understand IDs
¨ Example Product categories
¨ CSV Import allows User Defined External IDs ¤ External IDs are symbolic names for records ¤ Format is module_name.id_name
Understand IDs (con*nued)
¨ User defined IDs are saved in the database and can be retrieved via: ¤ SeTngs / Technical / Sequences & Iden*fiers / External Iden*fiers
Understand IDs (end)
¨ User defined IDs allow to manage Import / Update of data ¨ During import:
¤ If a record exists with this ID, OpenERP will update the record ¤ If no record exists with this ID, OpenERP will create a new record
¨ Export IDs ¤ During Export, OpenERP creates an export ID for all records without
IDs (manually created records)
¨ In the database all External IDs are stored in table ir_model_data
Import simple Fields
Field type Cell content Example
char, text Content surrounded by “ “This is a text ""value”"."
float Number with . as decimal separator
3.15
boolean True or False “0” or 0 or “False” or False or “1” or 1 or “True” or True
date YYYY-MM-DD 2013-06-10
datetime YYYY-MM-DD HH:MM:SS 2013-06-10 07:07
selection Value as given by “developer mode” inspector
reference Value in database is “object,id”
Import rela*ons: Many2One
¨ Many2one
¨ This is the simplest rela*on to import in CSV ¤ Just use id of referenced object
id
parent_id
product_category
...
Import rela*ons: Many2Many
¨ Eg. Customer Tags
¨ Many2many involves 3 tables ¨ Really simple in CSV ; enter all values separated by comma with no space
...
id
res_partnerid
...
res_partner_categorycategory_idpartner_id
res_partner_res_partner_category_rel
Import rela*ons: One2Many
¨ Eg. Quota*ons/ Quota*ons Lines
¨ In CSV: Enter lines while you don’t repeat header object fields
¤ Child objects column format is “one2many_fieldname/child_object_field”
...
id
sale_orderid
order_id
sale_order_line
...
Integrate CSV in your development workflow ¨ Create a set of shared Google Spreadsheet that your users will complete with project data
¨ Organize your OpenERP project in 3 modules: ¤ project_core with code and technical parameters ¤ project_data : will contains only data in CSV files ¤ project_test : contains your test code and test specific data
¨ Use a tool to automate export and download of the Google Spreadsheet into the project_data module ¤ hkp://bitbucket.org/cmorisse/edgdd
¨ Your users will be able to “coopera*vely” enter their data and you will be able to seamlessly integrate and use this data in your project
More informa*on?
www.audaxis.com
Contact us [email protected]
14
Visit our booth at OpenERP Community Days in Hall K