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

Associate
Clément Mombereau
Associate - Brazil
Odoo developer
Clément is French engineer living in Brazil since 2012. He joined the Akretion team from Rio de Janeiro in 2018.

Esse site usa cookies para melhorar a sua experiência de navegação