Exportar e importar dados
No Odoo, às vezes é necessário exportar ou importar dados para a execução de relatórios ou para a modificação de dados. Este documento aborda a exportação e a importação de dados para e do Odoo.
Exportar dados do Odoo
Ao trabalhar com um banco de dados, às vezes é necessário exportar dados em um arquivo distinto. Fazer isso pode ajudar na elaboração de relatórios sobre atividades, embora o Odoo forneça uma ferramenta de relatório precisa com cada aplicação disponível.
Com o Odoo, os valores podem ser exportados de qualquer campo em qualquer registro. Para fazer isso, ative a visualização em lista com o ícone fa-list (Lista), nos itens que precisam ser exportados, e então selecione os registros que devem ser exportados. Para selecionar um registro, marque a caixa de seleção ao lado do registro correspondente. Por fim, clique no botão Ação e selecione fa-upload Exportar.
Ao clicar em fa-upload Exportar, uma janela pop-over Exportar Dados aparece, com várias opções para os dados a exportar:
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 <essentials/update-data>. 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.
When exporting, there is the option to export in two formats: .csv and .xls. With .csv, items are separated by a comma, while .xls holds information about all the worksheets in a file, including both content and formatting.
These are the items that can be exported. Use the fa-chevron-right (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 fa-chevron-right (Show sub-fields) icon to display all fields.
The fa-plus (Select field) icon button is present to add fields to the Fields to export list.
The fa-sort (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 fa-sort (Sort) icon.
The fa-trash (Remove field) icon is used to remove fields. Click the fa-trash (Remove field) icon to remove the field.
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 fa-floppy-o (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.
Importar dados para o Odoo
A importação de dados para o Odoo é extremamente útil durante a implementação ou em momentos em que os dados precisam ser atualizados em massa <essentials/update-data>. A documentação a seguir aborda como importar dados para uma base de dados do Odoo.
Se o modelo usar o openchatter, a opção Monitorar histórico durante a importação configurará assinaturas e enviará notificações durante a importação, mas levará a uma importação mais lenta.
Se a opção Permitir correspondência com subcampos for selecionada, todos os subcampos de um campo serão usados para fazer a correspondência com o Campo do Odoo durante a importação.
Começar
Os dados podem ser importados em qualquer objeto de negócios do Odoo usando os formatos Excel (.xlsx) ou CSV (.csv). Isso inclui: contatos, produtos, extratos bancários, lançamentos no diário e pedidos.
Abra a visualização do objeto para o qual os dados devem ser importados/preenchidos, clique no ícone fa-cog (Ação) e no menu suspenso selecione fa-upload (Importar registros).
Clique em fa-upload Importar Modelo para Clientes no centro da página para baixar um modelo <essentials/export_import_data/adapt-a-template> e preenchê-lo com os dados da empresa. Tais modelos podem ser importados em um clique, pois o mapeamento de dados já está pré-configurado.
Para fazer upload do modelo baixado ou de um arquivo existente, siga os próximos passos:
Click Upload Data File and select the desired file.
Adjust the Formatting options as needed (for CSV files only).
Ensure all data in the File Column is correctly mapped to the appropriate Odoo Field and free of errors.
(Optional) Click Load Data File to reload the same file or upload a different one.
Click Test to verify that the data is valid.
Click Import.
Adaptar um modelo
Os modelos de importação são fornecidos na ferramenta de importação dos dados mais comuns a serem importados (contatos, produtos, extratos bancários, etc.). Abra-os com qualquer software de planilha eletrônica (Microsoft Office, OpenOffice, Google Drive, etc.).
Depois de fazer o download do modelo, siga estas etapas:
Add, remove, and sort columns to best fit the data structure.
It is strongly advised to not remove the External ID (ID) column (see why in the next section).
Set a unique ID to every record by dragging down the ID sequencing in the External ID (ID) column.
Em seguida, use o rótulo desse campo no arquivo de importação para garantir que as importações futuras sejam bem-sucedidas.
Importar de outro aplicativo
O ID Externo (ID) é um identificador único para um item de linha. É possível usar um ID Externo (ID) de software anterior para facilitar a transição para o Odoo.
A definição de um ID não é obrigatória na importação, mas ajuda em muitos casos:
Update imports <essentials/update-data>: import the same file several times without creating duplicates.
Import relation fields <export_import_data/relation-fields>.
Para recriar relações entre registros diferentes, o identificador exclusivo do aplicativo original deve ser usado para mapeá-lo para a coluna ID externo (ID) no Odoo.
Quando outro registro for importado e vinculado ao primeiro, use XXX/ID (XXX/ID externo) para o identificador exclusivo original. Esse registro também pode ser encontrado pelo nome.
Campo ausente para mapear a coluna
Odoo tenta heuristicamente encontrar o tipo de campo para cada coluna dentro do arquivo importado, com base nas primeiras dez linhas dos arquivos.
Por exemplo, se houver uma coluna contendo apenas números, somente os campos com o tipo inteiro serão apresentados como opções.
Embora esse comportamento possa ser benéfico na maioria dos casos, também é possível que falhe ou que a coluna seja mapeada para um campo que não é proposto por padrão.
Se isso acontecer, marque a opção Mostrar campos de campos relacionais (avançado); então, uma lista completa de campos ficará disponível para cada coluna.
Alterar o formato de importação de dados
Ao importar um arquivo CSV, o Odoo fornece opções de Formatação.
Para ver qual formato de data o Odoo encontrou no arquivo, verifique o Formato de data que é mostrado ao clicar em opções no seletor de arquivos. Se esse formato estiver incorreto, altere-o para o formato preferido usando ISO 8601.
Importar números com sinais de moeda
O Odoo suporta totalmente números com parênteses para representar sinais negativos, bem como números com sinais de moeda anexados a eles. O Odoo também detecta automaticamente qual é o separador de milhar/decimal. Se for usado um símbolo de moeda desconhecido para o Odoo, ele não será reconhecido como um número e a importação falhará.
Exemplos de números suportados (com "trinta e dois mil" como numeral):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Exemplo que não funciona:
ABC 32.000,00
$ (32.000,00)
A tabela de pré-visualização de importação não é exibida corretamente
Por padrão, a pré-visualização da importação é definida com vírgulas como separadores de campo e aspas como delimitadores de texto. Se o arquivo CSV não tiver essas configurações, modifique as opções Formatação (exibidas na barra de arquivos Importar CSV depois de selecionar o arquivo CSV).
Alterar o formato do arquivo CSV no aplicativo de planilha
Ao editar e salvar arquivos CSV em aplicativos de planilha, as configurações regionais do computador são aplicadas para o separador e o delimitador. A Odoo sugere o uso do OpenOffice ou do LibreOffice, pois ambos os aplicativos permitem modificações nas três opções (no aplicativo LibreOffice, vá para ).
O Microsoft Excel pode modificar a codificação ao salvar ().
Diferença entre ID da base de dados e ID externo
Alguns campos definem uma relação com outro objeto. Por exemplo, o país de um contato é um link para um registro do objeto "País". Quando esses campos são importados, o Odoo precisa recriar os links entre os diferentes registros. Para ajudar a importar esses campos, o Odoo oferece três mecanismos.
Por exemplo, para fazer referência ao país de um contato, o Odoo propõe três campos diferentes para importar:
Country: the name or code of the country
Country/Database ID: the unique Odoo ID for a record, defined by the ID PostgreSQL column
Country/External ID: the ID of this record referenced in another application (or the .XML file that imported it)
Para Bélgica, por exemplo, use uma destas três maneiras de importar:
Country: Belgium
Country/Database ID: 21
Country/External ID: base.be
De acordo com a necessidade da empresa, use uma dessas três maneiras para fazer referência a registros em relações. Aqui está um exemplo de quando uma ou outra deve ser usada, de acordo com a necessidade:
Use Country: this is the easiest way when data comes from CSV (Comma-separated Values) files that have been created manually.
Use Country/Database ID: this should rarely be used. It is mostly used by developers as the main advantage is to never have conflicts (there may be several records with the same name, but they always have a unique Database ID)
Use Country/External ID: use External ID when importing data from a third-party application.
Ao usar IDs externos, importe arquivos CSV (Comma-separated Values) com a coluna ID externo (ID) definindo o ID externo de cada registro importado. Em seguida, é possível fazer uma referência a esse registro com colunas, como Campo/ID externo. Os dois arquivos CSV a seguir fornecem um exemplo de produtos e suas categorias.
:download:`CSV file for categories <export_import_data/External_id_3rd_party_application_product_categories.csv>`
:download:`CSV file for Products <export_import_data/External_id_3rd_party_application_products.csv>`
Importar campos relacionais
Um objeto Odoo está sempre relacionado a muitos outros objetos (por exemplo, um produto está vinculado a categorias de produtos, atributos, fornecedores, etc.). Para importar essas relações, os registros do objeto relacionado primeiro precisam ser importados a partir de seu próprio menu de lista.
É possível fazer isso usando o nome ou o ID do registro relacionado, dependendo das circunstâncias. É esperado usar o ID quando dois registros têm o mesmo nome. Nesse caso, adicione / ID no final do título da coluna (por exemplo, para atributos de produto: Atributos de produto / Atributo / ID).
Opções para múltiplas correspondências em campos
Se, por exemplo, houver duas categorias de produtos com o nome secundário Vendável (por exemplo, Diversos. Produtos/Vendável e Outros produtos/Vendável), a validação será interrompida, mas os dados ainda poderão ser importados. No entanto, a Odoo recomenda que os dados não sejam importados porque todos eles serão vinculados à primeira categoria Vendável encontrada na lista Categoria de produto (Diversos. Produtos/Vendável). Em vez disso, o Odoo recomenda modificar um dos valores da duplicata ou a hierarquia da categoria do produto.
No entanto, se a empresa não quiser alterar a configuração das categorias de produtos, o Odoo recomenda o uso do ID externo para esse campo, 'Categoria'.
Importar campos relacionais many2many
Os marcadores devem ser separados por vírgula, sem espaçamento. Por exemplo, se um cliente precisar ser vinculado a ambos os marcadores: Fabricante e Varejista, então 'Fabricante, Varejista' precisa ser codificado na mesma coluna do arquivo CSV.
:download:`CSV file for Manufacturer, Retailer <export_import_data/m2m-customers-tags.csv>`
Importar relações one2many
Se uma empresa quiser importar um pedido de venda com várias linhas de pedido, uma linha específica deve ser reservada no arquivo CSV para cada linha de pedido. A primeira linha de pedido é importada na mesma linha que as informações relativas ao pedido. Todas as linhas adicionais precisam de uma linha adicional que não tenha nenhuma informação nos campos relativos ao pedido.
Uma empresa importa pedidos de compra com suas respectivas linhas de pedido de compra usando um arquivo CSV (Valores Separados por Vírgula):
:download:`Purchase orders with their respective purchase order lines <export_import_data/o2m-purchase-order-lines.csv>`
Uma empresa importa clientes e seus respectivos contatos usando um arquivo CSV (Valores Separados por Vírgula):
:download:`Customers and their respective contacts <export_import_data/o2m-customers-contacts.csv>`
Importar arquivos de imagem
Para importar arquivos de imagem junto com o arquivo CSV ou Excel uploaded <essentials/export_import_data/get-started>, siga as próximas etapas:
Add the image file names to the relevant Image column in the data file.
Upload the data file <essentials/export_import_data/get-started> or reload it by clicking Load Data File.
Click Upload your files under the Files to import section.
Select the relevant image files. The number of files selected appears next to the button.
Click Test to verify that all data is valid.
Click Import. During the import process, Odoo performs a file check to automatically link the uploaded images to the imported data file. If there is no match, the data file is imported without any image.
Importar registros diversas vezes
Se um arquivo importado contiver uma das colunas: ID externo ou ID da base de dados, os registros que já foram importados serão modificados, em vez de serem criados. Isso é extremamente útil, pois permite que os usuários importem o mesmo arquivo CSV várias vezes, mesmo tendo feito algumas alterações entre as duas importações.
O Odoo se encarrega de criar ou modificar os registros.
Esse recurso permite que uma empresa use a ferramenta Importar/Exportar no Odoo para modificar um lote de registros em um aplicativo de planilha.
Valor não fornecido para um campo específico
Se nem todos os campos forem definidos no arquivo CSV, o Odoo atribui o valor padrão para cada campo não definido. Porém, se os campos forem definidos com valores vazios no arquivo CSV (Valores Separados por Vírgula), o Odoo define o valor vazio no campo, em vez de atribuir o valor padrão.
Exportar/importar tabelas diferentes de um aplicativo SQL para o Odoo
Se os dados precisarem ser importados de tabelas diferentes, as relações deverão ser recriadas entre os registros pertencentes a tabelas diferentes. Por exemplo, se empresas e pessoas forem importadas, o vínculo entre cada pessoa e a empresa para a qual ela trabalha precisará ser recriado.
Para gerenciar relações entre tabelas, use os recursos de ID externo do Odoo. O ID externo de um registro é o identificador exclusivo desse registro em outro aplicativo. O ID externo deve ser único em todos os registros de todos os objetos. É uma boa prática prefixar esse ID externo com o nome do aplicativo ou da tabela. (por exemplo, 'empresa_1', 'pessoa_1' - em vez de '1')
Como exemplo, suponha que haja uma base de dados SQL com duas tabelas que devem ser importadas: empresas e pessoas. Cada pessoa pertence a uma empresa, portanto, o vínculo entre uma pessoa e a empresa para a qual ela trabalha deve ser recriado.
Teste esse exemplo, com uma :download:`amostra de uma base de dados PostgreSQL <export_import_data/database_import_test.sql>`.
Primeiro, exporte todas as empresas e seus IDs externos. No PSQL, escreva o seguinte 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;Esse comando SQL cria o seguinte arquivo CSV:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,TruePara criar o arquivo CSV para pessoas vinculadas a empresas, use o seguinte comando SQL no 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 CSVEle produz o seguinte arquivo 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_3Nesse arquivo, Fabien e Laurence estão trabalhando para a empresa Bigees (company_1), e Eric está trabalhando para a empresa Organi. A relação entre pessoas e empresas é feita usando o ID externo das empresas. O ID externo é prefixado pelo nome da tabela para evitar um conflito de ID entre pessoas e empresas (pessoa_1 e empresa_1, que compartilhavam o mesmo ID 1 no banco de dados original).
Os dois arquivos produzidos estão prontos para serem importados para o Odoo sem nenhuma modificação. Depois de importar esses dois arquivos CSV, há quatro contatos e três empresas (os dois primeiros contatos estão vinculados à primeira empresa). Lembre-se de importar primeiro as empresas e depois as pessoas.
Atualizar dados no Odoo
Os dados existentes podem ser atualizados em massa por uma importação de dados, desde que o ID externo <essentials/external-id> permaneça consistente.
Preparar exportação de dados
Para atualizar dados por meio de uma importação, primeiro navegue até os dados a serem atualizados e selecione o ícone oi-view-list (Lista) para ativar a visualização em lista. No lado esquerdo da lista, marque a caixa de seleção de qualquer registro a ser atualizado. Em seguida, clique no botão Ações e selecione fa-upload Exportar no menu suspenso.
Na janela pop-up Exportar dados resultante, marque a caixa de seleção rotulada como Quero atualizar os dados (compatibilidade com importação e exportação). Isso inclui automaticamente o ID externo na exportação. Além disso, limita a lista Campos a exportar a somente incluir campos que possam ser importados.
Select the required fields to be included in the export using the options <essentials/export_import_data/export-data> on the pop-up window, then click Export.
Importar dados atualizados
After exporting, make any necessary changes to the data file. When the file is ready, it can be imported <essentials/export_import_data/import-data> by following the same process as a normal data import.