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.
Importante
Às vezes, os usuários se deparam com um erro de “tempo excedido”, ou um registro não é processado devido ao seu tamanho. Isso pode ocorrer com grandes exportações ou nos casos em que o arquivo de importação é muito grande. Para contornar essa limitação relativa ao tamanho dos registros, processe as exportações ou importações em lotes menores.
Exportar dados do 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.
When clicking on Export, a Export Data pop-over window appears, with several options for the data to export:
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.
Ao exportar, há a opção de exportar em dois formatos:
.csve.xls. Com o.csv, os itens são separados por vírgula, enquanto o.xlscontém informações sobre todas as planilhas em um arquivo, incluindo o conteúdo e a formatação.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.
The (Select field) icon button is present to add fields to the Fields to export list.
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.
The (Remove field) icon is used to remove fields. Click the (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 (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.
Dica
É útil conhecer o identificador externo do campo; por exemplo, Empresa relacionada na interface do usuário de exportação é igual a parent_id (identificador externo). Assim, os únicos dados exportados são os que devem ser modificados e reimportados.
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. A documentação a seguir aborda como importar dados para uma base de dados do Odoo.
Aviso
As importações são permanentes e não podem ser desfeitas. No entanto, é possível usar filtros (criado em ou última modificação) para identificar registros alterados ou criados pela importação.
Dica
Ativar modo de desenvolvedor altera as configurações de importação visíveis no menu esquerdo. Isso revela um menu . Nesse menu avançado estão incluídas duas opções: Monitorar histórico durante a importação e Permitir correspondência com subcampos.
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.
Comece agora¶
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.
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).
Click Import Template for Customers at the center of the page to download a template and populate it with the company’s own data. Such templates can be imported in one click since the data mapping is already preconfigured.
To upload the downloaded template or an existing file, follow the next steps:
Clique em Carregar o arquivo de dados e selecione o arquivo desejado.
Ajuste as opções Formatação conforme necessário (somente para arquivos CSV).
Certifique-se de que todos os dados na Coluna de arquivos estejam corretamente mapeados para o campo do Odoo apropriado e sem erros.
(Opcional) Clique em Carregar arquivo de dados para recarregar o mesmo arquivo ou carregar um arquivo diferente.
Clique em Testar para verificar se os dados são válidos.
Clique em Importar.
Nota
As opções Formatação não aparecem ao importar o tipo de arquivo proprietário do Excel (ou seja, .xls ou .xlsx).
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:
Adicione, remova e classifique colunas para melhor se adequar à estrutura de dados.
É altamente recomendável não remover a coluna ID externo (ID) (veja o motivo na próxima seção).
Defina um ID exclusivo para cada registro arrastando para baixo a sequência de IDs na coluna ID externo (ID).
Nota
Quando uma nova coluna é adicionada, o Odoo pode não ser capaz de mapeá-la automaticamente se o seu rótulo não se enquadrar em nenhum campo do Odoo. No entanto, novas colunas podem ser mapeadas manualmente quando a importação for testada. Procure o campo correspondente no menu suspenso.
Em seguida, use o rótulo desse campo no arquivo de importação para garantir que as importações futuras sejam bem-sucedidas.
Dica
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.
Importar de outro aplicativo¶
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.
A definição de um ID não é obrigatória na importação, mas ajuda em muitos casos:
Atualizar importações: importe o mesmo arquivo várias vezes sem criar duplicatas.
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.
Aviso
Observe que ocorrerão conflitos se dois (ou mais) registros tiverem o mesmo ID externo.
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¶
Nota
O Odoo consegue detectar automaticamente se uma coluna é uma data e tenta adivinhar o formato da data a partir de um conjunto de formatos de data mais comumente usados. Embora esse processo possa funcionar para muitos formatos de data, alguns formatos não são reconhecíveis. Isso pode causar confusão, devido a inversões dia-mês; é difícil adivinhar qual parte de um formato de data é o dia e qual parte é o mês, em uma data, como 01-03-2016.
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.
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.
Dica
Ao importar arquivos do Excel (.xls, .xlsx), considere o uso de células de data para armazenar datas. Isso mantém os formatos de data locais para exibição, independentemente de como a data é formatada no Odoo. Ao importar um arquivo CSV, use a seção Formatação do Odoo para selecionar as colunas de formato de data a serem importadas.
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á.
Nota
Ao importar um arquivo CSV, o menu Formatação é exibido na coluna da esquerda. Nessas opções, o Separador de milhares pode ser alterado.
Exemplos de números suportados (com “trinta e dois mil” como numeral):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
US$ 32.000,00
(€ 32000.00)
Exemplo que não funciona:
ABC 32.000,00
US$ (32.000,00)
Importante
Um () (parêntese) ao redor do número indica que o número é um valor negativo. O símbolo de moeda deve ser colocado dentro do parêntese para que o Odoo o reconheça como um valor de moeda negativo.
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).
Importante
Se o arquivo CSV tiver uma tabulação como separador, o Odoo não detectará as separações. As opções de formato de arquivo precisam ser modificadas no aplicativo de planilha. Consulte a seguinte seção Alterar formato do 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.
Importante
Apenas um mecanismo deve ser usado por campo importado.
Por exemplo, para fazer referência ao país de um contato, o Odoo propõe três campos diferentes para importar:
País: o nome ou código do país
País/ID da base de dados: o ID exclusivo do Odoo para um registro, definido pela coluna ID PostgreSQL
País/ID externo: o ID desse registro referenciado em outro aplicativo (ou o arquivo
.XMLque o importou)
Para Bélgica, por exemplo, use uma destas três maneiras de importar:
País:
BélgicaIdentificação do país/base de dados:
21País/ID externo:
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:
Usar País: essa é a maneira mais fácil quando os dados são provenientes de arquivos CSV que foram criados manualmente.
Usar País/ID da base de dados: isso raramente deve ser usado. É usado principalmente por desenvolvedores, pois a principal vantagem é nunca ter conflitos (pode haver vários registros com o mesmo nome, mas eles sempre têm um ID de base de dados exclusivo)
Usar País/ID externo: use ID externo ao importar dados de um aplicativo de terceiros.
Ao usar IDs externos, importe arquivos CSV 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.
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.
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.
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:
Importar arquivos de imagem¶
Para importar arquivos de imagem junto com o arquivo CSV ou Excel uploaded, siga as próximas etapas:
Adicione os nomes dos arquivos de imagem à coluna Imagem relevante no arquivo de dados.
Carregue o arquivo de dados <essentials/export_import_data/get-started>` ou recarregue-o clicando em Carregar arquivos de dados.
Clique em Carregar seus arquivos na seção Arquivos a importar.
Selecione os arquivos de imagem relevantes. O número de arquivos selecionados aparece ao lado do botão.
Clique em Testar para verificar se todos os dados são válidos.
Clique em Importar. Durante o processo de importação, o Odoo executa uma verificação de arquivo para vincular automaticamente as imagens carregadas ao arquivo de dados importado. Se não houver correspondência, o arquivo de dados será importado sem nenhuma imagem.
Nota
The Files to import section is enabled if the product template has an Image column with all fields populated.
Os nomes dos arquivos de imagem no arquivo de dados devem corresponder aos arquivos de imagem carregados.
When importing a large number of images, specify the maximum batch size in megabytes and set a delay to prevent the system from becoming overloaded. To do so, enable the developer mode and fill in the Max size per batch and the Delay after each batch fields in the Files to import section. By default, the delay meets the RPC/API call limit defined in the Odoo Cloud - Acceptable Use Policy.
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¶
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.
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 amostra de uma base de dados PostgreSQL.
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,True
Para 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 CSV
Ele 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_3
Nesse 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 permaneça consistente.
Preparar exportação de dados¶
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.
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.
Nota
O campo ID externo não aparece na lista Campos a exportar a menos que seja adicionado manualmente, mas ainda assim é incluído na exportação. No entanto, se a caixa de seleção Quero atualizar os dados (compatibilidade com importação e exportação) estiver marcada, ele será incluído na exportação.
Select the required fields to be included in the export using the options 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 by following the same process as a normal data import.
Perigo
Ao atualizar os dados, é extremamente importante que o ID externo permaneça consistente, pois é assim que o sistema identifica um registro. Se um ID for alterado ou removido, o sistema poderá adicionar um registro duplicado, em vez de atualizar o existente.