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å bearbetas inte en post på grund av dess storlek. Detta kan inträffa vid stora exporter, eller i fall där importfilen är för stor. För att kringgå denna begränsning kring posternas storlek, bearbeta export eller import 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. I.csvsepareras posterna 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 användbart eftersom de enda data som exporteras är de som ska modifieras och importeras igen.
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
Om du aktiverar utvecklarläge ändras de synliga importinställningarna i vänstermenyn. Om du gör det visas en -meny. I den avancerade menyn finns två alternativ: Spåra historik under import och Tillåt matchning med underfält.
Om modellen använder openchatter skapar alternativet Spåra historik under import prenumerationer och skickar meddelanden under importen, men det leder till en långsammare import.
Om alternativet Tillåt matchning med delfält är valt, används alla delfält inom ett fält för att matcha under Odoo-fält vid import.
Kom igång¶
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).
Efter att ha klickat på Import records, visar Odoo en separat sida med mallar som kan laddas ner och fyllas med företagets egna data. Sådana mallar kan importeras med ett klick, eftersom datamappningen redan är gjord. För att ladda ner en mall klickar du på Importmall för kunder i mitten av sidan.
Viktigt
När du importerar en CSV-fil tillhandahåller Odoo Formatting-alternativ. Dessa alternativ visas inte när du importerar den proprietära Excel-filtypen (.xls, .xlsx).
Gör nödvändiga justeringar av alternativen Formatering och se till att alla kolumner i Odoo field och File Column är fria från fel. Klicka slutligen på Import för att importera data.
Anpassa en mall¶
Importmallar finns i importverktyget för de vanligaste data som ska importeras (kontakter, produkter, kontoutdrag etc.). Öppna dem med valfritt kalkylprogram (Microsoft Office, OpenOffice, Google Drive, etc.).
När mallen har laddats ner fortsätter du att följa dessa steg:
Lägg till, ta bort och sortera kolumner så att de passar datastrukturen på bästa sätt.
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 ned ID-sekvensen i kolumnen External 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 detta fälts 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 en annan applikation¶
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/External 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 för att kartlägga kolumn¶
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 de fält som har typen integer som alternativ.
Även om detta beteende kan vara fördelaktigt i de flesta fall, är det också möjligt att det kan misslyckas, eller kolumnen kan 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), då 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 gissa datumformatet från en uppsättning av de vanligaste datumformaten. Denna process kan fungera för många datumformat, men vissa datumformat är inte igenkännbara. Detta kan orsaka förvirring på grund av dag-månad-inversioner; 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.
När du importerar 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 önskat format 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 datumceller för att lagra datum. Detta bibehåller lokala datumformat för visning, oavsett hur datumet är formaterat i Odoo. När du importerar en CSV-fil, använd Odoo’s Formatting avsnitt för att välja de datumformat kolumner som ska importeras.
Importera siffror med valutatecken¶
Odoo har fullt stöd för siffror med parenteser för att representera negativa tecken, samt siffror med valutatecken kopplade till dem. Odoo känner också automatiskt av vilken tusen-/decimalseparator som används. Om en valutasymbol som är okänd för Odoo används kanske den inte identifieras 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 Tusenseparator ändras.
Exempel på siffror 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 indikerar 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, kommer Odoo inte att upptäcka separationerna. Filformatalternativen måste ändras i kalkylprogrammet. Se följande Ändra CSV-filformat avsnitt.
Ändra CSV-filformat i kalkylprogram¶
När du redigerar och sparar CSV-filer i kalkylprogram används datorns regionala inställningar för separator och avgränsare. Odoo föreslår att man 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 med ett annat objekt. Till exempel är en kontakts land en länk till en post i objektet ”Land”. När sådana fält importeras måste Odoo återskapa länkar mellan de olika posterna. Odoo tillhandahåller tre mekanismer för att underlätta import av sådana fält.
Viktigt
Endast en mekanism ska användas per fält som importeras.
Om du till exempel vill ange 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, definierad av ID PostgreSQL-kolumnen
Country/External ID: ID för denna post som refereras till i ett annat program (eller
.XML-filen som 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 är 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 aldrig ha 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 External ID (ID)-kolumnen som definierar external ID 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 för produkter och deras kategorier.
Importera relationsfält¶
Ett Odoo-objekt är alltid relaterat till många andra objekt (t.ex. en produkt är länkad 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ägg till ”/ ID” i slutet av kolumnrubriken (t.ex. för produktattribut: ”Produktattribut / Attribut / ID”).
Alternativ för flera matcher på fält¶
Om det till exempel finns två produktkategorier med det underordnade namnet ”Sellable” (t.ex. ”Misc. Products/Sellable” & ”Other Products/Sellable”), stoppas valideringen, men data kan fortfarande importeras. Odoo rekommenderar dock att data inte importeras eftersom allt kommer att vara länkat till den första ”Säljbara” kategorin som finns i Produktkategori-listan (”Övriga produkter/säljbara”). Odoo rekommenderar istället att du ändrar ett av dubblettens värden, eller produktkategorihierarkin.
Men om företaget inte vill ändra konfigurationen av produktkategorier, rekommenderar Odoo att använda External ID för detta fält, ”Kategori”.
Importera fält för many2many-relationer¶
Taggarna ska separeras med ett kommatecken, utan något mellanrum. Till exempel, om en kund behöver länkas till båda taggarna: Manufacturer och Retailer så måste ’Manufacturer,Retailer’ kodas i samma kolumn i CSV-filen.
Importera en2many 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 informationen om ordern. Alla ytterligare rader behöver en ytterligare 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:
Importera poster flera gånger¶
Om en importerad fil innehåller en av kolumnerna: External ID eller Database ID, kommer poster som redan har importerats att ändras istället för att skapas. Detta är mycket användbart eftersom användare kan importera samma CSV-fil flera gånger, samtidigt som de har gjort vissa ändringar mellan två importer.
Odoo tar hand om att skapa eller ändra varje post, beroende på om den är ny eller inte.
Med den här funktionen kan ett företag använda verktyget Import/Export i Odoo för att ändra ett antal poster i ett kalkylprogram.
Värde anges inte för ett specifikt område¶
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 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 de arbetar för återskapas.
För att hantera relationer mellan tabeller, använd External ID faciliteter i Odoo. Det Externa ID 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 External ID med namnet på applikationen eller tabellen. (t.ex. ”företag_1”, ”person_1” - istället för ”1”)
Anta till exempel att det finns en SQL-databas med två tabeller som ska importeras: företag och personer. Varje person tillhör ett företag, så länken mellan en person och det företag de arbetar för måste återskapas.
Testa detta exempel med en sample av en PostgreSQL-databas.
Exportera först alla företag och deras External 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;
Det här SQL-kommandot skapar följande CSV-fil:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Använd följande SQL-kommando i PSQL för att skapa filen CSV för personer som är kopplade till företag:
> 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
Det 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 denna fil 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 företagens Externa ID. Externt ID 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å producerade filerna ä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.
Välj de obligatoriska fält som ska ingå i exporten med hjälp av options i popup-fönstret och klicka sedan på Export.
Importera uppdaterade data¶
Efter exporten gör du eventuella nödvändiga ändringar i datafilen. När filen är klar kan den importeras genom att följa samma process som vid en normal dataimport.
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.