Author: |
Trustcode |
License: |
AGPL-3 |
Branch: |
11.0-fix-runbot |
Repository: |
gastonfeng/trustcode-addons |
Dependencies: |
br_base |
Languages: |
Markdown (101, 20.2%),
PO File (98, 19.6%),
Python (222, 44.3%),
and
XML (80, 16.0%) |
Other branches: |
11.0,
11.0-fix-update-taxes,
11.0-nota_debito_bug,
11.0-odoo_otrs_integration,
11.0-ticket_4193,
feature/books,
and
feature/reserve-negative |
Other repositories: |
Alexandre-Bernardes/trustcode-addons,
NewRL/trustcode-addons,
Trust-Code/trustcode-addons,
augustodinizl/trustcode-addons,
crsilveira/trustcode-addons,
detian08/trustcode-addons,
enriquevago/trustcode-addons,
jeffersontito1989/trustcode-addons,
leonidasthe300/trustcode-addons,
lryain/trustcode-addons,
marcelsavegnago/trustcode-addons,
popcomputadores-desenv/trustcode-addons,
sasakuma/trustcode-addons,
and
sm2x/trustcode-addons |
<h1>Dynamic CSV Importer</h1>
<p>Como o próprio nome já diz, esse módulo faz a importação de dados de um arquivo .csv em todos (ou quase todos) os módulos.</p>
<p><strong>Table of Contents</strong></p>
<ul>
<li><a href="#instala%C3%A7%C3%A3o">Instalação</a></li>
<li><a href="#instru%C3%A7%C3%B5es-de-uso">Instruções de Uso</a>
<ul>
<li><a href="#tabela-de-importa%C3%A7%C3%A3o">Configuração da Importação</a></li>
</ul></li>
<li><a href="#mensagens-de-erros">Mensagens de Erros</a></li>
</ul>
<h2>Instalação</h2>
<p>Procedimento usual, o mesmo de sempre.
<em>Aplicativo > 'dynamic<em>csv</em>importer' no campo de busca > Instalar</em></p>
<p>Caso a busca pelo módulo não retorne nenhum resultado, <em>Ative o modo debug > Atualizar Lista de Aplicativos</em> pode resolver esse problema.</p>
<h2>Instruções de Uso</h2>
<p>Na tela inicial do Odoo:
<em>Configurações > Importação CSV Dinâmica</em></p>
<p>Isso irá abrir um wizard/janela. Esse carinha é o Importer.</p>
<p>No campo <strong>Modelo</strong>, selecione o modelo em que serão importados registros.
Lembrando que ele só irá mostrar os modelos instalados na sua base local,
então caso algum modelo não esteja ali, é provável que o mesmo não tenha sido
instalado na base.</p>
<p>Aqui eu irei importar produtos:</p>
<p><img src="./static/images/img1.png" alt="img1"></p>
<p>O campo <strong>Extra</strong> mostra algumas configurações extras:<em>Caracter Delimitador</em>,
<em>Caracter de Citação</em>, os quais já possuem valores default: , e " respectivamente.</p>
<p>O campo <strong>Arquivo CSV</strong> é para selecionar o arquivo .csv a ser importado.</p>
<p>Após selecionar o arquivo, o wizard ficará algo parecido com isso:</p>
<p><img src="./static/images/img2.png" alt="img2"></p>
<p>Na primeira tabela mostra as 5 primeiras linhas do arquivo.</p>
<p>Já na segunda tabela é onde será configurado os dados da importação.</p>
<p>Caso tenha selecionado um arquivo por engano, é possivel trocar o arquivo sem
ter que fechar e abrir o wizard novamente.</p>
<p>O campo <strong>Criar objeto caso não for encontrado</strong> é para casos onde não há registros
no sistema com os dados informados nas linhas selecionadas como <strong>Identificador</strong>.
Nesses casos, um registro será criado, com os atributos passados como identificadores.</p>
<h3>Tabela de Importação</h3>
<p>Cada linha dessa tabela é uma coluna do arquivo .csv importado. Logo, se o arquivo
tinha as colunas <em>id, name, unidade_tributacao</em>, a tabela terá essas mesmas 3 linhas.</p>
<p>Nesse exemplo, usarei um arquivo .csv com 3 colunas: <em>nome, NCM, preço</em></p>
<p>Em cada linha da tabela terão:</p>
<p><strong>Campo Odoo</strong>: Selection com os campos do modelo selecionado.</p>
<p><strong>Domínio</strong>: É como o campo é referenciado dentro do sistema.
Esse campo geralmente é setado automaticamente. Porém, há a possibilidade de
modificá-lo se for preciso. Isso é útil quando a importação de registros está
ligada a um outro objeto do sistema, para informar qual atributo do objeto que
temos em mãos.
Para descobrir qual atributo que o mesmo está ligado, basta buscar no Modelo:</p>
<p><img src="./static/images/model.png" alt=""></p>
<p>Neste exemplo, eu tenho apenas o código do NCM.
Portanto, é preciso informar ao importador qual campo que corresponde o dado
do arquivo .csv.
Para isso, eu posso selecionar NCM no <strong>Campo Odoo</strong> e depois adicionar '.code'
no final do dominio, pois o dado que eu tenho corresponde ao campo 'code' do NCM.</p>
<p><strong>Usar como identificador?</strong>: As linhas que tiverem essa opção selecionada serão
usadas como dados para a busca do registro.
Exemplo:
Se a linha 'name' for selecionada como identificadora, na hora de importar, o
sistema irá procurar pro um registro do modelo selecionado que tenha o nome
igual ao valor passado no arquivo .csv.
<strong>PS: É altamente recomendável selecionar a opção <em>Campo não nulo</em> nesses campos!</strong>
Isso porque não é possivel, e também faz pouco sentido atualizar/criar/identificar
qualquer objeto com valor nulo.</p>
<p><strong>Campo não nulo?</strong>: As linhas que tiverem essa opção selecionada não poderão ter
valores vazios. Caso tenha, será mostrado na tela as linhas que tiveram problemas.
É altamente recomendado que selecione essa opção em linhas com informações importantes,
como linhas identificadoras.</p>
<p><strong>Criar caso não encontrar?</strong>: Essa opção permite que o usuário crie um
registro com o valor passado caso ele não exista no sistema.
<strong>Porém, tenha cuidado ao usar essa opção.</strong> Podem ocorrer casos onde algum
campo obrigatório não esteja selecionado e então dar erro. Outro caso possível
é criar registros duplicados, quando o mesmo é um objeto.</p>
<p>Ex:
Digamos que haja um registro NCM código 99999999 com nome Teste.
Houve uma importação de Produtos. O valor da coluna NCM é o código dele e o
código '99999999' não estava cadastrado no sistema. O sistema então irá
criar um registro com esse código.
Numa outra importação de Produtos, a coluna NCM estava com valores do tipo 'nome NCM'.
Em uma das linhas, tinha o valor 'Teste'. O sistema então irá
perceber que não há nenhum registro com esse nome. Ele irá, então, criar
outro registro apenas com o nome Teste.</p>
<p>O exemplo foi meio forçado, mas passa a ideia de que podem ser criados registros
duplicados de um mesmo objeto, caso esse campo seja usado de fora errada.</p>
<p><em>Caso alguma linha da segunda tabela não precise ser importada, apenas deixe o campo</em> <strong>Domínio</strong> <em>vazio.</em></p>
<p>Nesse exemplo, os domínios ficarão assim:</p>
<p><img src="./static/images/img3.png" alt=""></p>
<p>Quando tudo estiver pronto, só clicar no botão <strong>IMPORTAR</strong>, que as coisas irão acontecer.</p>
<h2>Mensagens de Erros</h2>
<ul>
<li><p><strong>Nenhum arquivo CSV selecionado!</strong>
Indica que não foi selecionado um arquivo .csv</p></li>
<li><p><strong>Nenhum caracter de citação informado. Por favor, coloque um caracter de citação antes de prosseguir.</strong>
Significa que o campo <strong>Caracter de citação</strong> está vazio. Para verificar isso, selecione o checkbox
<strong>Extra</strong> que irá surgir o campo para colocar o caracter de citação.</p></li>
<li><p><strong>Não há linhas de identificação! Por favor, selecione pelo menos uma linha como identificadora antes de prosseguir.</strong>
Indica que não há linhas com o checkbox <strong>Usar como identificador?</strong> selecionado.</p></li>
<li><p><strong>Não há linhas para importação com domínio detectadas! Por favor selecione um campo odoo ou coloque um domínio em pelo menos uma linha antes de prosseguir.</strong>
Indica que não há linhas com o campo <strong>Domínio</strong> preenchido.</p></li>
</ul>
<p><strong>PS: Linhas sem domínio são ignoradas na importação</strong></p>
<ul>
<li><p><strong>Linha nº: x - Valor vazio em campo não nulo</strong>
Isso significa que na linha x, há um valor vazio num campo em quem não é aceito tal valor (Checkbox não nulo selecionado)</p></li>
<li><p><strong>Linha nº: x com valor 'valor' não foi encontrado no sistema</strong>
Na linha x, o valor indicado não foi encontrado no sistema. Ele aparece quando é fornecido um
atributo de um objeto (id, name, int_ref) que não está presente no sistema. Em caso de nomes,
prestem atenção em acentos, espaços antes/depois extras, etc.</p></li>
</ul>