From a45cdc652b2c46ff7e83a106e6c81274d5037abc Mon Sep 17 00:00:00 2001
From: Vijaykumar Baladaniya In order to re-create relationships between
different records, you should use the unique
- identifier from the original application
Frequently Asked Questions
+
and
+ identifier from the original application and
map it to the ID
column in OpenERP. When you
import an other record that links to the first
one, use XXX/ID
- to the
original unique identifier.
The ID
will also be used to update the original
import if you need to re-import modified data
- later, it's thus good practice to
specify it
+ later, it's thus good practice to specify it
whenever possible
By default the Import preview is set on commas as
field separators and quotation marks as text
- delimiters.
If your csv file does not have these
+ delimiters. If your csv file does not have these
settings, you can modify the File Format Options
(displayed under the Browse CSV file bar after you
select your file).
Note that if your CSV file
has a tabulation as separator, OpenERP will not
detect the separations. You will need to change the
-
file format options in your spreadsheet application.
+ file format options in your spreadsheet application.
See the following question.
If you edit and save CSV files in speadsheet applications, your computer's regional settings will be applied for the separator and delimiter. We suggest you use OpenOffice or LibreOffice Calc as they will allow you to modify all three options (in 'Save As' dialog box > Check the box 'Edit filter settings' > Save).
Microsoft Excel will allow you to modify only the encoding when saving (in 'Save As' dialog box > click 'Tools' dropdown list > Encoding tab).
+If you edit and save CSV files in speadsheet + applications, your computer's regional settings will + be applied for the separator and delimiter. + We suggest you use OpenOffice or LibreOffice Calc + as they will allow you to modify all three options + (in 'Save As' dialog box > Check the box 'Edit filter + settings' > Save).
Microsoft Excel will allow + you to modify only the encoding when saving + (in 'Save As' dialog box > click 'Tools' dropdown + list > Encoding tab).
Some fields define a relationship with another object. For example, the country of a contact is a link to a record of the 'Country' object. When you want to import such fields, OpenERP will have to recreate links between the different records. To help you import such fields, OpenERP provides 3 mechanisms. You must use one and only one mechanism per field you want to import.
-For example, to reference the country of a contact, OpenERP proposes you 3 different fields to import:
For the country Belgium, you can use one of these 3 ways to import:
According to your need, you should use one of these 3 ways to reference records in relations. Here is when you should use one or the other, according to your need:
Some fields define a relationship with another + object. For example, the country of a contact is a + link to a record of the 'Country' object. When you + want to import such fields, OpenERP will have to + recreate links between the different records. + To help you import such fields, OpenERP provides 3 + mechanisms. You must use one and only one mechanism + per field you want to import.
For example, to + reference the country of a contact, OpenERP proposes + you 3 different fields to import:
For the country + Belgium, you can use one of these 3 ways to import: +
According to your need, you should use + one of these 3 ways to reference records in relations. + Here is when you should use one or the other, + according to your need:
When you use External IDs, you can import CSV files + with the "External ID" column to define the External + ID of each record you import. Then, you will be able + to make a reference to that record with columns like + "Field/External ID". The following two CSV files give + you an example for Products and their Categories.
+ CSV file for categoriesIf for example you have two product categories with the child name "Sellable" (ie. "Misc. Products/Sellable" & "Other Products/Sellable"), your validation is halted. You can decide to modify one of the duplicates values.
First you need to change the field in your CSV file to 'Field / External ID' (ie. 'Category / External ID').
Then you need to replace all the records (ie. categories) with their corresponding External IDs. You get these IDs by selecting all the records in their list view and clicking the export feature (in More). You receive a CSV file where the first column displays each record's External ID.
Then you can concatenate the cells that allow you to make each record unique (ie. Category name and Parent name) and finally make use of a VLOOKUP function to replace the values set in the original CSV file with their corresponding external IDs.
+If for example you have two product categories + with the child name "Sellable" (ie. "Misc. + Products/Sellable" & "Other Products/Sellable"), + your validation is halted but you may still import + your data. However, we recommend you do not import the + data because they will all be linked to the first + 'Sellable' category found in the Product Category list + ("Misc. Products/Sellable"). We recommend you modify + one of the duplicates' values or your product category + hierarchy. + However if you do not wish to change your + configuration of product categories, we recommend you + use make use of the external ID for this field + 'Category'.
The tags should be separated by a comma without any spacing. For example, if you want you customer to be lined to both tags 'Manufacturer' and 'Retailer' then you will encode it as follow "Manufacturer,Retailer" in the same column of your CSV file.
+The tags should be separated by a comma without any + spacing. For example, if you want you customer to be + lined to both tags 'Manufacturer' and 'Retailer' + then you will encode it as follow "Manufacturer, + Retailer" in the same column of your CSV file.
+ CSV file for many2many relationshipIf you want to import sales order having several + order lines; for each order line, you need to reserve + a specific row in the CSV file. The first order line + will be imported on the same row as the information + relative to order. Any additional lines will need an + addtional row that does not have any information in + the fields relative to the order.
+As an example, here is + purchase.order_functional_error_line_cant_adpat.CSV + file of some quotations you can import, based on demo + data.
+ File of some Quotations +The following CSV file shows how to import purchase + orders with their respective purchase order lines:
+ Purchase orders with their respective purchase order lines +The following CSV file shows how to import + suppliers and their respective contacts
+ Suppliers and their respective contacts +If you import a file that contains one of the column "External ID" or "Database ID", records that have already been imported will be modified instead of being created. This is very usefull as it allows you to import several times the same CSV file while having made some changes in between two imports. OpenERP will take care of creating or modifying each record depending if it's new or not.
This feature allows you to use the Import/Export tool of OpenERP to modify a batch of records in your favorite spreadsheet application.
+If you import a file that contains one of the + column "External ID" or "Database ID", records that + have already been imported will be modified instead of + being created. This is very usefull as it allows you + to import several times the same CSV file while having + made some changes in between two imports. OpenERP will + take care of creating or modifying each record + depending if it's new or not.
This feature + allows you to use the Import/Export tool of OpenERP to + modify a batch of records in your favorite spreadsheet + application.
If you do not set all fields in your CSV file, OpenERP will assign the default value for every non defined fields. But if you -set fields with empty values in your CSV file, OpenERP will set the EMPTY value in the field, instead of assigning the default value.
+If you do not set all fields in your CSV file, + OpenERP will assign the default value for every non + defined fields. But if you + set fields with empty values in your CSV file, OpenERP + will set the EMPTY value in the field, instead of + assigning the default value.
If you need to import data from different tables, you will have to recreate relations between records belonging to different tables. (e.g. if you import companies and persons, you will have to recreate the link between each person and the company they work for).
+If you need to import data from different tables, + you will have to recreate relations between records + belonging to different tables. (e.g. if you import + companies and persons, you will have to recreate the + link between each person and the company they work + for).
To manage relations between tables, + you can use the "External ID" facilities of OpenERP. + The "External ID" of a record is the unique identifier + of this record in another application. This "External + ID" must be unique accoss all the records of all + objects, so it's a good practice to prefix this + "External ID" with the name of the application or + table. (like 'company_1', 'person_1' instead of '1') +
As an example, suppose you have a SQL database + with two tables you want to import: companies and + persons. Each person belong to one company, so you + will have to recreate the link between a person and + the company he work for. (If you want to test this + example, here is a dump of such a PostgreSQL database) + (file: https://docs.google.com/open?id=0B5BDHVRYo-q5S0FQNEJobjZqQUk).
+We will first export all companies and their + "External ID". In PSQL, write the following command: +
copy + (select 'company_'||id as "External ID",company_name + as "Name",'True' as "Is a Company" from companies) TO + '/tmp/company.csv' with CSV HEADER;
+This SQL command will create the following CSV file:
+
External ID,Name,Is a
+ Company
+ company_1,Bigees,True
+ company_2,Organi,True
+ company_3,Boum,True
To create the CSV file for + persons, linked to companies, we will use the + following SQL command in PSQL:
+copy (select 'person_'||id + as "External ID",person_name as "Name",'False' as "Is + a Company",'company_'||company_id as "Related + Company/External ID" from persons) TO '/tmp/person.csv' + with CSV
+It will produce the following CSV file:
+ External ID,Name,Is a
+ Company,Related Company/External ID
+ person_1,Fabien,False,company_1
+
+ person_2,Laurence,False,company_1
+ person_3,Eric,False,company_2
+
+ person_4,Ramsy,False,company_3
As you can see in this file, Fabien and Laurence + are working for the Bigees company (company_1) and + Eric is working for the Organi company. The relation + between persons and companies is done using the + External ID of the companies. We had to prefix the + "External ID" by the name of the table to avoid a + conflict of ID between persons and companies (person_1 + and company_1 who shared the same ID 1 in the orignial + database).
+The two files produced are ready to be imported in + OpenERP without any modifications. After having + imported these two CSV files, you will have 4 contacts + and 3 companies. (the firsts two contacts are linked + to the first company). You must first import the + companies and then the persons.