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¶
När du arbetar med en databas är det ibland nödvändigt att exportera data i en separat fil. Att göra det kan underlätta rapportering av aktiviteter, även om Odoo tillhandahåller ett exakt rapportverktyg med varje tillgänglig ansökan.
Med Odoo kan värdena exporteras från vilket fält som helst i vilken handling som helst. För att göra detta, aktivera listvyn (Lista) på objekten som behöver exporteras och välj sedan de handlingar som ska exporteras. För att välja en handling, markera kryssrutan bredvid motsvarande handling. Klicka slutligen på knappen Åtgärd och välj Exportera.
När du klickar på Exportera visas ett popup-fönster Exportera data med flera optioner för data som ska exporteras:
Med optionen Jag vill uppdatera data (importkompatibel export) markerad visar systemet endast de fält som kan importeras. Detta är användbart i det fall då befintliga handlingar behöver uppdateras. Detta fungerar som ett filter. Om rutan lämnas omarkerad ges många fler fältalternativ eftersom det visar alla fält, inte bara de som kan importeras.
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.Detta är objekten som kan exporteras. Använd ikonen (Visa underfält) för att visa fler underfältsalternativ. Använd sökfältet Sök för att hitta specifika fält. För att använda alternativet Sök mer effektivt, klicka på alla ikoner (Visa underfält) för att visa alla fält.
Ikonknappen (Välj fält) används för att lägga till fält i listan Fält att exportera.
Ikonen (Sortera) till vänster om de valda fälten kan användas för att flytta fälten upp och ner, för att ändra i vilken ordning de visas i den exporterade filen. Dra och släpp med ikonen (Sortera).
Ikonen (Ta bort fält) används för att ta bort fält. Klicka på ikonen (Ta bort fält) för att ta bort fältet.
För återkommande rapporter är det användbart att spara exportförinställningar. Välj alla nödvändiga fält och klicka på rullgardinsmenyn för mallar. Klicka där på Ny mall och ge ett unikt namn till exportmallen. Klicka på ikonen (diskett) för att spara konfigurationen. Nästa gång samma lista behöver exporteras, välj den relaterade mallen som tidigare sparats från rullgardinsmenyn.
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.
Öppna vyn för objektet som data ska importeras/fyllas i till, klicka på ikonen (Åtgärd) och välj i rullgardinsmenyn (Importera handlingar).
Klicka på Importera mall för kunder i mitten av sidan för att ladda ner en mall och fylla den med företagets egna data. Sådana mallar kan importeras med ett klick eftersom datamappningen redan är förkonfigurerad.
För att ladda upp den nedladdade mallen eller en befintlig fil, följ nästa steg:
Klicka på Ladda upp datafil och välj önskad fil.
Justera Formatering-optionerna efter behov (endast för CSV-filer).
Se till att all data i Filkolumn är korrekt mappat till lämpligt Odoo-fält och fri från fel.
(Valfritt) Klicka på Ladda datafil för att ladda om samma fil eller ladda upp en annan.
Klicka på Testa för att verifiera att data är giltig.
Klicka på Importera.
Observera
Formatering-optionerna visas inte vid import av den proprietära Excel-filtypen (dvs. .xls eller .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
Ett annat användbart sätt att ta reda på korrekta kolumnnamn för import är att exportera en exempelfil med de fält som ska importeras. På detta sätt, om det inte finns någon exempelimportmall, är namnen korrekta.
Importera från ett annat program¶
Externt ID (ID) är en unik identifierare för en radartikel. Det är möjligt att använda ett Externt ID (ID) från tidigare mjukvara för att underlätta övergången till 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 är en internationell standard som omfattar världsomspännande utbyte tillsammans med kommunikation av datum- och tidsrelaterad data. Till exempel bör datumformatet vara ÅÅÅÅ-MM-DD. I fallet med den 24 juli 1981 ska det skrivas som 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
Ett företag importerar offerter med hjälp av en CSV-fil, baserad på demodata:
Ett företag importerar inköpsordrar med sina respektive inköpsorderrader med hjälp av en CSV-fil:
Ett företag importerar kunder och deras respektive kontakter med hjälp av en CSV-fil:
Importera bildfiler¶
För att importera bildfiler tillsammans med den uppladdade CSV- eller Excel-filen, följ nästa steg:
Lägg till bildfilnamnen i den relevanta kolumnen Bild i datafilen.
Ladda upp datafilen eller ladda om den genom att klicka på Ladda datafil.
Klicka på Ladda upp dina filer under sektionen Filer att importera.
Välj relevanta bildfiler. Antalet valda filer visas bredvid knappen.
Klicka på Testa för att verifiera att all data är giltig.
Klicka på Importera. Under importprocessen utför Odoo en filkontroll för att automatiskt länka de uppladdade bilderna till den importerade datafilen. Om det inte finns någon matchning importeras datafilen utan någon bild.
Observera
Sektionen Filer att importera aktiveras om produktmallen har en Bild-kolumn med alla fält ifyllda.
Bildfilnamnen i datafilen måste motsvara de uppladdade bildfilerna.
Vid import av ett stort antal bilder, ange maximal batchstorlek i megabyte och ställ in en fördröjning för att förhindra att systemet blir överbelastat. För att göra detta, aktivera utvecklarläget och fyll i fälten Max storlek per batch och Fördröjning efter varje batch i sektionen Filer att importera. Som standard uppfyller fördröjningen RPC/API-anropsgränsen som definieras i Odoo Cloud - Policy för godtagbar användning.
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¶
Om alla fält inte är inställda i CSV-filen tilldelar Odoo standardvärdet för varje odefinierat fält. Men om fält är inställda med tomma värden i CSV-filen, ställer Odoo in det tomma värdet i fältet istället för att tilldela standardvärdet.
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¶
För att uppdatera data genom en import, navigera först till datan som ska uppdateras och välj ikonen (Lista) för att aktivera listvyn. På vänstra sidan av listan, markera kryssrutan för alla poster som ska uppdateras. Klicka sedan på knappen Åtgärder och välj Exportera från rullgardinsmenyn.
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älten som ska inkluderas i exporten med hjälp av optionerna i popup-fönstret och klicka sedan på Exportera.
Importera uppdaterade data¶
Efter exporten, gör nödvändiga ändringar i datafilen. När filen är klar på grundnivå kan den importeras genom att följa samma process som 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.