Exportera och importera data¶
I Odoo är det ibland nödvändigt att exportera eller importera data för att köra rapporter eller för att ändra data. Detta dokument behandlar export och import av data till och från Odoo.
Viktigt
Ibland stöter användare på ett ”time out”-fel eller så behandlas inte en post på grund av dess storlek. Detta kan inträffa med stora exporter eller i fall där importfilen är för stor. För att kringgå denna begränsning av posternas storlek kan du bearbeta exporten eller importen i mindre satser.
Exportera data från Odoo¶
When working with a database, it is sometimes necessary to export data in a distinct file. Doing so can aid in reporting on activities, although, Odoo provides a precise reporting tool with each available application.
With Odoo, the values can be exported from any field in any record. To do so, activate the list view (List) icon, on the items that need to be exported, and then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click the Action button, and select Export.
When clicking on Export, a Export Data pop-over window appears, with several options for the data to export:
With the I want to update data (import-compatable export) option ticked, the system only shows the fields that can be imported. This is helpful in the case where the existing records need to be updated. This works like a filter. Leaving the box unticked, gives many more field options because it shows all the fields, not only the ones that can be imported.
Vid export finns det möjlighet att exportera i två format:
.csvoch.xls. Med.csvsepareras objekten med ett kommatecken, medan.xlsinnehåller information om alla kalkylblad i en fil, inklusive både innehåll och formatering.These are the items that can be exported. Use the (Show sub-fields) icon to display more sub-field options. Use the Search bar to find specific fields. To use the Search option more efficiently, click on all the (Show sub-fields) icon to display all fields.
The (Select field) icon button is present to add fields to the Fields to export list.
The (Sort) icon to the left of the selected fields can be used to move the fields up and down, to change the order in which they are displayed in the exported file. Drag-and-drop using the (Sort) icon.
The (Remove field) icon is used to remove fields. Click the (Remove field) icon to remove the field.
For recurring reports, it is helpful to save export presets. Select all the needed fields, and click on the template drop-down menu. Once there, click on New template, and give a unique name to the export template. Click the (floppy drive) icon to save the configuration. The next time the same list needs to be exported, select the related template that was previously saved from the drop-down menu.
Tips
Det är bra att känna till fältets externa identifierare. Till exempel är Related Company i användargränssnittet för export lika med parent_id (extern identifierare). Detta är bra eftersom det enda data som exporteras då är det som ska modifieras och importeras på nytt.
Importera data till Odoo¶
Att importera data till Odoo är till stor hjälp under implementeringen, eller när data behöver uppdateras i bulk. Följande dokumentation beskriver hur man importerar data till en Odoo-databas.
Varning
Importer är permanenta och kan inte ångras. Det är dock möjligt att använda filter (created on eller last modified) för att identifiera poster som ändrats eller skapats av importen.
Tips
Aktivering av utvecklarläge ändrar de synliga importinställningarna i vänstermenyn. När du gör det visas en -meny. I denna avancerade meny finns två alternativ: Spåra historik under import och Tillåt matchning med underfält.
Om modellen använder openchatter kan alternativet Spåra historik under import skapa prenumerationer och skicka meddelanden under importen, men det leder till en långsammare import.
Om alternativet Allow matching with subfields är valt, används alla underfält inom ett fält för att matcha under Odoo Field vid import.
Kom igång med arbetet¶
Data kan importeras till alla Odoo-affärsobjekt med hjälp av antingen Excel (.xlsx) eller CSV (.csv) format. Detta inkluderar: kontakter, produkter, kontoutdrag, verifikat och order.
Open the view of the object to which the data should be imported/populated, click on (Action) icon, and in the drop-down menu select (Import records).
Click Import Template for Customers at the center of the page to download a template and populate it with the company’s own data. Such templates can be imported in one click since the data mapping is already preconfigured.
To upload the downloaded template or an existing file, follow the next steps:
Click Upload Data File and select the desired file.
Adjust the Formatting options as needed (for CSV files only).
Ensure all data in the File Column is correctly mapped to the appropriate Odoo Field and free of errors.
(Optional) Click Load Data File to reload the same file or upload a different one.
Click Test to verify that the data is valid.
Click Import.
Observera
The Formatting options do not appear when importing the proprietary Excel file
type (i.e., .xls or .xlsx).
Anpassa en mall¶
Importmallar finns i importverktyget för de vanligaste uppgifterna som ska importeras (kontakter, produkter, kontoutdrag etc.). Öppna dem med valfritt kalkylbladsprogram (Microsoft Office, OpenOffice, Google Drive, etc.).
När mallen har laddats ner fortsätter du med att följa dessa steg:
Lägg till, ta bort och sortera kolumner så att de passar datastrukturen bäst.
Det rekommenderas starkt att inte ta bort kolumnen External ID (ID) (se varför i nästa avsnitt).
Ange ett unikt ID för varje post genom att dra ner ID-sekvenseringen i kolumnen Externt ID (ID).
Observera
När en ny kolumn läggs till kan det hända att Odoo inte kan mappa den automatiskt, om dess etikett inte passar något fält i Odoo. Nya kolumner kan dock mappas manuellt när importen testas. Sök i rullgardinsmenyn efter motsvarande fält.
Använd sedan fältets etikett i importfilen för att säkerställa att framtida importer lyckas.
Tips
Another useful way to find out the proper column names to import is to export a sample file using the fields to be imported. This way, if there is not a sample import template, the names are accurate.
Importera från ett annat program¶
The External ID (ID) is a unique identifier for a line item. It is possible to use an External ID (ID) from previous software to facilitate the transition to Odoo.
Det är inte obligatoriskt att ange ett ID vid import, men det underlättar i många fall:
Uppdatera import: importera samma fil flera gånger utan att skapa dubbletter.
För att återskapa relationer mellan olika poster bör den unika identifieraren från den ursprungliga applikationen användas för att mappa den till kolumnen External ID (ID) i Odoo.
När en annan post importeras som länkar till den första, använd XXX/ID (XXX/Externt ID) för den ursprungliga unika identifieraren. Denna post kan också hittas med hjälp av dess namn.
Varning
Det bör noteras att konflikter uppstår om två (eller flera) poster har samma External ID.
Fält saknas till kartkolumn¶
Odoo försöker heuristiskt hitta typen av fält för varje kolumn i den importerade filen, baserat på de första tio raderna i filerna.
Om det t.ex. finns en kolumn som bara innehåller siffror visas bara fälten med typen integer som alternativ.
Även om detta beteende kan vara fördelaktigt i de flesta fall är det också möjligt att det misslyckas, eller att kolumnen mappas till ett fält som inte föreslås som standard.
Om detta händer, kontrollera alternativet Visa fält för relationsfält (avancerat), så blir en fullständig lista över fält tillgänglig för varje kolumn.
Ändra format för dataimport¶
Observera
Odoo kan automatiskt upptäcka om en kolumn är ett datum och försöker då gissa datumformatet från en uppsättning av de vanligaste datumformaten. Även om denna process kan fungera för många datumformat, är vissa datumformat inte igenkännliga. Detta kan orsaka förvirring på grund av inverteringar av dag och månad; det är svårt att gissa vilken del av ett datumformat som är dagen och vilken del som är månaden i ett datum, till exempel ”01-03-2016”.
Vid import av en CSV-fil tillhandahåller Odoo Formatting-alternativ.
För att se vilket datumformat Odoo har hittat från filen, kontrollera Date Format som visas när du klickar på alternativ under filväljaren. Om detta format är felaktigt, ändra det till det önskade formatet med hjälp av ISO 8601 för att definiera formatet.
Viktigt
ISO 8601 is an international standard, covering the worldwide exchange, along with the
communication of date and time-related data. For example, the date format should be YYYY-MM-DD.
In the case of July 24th 1981, it should be written as 1981-07-24.
Tips
När du importerar Excel-filer (.xls, .xlsx) bör du överväga att använda date-celler för att lagra datum. Detta bibehåller lokala datumformat för visning, oavsett hur datumet formateras i Odoo. När du importerar en CSV-fil, använd Odoos Formatting-avsnitt för att välja de datumformatkolumner som ska importeras.
Importera siffror med valutatecken¶
Odoo stöder fullt ut siffror med parenteser för att representera negativa tecken, liksom siffror med valutatecken kopplade till dem. Odoo känner också automatiskt av vilken tusentals-/decimalseparator som används. Om en valutasymbol som är okänd för Odoo används kan det hända att det inte känns igen som ett tal och importen kraschar.
Observera
När du importerar en CSV-fil visas menyn Formatting i den vänstra kolumnen. Under dessa alternativ kan Tousands Separator ändras.
Exempel på tal som stöds (med ”trettiotvå tusen” som siffra):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Exempel som inte kommer att fungera:
ABC 32.000,00
$ (32.000,00)
Viktigt
En () (parentes) runt talet anger att talet är ett negativt värde. Valutasymbolen måste placeras inom parentesen för att Odoo ska känna igen det som ett negativt valutavärde.
Förhandsgranskningstabell för import visas inte korrekt¶
Som standard är importförhandsgranskningen inställd på kommatecken som fältavgränsare och citattecken som textavgränsare. Om CSV-filen inte har dessa inställningar ändrar du Formatting-alternativen (visas under Import CSV-filfältet efter att du har valt CSV-filen).
Viktigt
Om CSV-filen har en tabulering som separator, upptäcker Odoo inte separationerna. Alternativen för filformatet måste ändras i kalkylbladsprogrammet. Se följande Ändra CSV-filformat avsnitt.
Ändra CSV filformat i kalkylbladsprogrammet¶
När du redigerar och sparar CSV-filer i kalkylbladsprogram tillämpas datorns regionala inställningar för separator och avgränsare. Odoo föreslår att du använder OpenOffice eller LibreOffice, eftersom båda programmen tillåter ändringar av alla tre alternativen (från LibreOffice-programmet, gå till ).
Microsoft Excel kan ändra kodningen när du sparar ().
Skillnad mellan databas-ID och externt ID¶
Vissa fält definierar en relation till ett annat objekt. Till exempel är landet för en kontakt en länk till en post i objektet ”Country”. När sådana fält importeras måste Odoo återskapa länkar mellan de olika posterna. För att hjälpa till att importera sådana fält tillhandahåller Odoo tre mekanismer.
Viktigt
Endast en mekanism ska användas per fält som importeras.
För att till exempel hänvisa till landet för en kontakt föreslår Odoo tre olika fält att importera:
Country: landets namn eller kod
Country/Database ID: det unika Odoo-ID för en post, definierat av ID PostgreSQL-kolumnen
Country/External ID: ID för den här posten som refereras till i ett annat program (eller filen
.XMLsom importerade den)
För landet Belgien, till exempel, använder du ett av dessa tre sätt att importera:
Land:
BelgienLand/Databas-ID:
21Land/Externt ID:
base.be
Beroende på företagets behov använder du ett av dessa tre sätt att referera till poster i relationer. Här följer ett exempel på när det ena eller det andra bör användas, beroende på behovet:
Använd Country: detta är det enklaste sättet när data kommer från CSV-filer som har skapats manuellt.
Använd Country/Database ID: detta bör sällan användas. Det används mest av utvecklare eftersom den största fördelen är att det aldrig uppstår konflikter (det kan finnas flera poster med samma namn, men de har alltid ett unikt databas-ID)
Använd Country/External ID: använd External ID när du importerar data från en tredjepartsapplikation.
När externa ID:n används importerar du CSV-filer med kolumnen `Externt ID (ID) som definierar det externa ID:t för varje post som importeras. Sedan kan en referens göras till den posten med kolumner som Field/External ID. Följande två CSV-filer ger ett exempel på produkter och deras kategorier.
CSV-fil för kategorier <export_import_data/External_id_3rd_party_application_product_categories.csv>`
Importera relationsfält¶
Ett Odoo-objekt är alltid relaterat till många andra objekt (t.ex. är en produkt kopplad till produktkategorier, attribut, leverantörer etc.) För att importera dessa relationer måste posterna för det relaterade objektet importeras först, från deras egen listmeny.
Detta kan uppnås genom att använda antingen namnet på den relaterade posten eller dess ID, beroende på omständigheterna. ID förväntas när två poster har samma namn. I sådana fall lägger du till / ID i slutet av kolumnrubriken (t.ex. för produktattribut: Produktattribut / Attribut / ID).
Alternativ för flera matcher på fält¶
Om det t.ex. finns två produktkategorier med undernamnet Säljbar (t.ex. Mellanprodukter/Säljbar & Övriga produkter/Säljbar), stoppas valideringen, men uppgifterna kan fortfarande importeras. Odoo rekommenderar dock att uppgifterna inte importeras eftersom de alla kommer att länkas till den första ”säljbara” kategorin som finns i listan Product Category (Misc. Products/Sellable). Odoo rekommenderar istället att man ändrar ett av duplikatets värden eller produktkategorihierarkin.
Om företaget inte vill ändra konfigurationen av produktkategorier rekommenderar Odoo dock att man använder Externt ID för detta fält, ”Kategori”.
Importera fält för many2many-relationer¶
Taggarna ska separeras med ett kommatecken, utan något mellanrum. Om en kund t.ex. behöver länkas till båda taggarna: ”Tillverkare” och ”Återförsäljare”, måste ”Tillverkare, Återförsäljare” kodas i samma kolumn i CSV-filen.
Importera one2many-relationer¶
Om ett företag vill importera en försäljningsorder med flera orderrader måste en specifik rad reserveras i CSV-filen för varje orderrad. Den första orderraden importeras på samma rad som den information som är relaterad till ordern. Eventuella ytterligare rader behöver en extra rad som inte har någon information i fälten som är relaterade till ordern.
Example
A company imports quotations using a CSV file, based on demo data:
A company imports purchase orders with their respective purchase order lines using a CSV file:
A company imports customers and their respective contacts using a CSV file:
Import image files¶
To import image files along with the uploaded CSV or Excel file, follow the next steps:
Add the image file names to the relevant Image column in the data file.
Upload the data file or reload it by clicking Load Data File.
Click Upload your files under the Files to import section.
Select the relevant image files. The number of files selected appears next to the button.
Click Test to verify that all data is valid.
Click Import. During the import process, Odoo performs a file check to automatically link the uploaded images to the imported data file. If there is no match, the data file is imported without any image.
Observera
The Files to import section is enabled if the product template has an Image column with all fields populated.
The image file names in the data file must correspond to the uploaded image files.
When importing a large number of images, specify the maximum batch size in megabytes and set a delay to prevent the system from becoming overloaded. To do so, enable the developer mode and fill in the Max size per batch and the Delay after each batch fields in the Files to import section. By default, the delay meets the RPC/API call limit defined in the Odoo Cloud - Acceptable Use Policy.
Importera poster flera gånger¶
Om en importerad fil innehåller en av kolumnerna: Externt ID eller Databas-ID, ändras poster som redan har importerats i stället för att skapas. Detta är mycket användbart eftersom det gör det möjligt för användare att importera samma CSV-fil flera gånger, samtidigt som de har gjort vissa ändringar mellan två importer.
Odoo tar hand om att skapa eller modifiera varje post, beroende på om den är ny eller inte.
Denna funktion gör det möjligt för ett företag att använda Import/Export-verktyget i Odoo för att ändra ett antal poster i ett kalkylbladsprogram.
Värdet anges inte för ett specifikt fält¶
If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined field. However, if fields are set with empty values in the CSV file, Odoo sets the empty value in the field, instead of assigning the default value.
Exportera/importera olika tabeller från en SQL-applikation till Odoo¶
Om data behöver importeras från olika tabeller måste relationerna mellan poster som tillhör olika tabeller återskapas. Om t.ex. företag och personer importeras måste länken mellan varje person och det företag som personen arbetar för återskapas.
För att hantera relationer mellan tabeller använder du Odoos External ID-funktioner. Det externa ID:t för en post är den unika identifieraren för denna post i en annan applikation. Det ”externa ID:t” måste vara unikt för alla poster i alla objekt. Det är en god praxis att prefixa detta ”externa ID” med namnet på applikationen eller tabellen. (t.ex. ’company_1’, ’person_1’ - i stället för ’1’)
Som ett exempel kan vi anta att det finns en SQL-databas med två tabeller som ska importeras: företag och personer. Varje person hör till ett företag, så länken mellan en person och det företag som personen arbetar för måste återskapas.
Testa detta exempel med en prov av en PostgreSQL-databas.
Exportera först alla företag och deras Externt ID. Skriv följande kommando i PSQL:
> 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;
Detta SQL-kommando skapar följande CSV-fil:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
För att skapa filen CSV för personer kopplade till företag använder du följande SQL-kommando i 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
Den producerar följande CSV-fil:
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
I den här filen arbetar Fabien och Laurence för företaget Bigees (företag_1) och Eric arbetar för företaget Organi. Relationen mellan personer och företag görs med hjälp av Externt ID för företagen. Det externa ID:t föregås av tabellens namn för att undvika en ID-konflikt mellan personer och företag (person_1 och företag_1, som delade samma ID 1 i den ursprungliga databasen).
De två filerna som produceras är redo att importeras i Odoo utan några ändringar. Efter att ha importerat dessa två CSV-filer finns det fyra kontakter och tre företag (de två första kontakterna är länkade till det första företaget). Tänk på att först importera företagen och sedan personerna.
Uppdatera data i Odoo¶
Befintliga data kan uppdateras i bulk genom en dataimport, så länge som Externt ID förblir konsekvent.
Förbereda dataexport¶
To update data through an import, first navigate to the data to be updated, and select the (List) icon to activate list view. On the far-left side of the list, tick the checkbox for any record to be updated. Then, click Actions button, and select Export from the drop-down menu.
I popup-fönstret Export Data som visas markerar du kryssrutan Jag vill uppdatera data (importkompatibel export). Detta inkluderar automatiskt Externt ID i exporten. Dessutom begränsas listan Fields to export till att endast innehålla fält som kan importeras.
Observera
Fältet Externt ID visas inte i listan Fält att exportera om det inte läggs till manuellt, men det ingår ändå i exporten. Om kryssrutan Jag vill uppdatera data (importkompatibel export) är markerad ingår det dock i exporten.
Select the required fields to be included in the export using the options on the pop-up window, then click Export.
Importera uppdaterade data¶
After exporting, make any necessary changes to the data file. When the file is ready, it can be imported by following the same process as a normal data import.
Risk
Vid uppdatering av data är det mycket viktigt att Externt ID förblir konsekvent, eftersom det är så systemet identifierar en post. Om ett ID ändras eller tas bort kan systemet lägga till en duplikatpost i stället för att uppdatera den befintliga.