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 si lavora con un database, a volte è necessario esportare i dati in un file separato. Ciò può essere utile per la creazione di resoconti sulle attività, anche se Odoo fornisce uno strumento di reportistica preciso con ogni applicazione disponibile.

With Odoo, the values can be exported from any field in any record. To do so, activate the list view with the (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 Actions button, and select Export.

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

Suggerimento

Records can also be exported from the (Kanban) view. To select a first record, hold Alt and click its card; while the key is held, a Click to select tooltip is displayed on the cards. Once a record is selected, click another card to add it to the selection, or hold Shift while clicking to select a whole range. Then, click the Actions button, and select Export.

When clicking on Export, an Export Data pop-up window appears. The left side lists the Available fields of the records, and the right side the Fields to export, i.e., the columns of the generated file.

Panoramica delle opzioni da considerare durante l'esportazione di dati in Odoo.
  1. With the Updatable fields only switch enabled, only the fields that can be imported back into Odoo are listed. This is helpful in the case where the existing records need to be updated. This works like a filter on the Available fields list only; the Fields to export list is left untouched. Leaving the switch disabled gives many more field options because it shows all the fields, not only the ones that can be imported.

  2. Use the Search… bar to find specific fields. Matching sub-fields are displayed as well, with their parent field expanded automatically.

  3. These are the items that can be exported. Use the (Show sub-fields) icon to display more sub-field options. To add a field to the Fields to export list, click the (Select field) icon at the right of the field, or double-click a field that has no sub-fields.

  4. Select the Format of the generated file: Excel Workbook (.xlsx), which holds information about all the worksheets in a file, including both content and formatting, or Plain Text (.csv), where items are separated by a comma.

  5. The Fields to export list holds the columns of the exported file, in order. Use the (Sort) icon at the left of a field to drag and drop it up or down, changing the order in which the columns are displayed in the exported file. Click the (Remove field) icon to remove a field from the list.

  6. For recurring reports, save the current selection as an export template and select it from the drop-down menu the next time the same list needs to be exported.

  7. If the database has several languages installed and at least one selected field is translatable, a Languages field is displayed to export translations.

Once everything is set, click Export to download the file.

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.

Export templates

Export templates save a set of fields, their order, and the languages to export, so that the same file structure can be reused later. They are saved per model, and are shared with the other users of the database.

To create a template, select the needed fields, click the (Save as export template) icon next to the template drop-down menu, type a unique name, and click the (Apply changes) icon. Press Enter to save, or Escape to discard.

Naming an export template before saving it.

To edit an existing template, select it from the drop-down menu, then click the (Edit template name and/or fields) icon. Its name, fields, field order, and languages can then all be changed, and are saved with the (Apply changes) icon. Click the (Discard changes) icon to leave the template as it was.

Buttons to edit or delete the selected export template.

To delete a template, select it from the drop-down menu, click the (Delete the template) icon, and confirm.

Nota

Changing the fields, their order, or the languages while a template is selected, but not being edited, clears the template selection and keeps the current selection as an unsaved working set. This makes it possible to build a new template on top of an existing one without altering it.

Export translations

When more than one language is installed on the database, and at least one field of the Fields to export list is translatable, a Languages field is displayed below that list. By default, no language is selected and translatable fields are exported in the user’s own language.

Click the Languages field and select one or several languages to export the translations of every translatable field in those languages. Each selected language is displayed as a tag, and can be removed by clicking the (Remove) icon on it.

Two languages selected in the Languages field of the export dialog.

In the generated file, every translatable field is then replaced by one column per selected language, named after the field and the language code, e.g., Name@fr_FR. This is the same convention as the one used by the import, so an export made with the Updatable fields only switch enabled can be re-imported with its translations directly.

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.

Apri la vista dell’oggetto in cui devono essere importati/inseriti i dati, clicca sull’icona (Azione) e nel menu a tendina seleziona (Importa record).

Menu azioni con opzione importa record in evidenza.

Fai clic su Importa modello per i clienti al centro della pagina per scaricare un modello e popolarlo con i dati dell’azienda. Tali modelli possono essere importati con un solo clic, poiché la mappatura dei dati è già preconfigurata.

Per caricare il modello scaricato o un file esistente, segui i passaggi seguenti:

  1. fai clic su Carica file dati e seleziona il file desiderato;

  2. Sistema le opzioni di Formattazione di cui hai bisogno (solo per file CSV);

  3. Assicurati che tutti i dati nella colonna file siano mappati correttamente nel campo Odoo appropriato e senza errori;

  4. (Facoltativo) fai clic su Carica file dati per ricaricare lo stesso file o caricarne uno diverso;

  5. Fai clic su Prova per verificare che i dati siano validi;

  6. Fai clic su Importa.

Nota

Le opzioni di Formattazione non appaiono durante l’importazione del tipo di file proprietario Excel (ad es. .xls o .xlsx).

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 scoprire i nomi corretti delle colonne da importare è esportare un file di esempio utilizzando i campi da importare. In questo modo, se non è disponibile un modello di importazione di esempio, i nomi saranno accurati.

Importare da un’altra applicazione

Per ID esterno (ID) si intende un identificatore univoco per l’articolo di una riga. È possibile utilizzare un ID esterno (ID) dal software precedente per facilitare la transizione a 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

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

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

  • Paese/ID 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

  • Paese/ID database: 21

  • Paese/ID esterno: base.be

In base 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 Paese/ID 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 Paese/ID esterno: usa ID esterno quando importi dati da un’app di terze parti.

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

Un’azienda importa i preventivi utilizzando un file CSV, basato sui dati demo:

Un’azienda importa ordini di acquisto con le rispettive righe utilizzando un file CSV:

Un’azienda importa clienti e i rispettivi contatti utilizzando un file CSV:

Importare file immagine

Per importare file immagine insieme con il file CSV o Excel caricato, segui i prossimi step:

  1. aggiungi i nomi dei file immagine nella colonna Immagine correlata nel file dati;

  2. Carica il file dati o ricaricalo facendo clic su Carica file dati;

  3. Fai clic su Carica i tuoi file nella sezione File da importare;

  4. Seleziona i file immagine rilevanti. Il numero di file selezionati appare accanto al pulsante;

  5. Fai clic su Prova per verificare che tutti i dati siano validi;

  6. Fai clic su Importa. Durante il processo di importazione, Odoo esegue un controllo dei file per collegare automaticamente le immagini caricate al file di dati importato. Se non c’è corrispondenza, il file di dati viene importato senza alcuna immagine.

Nota

  • La sezione File da importare viene attivata se il modello del prodotto ha una colonna Immagine con tutti i campi popolati.

  • I nomi dei file immagine nel file di dati devono corrispondere ai file immagine caricati.

  • Quando importi un gran numero di immagini, specifica la dimensione massima del batch in megabyte e impostare un ritardo per evitare che il sistema venga sovraccaricato. Per farlo, attiva la modalità sviluppatore e completa i campi dimensione massima per batch e Ritardo dopo ogni batch nella sezione File da importare. Per impostazione predefinita, il ritardo rispetta il limite di chiamata RPC/API indicato in Odoo Cloud - Informativa sui criteri di utilizzo.

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 nel file CSV non sono impostati tutti i campi, Odoo assegna il valore predefinito a ogni campo non definito. Tuttavia, se nel file CSV sono impostati campi con valori vuoti, Odoo imposta il valore vuoto nel campo, 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

Esso genera il seguente file CSV:

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

Per aggiornare i dati tramite l’importazione, prima vai ai dati da aggiornare e seleziona l’icona (Elenco) per attivare la vista elenco. All’estrema sinistra dell’elenco, seleziona la casella di controllo relativa a qualsiasi record da aggiornare. Successivamente, fai clic sul pulsante Azioni e seleziona Esporta dal menu a discesa.

On the resulting Export Data pop-up window, enable the Updatable fields only switch. This automatically includes the External ID in the export. Additionally, it limits the Available fields 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. However, if the Updatable fields only switch is enabled, it is included in the export.

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.