best practices on how to import data into openerp. cyril morisse, audaxis

14
BEST PRACTICES ON HOW TO IMPORT DATA INTO OPENERP Why you should love CSV Import Cyril MORISSE ( @cmorisse )

Upload: odoo

Post on 01-Nov-2014

5.040 views

Category:

Business


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

BEST PRACTICES ON HOW TO IMPORT DATA INTO OPENERP

Why  you  should  love  CSV  Import    

Cyril  MORISSE  (  @cmorisse  )    

Page 2: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

 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  

Page 3: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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  

Page 4: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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  

Page 5: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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    

Page 6: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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  

 

Page 7: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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    

Page 8: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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  

Page 9: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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”

Page 10: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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

...

Page 11: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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

Page 12: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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

...

Page 13: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

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    

Page 14: Best practices on how to import data into OpenERP. Cyril Morisse, Audaxis

More  informa*on?  

www.audaxis.com    

Contact  us  [email protected]  

 

 

 

14

Visit our booth at OpenERP Community Days in Hall K