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

Ao trabalhar com uma base de dados, às vezes é necessário exportar dados em um arquivo distinto. Isso pode ajudar na geração de relatórios sobre atividades, embora o Odoo forneça uma ferramenta de geração de relatórios precisa e simples em cada um dos aplicativos disponíveis.

Com o Odoo, os valores podem ser exportados de qualquer campo em qualquer registro. Para fazer isso, ative a visualização de lista (|lista|), nos itens que precisam ser exportados e, em seguida, 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 em |ações| e, em seguida, em Exportar.

Visualização dos diferentes itens a serem ativados/clique para exportar dados

Ao clicar em Exportar, uma janela pop-up Exportar dados é exibida, com várias opções para os dados a serem exportados:

Visão geral das opções consideradas ao exportar dados no Odoo.
  1. Com a opção Quero atualizar os dados (compatibilidade com importação e exportação) marcada, o sistema mostra apenas os campos que podem ser importados. Isso é útil nos casos em que os registros existentes precisam ser atualizados Isso funciona como um filtro. Deixar a caixa desmarcada oferece muito mais opções de campo porque mostra todos os campos, não apenas os que podem ser importados.

  2. Ao exportar, há a opção de exportar em dois formatos: .csv e .xls. Com o .csv, os itens são separados por vírgula, enquanto o .xls contém informações sobre todas as planilhas em um arquivo, incluindo o conteúdo e a formatação.

  3. Esses são os itens que podem ser exportados. Use o ícone > (seta para a direita) para exibir mais opções de subcampo. Use a barra Pesquisar para localizar campos específicos. Para usar a opção Pesquisar com mais eficiência, clique em todas as > (setas para a direita) para exibir todos os campos.

  4. O botão de ícone + (sinal de adição) ` está presente para adicionar campos à lista :guilabel:`Campos para exportar.

  5. O ícone ↕️ (seta para cima e para baixo) ` à esquerda dos campos selecionados pode ser usado para mover os campos para cima e para baixo, para alterar a ordem em que são exibidos no arquivo exportado. Arraste e solte usando o ícone :guilabel:`↕️ (seta para cima e para baixo).

  6. O ícone 🗑️ (lixeira) é usado para remover campos. Clique no ícone 🗑️ (lixeira) para remover o campo.

  7. Para relatórios recorrentes, é útil salvar as predefinições de exportação. Selecione todos os campos necessários e clique no menu suspenso do modelo. Nele, clique em Novo modelo e dê um nome exclusivo à exportação que acabou de ser criada. Clique no ícone 💾 (disquete) para salvar a configuração. Na próxima vez que a mesma lista precisar ser exportada, selecione o modelo relacionado que foi salvo anteriormente no menu suspenso.

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 Avançado. Nesse menu avançado estão incluídas duas opções: Monitorar histórico durante a importação e Permitir correspondência com subcampos.

Opções avançadas de importação quando o modo de desenvolvedor está ativado.

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/populados e clique em ⚙️ (Ação) ‣ Importar registros.

Menu de ação com a opção de importação de registros destacada.

Depois de clicar em Importar registros, o Odoo revela uma página separada com modelos que podem ser baixados e preenchidos com os dados da própria empresa. Esses modelos podem ser importados em um clique, pois o mapeamento de dados já está feito. Para fazer o download de um modelo, clique em Importar modelo para clientes no centro da página.

Importante

Ao importar um arquivo CSV, o Odoo fornece opções Formatação. Essas opções não aparecem ao importar o tipo de arquivo proprietário do Excel (.xls, .xlsx).

Opções de formatação apresentadas quando um arquivo CVS é importado no Odoo.

Faça os ajustes necessários nas opções de Formatação e certifique-se de que todas as colunas no Campo do Odoo e Coluna do arquivo estejam livres de erros. Por fim, clique em Importar para importar os dados.

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

Uma animação do mouse arrastando a coluna ID para baixo, para que cada registro tenha um ID exclusivo.

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.

Menu suspenso expandido na tela inicial de importação no Odoo.

Em seguida, use o rótulo desse campo no arquivo de importação para garantir que as importações futuras sejam bem-sucedidas.

Dica

Outra maneira útil de descobrir os nomes adequados das colunas a importar é exportar um arquivo de amostra usando os campos que devem ser importados. Dessa forma, se não houver uma amostra de modelo de importação, os nomes serão precisos.

Importar de outro aplicativo

O ID externo (ID) é um identificador exclusivo para o item de linha. Sinta-se à vontade para usar o de um 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:

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.

Busca do campo para corresponder à coluna de impostos.

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

O ISO 8601 é um padrão internacional que abrange o intercâmbio mundial e a comunicação de dados relacionados a data e hora. Por exemplo, o formato da data deve ser AAAA-MM-DD. Portanto, no caso de 24 de julho de 1981, ela deve ser escrita como 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 caixa de diálogo ‘Salvar como’ ‣ Marque a caixa ‘Editar configurações de filtro’ ‣ Salvar).

O Microsoft Excel pode modificar a codificação ao salvar (caixa de diálogo ‘Salvar como’ ‣ menu suspenso ‘Ferramentas’ ‣ aba Codificação).

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 .XML que o importou)

Para Bélgica, por exemplo, use uma destas três maneiras de importar:

  • País: Bélgica

  • Identificação do país/base de dados: 21

  • Paí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.

Como exemplo, aqui está um arquivo CSV de algumas citações que podem ser importadas, com base em dados de demonstração:

O seguinte arquivo CSV mostra como importar pedidos de compra com suas respectivas linhas:

O arquivo CSV a seguir mostra como importar clientes e seus respectivos contatos:

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 algum campo não estiver definido no arquivo CSV, o Odoo atribui o valor padrão ao campo não definido. Mas, se os campos forem definidos com valores vazios no arquivo CSV, o Odoo definirá 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 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

Para atualizar dados através de uma importação, primeiro navegue até os dados a atualizar e selecione lista para ativar a visualização de lista. No lado esquerdo da lista, marque a caixa de seleção de qualquer registro a ser atualizado. Em seguida, clique em Ações e selecione 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.

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.

Selecione os campos a incluir na exportação usando as opções na janela pop-up e, em seguida, clique em Exportar.

Importar dados atualizados

Após a exportação, faça as alterações necessárias no arquivo de dados. Quando o arquivo estiver pronto, ele poderá ser importado seguindo o mesmo processo de uma importação de dados normal.

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.