Importar dados no Odoo - Funcionamento Básico

Funcionamento básico

Para importar dados no Odoo, basta clicar no botão Import da página do tipo de objeto desejado.

A complexidade da importação de dados no Odoo vem da complexidade em registrar em Odoo as relações entre os objetos importados.

Como importar relações entre objetos ?

Um exemplo : um dos campos de um Contato é o campo Marcadores (chamado também de “categoria de contato”, ou “Tag do contato”). Para associar cada contato importado com um Marcador específico teremos que :

  1. Importar todos os Marcadores antes de importar os Contatos.
  2. Durante a importação dos Contatos teremos que indicar os External ID dos Marcadores de cada Contato importado, para indicar qual Marcador vai ser associado a qual Contato.

O External ID, chamado também de XML ID, é o identificador de um objeto presente em Odoo. Ele permite permite fazer a diferença por exemplo entre dois Marcadores que teriam o mesmo nome no Odoo apesar de ser dois objetos distintos do mesmo tipo ‘Marcador’.

{% hint style=”info” %} É importante anotar a diferença entre o External ID de um de um objeto e o ID no banco de dados desse mesmo objeto.

Os dois são um identificador único do mesmo objeto, porém o ID no banco de dados é um número (único) dado automaticamente por Odoo quando cria (ou importa) esse novo objeto, enquanto o External ID é uma cadeia de caracteres que pode ser dada pelo usuário durante a importação do objeto. {% endhint %}

É possível conhecer o External ID de um objeto diretamente pela interface do Odoo ou quando exporta dados Odoo para arquivos (Excel ou CSV).

External ID pela interface

Primeiro precisa ativar o modo “desenvolvedor” do Odoo no painel de Configurações gerais :

Depois ir na página do objeto desejado, por exemplo esse Marcador de contato (chamado também de “Tag do contato”, acessível pelo menu Contatos > Configuração > Tags do contato), clicar na barata que apareceu (encima na direita), e abrir Visualizar Metadata do objeto corrente :

Aparece então as suas Metadatas, incluindo o ID XML (outro nome para o External ID), diferente do ID ‘simples’ que é o identificador do objeto no banco de dados (que não precisamos usar) :

External ID na exportação

Para exportar dados do Odoo para arquivos Excel (ou CSV), é preciso fazer aparecer os objetos para ser exportados em visualização ‘lista’. Isso permite selecionar os objetos para serem exportados. Quando selecionar um objeto aparece o botão Ação que permite, entre outras coisas, exportar os dados dos objetos selecionados :

Ao exportar Marcadores de contato, para seguir o nosso exemplo, basta selecionar a opção ‘Update data’ para fazer aparecer o campo ‘ID Externo’ dentro dos campos disponíveis :

O resultado é um arquivo Excel com a lista dos External ID de cada Marcador :

Criação do External ID durante a importação

A força desse External ID é que ele pode ser dado a um objeto pelo usuário durante a importação.

Por exemplo, se eu importar o seguinte arquivo Excel :

Basta clicar no botão Import > Carregar Arquivo da página ‘Tags do Contato’ e selecionar o arquivo para importar. Odoo reconhece o significação das colunas do meu arquivo mas é sempre possível escolher manualmente o destino de cada uma :

{% hint style=”info” %} Caso não preencher a coluna “External ID”, Odoo criará-lo automaticamente e importará o objeto mesmo assim. {% endhint %}

Podemos verificar pela interface que o External ID de cada Marcador importado corresponde à cadeia de caracteres indicada no arquivo de importação. Será então possível usar esse mesmo External ID no futuro, por exemplo durante a importação dos Contatos para indicar o Marcador de cada Contato :

Relação pai / filho

Na mesma ideia que para importar a informação da relação entre dois objetos de tipos diferentes, o jeito mais simples e seguro de importar as relações entre dois objetos do mesmo tipo é de :

  1. importar os pais
  2. importar os filhos, indicando para cada filho o External ID do(s) pai(s) previamente importados

Por exemplo, importando o arquivo :

Eu vou poder importar 2 Marcadores como sub-categorias de contato da categoria pai “Meu Marcador importado 1” :

{% hint style=”info” %} Na teoria é possível importar junto no mesmo arquivo .xls ou .CSV os objetos filhos e os pais relacionados de uma vez. Porém é mais complexo e é fonte de erros, por isso recomendamos de realizar esse tipo de importações pai/filho em duas vezes. {% endhint %}

{% hint style=”info” %} Alguns objetos Odoo podem ter 2 pais ou mais (o tipo de campo ligando um filho aos seus pais é então chamado de “one2many” ou “many2many”), como os marcadores de Contato por exemplo.

Nesta situação é só indicar os 2 (ou mais) External ID, separados por um coma, sem espaço. Exemplo :

marcador_de_contato_1,marcardor_de_contato2 {% endhint %}

{% hint style=”warning” %} Se um filho para importar não tem pai, deixar a célula vazia. Se escrever “0” ou False vai puxar um erro de importação. {% endhint %}

FAQ oficial da Odoo S.A.

Para questões técnicas específicas sobre a importação :

{% embed url=”https://www.odoo.com/documentation/user/12.0/general/base_import/import_faq.html” %}

Lumière sur l'auteur

Consultant Odoo
Clément Mombereau
Consultant Odoo - Brazil
Odoo developer
Clément is French engineer living in Brazil since 2012. He joined the Akretion team from Rio de Janeiro in 2018.
Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considérerons que vous acceptez l'utilisation des cookies.