Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

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 3.15
separator
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    
product_category
id
parent_id

...

¨  This  is  the  simplest  rela*on  to  import  in  CSV  
¤  Just  use  id  of  referenced  object  
Import  rela*ons:  Many2Many  
¨  Eg.  Customer  Tags  

¨  Many2many  involves  3  tables    


  id
res_partner res_partner_res_partner_category_rel
partner_id category_id id
res_partner_category

 
... ...

¨  Really  simple  in  CSV  ;  enter  all  values  separated  by  
comma  with  no  space  
 
Import  rela*ons:  One2Many  
¨  Eg.  Quota*ons/  Quota*ons  Lines  
sale_order sale_order_line
id id

... order_id

  ...

 
¨  In  CSV:  Enter  lines  while  you  don’t  repeat  header  object  fields  
¤  Child  objects  column  format  is    
“one2many_fieldname/child_object_field”  
 
 
 
 
 
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?  
14

www.audaxis.com  
 
Contact  us  
openerp@audaxis.com  
 

Visit our booth at OpenERP Community Days in Hall K

You might also like