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ärden exporteras från vilket fält som helst i vilken post som helst. För att göra det aktiverar du listvyn med ikonen (Lista) för de poster som ska exporteras, och markerar sedan de poster som ska exporteras. För att markera en post markerar du kryssrutan bredvid motsvarande post. Klicka slutligen på knappen Åtgärder och välj Exportera.

Visning av de olika saker som ska aktiveras/klickas på för att exportera data.

Tips

Poster kan även exporteras från vyn (Kanban). För att markera en första post håller du ned Alt och klickar på dess kort; så länge tangenten hålls ned visas verktygstipset Klicka för att välja på korten. När en post har markerats klickar du på ett annat kort för att lägga till det i markeringen, eller håller ned Shift medan du klickar för att markera ett helt intervall. Klicka sedan på knappen Åtgärder och välj Exportera.

När du klickar på Exportera visas ett popup-fönster för Exportera data. På vänster sida listas posternas Tillgängliga fält och på höger sida Fält att exportera, det vill säga kolumnerna i den genererade filen.

Översikt över optioner att överväga vid export av data i Odoo.
  1. När reglaget Endast uppdateringsbara fält är aktiverat listas endast de fält som kan importeras tillbaka till Odoo. Detta är användbart om befintliga poster behöver uppdateras. Detta fungerar endast som ett filter på listan Tillgängliga fält; listan Fält att exportera lämnas oförändrad. Om du låter reglaget vara inaktiverat får du många fler fältalternativ, eftersom alla fält visas, inte bara de som kan importeras.

  2. Använd fältet Sök… för att hitta specifika fält. Matchande underfält visas också, och deras överordnade fält expanderas automatiskt.

  3. Detta är de element som kan exporteras. Använd ikonen (Visa underfält) för att visa fler underfältsalternativ. För att lägga till ett fält i listan Fält att exportera klickar du på ikonen (Välj fält) till höger om fältet, eller dubbelklickar på ett fält som saknar underfält.

  4. Välj den genererade filens Format: Excel-arbetsbok (.xlsx), som innehåller information om alla kalkylblad i en fil, inklusive både innehåll och formatering, eller Oformaterad text (.csv), där elementen separeras med kommatecken.

  5. Listan Fält att exportera innehåller den exporterade filens kolumner i ordning. Använd ikonen (Sortera) till vänster om ett fält för att dra och släppa det uppåt eller nedåt och ändra ordningen som kolumnerna visas i den exporterade filen. Klicka på ikonen (Ta bort fält) för att ta bort ett fält från listan.

  6. För återkommande rapporter sparar du det aktuella urvalet som en exportmall och väljer den i rullgardinsmenyn nästa gång samma lista behöver exporteras.

  7. Om databasen har flera språk installerade och minst ett valt fält kan översättas, visas fältet Språk för att exportera översättningar.

När allt är klart klickar du på Exportera för att ladda ned filen.

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.

Exportmallar

Exportmallar sparar en uppsättning fält, deras ordning och vilka språk som ska exporteras, så att samma filstruktur kan återanvändas senare. De sparas per modell och delas med databasens övriga användare.

För att skapa en mall väljer du önskade fält, klickar på ikonen (Spara som exportmall) bredvid mallens rullgardinsmeny, anger ett unikt namn och klickar på ikonen (Tillämpa ändringar). Tryck på Enter för att spara, eller Escape för att avbryta.

Namnge en exportmall innan den sparas.

För att redigera en befintlig mall väljer du den i rullgardinsmenyn och klickar sedan på ikonen (Redigera mallnamn och/eller fält). Dess namn, fält, fältordning och språk kan då ändras och sparas med ikonen (Tillämpa ändringar). Klicka på ikonen (Ignorera ändringar) för att lämna mallen som den var.

Knappar för att redigera eller ta bort den valda exportmallen.

För att ta bort en mall, välj den i rullgardinsmenyn, klicka på ikonen (Ta bort mallen) och bekräfta.

Observera

Om du ändrar fälten, deras ordning eller språken medan en mall är markerad, men inte redigeras, rensas mallvalet och det aktuella urvalet behålls som en osparad arbetsuppsättning. Det gör det möjligt att bygga en ny mall ovanpå en befintlig utan att ändra den.

Exportera översättningar

När fler än ett språk är installerat i databasen och minst ett fält i listan Fält att exportera är översättningsbart, visas fältet Språk under listan. Som standard är inget språk valt och översättningsbara fält exporteras på användarens eget språk.

Klicka på fältet Språk och välj ett eller flera språk för att exportera översättningarna av alla översättningsbara fält på dessa språk. Varje valt språk visas som en tagg och kan tas bort genom att klicka på ikonen (Ta bort) på den.

Två språk valda i fältet Språk i exportdialogrutan.

I den genererade filen ersätts varje översättningsbart fält sedan med en kolumn per valt språk, namngiven efter fältet och språkkoden, t.ex. Name@fr_FR. Detta följer samma konvention som importen, så en export som görs med reglaget Endast uppdateringsbara fält aktiverat kan återimporteras direkt med sina översättningar.

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 Avancerad-meny. I denna avancerade meny finns två alternativ: Spåra historik under import och Tillåt matchning med underfält.

Avancerade importalternativ när utvecklarläget är aktiverat.

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).

Åtgärdsmenyn visas med alternativet Importera poster markerat.

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:

  1. Klicka på Ladda upp datafil och välj önskad fil.

  2. Justera Formatering-optionerna efter behov (endast för CSV-filer).

  3. Se till att all data i Filkolumn är korrekt mappat till lämpligt Odoo-fält och fri från fel.

  4. (Valfritt) Klicka på Ladda datafil för att ladda om samma fil eller ladda upp en annan.

  5. Klicka på Testa för att verifiera att data är giltig.

  6. 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).

En animering av musen som drar ner ID-kolumnen, så att varje post har ett unikt 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.

Rullgardinsmenyn expanderade i den första importskärmen på Odoo.

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:

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.

Söker efter det fält som ska matcha skattekolumnen.

Ä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 ’Spara som’ dialogruta ‣ Markera rutan ’Redigera filterinställningar’ ‣ Spara).

Microsoft Excel kan ändra kodningen när du sparar (’Spara som’ dialogruta ‣ ’Verktyg’ rullgardinsmeny ‣ fliken Kodning).

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 .XML som importerade den)

För landet Belgien, till exempel, använder du ett av dessa tre sätt att importera:

  • Land: Belgien

  • Land/Databas-ID: 21

  • Land/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>`

  • CSV-fil för produkter

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:

  1. Lägg till bildfilnamnen i den relevanta kolumnen Bild i datafilen.

  2. Ladda upp datafilen eller ladda om den genom att klicka på Ladda datafil.

  3. Klicka på Ladda upp dina filer under sektionen Filer att importera.

  4. Välj relevanta bildfiler. Antalet valda filer visas bredvid knappen.

  5. Klicka på Testa för att verifiera att all data är giltig.

  6. 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 det resulterande popup-fönstret Exportera data aktiverar du reglaget Endast uppdateringsbara fält. Detta inkluderar automatiskt Externt ID i exporten. Dessutom begränsas listan Tillgängliga fält 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. Om reglaget Endast uppdateringsbara fält är aktiverat inkluderas 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.