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

Quando lavori su un database, a volte è necessario esportare i dati in un file separato. Tale operazione può aiutarti a fare un resoconto delle tue attività anche se Odoo offre uno strumento di rendicontazione preciso e facile da usare, per ogni applicazione disponibile.

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, then select the records that should be exported. To select a record, tick the checkbox next to the corresponding record. Finally, click on Actions, then Export.

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

Quando fai clic su Esporta apparirà la finestra a comparsa Esporta dati con diverse opzioni per i dati da esportare:

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 just 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. Questi sono gli elementi che possono essere esportati. Utilizza l’icona > (freccia destra) per visualizzare più opzioni relative a campi secondari. Utilizza l’opzione Ricerca in maniera più efficace, fai clic su tutte le frecce > (frecce a destra) per visualizzare tutti i campi.

  4. Il pulsante + (segno più) serve ad aggiungere campi all’elenco di Campi da esportare.

  5. L’icona ↕️ (freccia su giù) situata alla sinistra dei campi selezionati può essere utilizzata per spostare i campi su e giù, per modificare l’ordine nel quale vengono visualizzati nel file esportato. Trascina e rilascia gli elementi utilizzando l’icona ↕️ (freccia su giù).

  6. L’icona 🗑️ (cestino) viene utilizzata per rimuovere i campi. Fai clic sull’icona 🗑️ (cestino) per rimuovere un campo.

  7. Per i rendiconti ricorrenti, è utile salvare le configurazioni dell’esportazione. Seleziona tutti i campi di cui hai bisogno e fai clic sull’elenco a discesa del campo modello. Una volta qui, fai clic su Nuovo modello e dai un nome unico all’esportazione appena creata. Fai clic sull’icona 💾 (floppy disk) per salvare le impostazioni. La prossima volta che dovrà esportare lo stesso elenco, seleziona il modello correlato che avevi salvato in precedenta dal menu a discesa.

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

Importing data into Odoo is extremely helpful during implementation, or in times where data needs to be updated in bulk. The following documentation covers how to import data into an Odoo database.

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.

Apri la vista dell’oggetto di cui vuoi importare dati/che vuoi popolare e fai clic su ⚙️ (Azioni) ‣ Importa record.

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

Un altro modo utile per trovare i nomi corretti delle colonne da importare è esportare un file di prova usando i campi che dovrebbero essere importati. In questo modo, se non c’è un modello d’importazione campione, i nomi sono corretti.

Importare da un’altra applicazione

L”ID esterno è un identificatore unico per l’elemento della riga. Per facilitare la transazione a Odoo, non esitare ad utilizzarne uno proveniente da un altro software.

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

It should be noted that conflicts occur if two (or more) records have the same External ID.

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

L”ISO 8601 è uno standard internazionale che copre lo scambio a livello internazionale oltre alla comunicazione di date e dati temporali. Ad esempio, il formato data dovrebbe essere AAAA-MM-GG. Quindi, il 24 luglio 1981 dovrebbe essere scritto così 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.

Di seguito, un file CSV con alcuni preventivi che possono essere importati, in base a dati di prova:

Il seguente file CSV mostra come importare ordini di acquisto con le relative righe d’ordine:

Il seguente file CSV mostra come importare clienti e i rispettivi contatti:

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

Se tutti i campi non sono configurati nel file CSV, Odoo assegna il valore predefinito ad ogni campo non definito. Tuttavia, se i campi sono privi di valori nel file CSV, il campo sarà vuoto invece di assegnare il valore predefinito.

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.

Update data in Odoo

Existing data can be updated in bulk through a data import, as long as the External ID remains consistent.

Prepare data export

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, and select Export from the drop-down menu.

On the resulting Export Data pop-up window, tick the checkbox labeled, I want to update data (import-compatible export). This automatically includes the External ID in the export. Additionally, it limits the Fields to export list to only include fields that are able to be imported.

Nota

The External ID field does not appear in the Fields to export list unless it is manually added, but it is still included in the export. However, if the I want to update data (import-compatible export) checkbox is ticked, it is included in the export.

Select the required fields to be included in the export using the options on the pop-up window, then click Export.

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

Pericolo

When updating data, it is extremely important that the External ID remain consistent, as this is how the system identifies a record. If an ID is altered, or removed, the system may add a duplicate record, instead of updating the existing one.