Esportare e importare dati

In Odoo, a volte è necessario esportare o importare dati per l’esecuzione di rendiconti o per la modifica dei dati. In questa pagina troverai informazioni utili sull’esportazione e importazione dei dati all’interno e all’esterno di Odoo.

Importante

A volte, gli utenti visualizzano un errore di tipo «timeout» oppure uno dei loro record non viene elaborato a causa delle dimensioni. Questo può accadere con esportazioni di grandi dimensioni o nel caso in cui il file importato è troppo grande. Per raggirare il limite relativo alle dimensioni dei record, è necessario elaborare esportazioni e/o importazioni in piccoli gruppi.

Esportare dati da 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).

Vista delle varie cose da abilitare/cliccare per esportare dati.

When clicking on Export, a Export Data pop-over window appears, with several options for the data to export:

Panoramica delle opzioni da considerare durante l'esportazione di dati in Odoo.
  1. 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.

  2. Durante l’esportazioni, è possibile scegliere tra due formati: .csv e .xls. Nel formato .csv`, gli elementi vengono separati da una virgola mentre il formato .xls raggruppa tutte le informazioni sui fogli di lavoro in un file compresi contenuto e formattazione.

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

  4. The (Select field) icon button is present to add fields to the Fields to export list.

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

  6. The (Remove field) icon is used to remove fields. Click the (Remove field) icon to remove the field.

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

Suggerimento

È utile conoscere l’identificatore esterno del campo. Ad esempio, il campo Azienda correlata nell’interfaccia utente dell’esportazione corrisponde a parent_id (identificatore esterno). Questo è utile perché in questo modo vengono esportati solo i dati che devono essere modificati e reimportati.

Importare dati in Odoo

L’importazione di dati in Odoo è estremamente utile durante l’implementazione o quando è necessario aggiornare dati in massa. La seguente documentazione spiega come importare dati in un database Odoo.

Avvertimento

Le importazioni sono permanenti e non possono essere annullate. Tuttavia, è possibile utilizzare filtri (creato il o ultima modifica) per individuare i record modificati o creati a seguito dell’importazione.

Suggerimento

Attivando la modalità sviluppatore le impostazioni di importazione visibili, nel menu a sinistra, saranno diverse. In questo modo, avrai accesso ad un menu Avanzato. Due sono le opzioni incluse nel menu avanzato: Mantieni uno storico durante l’importazione e Consenti la corrispondenza con i sottocampi.

Impostazioni di importazione avanzate in modalità sviluppatore attiva.

Se il modello utilizza OpenChatter, l’opzione Mantieni uno storico durante l’importazione configura abbonamenti e invia notifiche durante l’importazione che però sarà più lenta.

Se viene selezionata l’opzione Consenti la corrispondenza con i sottocampi, tutti i sottocampi relativi ad un campo specifico verranno utilizzati per la corrispondenza con il campo Odoo durante l’importazione.

Esordiente

I dati possono essere importati su quasliasi oggetto business Odoo che utilizza i formati come Excel (.xlsx) o CSV (.csv). Sono inclusi: contatti, prodotti, rendiconti bancari, registrazioni contabili e ordini.

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

Menu azioni con opzione importa record in evidenza.

Dopo aver fatto clic su Importa record, Odoo mostra una nuova pagina contenente modelli che possono essere scaricati e popolati con i dati dell’azienda. Tali modelli possono essere importati con un clic, in quanto la mappatura dei dati è già stata effettuata. Per scaricare un modello fai clic su Importa modello per clienti al centro della pagina.

Importante

Al momento dell’importazione di un file di tipo CSV, Odoo fornisce delle opzioni di formattazione. Tali opzioni nom appaiono durante l’importazione del tipo di file Excel privato (.xls, .xlsx).

Opzioni di formattazione visualizzate quando viene importato un file CSV in Odoo.

Sistema le opzioni di formattazione e assicurati che tutte le colonne nel campo Odoo e nella Colonna file siano prive di errori. Infine, fai clic su Importa per importare i dati.

Adattare un modello

Nello strumento di importazione vengono forniti i modelli per l’importazione di dati più comuni (contatti, prodotti, rendiconti bancari, ecc.). Aprili con qualsiasi software che supporta fogli di calcolo (Microsoft Office, OpenOffice, Google Drive, ecc.).

Una volta che il modello è stato scaricato, segui questi step:

  • Aggiungi, elimina e ordina le colonne per adattare al meglio la struttura dei dati.

  • è fortemente consigliato di non rimuovere la colonna relativa all”ID esterno (scopri perché nella prossima sezione;

  • configura un ID unico per ogni record trascinando verso il basso la sequenza dell’ID nella colonna ID esterno.

Animazione del mouse che trascina verso il basso la colonna ID così ogni record avrà un ID unico.

Nota

Quando aggiungi una nuova colonna, Odoo potrebbe non essere in grado di mapparla automaticamente se l’etichetta non corrisponde a nessun campo in Odoo. Tuttavia, puoi mappare nuove colonne manualmente quando provi l’importazione. Cerca il campo corrispondente nel menu a discesa.

Menu a discesa schermo inziale importazione Odoo.

In seguito, utilizza l’etichetta del campo nel file d’importazione per assicurarti che le importazioni future avverranno con successo.

Suggerimento

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.

Importare da un’altra applicazione

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.

La configurazione di un ID non è obbligatoria durante l’importazione ma aiuta in molti casi:

Per ricreare le relazioni tra vari record, l’identificatore unico dell’applicazione originale dovrebbe essere utilizzato per mapparla verso la colonna ID esterno in Odoo.

Quando un altro record viene importato ed è collegato al primo, utilizza XXX/ID (XXX/ID esterno) per l’identificatore unico originale. Il record può essere anche trovato utilizzando il suo nome.

Avvertimento

È necessario sottolineare che vi sarà un conflitto se due o più record hanno lo stesso ID esterno.

Campi mancanti nella mappatura delle colonne

Odoo si impegna a cercare il tipo di campo per ogni colonan all’interno del file importato, in base alle prime dieci righe dei file.

Ad esempio, se c’è una colonna che contiene solo numeri, solo i campi di tipo intero verranno presentati come opzioni.

Anche se questo comportamento sembra essere vantaggioso nella maggior parte dei casi, a volte capita che potrebbe fallire o che la colonna venga mappata ad un campo che non viene proposto per impostazione predefinita.

Se ciò si verifica, controlla l”opzione Mostra campi dei campi relazione (avanzato). In seguito, sarà disponibile una lista completa di campi per ogni colonna.

Cercando il campo che corrisponde alla colonna imposte.

Modificare il formato di importazione dei dati

Nota

Odoo è in grado di individuare automaticamente se una colonna corrisponde ad una data e cercherà di indovinare il formato da un insieme di formati più utilizzati. Il processo funziona per molti formati ma ci sono anche formati data non riconosciuti. Questo potrebbe causare confusione a causa dell’inversione giorno-mese. È difficile indovinare quale parte del formato data corrisponde al giorno e quale al mese in una data come «01-03-2016».

Durante l’importazione di un file CSV, Odoo fornisce varie opzioni di formattazione.

Per visualizzare il formato data individuato da Odoo nel file puoi controllare il Formato data mostrato quando fai clic su opzioni sotto il selettore di file. Se il formato non è corretto puoi modificarlo a piacimento utilizzando l”ISO 8601 per indicare il formato giusto.

Importante

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.

Suggerimento

Al momento dell’importazione di file Excel (.xls, .xlsx), tieni a mente l’utilizzo di celle data per memorizzare le date. Questo mantiene i formati data locali per la visualizzazione, indipendentemente dalla formattazione della data in Odoo. Quando importi un file CSV , utilizza la sezione Formattazione per selezionare il formato data delle colonne da importare.

Importare numeri con simboli di valuta

Odoo supporta numeri con parentesi per rappresentare segni negativi così come numeri seguiti da simboli di valuta. Inoltre, Odoo individua automaticamente anche i separatori di centinaia e migliaia. Se viene utilizzato un simbolo valuta non conosciuto da Odoo, potrebbe non essere riconosciuto come numero e l’importazione non va a buon fine.

Nota

Quando importi un file CSV, il menu Formattazione appare nella colonna a sinistra. Tra queste opzioni, è possibile modificare il Separatore delle migliaia.

Esempi di numeri supportati (utilizziamo trentadue mila come esempio):

  • 32.000,00

  • 32000,00

  • 32,000.00

  • -32000.00

  • (32000.00)

  • $ 32.000,00

  • (32000.00 €)

Esempi di formati che non funzionano:

  • ABC 32.000,00

  • $ (32.000,00)

Importante

Una () (parentesi) attorno al numero indica che il numero rappresenta un valore negativo. Il simbolo di valuta deve essere posizionato all’interno della parentesi affinché Odoo possa riconoscerlo come un valore valuta negativo.

Anteprima tabella di importazione non visualizzata correttamente

Per impostazione predefinita, l’anteprima di importazione presenta le virgole come separatori e le virgolette come delimitatori di testo. Se il file CSV non presenta queste configurazioni, modifica le impostazioni di Formattazione (visualizzate nella sezione Importa del file CSV dopo aver selezionato il file CSV).

Importante

Se il file CSV presenta una tabulazione come separatore, Odoo non riconosce le suddivisioni. Le opzioni relative al formato di file devono essere modificate dall’applicazione Fogli di calcolo. Consulta la seguente sezione Modificare formato file CSV

Modificare il formato file CSV nell’applicazione Fogli di calcolo

Quando modifichi e salvi file CSV in app con fogli di calcolo, le impostazioni locali del tuo pc verranno applicate per la definizione di separatori e delimitatori. Odoo consiglia di utilizzare OpenOffice o LibreOffice, in quanto entrambe le applicazioni consentono di modificare tutte e tre le opzioni (dall’app LibreOffice, vai nella finestra di dialogo “Salva come” ‣ Spunta la casella “Modifica impostazioni filtro” ‣ Salva).

Microsoft Excel ti permette di modificare i dati inseriti al momento del salvataggio (dalla :menuselection:` finestra di dialogo “Salva come” –> fai clic sull’elenco a discesa “Strumenti” –> scheda Inserimento`).

Differenza tra ID database e ID esterno

Alcuni campi stabiliscono collegamenti con altri oggetti. Ad esempio, il Paese di un contatto rappresenta un collegamento ad un record dell’oggetto «Paese». Quando campi simili vengono importati, Odoo dovrà ricreare i collegamenti tra i vari record. Per aiutarti a importare questi campi, Odoo fornisce tre meccanismi.

Importante

È possibile utilizzare **solo un* meccanismo per campo importato.

Ad esempio, per indicare il Paese di un contatto, Odoo propone 3 diversi campi da importare:

  • Paese: il nome o codice del Paese

  • ID Paese/database: ID Odoo unico di un record, definito dall’ID della colonna PostgreSQL

  • ID Paese/esterno: l’ID del record indicato in un’altra applicazione (oppure il file .XML da cui è stato importato)

Per il Belgio, ad esempio, puoi usare uno dei 3 metodi per eseguire l’importazione:

  • Paese: Belgio

  • ID Paese/databse: 21

  • ID Paese/esterno: base.be

In basse alle necessità dell’azienda è possibile utilizzare uno dei tre metodi per fare riferimento ai record in relazioni. Di seguito, spieghiamo quando usare i vari metodi a seconda delle necessità:

  • usa Paese: questo è il metodo più facile quando i dati provengono da file CSV creati manualmente;

  • usa ID Paese/database: da utilizzare solo se necessario. Principalmente, sono gli sviluppatori ad utilizzarla perché consente di non avere mai conflitti (potresti avere vari record con lo stesso nome ma aventi un unico ID database)

  • usa ID Paese/esterno: usa l”ID esterno

Quando utilizzi ID esterni, importa file CSV con la colonna ID esterno che definisce l”ID esterno di ogni record importato. In seguito, si può fare riferimento al record con colonne come Campo/ID esterno. I seguenti file CSV forniscono un esempio per prodotti e categorie.

Importare campi relazione

In Odoo, un oggetto è sempre legato a molti altri oggetti (ad es. un prodotto è collegato a categorie prodotto, attributi, fornitori, ecc.). Per importare relazioni di questo tipo è necessario prima importare i record dell’oggetto in questione dal relativo menu a elenco.

È possibile farlo utilizzando il nome del record correlato oppure l’ID a seconda delle circostanze. L’ID viene utilizzato quando due record hanno lo stesso nome. In questo caso, aggiungi / ID alla fine del titolo della colonna (ad es. per gli attributi prodotto: Attributi prodotto/Attributo/ID).

Opzioni per corrispondenze multiple sui campi

Ad esempio, se ci sono due categorie prodotto aventi come nome principale Vendibile (ad es. Prodotti vari/Vendibili e Altri prodotti/Vendibili), la convalida viene interrotta ma i dati potrebbero ancora essere importati. Tuttavia, Odoo consiglia di non importare i dati perché verranno tutti collegati alla prima categoria di tipo Vendibile presente nell’elenco Categoria prodotto (Prodotti vari/Vendibili). Odoo, invece, consiglia di modificare uno dei valori duplicati o la gerarchia della categoria prodotto.

Tuttavia, se l’azienda non desidera modificare la configurazione delle categorie prodotto, Odoo suggerisce di utilizzare l”ID esterno per il campo “Categoria”.

Importare campi relazione many2many

I tag dovrebbero essere separati da una virgola senza spazi. Ad esempio, se è necessario collegare un cliente a due tag: Produttore e Rivenditore, è necessario registrare “Produttore,Rivenditore” nella stessa colonna del file CSV.

Importare relazioni one2many

Se un’azienda vuole importare un ordine di vendita con più righe, è fondamentale inserire una riga specifica nel file CSV per ogni riga d’ordine. La prima riga d’ordine viene importata sulla stessa riga come informazioni relative all’ordine. Qualsiasi riga aggiuntiva necessità di una riga extra che non presenta informazioni nei campi relativi all’ordine.

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:

Importare record più volte

Se un file importato contiente una delle colonne ID esterno o ID database, i record che sono già stati importati vengono modificati invece di essere creati di nuovo. Questa funzione è di grande aiuto in quanto permette agli utenti di importare lo stesso file CSV più volte anche dopo aver apportato modifiche tra le due importazioni.

Odoo si occupa di creare o modificare ogni record che sia nuovo o meno.

Questa funzionalità consente ad un’azienda di utilizzare lo Strumento importa/esporta per modificare un insieme di record in un’app fogli di calcolo.

Valori non forniti per un campo specifico

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.

Esportare/importare varie tabelle da un applicazione SQL in Odoo

Se è necessario importare dati da varie tabelle, le relazioni devono essere ricreate tra i record appartenenti a tabelle diverse. Ad esempio, se le aziende e le persone vengono importate, il link tra ogni persona e l’azienda per la quale lavorano deve essere riprodotto.

Per gestire le relazioni tra tabelle, usa la struttura ID esterno di Odoo. L” ID esterno di un record è l’identificatore unico del record stesso in un’altra applicazione, L” ID esterno deve essere unico tra tutti i record di tutti gli oggetti. È una buona pratica per prefissare ID esterno con il nome dell’applicazione o della tabella (come “company_1”, “person_1” - invece di “1”).

Supponiamo che ci sia un database SQL con due tabelle che devono essere importate: aziende e persone. Ogni persona appartiene ad un’azienda, quindi il collegamento tra la persona e l’azienda per la quale lavora deve essere ricreato.

Testa l’esempio con un campione di database PostgreSQL.

Per prima cosa, esporta le aziende e i loro ID esterni. In PSQL, digita il seguente comando:

> 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;

Il comando SQL genera il seguente file CSV

External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True

Per creare il file CSV per le persone collegate alle aziende usa il seguente comando SQL 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 produces 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

Nel file, Fabien e Laurence sono dipendenti dell’azienda Bigees (company_1) ed Eric lavora per l’azienda Organi. La relazione tra persone e aziende viene realizzata utilizzando l”ID esterno delle aziende. L”ID esterno viene prefissato dal nome della tabella per evitare conflitti ID tra persone e aziende (person_1 e company_1 condividono lo stesso ID 1 nel database originale).

I due file prodotti sono pronti per essere importati in Odoo senza modifiche. Dopo aver importato i due file CSV, ci sono quattro contatti e tre aziende (i primi due contatti sono collegati alla prima azienda). Tieni a mente di importare prima le aziende ed in seguito i dipendenti.

Aggiornare dati in Odoo

I dati esistenti possono essere aggiornati in massa attraverso l’importazione se l”ID esterno è lo stesso.

Preparare l’esportazione dei dati

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.

Nella finestra pop-up Esporta dati che si apre, spunta la casella dal nome È un aggiornamento dati (compatibile con l’importazione). L”ID esterno verrà incluso automaticamente nell’esportazione. In aggiunta, limita l’elenco dei Campi da esportare solo a quelli effettivamente importabili.

Nota

Il campo ID esterno non appare nell’elenco Campi da esportare a meno che non venga aggiunto manualmente ma è comunque incluso nell’esportazione. Tuttavia, se la casella È un aggiornamento dati (compatibile con l’importazione) è spuntata, verrà incluso nell’esportazione.

Seleziona i campi richiesti da includere nell’esportazione utilizzando le opzioni nella finestra pop-up e poi fai clic su Esporta.

Importare dati aggiornati

In seguito all’esportazione, modifica i dati nel file. Quando il file è pronto, può essere importato seguendo lo stesso processo di una normale importazione di dati.

Pericolo

Durante l’aggiornamento dei dati, è estremamente importante che l”ID esterno sia coerente poiché serve al sistema per identificare un record. Se un ID viene alterato o eliminato, il sistema potrebbe aggiungere un record duplicato invece di aggiornare quello esistente.